Releases are built from annotated version tags by GitHub Actions. The workflow validates the tag, runs the full test suite, builds both distribution formats, verifies their contents, generates artifact attestations, and publishes a GitHub release.
-
Ensure
mainis current and its CI run is green. -
Update
src/jevcompiler/__init__.pyandCHANGELOG.mdin a dedicated release commit. -
Run the local release checks:
uv sync --extra dev --frozen uv run ruff check . uv run pytest uv build uv run python scripts/verify_distribution.py dist -
Confirm the repository contains no environment files, private specifications, provider recordings, or
.jevcompiler/workspace content.
Use an annotated tag matching the package version, prefixed with v:
git tag -a v0.1.0 -m "Jev Compiler v0.1.0"
git push origin v0.1.0Do not reuse or move a published version tag. If the workflow fails, fix the problem on main, bump
the version, and create a new tag.
On the GitHub release page, confirm that:
- the workflow completed successfully;
- the wheel and source archive are attached;
- the release notes describe the intended version;
- the artifact attestation exists and identifies this repository and tag;
- installing the wheel in a clean environment exposes the
jevcompilercommand.
Package registry publication is intentionally outside the v0.1 workflow. GitHub release assets are
the canonical distributions until a registry publishing policy is adopted.