Development and Release¶
Local development¶
Create a virtual environment and install the editable package with test and docs dependencies:
python -m venv .venv
. .venv/bin/activate
pip install --no-build-isolation -e .[test,docs]
Useful local commands:
pytest -q
python -m build
twine check dist/*
sphinx-build -b html docs docs/_build/html
GitHub Actions¶
The repository includes:
.github/workflows/ci.ymlfor tests, docs build, package build,twine check, and wheel install smoke testing.github/workflows/release.ymlfor GitHub Releases plus trusted publishing on version tags
One-time external setup¶
Before the automation can publish docs or packages, configure:
a GitHub repository with the default branch
maina Read the Docs project connected to the GitHub repository
a TestPyPI trusted publisher for the release workflow
a PyPI trusted publisher for the release workflow
GitHub environments named
testpypiandpypiif you want versioned Read the Docs pages beyond
latest, enable version builds for tags in the RTD project settings
Release flow¶
merge changes into
mainensure CI is green
update
src/llm_batch_annotate/_version.py, release notes inCHANGELOG.md, and any publish-facing docscreate and push a tag such as
v0.1.2let the release workflow build the distribution once
create the GitHub Release from that tag and attach the built artifacts
publish the built artifacts to TestPyPI
promote the exact same artifacts to PyPI after approval
verify the Read the Docs
latestbuild onmain, and any tag-specific RTD version if you enabled versioned docs
Documentation source of truth¶
README.md is the short package landing page for GitHub and PyPI. The canonical long-form documentation lives under docs/. The retired docs.md and docs_specs.md files are intentionally no longer part of the tracked source tree.