-
Notifications
You must be signed in to change notification settings - Fork 2
Maintainer Release Runbook
Alex Stoyanov edited this page Apr 17, 2026
·
6 revisions
This runbook is for maintainers preparing and publishing releases.
If you are in a hurry, do not skip Section 2 (local checks) and Section 3 (tag/release gating).
Source-of-truth automation lives in the repository workflows. Treat this runbook as operational guidance that should stay aligned with CI.
- Ensure branch is clean and synced.
- Ensure release version metadata is aligned (
pyproject.toml, README/security messaging). - Ensure generated kit bundles are current after kit source changes.
- Confirm changelog/release notes scope.
Run full checks before tagging:
uv run ruff check src tests
uv run ruff format --check src tests
uv run mypy src
uv run pytest tests/unit -v
uv run pytest tests/integration -v
uv run pytest tests/e2e -vCoverage gate (current CI-equivalent):
uv run pytest tests/unit tests/integration --cov=ethernity --cov-report=term-missing --cov-fail-under=85Kit verification:
cd kit
npm ci
npm test
node build_kit.mjs
cd ..Release tags are expected in vX.Y.Z form.
Release prechecks should block publishing unless:
- tag resolves correctly
- tag version matches project version at the tagged commit
- latest CI run for target SHA is successful
Manual checks here complement CI gates; they do not replace them.
Expected release matrix:
- linux x64
- linux arm64
- macOS x64
- macOS arm64
- windows x64
Each variant should include archive + provenance sidecars (SBOM and Sigstore bundle). See Release Artifacts for operator-facing verification commands.
- Check workflow precheck logs for latest-run status and tag/version mismatch.
- Rebuild kit bundles and commit generated outputs:
src/ethernity/resources/kit/recovery_kit.bundle.htmlsrc/ethernity/resources/kit/recovery_kit.scanner.bundle.html
- Confirm tests do not assert POSIX-only path strings.
- Normalize expected path assertions using platform-native
Pathstring rendering.
- Re-run the exact CI command locally.
- Confirm test selection still matches current CI workflow.
- Verify release page contains all expected artifacts.
- Spot-check verification command examples against one variant.
- Verify Homebrew tap/bottle workflow completed if this release should update Homebrew.
- Announce any policy-impacting changes (trust model, format, or operational behavior).