From 9c46492e04c8a6d319cdbea8c0642b63af150b01 Mon Sep 17 00:00:00 2001 From: scttbnsn <80784472+scttbnsn@users.noreply.github.com> Date: Thu, 8 Oct 2026 11:26:02 -0400 Subject: [PATCH 1/2] docs: correct the Renovate claim in ROADMAP and drop a dead planning path --- ROADMAP.md | 5 +++-- scripts/ci/mutation-survivors-record.sh | 8 ++++---- 2 files changed, 7 insertions(+), 6 deletions(-) diff --git a/ROADMAP.md b/ROADMAP.md index 2f170d85..703f2944 100644 --- a/ROADMAP.md +++ b/ROADMAP.md @@ -27,8 +27,9 @@ particular: `quality-fuzz-monthly.yml`, `quality-soak-weekly.yml` (`benchmarks/cmd/{mockdocker,loadgen}` + `scripts/soak.sh`), and `quality-bench-monthly.yml`. -- **Reproducible base images.** `Dockerfile` and `Dockerfile.release` pin - every base image by digest, with Dependabot tracking the `docker` ecosystem. +- **Reproducible base images.** `Dockerfile`, `Dockerfile.armv7`, + `Dockerfile.dev`, `Dockerfile.release`, and `.clusterfuzzlite/Dockerfile` + pin every base image by digest, and Renovate keeps the digests current. - **Controller-owned watcher/update execution.** Portwing marks the Docker watcher as `transport=docker-api`, `execution=controller`, and `events=portwing`; Drydock runs its native watcher and update trigger through diff --git a/scripts/ci/mutation-survivors-record.sh b/scripts/ci/mutation-survivors-record.sh index 2067b780..6b040046 100755 --- a/scripts/ci/mutation-survivors-record.sh +++ b/scripts/ci/mutation-survivors-record.sh @@ -36,10 +36,10 @@ # sha256 over the whitespace-trimmed source lines l-2..l+2 (5 lines, each # followed by \x1f, missing lines padded with an empty string), and `o` is # the 0-based ordinal among mutants sharing (f, m, a) within the same source, -# ordered by (line, column). See .planning/pw-2.5-survivor-payload-spec.md -# for the measurement behind this choice: bare file+type+line collides 66 of -# 335 times on this repo's real churn, and the 5-line window plus ordinal -# resolves all but 3 genuine code changes. +# ordered by (line, column). Measured on this repo's real churn (335 +# survivors across 11 commits): a bare file+type+line-hash anchor was +# ambiguous 66 times, while the 5-line window plus ordinal resolved all but 3, +# and those 3 were genuine code changes. # # Every {f,m,s,l,c} field below is sourced from a downloaded artifact: a # report the gremlins/mutation-advisory jobs produced by running mutated Go From 08559ac8c5386175a80e0223587acb2fd0aab3bb Mon Sep 17 00:00:00 2001 From: scttbnsn <80784472+scttbnsn@users.noreply.github.com> Date: Thu, 8 Oct 2026 12:01:08 -0400 Subject: [PATCH 2/2] docs(ci): explain the survivor anchor without unsourced counts The comment quoted measurements whose source isn't tracked, and one of them (11 commits) wasn't in the source at all. It now states why the window and ordinal exist. --- scripts/ci/mutation-survivors-record.sh | 8 ++++---- 1 file changed, 4 insertions(+), 4 deletions(-) diff --git a/scripts/ci/mutation-survivors-record.sh b/scripts/ci/mutation-survivors-record.sh index 6b040046..aa615a90 100755 --- a/scripts/ci/mutation-survivors-record.sh +++ b/scripts/ci/mutation-survivors-record.sh @@ -36,10 +36,10 @@ # sha256 over the whitespace-trimmed source lines l-2..l+2 (5 lines, each # followed by \x1f, missing lines padded with an empty string), and `o` is # the 0-based ordinal among mutants sharing (f, m, a) within the same source, -# ordered by (line, column). Measured on this repo's real churn (335 -# survivors across 11 commits): a bare file+type+line-hash anchor was -# ambiguous 66 times, while the 5-line window plus ordinal resolved all but 3, -# and those 3 were genuine code changes. +# ordered by (line, column). A hash of the mutated line alone is ambiguous +# wherever a file repeats that line, and a line number moves with every edit +# above it. The 5-line window survives unrelated edits elsewhere in the file, +# and the ordinal separates mutants whose windows are still identical. # # Every {f,m,s,l,c} field below is sourced from a downloaded artifact: a # report the gremlins/mutation-advisory jobs produced by running mutated Go