All contributions are greatly appreciated! Before contributing, please read the code of conduct.
This project uses uv to manage dependencies and builds. Once uv is installed, run uv sync to create a virtual environment and install development dependencies. Python >=3.10 is recommended for development.
git clone https://github.com/mcous/decoy.git
cd decoy
uv sync --python 3.12This project uses poethepoet to manage development tasks. Install it as a tool with uv:
uv tool install poethepoetOnce poe is installed, to quickly check everything, run the all task:
poe allDecoy's tests are run using pytest. To run tests in watch mode:
poe testTo run tests once and report coverage
poe test-once
poe coverageDecoy's source code is typechecked with mypy and linted/formatted with ruff.
poe check
poe lint
poe formatDecoy's documentation is built with mkdocs, which you can use to preview the documentation site locally.
poe docsThe library and documentation will be deployed to PyPI and GitHub Pages, respectively, by CI. We use release please to automatically create release PRs based on conventional commits. If bug fixes, features, or breaking changes have merged into main, there will be a release PR open. Merge the PR to release a new version.