Skip to content

fix(ci): publish VT evidence under the marker the gate actually writes - #1603

Merged
DeusData merged 1 commit into
mainfrom
fix/vt-evidence-marker
Aug 14, 2026
Merged

fix(ci): publish VT evidence under the marker the gate actually writes#1603
DeusData merged 1 commit into
mainfrom
fix/vt-evidence-marker

Conversation

@DeusData

Copy link
Copy Markdown
Owner

The v0.10.4 release (run 31755436916) failed at the last step of verify, after all 69 other jobs passed — the full test matrix, all eight builds, smoke and soak:

publish-vt-evidence: wrong evidence marker in binaries/vt-results.tsv

#1596 bumped the results format to cbm-virustotal-results-v2, but publish-vt-evidence.sh still demanded -v1. It was the lone straggler — check-virustotal.sh, select-release-candidates.py, append-vt-notes.sh and all three contract fixtures were already on v2.

It survived review because #1596 had removed this script's only caller, so it sat as dead code nothing exercised. Restoring the full-surface post-package scan restored the caller, and the stale expectation surfaced at the end of a real release rather than in a dry-run — verify does not run in dry-runs, which is exactly why this class needs a local guard.

So this also adds one: every marker publish-vt-evidence.sh validates must be a marker the gate actually writes. Revert-checked — putting v1 back fails with publisher expects marker never written by the gate: cbm-virustotal-results-v1.

The VirusTotal scan itself passed; this is purely the evidence-publishing step.

The v0.10.4 release (run 31755436916) failed at the very last step of `verify`,
after all 69 other jobs had passed — full test matrix, all eight builds, smoke
and soak:

  publish-vt-evidence: wrong evidence marker in binaries/vt-results.tsv

The results format was bumped to `cbm-virustotal-results-v2` in #1596, but
publish-vt-evidence.sh still demanded `-v1`. It was the only straggler: the
gate, the selector, the notes renderer and all three contract fixtures were
already on v2.

It survived because that PR had removed the script's only caller, leaving it
dead code that nothing exercised. Restoring the full-surface scan restored the
caller too, and the stale expectation surfaced in the worst possible place — at
the end of a real release rather than in a dry-run, since `verify` does not run
in dry-runs.

Also adds the guard that would have caught it: every marker publish-vt-evidence.sh
validates must be one the gate actually writes. Revert-checked — reintroducing
v1 fails with "publisher expects marker never written by the gate:
cbm-virustotal-results-v1".

The scan itself passed. This is purely the evidence-publishing step.

Signed-off-by: Martin Vogel <martin.vogel.tech@gmail.com>
@DeusData
DeusData merged commit c0bd4bb into main Aug 14, 2026
34 checks passed
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

1 participant