Release Process

Use release changes as small, reviewable PRs whenever possible.

PR type Typical contents
Packaging Version metadata, dependency ranges, wheel/sdist checks.
Backend contract Capability matrix updates, backend-specific tests, docs.
Numerical behavior Validation helpers, algorithmic changes, invariant tests.
Documentation Tutorials, examples, compatibility dashboard, release notes.
Benchmarks ASV or JSON benchmark updates.

Release Notes

Generate a first draft from commit subjects:

python scripts/generate_release_notes.py v2.2.1..HEAD --output RELEASE_NOTES.md

Then edit the draft to emphasize user-facing changes, backend-support changes, deprecations, dependency changes, and known limitations.

Post-release Checks

After publishing, verify that the GitHub tag, GitHub release, PyPI version, and pyproject.toml version all agree. Then install the published wheel in a fresh environment and run the README example plus the scenario zoo smoke tests.