Release¶
This runbook is for maintainers preparing a tagged ads-bib release.
Normal flow¶
- Keep release metadata in sync:
pyproject.tomlCHANGELOG.mdCITATION.cff.zenodo.jsonuv.lock- Run the local release checks:
uv lock --check
uv run python scripts/ops/check_release_version.py v0.2.0
uv run python scripts/ops/check_release_docs.py
uv run ruff check src tests scripts
uv run pytest -q
uv run zensical build --clean
uv build
uvx twine check dist/*
- Push the release-prep commit and wait for CI and docs build to pass.
- Make the repository public.
- Enable GitHub Pages with GitHub Actions as the source, then run the Docs workflow manually.
- Configure PyPI Trusted Publishing and the Zenodo GitHub connection.
- Tag the checked commit, for example:
The tag workflow builds the distribution once, publishes it to PyPI, and
creates the GitHub Release from the same artifacts. Zenodo archives that
GitHub Release and reads software metadata from .zenodo.json.
After Zenodo creates the DOI¶
Add the DOI to CITATION.cff and the README citation badge or citation text.
Use the concept DOI for general software citation and the version DOI when a
paper needs to identify one exact release.