Ship Checklist
This page contains release decisions only. Research priorities and implementation order are tracked in a private planning document; promoted and planned scientific claims belong in the benchmark matrix.
Release Scope
Before tagging a release, confirm that:
public APIs and documented workflows match the package being built;
every promoted physics claim has a script, test, artifact, threshold, and documentation owner in the benchmark matrix;
research diagnostics that do not pass their promotion gates are described as non-shipping and are absent from release claims;
the canonical checkout is clean and contains no generated caches, local profiling dumps, or large unowned fixtures;
CI coverage remains at least 95%, with physics-driven tests preferred over low-value line coverage.
Verification
Run the same bounded checks used by CI:
python -m ruff check .
python -m mypy src/ntx
python scripts/test_lane_manifest.py --check
python scripts/check_physics_gates.py
python scripts/build_benchmark_matrix.py
python scripts/build_manuscript_artifacts.py
python -m sphinx -W -b html docs docs/_build/html
python -m build
python -m twine check dist/*
Run the registered test shards rather than one monolithic test process. The
shard manifest keeps memory bounded and assigns every test to exactly one CI
lane. Confirm that all GitHub tests and package jobs finish successfully and
that aggregate repository-owned coverage remains at least 95%.
Artifact Review
Regenerate only artifacts owned by changed scripts or gates.
Compare JSON metrics and provenance with the previous committed versions.
Visually inspect every changed PNG and PDF.
Confirm that publication and benchmark manifests reference the same files.
Reject generated artifacts without an owning script, test, and documentation entry.
Package Smoke Test
Install the built wheel in a clean environment and verify both entry points:
python -m venv .venv-release
. .venv-release/bin/activate
python -m pip install --upgrade pip
python -m pip install dist/*.whl
ntx --help
python -m ntx --help
python -c "import ntx; from ntx import GridSpec"
Also inspect wheel and source-distribution contents and run the repository-size guard. Generated documentation, validation images, and external geometry inputs must not enter the installed wheel.
Tag And Publish
Update the version in
pyproject.tomland the fallback version insrc/ntx/__init__.py.Update the versioned release notes.
Merge only after required checks pass on the release commit.
Create and push an annotated
vX.Y.Ztag.Confirm that
release.ymlpublishes the exact tested distributions to the GitHub release and PyPI through Trusted Publishing.Install
ntx==X.Y.Zfrom PyPI in a fresh environment and rerun the import and CLI smoke tests.
The current package and automation details are maintained in Release.