All kinds of contributions to Cog are greatly appreciated. For someone unfamiliar with the code base, the most efficient way to contribute is usually to submit a feature request or bug report.
If you want to dive into the source code, you can submit a patch as well. Working on existing issues is super helpful!
Do you have an idea for an awesome new feature for Cog? Please submit a feature request. It's great to hear about new ideas.
If you are inclined to do so, you're welcome to fork Cog, work on implementing the feature yourself, and submit a patch. In this case, it's highly recommended that you first open an issue describing your enhancement to get early feedback on the new feature that you are implementing. This will help avoid wasted efforts and ensure that your work is incorporated into the code base.
Did something go wrong with Cog? Sorry about that! Bug reports are greatly appreciated!
When you submit a bug report, please include relevant information such as Cog version, operating system, configuration, error messages, and steps to reproduce the bug. The more details you can include, the easier it is to find and fix the bug.
Want to hack on Cog? Awesome!
If there are open issues, you're more than welcome to work on those - this is probably the best way to contribute to Cog. If you have your own ideas, that's great too! In that case, before working on substantial changes to the code base, it is highly recommended that you first open an issue describing what you intend to work on.
Patches should be submitted as Github pull requests.
Any changes to the code base should follow the style and coding conventions used in the rest of the project. The version history should be clean, and commit messages should be descriptive. Please run the included tests to ensure that nothing has broken, and, if applicable, we recommend writing tests for any new features you add!
If you have any questions about anything, feel free to ask!
Thanks to Anish Athalye for letting us borrow this contribution guide from Gavel.