Skip to content

Commit 583a934

Browse files
fix(rsr-audit): LICENSE checks expect MPL-2.0 (owner-approved follow-up to #390) (#433)
## Summary Discharges the licence-guardrail flag that **#390** raised and explicitly left for the owner: > 🔒 Flagged for owner (NOT changed — licence guardrail): `rsr-audit.sh` > hardcodes `MIT AND Palimpsest` as the required LICENSE content, which > contradicts the estate's MPL-2.0-for-sole-owner policy. Updating what > licence the standard mandates is an owner decision — left as-is. The owner has now approved the change (MPL-2.0 for code, CC-BY-SA-4.0 for prose docs, per estate policy). This PR makes only that one owner-gated edit. ## Change `rsr-audit.sh` Category-2 (documentation) and Category-7 (licensing) checks previously required every **audited** repo's LICENSE to contain `MIT` + `Palimpsest` with `SPDX-License-Identifier: MIT AND Palimpsest`. Under the estate's five-way licence policy, sole-owner repos are **MPL-2.0** and the Palimpsest carve-out is reserved for exactly three repos (`palimpsest-license`, `palimpsest-plasma`, `consent-aware-http`). So every correctly-MPL-2.0 repo was failing two licensing criteria. Both checks now: - expect **`Mozilla Public License`** + **`SPDX-License-Identifier: MPL-2.0`**; - accept either **`LICENSE`** or **`LICENSE.txt`** (matching #390's bare-`LICENSE` tolerance). ## Not touched (deliberate) - The RSR toolkit's **own** header `# SPDX-License-Identifier: MPL-2.0 AND Palimpsest-0.8` (line 2) is the framework's intentional dual-licence — it is the auditing tool's licence, not an audited target. Unchanged. - No SPDX header was swept anywhere; this is a single logic edit to the audit script's expectations, per the per-file / no-bulk-sweep mandate. ## Effect Removes two false-negative licensing failures from the self-audit of every correctly-MPL-2.0 estate repo, nudging Bronze scores upward across the board without changing any audited repo's actual licence. 🤖 Generated with [Claude Code](https://claude.com/claude-code) https://claude.ai/code/session_019awZjBD1qx61tvmEuEKNpn --- _Generated by [Claude Code](https://claude.ai/code/session_019awZjBD1qx61tvmEuEKNpn)_ --------- Co-authored-by: Claude <noreply@anthropic.com>
1 parent d7c2271 commit 583a934

2 files changed

Lines changed: 16 additions & 14 deletions

File tree

.machine_readable/REGISTRY.a2ml

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -216,7 +216,7 @@ name = "RSR — Rhodium Standard Repositories"
216216
stream = "governance"
217217
home = "rhodium-standard-repositories/"
218218
canonical_doc = "rhodium-standard-repositories/README.adoc"
219-
source_hash = "sha256:830dca99ac78da5834a0f796da50bc4e3a1874782206347141530f6db49e3b97"
219+
source_hash = "sha256:2d4e465bee215808306f28053a84d2f146a7fb7f6e6e3780e5d6f4c1d18c7404"
220220
route = "the repository-compliance standard every repo is graded against"
221221

222222
[[spec]]

rhodium-standard-repositories/rsr-audit.sh

Lines changed: 15 additions & 13 deletions
Original file line numberDiff line numberDiff line change
@@ -226,11 +226,14 @@ audit_category_2_documentation() {
226226
check_file_exists "MAINTAINERS.md" "MAINTAINERS.md present"
227227
check_file_exists "CHANGELOG.md" "CHANGELOG.md present"
228228

229-
# LICENSE.txt validation
230-
if [[ -f "$REPO_PATH/LICENSE.txt" ]]; then
231-
check_file_contains "LICENSE.txt" "SPDX-License-Identifier" "LICENSE.txt has SPDX identifier"
232-
check_file_contains "LICENSE.txt" "MIT" "LICENSE.txt includes MIT license"
233-
check_file_contains "LICENSE.txt" "Palimpsest" "LICENSE.txt includes Palimpsest license"
229+
# LICENSE validation — estate policy: sole-owner repos are MPL-2.0
230+
# (accept `LICENSE` or `LICENSE.txt`).
231+
local _license=""
232+
[[ -f "$REPO_PATH/LICENSE.txt" ]] && _license="LICENSE.txt"
233+
[[ -z "$_license" && -f "$REPO_PATH/LICENSE" ]] && _license="LICENSE"
234+
if [[ -n "$_license" ]]; then
235+
check_file_contains "$_license" "SPDX-License-Identifier" "LICENSE has SPDX identifier"
236+
check_file_contains "$_license" "Mozilla Public License" "LICENSE is MPL-2.0 (estate sole-owner policy)"
234237
fi
235238

236239
# README validation
@@ -458,14 +461,13 @@ audit_category_7_licensing() {
458461
# License clarity
459462
check_file_exists "LICENSE.txt" "LICENSE.txt present (plain text, not LICENSE.md)"
460463

461-
if [[ -f "$REPO_PATH/LICENSE.txt" ]]; then
462-
check_file_contains "LICENSE.txt" "MIT" "MIT license included"
463-
check_file_contains "LICENSE.txt" "Palimpsest" "Palimpsest license included (ethical AI)"
464-
fi
465-
466-
# SPDX identifier in LICENSE.txt
467-
if [[ -f "$REPO_PATH/LICENSE.txt" ]]; then
468-
check_file_contains "LICENSE.txt" "SPDX-License-Identifier: MIT AND Palimpsest" "Correct SPDX identifier in LICENSE.txt"
464+
# estate policy: sole-owner repos are MPL-2.0 (accept LICENSE or LICENSE.txt)
465+
local _license=""
466+
[[ -f "$REPO_PATH/LICENSE.txt" ]] && _license="LICENSE.txt"
467+
[[ -z "$_license" && -f "$REPO_PATH/LICENSE" ]] && _license="LICENSE"
468+
if [[ -n "$_license" ]]; then
469+
check_file_contains "$_license" "Mozilla Public License" "LICENSE is MPL-2.0"
470+
check_file_contains "$_license" "SPDX-License-Identifier: MPL-2.0" "Correct SPDX identifier in LICENSE (MPL-2.0)"
469471
fi
470472

471473
# FUNDING.yml for funding transparency

0 commit comments

Comments
 (0)