Reproduce the Reporter's Container Before You Patch an OSS Bug
Description and use
Step‑by‑step process to build a reproducible container, verify the bug, apply a minimal patch, and deliver a verifiable evidence bundle to the maintainer.
Problem
Open‑source patches are often rejected because the maintainer cannot reproduce the bug in the reporter’s environment.
Outcome
The workflow yields a reproducible, verifiable evidence bundle that eliminates guesswork, reduces patch rejection, and speeds up maintainer review.
Workflow
- Capture the environment ledger from the issue text into a JSON file.
- Bake a reproducer Docker image using the ledger, pinning the runtime version and recording the image digest.
- Run the reproducer script to confirm the bug reproduces (exit 0) and save the output as before.log.
- Apply the smallest diff to the source, then re‑run the same script to ensure it now exits 1 and logs NO_CRASH in after.log.
- Package env‑ledger.json, image‑digest.txt, before.log, after.log, the unified diff, and the reproducer script into a bundle, hash it, and provide it to the reviewer.
Evidence
Most rejected open-source patches fail for a boring reason. The bug was never reproduced on the reporter's environment.
The loop is: capture an environment ledger, bake a reproducer container, require a failing exit code, patch the smallest diff, then re-run the same script.
The digest line belongs in the pull request body. A maintainer can rebuild the exact same image from it.
- Record date: 2026-09-20T03:30:28.486Z