Thanks for considering contributing to workoutizer. All sorts of contributions are welcome!
For local development I recommend to run the development docker container. First clone the repo
git clone [email protected]:fgebhart/workoutizer.git
cd workoutizer
and start the workoutizer container using the convenience script:
./run_docker.sh
It might take a while to build the image, run the container and initialize workoutizer. Once up and running, run the tests with
pytest tests/ -n4
Once this was successful you are good to go.
In order to run workoutizer use the wkz
cli. If not done yet, run wkz init
(optionally with --demo
):
wkz run
In case you encounter any issues in the setup process, please open an issue.
If you are using VS-Code I suggest to open this repo in a remote container directly using the Remote - Containers extension.
Several style checking tools (e.g. black
, flake8
, isort
) are configured to run prior to each commit to ensure a
consistent coding style. It is also possible to manually trigger the hook
pre-commit run
Using the pre-commit hooks is recommended, because the ci pipeline will also check if your changes comply with the configured style and fail if not. If you are developing from within a docker container (preferred way), you might want to manually activate the pre-commit hooks with
pre-commit install
in order to apply the checks prior to committing.
Please follow these steps when committing to the repo:
- Find a meaningful commit message.
- If your commit addresses a particular issue either include the issue into the commit message or link the issue to the PR via the gui.
- Chose one of the following prefixes to label your commit:
ENH
: Enhancement, new functionalityBUG
orFIX
: Bug fixDOC
: Additions/updates to documentationTST
: Additions/updates to testsBLD
: Updates to the build process/scriptsTYP
: Type annotationsCLN
: Code cleanupDEP
: Upgrading dependenciesDEV
: Enhancements to the development environmentRFC
: RefactoringCI
: Github Actions CI pipeline
Whenever a change modifies the behavior of workoutizer from the user perspective, it should be noted in the
Changelog. The Changelog is based on
Keep a Changelog and organizes all source code changes in the following sections:
Added
, Changed
, Deprecated
, Removed
, Fixed
or Security
.
In case I did not cover everything, feel free to open an issue, start a discussion or find another way to get in touch :)