Use this checklist before tagging a public local-first release.
-
git statusis clean. - Run full tests:
pytest -q. - Run lint:
ruff check .. - Run stable-core smoke gate:
bash scripts/ci/stable_core_smoke.sh. - Run preflight:
python rain_lab.py --mode preflight. - Run UI auto smoke test:
python rain_lab.py --mode chat --ui auto --topic "release smoke test". - Verify launcher lifecycle log:
meeting_archives/launcher_events.jsonl. - Run one-screen health check:
python rain_health_check.py. - Verify backup flow:
python rain_lab.py --mode backup -- --json. - If Tier 2 integrations changed, review targeted extension checks and note the owner sign-off.
- Update
requirements-pinned.txtif dependency versions changed. - Update
requirements-dev-pinned.txtif tooling versions changed. - Re-run bootstrap on a clean venv:
python bootstrap_local.py --recreate-venv. - Confirm CI workflows still pass with pinned files.
- Update
CHANGELOG.mdwith release notes and date. - Confirm
README.mdquick-start commands are accurate. - Confirm
docs/troubleshooting.mdreflects known issues and fixes. - Confirm
docs/BACKUP_RESTORE.mdmatches current backup behavior.
- Create release commit.
- Tag release (example):
git tag -a v2026.02.22 -m "R.A.I.N. Lab local-first release". - Push commits and tag:
git push origin main --tags. - Verify fresh clone bootstrap from scratch.
- Run pass/fail gates in
docs/PRODUCTION_READINESS.md.