feat(governance): advisory scan for retired-estate SPDX headers (pmpl-sweep runbook alignment) - #868
Merged
hyperpolymath merged 1 commit intoSep 20, 2026
Conversation
check-licence-consistency.sh cross-checks the LICENSE identity against the first build manifest only, so stray SPDX identifiers in ordinary source files are invisible to it. That is exactly how ipfs-overlay#134 hid: one .ipkg tripped the gate while three .idr files sat on PMPL-1.0-or-later unseen (two of them with assertions that could never pass). Add a tree-wide scan of SPDX-License-Identifier header lines for retired estate identifiers (PMPL-1.0*, MPL-1.0*, MPL-1.1). Design follows docs/migrations/pmpl-to-mpl-sweep-runbook.adoc: - WARN-level only. Estate policy is per-file, owner-approval-gated edits and NEVER a bulk sweep, so this surfaces drift for filing as issues; it never blocks CI. - Anchored header match (optional comment marker then the identifier), so badges, prose and test fixtures that merely quote the string cannot match. - Carve-out repos (palimpsest-license, palimpsest-plasma, 007) skipped via GITHUB_REPOSITORY / git remote - PMPL/ARR is correct there (runbook S1, S3). - Licence-exhibit paths excluded (LICENSES/, legal/, exhibits/, PMPL-SPEC*). Behaviour on passing trees is unchanged except one added OK line; the ERROR path and exit codes are untouched. Proof matrix: pre-fix ipfs-overlay -> WARN names exactly the 4 stray files; fixed ipfs-overlay, standards, and palimpsest-license -> clean. shellcheck -S warning: clean. Surfaced from hyperpolymath/ipfs-overlay#134.
Contributor
|
Note Currently processing new changes in this PR. This may take a few minutes, please wait... ⚙️ Run configurationConfiguration used: Organization UI Review profile: ASSERTIVE Plan: Advanced Run ID: 📒 Files selected for processing (1)
✨ Finishing Touches📝 Generate docstrings
Thanks for using CodeRabbit! It's free for OSS, and your support helps us grow. If you like it, consider giving us a shout-out. Comment |
|
hyperpolymath
deleted the
feat/licence-consistency-retired-spdx-advisory
branch
September 20, 2026 21:48
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 free
to 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.



Why
check-licence-consistency.shcross-checks theLICENSEidentity against thefirst build manifest only. Stray SPDX identifiers in ordinary source files
are invisible to it — that is exactly how
hyperpolymath/ipfs-overlay#134
hid: one
.ipkgtripped the gate while three.idrfiles sat onPMPL-1.0-or-laterunseen (two of them carrying assertions that could neverpass). A tree-wide view of SPDX headers would have surfaced all four at seed
time.
What this adds
A section (6) to
check-licence-consistency.sh: a tree-wide scan ofSPDX-License-Identifier:header lines for retired estate identifiers(
PMPL-1.0*,MPL-1.0*,MPL-1.1).Design follows
docs/migrations/pmpl-to-mpl-sweep-runbook.adoc:owner-approval-gated, and NEVER a bulk SPDX sweep." This surfaces drift for
filing as issues; it never blocks CI. (Same spirit that produced [P2] ephapax: 11 partial + add ABI seam (Rust/SPARK NON-COMPLIANT) #134: a
surfaced finding becomes an issue with acceptance criteria.)
comment marker, then the identifier). Badges, prose and test fixtures that
merely quote the string in mid-line cannot match. An ERROR-level, unanchored
first draft was rejected after testing: it failed
palimpsest-license(126 legitimate PMPL files) and
standardsitself (runbook prose + a testfixture).
palimpsest-license,palimpsest-plasma,007(viaGITHUB_REPOSITORYor git remote): PMPL/ARR is correct there(runbook §1, §3).
LICENSES/,legal/,exhibits/,PMPL-SPEC*(runbook §3).Non-invasive by construction
output change is one added
[OK]line.shellcheck -S warning: clean (same as the original).governance-reusable.yml.Proof matrix (all runs 2026-09-20)
ipfs-overlay@8176606(pre-fix)ipfs-overlayfix branch (merged as #141)No stray retired-estate SPDX headersstandards@maintreepalimpsest-licenseSurfaced from hyperpolymath/ipfs-overlay#134.