Here you will find all the information and steps necessary to contribute to UnCoVar.
We use snakemake
as the
backbone of this project. Have a look at the official documentation.
If you already have conda
installed, run:
conda create -c conda-forge -c bioconda -n snakemake snakemake
For faster installation, you can use mamba
,
a reimplementation of the conda package manager in C++.
mamba create -c conda-forge -c bioconda -n snakemake snakemake
Once installed, activate your snakemake
environment by running
conda activate snakemake
.
Git hook scripts help identify simple issues before submission to code review. We run our hooks on every commit to automatically point out problems in code such as missing semicolons, trailing whitespace, and debug statements. Pointing these issues out before code review allows a code reviewer to focus on the architecture of a change while not wasting time with trivial style nitpicks.
Before you can run hooks, you need to have the
pre-commit
package manager installed.
Using pip:
pip install pre-commit
Using homebrew:
brew install pre-commit
Using conda (via conda-forge):
conda install -c conda-forge pre-commit
Finally, set up the git hook scripts:
pre-commit install
Now, pre-commit
will run automatically on git commit
.
If you want to manually run all pre-commit hooks on a repository, run
pre-commit run --all-files
To run individual hooks use pre-commit run <hook_id>
.
Follow the following steps to acquire a local copy of UnCoVar:
- Fork the original repo to a personal or lab account.
- Clone the fork to your local system (to a different place than where you would run analysis).
- Implement your changes.
Before submitting your code, please do the following:
- Add tests, if possible, for the new changes.
- Edit documentation if you have changed something significant.
- Make sure the
pre-commit
hooks had run (e.g. byprecommit run --all
). - Commitand push your changes to your fork.
- Create a pull request against the original repository.
Test cases are in the subfolder .tests
. They are automatically executed via continuous
integration with Github Actions.
You can contribute by spreading the word about this project. Writing a short article on using this project would also be a considerable contribution. You can also share your best practices with us.