Contributions are welcome, and they are greatly appreciated!
Everyone interacting in the sequencing
project's code base,
issue tracker, and any communication channels is expected to follow the
PyPA Code of Conduct.
Report bugs by creating an issue.
When reporting a bug, please include:
- Your operating system name and version.
- Any details about your local setup that might be helpful in troubleshooting.
- Detailed steps to reproduce the bug.
The best way to send feedback is to create an issue.
If you are proposing a feature:
- Explain in detail how it would work and why it is important.
- Keep the scope as narrow as possible, to make it easier to implement.
- Remember that this is a volunteer-driven project, and that contributions are welcome.
Pull requests are the best way to propose changes to the sequencing
codebase, and we actively welcome them.
All pull requests should abide by the following guidelines:
- All code must be compatible with Black code style (a subset of PEP 8). We recommend using Black and flake8 locally to ensure compatibility. (See .flake8 for the recommended flake8 configuration.)
- If you've added code that should be tested, add tests.
- If you've changed APIs (e.g. function signatures), update the documentation accordingly.
- If your pull request adds new features, please consider creating an example Jupyter notebook demonstrating the features.
- Ensure that all tests pass locally before creating the PR.
Ready to contribute? Follow GitHub best practices - in short:
- Clone the repository.
- Fork the repo on GitHub to your personal account.
- Add your fork as a remote.
- Pull the latest changes from the
main
branch. - Create a topic branch, e.g.
feature/short-description
for a feature or enhancement. - Make your changes and commit them (testing locally).
- Push changes to the topic branch on your remote once local tests pass and you are happy with the changes you've made.
- Create a pull request against the base
main
branch through the Github website.
Make an HTML version of the documentation.
Note: This might require installing Pandoc.
pip install sphinx sphinx_rtd_theme nbsphinx
cd docs
make html
Run all of the unit tests from a Python session using
>>> import sequencing.testing as st
>>> st.run()
Or run them from the command line, using
pytest --cov