We welcome contributions to snakefmt. We outline a
recommended development setup and workflow below.
Of course, if you have your own system you would prefer to follow, that is fine.
Regardless of the development process you use, please ensure the code you have changed
is formatted with black and isort as per the specifications in pyproject.toml
and there are no flake8 warnings in accordance with .flake8.
Firstly, fork this repository. If you are using uv most of the standard workflow
options are handled with rules in the Makefile. An example of how to install the
project and run some common routines is below.
# clone your fork locally
git clone https://github.com/<username>/snakefmt.git
cd snakefmt
# create and install a uv environment - https://docs.astral.sh/uv/
make install
# format all files
make fmt
# lint all files
make lint
# test
make test
# all three in one
make precommitYou should be all set to go now!
You can also upgrade depenencies in the lockfile with uv lock -U.
Any changes to snakefmt should be provided as pull requests via Github. Importantly, the pull request title has to follow the conventional commits specification. If the pull requests consists of a single commit, the commit message of that commit has to follow the conventional commits specification as well.