BRLINKIN
← ALL TOOLS
GAME DEVELOPMENT · CI · SAVE SAFETY

Ship the build, not the bug.

ReleaseGuard is a local-first release-readiness CLI. Combine game-authored save, stability, and timing scenarios with packaged-build review, then fail CI when a check does not hold.

Free alpha · optional donations · Windows and Linux · Python 3.10+

ReleaseGuard: ship the build, not the bug

Why release checks live in five different places

Save validation is usually manual. Stability runs are undocumented. Build size is noticed after upload. Timing budgets live in someone's head. Each check might exist, but none of them produces one repeatable pass/fail result that a release manager or CI job can trust.

ReleaseGuard gives those checks one manifest format and one report. It does not replace playtesting or a profiler; it makes the checks you already trust repeatable and reviewable.

What it checks

Save corruption and recovery

Scenarios can start a disposable write, interrupt it at a chosen point, and require either detection of a corrupt save or preservation of the previous committed save. You supply a game-specific validator for real save formats.

Stability and timing budgets

Launch a test build, capture output, enforce exit-code expectations, interrupt a process, and fail when a step exceeds its configured duration.

Packaged-build review

Report build size, large files, duplicate files, likely development leftovers, and growth against a baseline. Findings are review hints; the build is never modified.

Snapshot and restore with a safety net

Create hashed save snapshots, verify them, and restore with a dry run and a preserved pre-restore backup.

ReleaseGuard release-check output with pass/fail checks and a summary
One report for save, stability, timing, and packaging checks.

Quick start

Extract the archive and scan a packaged build — no manifest required:

python3 releaseguard.py analyze ./build --find-duplicates

Run the bundled synthetic save scenarios:

python3 releaseguard.py scenario examples/save-corruption-detection.json --output results
python3 releaseguard.py scenario examples/save-recovery.json --output results

Gate CI with your own trusted manifest:

python3 releaseguard.py release-check ./build \
  --scenario my-save-test.json \
  --max-size-mib 2048 \
  --output release-results

Common problems

Does an interrupted save write corrupt player progress?

Run a disposable scenario that interrupts the write, then assert recovery or detect corruption. The included examples are synthetic and prove the harness, not a commercial game.

How do I stop shipping a bloated build?

Compare against a baseline and set a growth budget. Duplicate files and development leftovers are reported for review.

Can I block a release from CI?

Yes. release-check exits nonzero when a configured check fails.

Full problem guide and limits ↗

Requirements and limits

← Proton Picker Brlinkin →