Use this checklist to cut a clean, repeatable release.
git status --shortExpected: only intentional release-doc changes.
cargo check --workspace --bins --locked
cargo fmt --all --check
cargo clippy --workspace --all-targets --all-features --locked -- -D warnings
cargo test --workspace --all-targets --locked
# Protocol contract tests
cargo test --locked --test message_contracts auth_contract_returns_expected_fields
cargo test --locked --test message_contracts compatibility_contract_client_bootstrap_flow_stays_stable
cargo test --locked --test message_contracts protocol_contract_advertises_backward_compatible_version
cargo test --locked --test message_contracts file_contract_relays_media_metadata_and_chunks
# Feature-gated checks
cargo check --features discord-bridge --bin discord_bot --locked
cargo check -p chatify-client --features bridge-client --lockedcargo build --release.\build-windows-package.ps1Expected artifacts:
- dist/chatify-windows-x64.zip
- dist/chatify-windows-x64.zip.sha256
git add README.md CHANGELOG.md docs/SECURITY_NOTES.md docs/BENCHMARKS.md docs/ENGINEERING_CASE_STUDY.md docs/RELEASE_CHECKLIST.md
git commit -m "release: prepare v0.3.0"git tag -a v0.3.0 -m "v0.3.0"git push origin main
git push origin v0.3.0- Open the v0.3.0 tag in GitHub Releases.
- Use the CHANGELOG v0.3.0 section as release notes.
- Publish release.
- Verify windows-release-package workflow completes.
- Verify release-security-report workflow completes.
- Verify attached assets include Windows ZIP and SHA256.
- Verify attached assets include Windows installer and SHA256.
- Verify attached assets include
chatify-security-report-<tag>.json. - Verify attached assets include
chatify-security-report-<tag>.md.
- Clone fresh and run server/client quick start.
- Verify release links in README and CHANGELOG.
- Save benchmark numbers to docs/BENCHMARKS.md after first measured run.
Use this process when GitHub reports security alerts for the default branch.
- Open the Security tab in GitHub and list all Dependabot alerts by severity.
- Classify each alert by exploitability in this project context: reachable, conditionally reachable, or not reachable.
cargo tree -i <crate_name>Confirm whether the vulnerable crate is direct or transitive.
cargo update -p <crate_name>If a major version upgrade is required, update Cargo.toml intentionally and document the compatibility impact.
cargo check --workspace --bins --locked
cargo fmt --all --check
cargo clippy --workspace --all-targets --all-features --locked -- -D warnings
cargo test --workspace --all-targets --locked
cargo check --features discord-bridge --bin discord_bot --locked
cargo check -p chatify-client --features bridge-client --locked- Add a brief summary of fixes in CHANGELOG under Unreleased.
- If risk is high, publish a patch release and call out security impact in release notes.