Contributing¶
Contributions are welcome! You can help by reporting bugs, implementing features, or improving documentation. File issues and PRs at github.com/OO-LD/oold-python.
Development Setup¶
Requires uv and git.
git clone git@github.com:YOUR_NAME/oold-python.git
cd oold-python
git clone https://github.com/YOUR_NAME/oold-python.git
cd oold-python
Install the environment and hooks¶
make install
uv sync
uv run pre-commit install
Making Changes¶
- Create a branch:
git checkout -b name-of-your-fix - Make your changes and add tests in
tests/ - Run checks and tests (see below)
- Commit and push, then open a pull request
Checks and tests¶
make check # lint, type-check, dependency audit
make test # pytest with coverage
uv lock --locked
uv run pre-commit run -a
uv run ty check
uv run deptry src
uv run python -m pytest --cov --cov-config=pyproject.toml --cov-report=xml
Docs¶
Doc sources live in docs/. The site is configured in zensical.toml.
make docs # serve with live reload at http://localhost:8000
make docs-test # strict build - fails on any warning
uv run zensical serve
uv run zensical build -s
Releasing¶
Releases are published automatically by CI when a version tag is pushed.
- Ensure all changes are merged to
main - Tag the commit and push:
git tag v0.17.0
git push origin v0.17.0
CI will build the package (uv build), publish it to PyPI, and deploy the docs to GitHub Pages. The version is derived from the git tag via hatch-vcs - no manual version bumping needed.