Uh oh!
There was an error while loading. Please reload this page.
ci: check license notices freshness at PR time - #278
Merged
Conversation
The notices file embeds workspace crate versions and the only check lived in release-image's gate, so a version bump could merge fully green while leaving main unreleasable (#271, unblocked by #272). Reuses the same devtools script with the same pinned cargo-about the release gate uses, so the two checks cannot disagree. Path-filtered to the generator's inputs; the release gate stays as the backstop.
robinnsc
requested review from
LeeroyHannigan, amrith, c33howard, jcshepherd, pdf-amzn and yesyayen
as code ownersAugust 18, 2026 04:24
7 tasks
LeeroyHannigan
approved these changes
Aug 19, 2026
LeeroyHannigan
left a comment
Collaborator
There was a problem hiding this comment.
Good change. Running the same script with the same pinned cargo-about at PR time removes any way for the PR gate and release gate to disagree, and the path filter matches the generator's real inputs. Approving.
dtolnay/rust-toolchain@masteris a floating branch ref. Everything else in CI is@stableor a pinned version, use@stablehere too.- If we make
notices-currenta required check, require it via the merge queue. It's path-filtered on pull_request, so PRs that don't touch those paths would wait forever on a check that never runs. - Once the dev container lands there'll be a second notices file for the sqlite feature set that needs the same treatment.
Uh oh!
There was an error while loading. Please reload this page.
7 tasks
yesyayen pushed a commit
to yesyayen/extenddb
that referenced
this pull request
Aug 19, 2026
SOFTWARE-LICENSE-NOTICES.html embeds the resolved dependency set, so it went stale when ExtendDB#285 consolidated on a single crypto stack and dropped `ring` from the graph. The shipped file still listed `ring 0.17.14` and carried the whole ISC licence section that existed only for it. Regenerating removes exactly that and nothing else: the Apache-2.0 count moves 212 to 211, ISC 6 to 5, and the ring entry plus its ISC block are deleted. Two insertions, twenty-four deletions, no other dependency affected. Why main went red rather than the PR that caused it: ExtendDB#278, which added the PR-time freshness check, and ExtendDB#285, which changed the graph, merged in the same merge-queue batch twenty seconds apart (ffb7ea4, 0a3aaa0, 1ae553d). Neither was red on its own. ExtendDB#285 predated the check existing, and ExtendDB#278's own PR was green because `ring` was still legitimately listed at that point. Only the combination is red, and the batch merged despite `notices-current` failing on the batch head, so that context is not currently required. This is release-blocking, not just a red mark: release-image's gate runs the same freshness check, so main cannot be released while the file is stale. That is the failure mode ExtendDB#278's own header describes from the 0.1.6 bump. Generated with the pinned cargo-about 0.9.0 via devtools/generate-software-license-notices, the same script and pin the CI job and the release gate both invoke, so PR-time and release-time cannot disagree. Verified: devtools/generate-software-license-notices --check exits 1 on 1ae553d and 0 with this change. No Rust sources touched.
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Sign up for freeto join this conversation on GitHub.
Already have an account?
Sign in to comment
Add this suggestion to a batch that can be applied as a single commit.This suggestion is invalid because no changes were made to the code.Suggestions cannot be applied while the pull request is closed.Suggestions cannot be applied while viewing a subset of changes.Only one suggestion per line can be applied in a batch.Add this suggestion to a batch that can be applied as a single commit.Applying suggestions on deleted lines is not supported.You must change the existing code in this line in order to create a valid suggestion.Outdated suggestions cannot be applied.This suggestion has been applied or marked resolved.Suggestions cannot be applied from pending reviews.Suggestions cannot be applied on multi-line comments.Suggestions cannot be applied while the pull request is queued to merge.Suggestion cannot be applied right now. Please check back later.
What
A
Licensesworkflow that runsdevtools/generate-software-license-notices --checkon pull requests, merge groups, and pushes tomain— the exactscript and pinned
cargo-about 0.9.0therelease-imagegate uses (thescript itself refuses any other version, so the PR-time and release-time
checks cannot drift apart). Path-filtered to the generator's inputs
(
Cargo.toml/Cargo.lock, the notices file, about config, the scriptitself); the binary is cached so the common case adds seconds, not a
compile.
contents: readonly.Why
Follow-up to the process gap called out in #272: the notices check ran only
inside
release-image, so #271's version bump merged 32/32 green whileleaving
mainunable to produce a release candidate — discovered only whenthe
v0.1.6tag was dispatched. This moves the failure to the PR thatcauses it, where the fix is one regeneration command instead of a burned
tag dispatch.
The release-gate check stays: it is the unconditional backstop for anything
the path filter cannot anticipate.
Testing done
yaml.safe_loadpasses on the workflow.main(post-chore(licenses): regenerate notices for 0.1.6 #272):SOFTWARE-LICENSE-NOTICES.html is current— so this check goes green onmerge, not red.
75e1685(pre-chore(licenses): regenerate notices for 0.1.6 #272) fails withthe exact CI message, per the verification table in chore(licenses): regenerate notices for 0.1.6 #272 — this workflow
would have blocked Fixes IAM condition evaluation for multivalued condition keys #271 at PR time.
check re-trigger it.
Checklist
cargo test --workspace) — not applicable, workflow-only changecargo fmt --check) — not applicablecargo clippy -- -W clippy::pedantic) — not applicableADR / RFC: n/a — CI tooling only.
Breaking changes
None.
By submitting this pull request, I confirm that my contribution is made under
the terms of the Apache License 2.0 and I agree to the Developer Certificate of
Origin (DCO). See CONTRIBUTING.md for details.