First of all, thanks for considering contributing to nanocompore
! 👍 It's people like you that make it rewarding for us to work on nanocompore
.
nanocompore
is an open source project, maintained by publicly funded academic researchers.
Please note that this project is released with a [Contributor Code of Conduct][code_of_conduct.md]. By participating in this project you agree to abide by its terms.
There are several ways you can contribute to this project. If you want to know more about why and how to contribute to open source projects like this one, see this Open Source Guide.
Think nanocompore
is useful? Let others discover it, by telling them in person, via Twitter or a blog post.
Using nanocompore
for a paper you are writing? Please cite it.
Using nanocompore
and got stuck? Browse the documentation to see if you can find a solution.
Still stuck? Post your question as an issue on GitHub.
While we cannot offer user support, we'll try to do our best to address it, as questions often lead to better documentation or the discovery of bugs.
Have an idea for a new nanocompore
feature? Take a look at the issue list to see if it isn't included or suggested yet. If not, suggest your idea as an issue on GitHub. While we can't promise to implement your idea, it helps to:
- Explain in detail how it would work.
- Keep the scope as narrow as possible.
See below if you want to contribute code for your idea as well.
Using nanocompore
and discovered a bug? That's annoying! Don't let others have the same experience and report it as an issue on GitHub so we can fix it. A good bug report makes it easier for us to do so, so please include:
- Your operating system name and version (e.g. Mac OS 10.13.6).
- Any details about your local setup that might be helpful in troubleshooting.
- Detailed steps to reproduce the bug.
Noticed a typo on the website? Think a function could use a better example? Good documentation makes all the difference, so your help to improve it is very welcome!
- Fork nanocompore and clone it to your computer. To learn more about this process, see this guide.
- Edit the README.md file and submit a pull request. We will review your changes and include the fix in the next release.
Care to fix bugs or implement new functionality for nanocompore
? Awesome! 👏 Have a look at the issue list and leave a comment on the things you want to work on. See also the development guidelines below.
We try to follow the GitHub flow for development and the PEP 8 style Guide for Python Code.
-
Fork nanocompore and clone it to your computer. To learn more about this process, see this guide.
-
If you have forked and cloned the project before and it has been a while since you worked on it, pull changes from the original repo to your clone by using
git pull upstream master
. -
Make your changes and test the modified code.
-
Commit and push your changes.
-
Submit a pull request.
- Create a new branch called
release_x.y.z
fromdevel
. - Bump the version number
- Update the CHANGELOG
- Create PR against master
- Merge PR with a merge commit
- Tag the commit with the new version number
- Run
poetry build
andpoetry publish
to publish the new version to PyPI
The version number is exclusively stored in pyproject.toml
and loaded from the metadata by init.py (see here).
The version number is also referenced explicitly in the CHANGELOG.
The master
branch only points to a stable release semantically versioned: X.Y.Z. We use patches for bug fixes, minor versions for new features and major versions for breaking changes.
This file was adapted from a template created by peterdesmet.