Welcome! Thanks for wanting to contribute. We welcome any improvements for this library. To make life easier for you (and to prevent PRs from getting rejected all the time), we've outlined some general contributing guidelines for you to follow to ensure all of your code is awesome.
If you find a bug we didn't, please create an issue. We have pre-created templates to make life easier for you. In general, you should:
- Use (at least moderately) clear English.
- Ensure your issue title is clear, concise, and descriptive.
- Be as thorough as possible when describing the problem you encountered.
We use a pretty standard method for managing contributions. Before you begin, make sure your code is licenced through the MIT licence, because that's the licence we distribute our code under.
You should also talk with someone associated with this project before doing anything crazy, like refactoring code.
The major points are outlined below.
We're love terminals from the 70s, and therefore expect everyone to follow pep-8 in its entirity, meaning, among other things, that you keep your line widths less than 80 characters. We encourage you to use a linter like flake8 to whip everything into shape.
We also conform to the pep-484 standard, meaning that all functions must have type hinting.
All code is documented using a style compatible with numpydoc.
If you know how to use Git, but don't know how to fork and merge (a strange combination), read this guide. If you've never done any of this before, here's what you need to do:
-
Clone a copy onto your computer
-
Create a topic branch that is dedicated to the development of your new feature/bugfix/etc
git checkout -b YOUR_NEW_BRANCH_NAME_HERE
-
Add and commit your changes.
-
Push your topic branch to your origin.
git push origin YOUR_NEW_BRANCH_NAME_HERE
- Open a pull request (PR) with our repository. Make sure the PR has a clear title and description, because otherwise we may not know what it is or why we need it.
A big thank-you to d2si-oss. This guide is further proof that nobody is completely original.