A Snapshot Is Not a Rebuild: Five Myths About Free Dev Boxes
Description and use
The workflow detects and fixes environmental drift in free dev boxes by generating a stable fingerprint, filtering volatile fields, and diffing fingerprints to pinpoint missing pins or unfiltered fields.
Problem
Developers assume free or borrowed development boxes are identical, but subtle environmental differences cause test failures and drift.
Outcome
The workflow produces a reproducible, version‑controlled representation of a dev environment, making drift visible and fixable, and discouraging reliance on unverified snapshots.
Workflow
- Run manifest.sh on a working box to emit a stable fingerprint.
- Provision a clean free box and replay the bootstrap.sh script.
- Run manifest.sh again on the clean box.
- Use strip_volatile to filter out fields that legitimately vary across hosts.
- Diff the normalized fingerprints; any differences indicate missing pins or unfiltered fields.
- Commit the diff alongside the bootstrap script fix as a bug report.
- Repeat the drill periodically based on project context (e.g., quarterly for pure‑Python services, every bump for native extensions).
Evidence
Two instances built from the same image can still disagree about the C library, the locale, the timezone database, and the global package tree.
Run manifest.sh on the box that works, provision a clean free box, replay your bootstrap.sh, and run manifest.sh again there.
The diff is the entire deliverable: every line in it is either a fact your bootstrap forgot to pin or a field your filter should have dropped.
- Record date: 2026-10-27T14:26:22.198Z