Release checklist
Publication gate for the three supported distribution shapes: editable install, Docker image, and PyInstaller bundle. Run this checklist before any release.
On this page
Pre-flight
- working tree is clean;
git statusshows what you expect -
pyproject.tomlversionis bumped -
README.mdis aligned with the behavior of the new release -
guides/CAPABILITIES.mdreflects any new or retired surface -
guides/ARCHITECTURE.mdreflects any new cross-module dependency -
site-docs/pages undersubsystems/,reference/, andhow-to/are updated where relevant -
Tools/HilBridge/RSPRO.asnis an up-to-date mirror of the operator's localdocs/RSPRO.asn(and still present as package-data inpyproject.toml) - operator-facing docs that reference
docs/describe it as an optional local developer tree (not as shipped content) - no local-only audit/report files are required to validate this release; all release gates are represented by tracked tests, docs, and CI checks
-
pyflakes SCP03/ SCP11/ SCP80/ SIMCARD/ Tools/ main/ plugins/ yggdrasim_common/is clean modulo the two documented# noqa: F401probes and theSCP11/shared/SCP11/relaystar-import shims
Editable install
-
python -m pip install -e .succeeds in a clean venv -
every installed console script launches:
yggdrasim-scp03 --cmd "EXIT" yggdrasim-scp80 --cmd "exit" yggdrasim-scp11 --cmd "EXIT" yggdrasim-scp11-live --cmd "HELP; EXIT" yggdrasim-scp11-test --cmd "HELP; EXIT" yggdrasim-scp11-local-access --cmd "HELP; EXIT" yggdrasim-scp11-eim-local --cmd "HELP; EXIT" yggdrasim-profile-package --cmd "STATUS; EXIT" yggdrasim-profile-autoload --help yggdrasim-apdu-fuzzer --help yggdrasim-eum-diag --help yggdrasim-suci-tool --cmd "STATUS; EXIT" -
registry resolves:
python -c "from yggdrasim_common.registry import search; \ print(list(search('orchestrator'))[:5])"
Targeted test suite
Run narrowly-targeted pytest invocations that match the touched surfaces.
Do not mass-run. Redirect noisy runs to a log file and inspect with rg.
- each test file that exercises a changed area passes
- plugin runtime behavior is exercised through
tests/test_polling_plugin_*.pywhere applicable - HIL-related tests pass in their emulated form
Docker
-
docker build -t yggdrasim:test .succeeds -
docker run --rm yggdrasim:test yggdrasim-profile-package --cmd "EXIT"exits cleanly - mounted-volume run persists state across invocations
PyInstaller bundle
-
pyinstaller --clean --noconfirm yggdrasim_main.specsucceeds -
dist/yggdrasimlaunches and writes the expected runtime tree - at least one card-facing surface works end-to-end against the bundled runtime material
- the runtime root resolution is correct for the target OS
Documentation site
-
python -m mkdocs build --strictsucceeds from the repo root - the mirrored
site-docs/sources/is regenerated viapython site-docs/_tools/mirror_source_docs.py - nav entries that reference new pages exist and resolve
- nav entries for removed pages are removed
Tagging and publishing
The CI workflows are currently validation-only for the v1.0.1 cycle. They run build/test checks but do not publish release assets and do not push Docker images.
Release publication is therefore a manual maintainer step.
Tagging contract
-
tag the release in git with an annotation that reads as a release note (covers headline behavioural changes, defaults, migration considerations):
git tag -a vX.Y.Z -m "$(cat <<'EOF' YggdraSIM vX.Y.Z First / next … release. Notable changes: - … - … EOF )" git push origin vX.Y.Z -
watch the workflow at
https://github.com/<repo>/actionsand confirm the validation jobs complete for the release tag/branch. -
confirm the GitHub Release page lists the eight asset names plus
SHA256SUMS:yggdrasim-linux-x86_64-clean yggdrasim-linux-x86_64-full yggdrasim-linux-arm64-clean yggdrasim-linux-arm64-full yggdrasim-macos-x86_64-clean yggdrasim-macos-arm64-clean yggdrasim-windows-x86_64-clean.exe yggdrasim-clean_X.Y.Z_amd64.deb SHA256SUMS -
sanity-check that the install-script
releasemode resolves with the just-published tag, e.g.:YGGDRASIM_REPO=1oT/YggdraSIM \ scripts/install/install-linux.sh --version vX.Y.Z
Post-release
- smoke-test the published artifacts on a fresh host
- open issues for any deferred follow-up that surfaced during the checklist