Skip to content

Chore(hygiene): Four v0.11 H6 deferrals — #18 advisory diff, SI schema gate, demo hash-pin, cflite cap#189

Merged
allenfbyrd merged 3 commits into
mainfrom
chore/h6-small-deferrals
Jul 14, 2026
Merged

Chore(hygiene): Four v0.11 H6 deferrals — #18 advisory diff, SI schema gate, demo hash-pin, cflite cap#189
allenfbyrd merged 3 commits into
mainfrom
chore/h6-small-deferrals

Conversation

@allenfbyrd

Copy link
Copy Markdown
Collaborator

What

v0.11 hygiene H6 — four small deferred-queue items from the v0.10.17 close-out, each independently verified:

1. #18 — changelog-vs-commits ADVISORY diff

scripts/check_changelog_vs_commits.py, wired into verify-changelog.yml (whose checkout gains fetch-depth: 0 for the tag baseline). At release-prep time (version bumped, not yet tagged) it lists commits since the last release tag whose (#NNN) PR ref the new CHANGELOG block never mentions — the shape of a shipped-but-undocumented change. Always exits 0: a curated block folds/omits deliberately, so entry-COMPLETE cannot be a hard gate without lying; the value is the visible checklist in the release-prep PR's CI log. Self-skips outside release-prep (verified live: v0.10.17 tagged → skip) and fail-softs on shallow clones. 13 unit tests.

2. security-insights.yml CI-validate gate

The spec publishes CUE (not JSON Schema) and si-tooling v2 is a Go library, so the gate is cue vet -d '#SecurityInsights' with cue v0.17.0 (sha256-pinned install) against a vendored, byte-identical copy of spec/schema.cue @ ossf/security-insights-spec v2.2.0 (.github/schemas/, upstream sha256 in the workflow comment). Wired into verify-osps-conformance.yml. Observed firing first (lesson 9): the real manifest failed vet — security.tools[].rulesets is a required field — fixed honestly (the osv-scanner.toml allowlist / dependabot.yml named as the customized rulesets) + last-updated bumped; now vets clean.

3. Demo-image pyyaml hash-pin (alert #180)

Committed docker/demo/requirements.txt with PyPI-sourced sha256 hashes (cp313 manylinux x86_64 + aarch64 + sdist); Dockerfile.demo installs with --require-hashes (same mechanism as the main Dockerfile's pip-compile closure and the verify-osps requirements file). Smoke-built locally against python:3.13-slim: build green; sh and collect okta refusals still exit 2 per the run contract.

4. cflite-batch runtime cap

timeout-minutes: 60 (PR #172 rationale): the 1800s fuzz budget + build time fits well under 60 — a wedged daily run must not burn the 6-hour default ceiling.

Verification

13 + existing unit tests green · ruff clean · zizmor across all touched workflows: no findings · audit_workflow_permissions.py --strict PASS · full local gate suite green.

…a gate, demo hash-pin, cflite cap

Four small deferred-queue items from the v0.10.17 close-out, each
independently verified:

1. #18 changelog-vs-commits ADVISORY diff:
   scripts/check_changelog_vs_commits.py — at release-prep time
   (version bumped, not yet tagged) lists commits since the last
   release tag whose (#NNN) PR ref the new CHANGELOG block never
   mentions. Always exits 0 (a curated block folds/omits
   deliberately; entry-COMPLETE cannot be a hard gate without
   lying). Wired into verify-changelog.yml (checkout gains
   fetch-depth: 0 for the tag baseline; script fail-softs on
   shallow clones). Self-skips outside release-prep — verified
   live (v0.10.17 tagged -> skip). 13 unit tests.

2. security-insights.yml CI-validate gate: the spec publishes CUE
   (not JSON Schema) and si-tooling v2 is a Go library, so the gate
   is 'cue vet -d #SecurityInsights' with cue v0.17.0 (sha256-
   pinned install) against a vendored, byte-identical copy of
   spec/schema.cue @ ossf/security-insights-spec v2.2.0
   (.github/schemas/, sha256 in the workflow comment). Wired into
   verify-osps-conformance.yml. OBSERVED FIRING first (lesson 9):
   the real manifest failed vet — security.tools[].rulesets is
   REQUIRED — fixed honestly (osv-scanner.toml allowlist /
   dependabot.yml named as the customized rulesets) + last-updated
   bumped; now vets clean.

3. Demo-image pyyaml hash-pin (alert #180, precedent: the main
   Dockerfile's --require-hashes closure): committed
   docker/demo/requirements.txt with PyPI-sourced sha256 hashes
   (cp313 manylinux x86_64 + aarch64 + sdist); Dockerfile.demo
   installs with --require-hashes. Smoke-built locally against
   python:3.13-slim: build green, sh + 'collect okta' refusals
   still exit 2 per the run contract.

4. cflite-batch.yml timeout-minutes: 60 (PR #172 rationale: 1800s
   fuzz budget + build time fits well under 60; a wedged daily run
   must not burn the 6-hour default).

zizmor + audit_workflow_permissions --strict clean across all
touched workflows.
@vercel

vercel Bot commented Jul 13, 2026

Copy link
Copy Markdown

The latest updates on your projects. Learn more about Vercel for GitHub.

Project Deployment Actions Updated (UTC)
evidentia Ready Ready Preview, Comment Jul 14, 2026 9:28pm

Request Review

@allenfbyrd
allenfbyrd enabled auto-merge July 13, 2026 20:20
@codspeed-hq

codspeed-hq Bot commented Jul 13, 2026

Copy link
Copy Markdown

Merging this PR will not alter performance

✅ 6 untouched benchmarks


Comparing chore/h6-small-deferrals (90c7266) with main (2c0180f)

Open in CodSpeed

The strict workflow-tools gate (CI-only) flagged cue as missing --
it is installed by the prior checksum-verified curl step in the same
job; the release.yml-precedent '# tool-check: ok' waiver annotation
records that. Checker re-run locally: 0 findings.
@allenfbyrd
allenfbyrd added this pull request to the merge queue Jul 14, 2026
Merged via the queue into main with commit 0f6996a Jul 14, 2026
35 checks passed
@allenfbyrd
allenfbyrd deleted the chore/h6-small-deferrals branch July 14, 2026 21:45
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