We welcome contributions of bug reports, feature requests, code, and documentation from the community.
- All code and documentation contributions must be via pull request.
- By submitting a pull request, you agree to donate your contribution under the terms of this project's license.
- Format code according to black style.
- Use type annotations in all function signatures and anywhere else they are necessary to resolve ambiguity.
- Write Google-style docstrings for all functions.
- Write self-documenting code, commenting where necessary to explain complex functionality.
IndexTools development follows the GitFlow development process. In summary:
- Fork the repository
- Change to the
developbranch:git checkout develop - Create a new feature branch:
git checkout -b <feature name>- If the feature is based on an issue, prefix the branch name with the issue ID, e.g.
git checkout -b 4_cram_support.
- If the feature is based on an issue, prefix the branch name with the issue ID, e.g.
- Commit your changes. We suggest making small, focused commits with informative messages"
- Write tests for any new or modified functionality.
- When all tests pass, submit a PR with a detailed message.
- The code owner(s) will automatically be added as reviewers on the PR.
Any contributor who has previously made a pull request to this project may apply to become a Collaborator by submitting an issue to this effect.
The development process for Contributors and Collaborators is the same, with the exception that:
- Collaborators can create branches and submit PRs directly on this project, rather than via forking, and
- Collaborators are considered as "Authors," both for purposes of copyright and for inclusion on any manuscript submitted for publication.
Your first PR after being added as a Collaborator should be to add yourself to the authors file.