We love to have your contributions to the kmertools project, whether it's:
- Reporting a bug
- Submitting a fix
- Proposing new features
First, make sure you have git and rust installed on your machine.
On GitHub, fork the kmertools repository and clone it to your machine.
# clone repository to your local machine
git clone https://github.com/anuradhawick/kmertools.git
Move to the kmertools directory
cd kmertools
Now build kmertools using cargo. Make sure to have rust
installed.
# to build the kmertools cli app
cargo build
# to build the python wheels
# pip
cd pip
maturin build --release
# conda
cd conda
maturin build --release
Use the following command to test the build. All tests should pass.
cargo test
To test the python bindings, change directory to either conda
or pip
then run following commands.
cd pip # or cd conda
maturin develop
# go to tests folder
cd ../tests
pytest -s
We use Clippy to lint code in kmertools.
Before committing, make sure to run Clippy as follows.
cargo clippy
We use GitHub issues to track public bugs. Report a bug by opening a new issue in GitHub issues. You will get to select between templates for bug reports and feature requests. If none of these templates matches what you want to report, you can use the custom issue template.
Once you have finished coding and all the tests pass, commit your code and make a pull request.
# Add changed/added files
git add <file name>
# Commit changes
git commit -m "<commit message>"
# Push changes
git push
Make sure to follow the commit style of c3dev. Relevant prefixes are replicated below for convenience.
Commit Prefix | For |
---|---|
DEV: | development tool or utility |
DOC: | documentation |
TST: | addition or modification of tests |
REL: | related to a release |
MAINT: | maintenance commit (refactoring, typos, etc.) |
FIX: | fix for bugs |
GIT: | git related |
REV: | revert an earlier commit |
Your contribution will be reviewed before accepting it.
By contributing, you agree that your contributions will be licensed under the GPL-3.0 license.
This document was adapted from the open-source contribution guidelines for Transcriptase and c3dev.