Contributions are welcome and are greatly appreciated! Every little bit helps, and credit will always be given.
Open feature request for an algorithm inclusion
Make sure to add a detailed doc in docs/
with official references, preferably .rst
for .tex
Report bugs through GitHub Issues.
Please report relevant information and preferably code that exhibits the problem.
Look through the GitHub issues for bugs. Anything is open to whoever wants to implement it.
Add GitHub issues labeled "kind:feature" for feature requests
Any unassigned feature request issue is open to whoever wants to implement it.
Documentation improvements are always welcomed, whether as part of the official docs,
in docstrings, docs/*.rst
or even on the web as blog posts or articles.
The best way to send feedback is to open an issue on GitHub.
If you are proposing a new feature:
- Explain in detail how it would work.
- Contributions are always welcome :)
Before you submit a pull request (PR) from your forked repo, check that it meets these guidelines:
Include docs in
README.rst
anddocsrc/source/content.rst
and docstrings.Test docs using
sphinx-build -q -b html docsrc/source docsrc/build
The repo uses Sphinx autosummary extenstion for generating docs
Include tests, either as doctests, unit tests, or both, to your pull request.
The repo uses Github Actions to run the tests and codecov to track coverage. You can set up on your fork if needed. It will help you make sure you do not break the build with your PR.
Strictly adhering PEP8 coding style guide.
Format the code using black
Coding style rules are enforced programmatically by flake8 and black.
When merging PRs, wherever possible try to use Squash and Merge instead of Rebase and Merge.
If your pull request adds functionality, make sure to update the docs as part of the same PR. Doc string is often sufficient. Make sure to follow the Sphinx compatible standards.
Run tests locally and run tests via
tox -e py37
for python 3.7 env and similarly for 3.6 and 3.8.Create a pull request and make sure it works for Python 3.6, 3.7 and 3.8.
Adhere to guidelines for commit messages described in this article. This makes the lives of those who come after you a lot easier.
master
branch is the stable branch, should always be synced with latest release branch. All new feature PRs should target master
branch and release specific PRs release-v*
branch.