If you wish to contribute to DJ Tools, please follow these development rules:
- Development branches must:
- be linked to an Issue
- branch from
release/* - have a concise name for the feature or bugfix specifically targeted by that branch (e.g.
xml-track-randomizationorimprove-spotify-stability)
- Commits must:
- have messages that follow the Conventional Commits standard
- (if non-trivial) have messages that include a
Why?andWhat?section in the body describing the reason for and specifics of the commit - (if relevant) include updates to the docs
On push events (with **.py changes) to feature branches, the format Action will run the ruff formatter and commit changes if there are any.
On pull_request events (with src/**.py or tests/**.py changes) the test-lint Action is triggered. For build checks to pass on the PR, this Action must have 100% test passing and coverage and zero lint errors:
- if you're unable to pass tests with
100%coverage, please open an issue - if you're not passing linting, first attempt to correct the errors before resorting to noqa comments
On push events to release/** the following Actions are triggered:
- release-dev (with
src/**.pychanges) - deploy-dev-docs (with
src/**.pyordocs/**.mdchanges)
On push events to main, for the same file change patterns, the deploy-prod-docs and release-prod Actions are triggered.
uv sync && uv run pre-commit install
Installing pre-commit enables testing, linting, and formatting checks defined in .pre-commit-config.yaml.
You can run these same checks at any time with the following commands:
uv run pytest --cov --cov-report term-missing
uv run ruff check .
uv run ruff format .