Skip to content

licence: normalise to MPL-2.0 + REUSE compliance + fail-closed reuse-lint gate - #54

Merged
hyperpolymath merged 2 commits into
mainfrom
licence/mpl-normalise
Jun 5, 2026
Merged

hyperpolymath merged 2 commits into
mainfrom
licence/mpl-normalise

Conversation

@hyperpolymath

Copy link
Copy Markdown
Owner

Summary

  • AGPL→MPL flips: 35 files had SPDX-License-Identifier: AGPL-3.0-or-later headers flipped to MPL-2.0 (parse-gate.yml, proof-corpus.yml, all source files in the parse/attest/recompute-wasm trusted crates and surrounding interface layer)
  • 2 Cargo.toml license field fixes: src/core/Cargo.toml and src/interface/Cargo.toml had license = "AGPL-3.0-or-later" → license = "MPL-2.0" (the 3 interface crates parse/attest/recompute-wasm were already MPL-2.0 in their standalone Cargo.toml files)
  • Root LICENSE: now contains canonical MPL-2.0 text; GitHub Licensee will show MPL-2.0
  • LICENSES/ populated: MPL-2.0.txt and CC-BY-SA-4.0.txt added via reuse download
  • REUSE.toml added (version = 1): covers all 311+ files that lacked inline copyright headers —
    • docs/**, **/*.adoc, **/*.md, **/*.bib, **/*.tex, legal exhibits → CC-BY-SA-4.0
    • Configs, scripts, AI manifests (.a2ml), lockfiles, YAML/TOML/JSON, dotfiles, .github/**, .machine_readable/**, container/**, src/**, verification/** → MPL-2.0
    • precedence = "aggregate" throughout: supplements inline SPDX-License-Identifier tags with copyright notices where they were missing
  • .github/workflows/reuse.yml: fail-closed REUSE compliance gate — runs on every push and pull_request, pip install reuse + reuse lint; blocks merge if any file is uncovered

Verification

  • reuse lint = PASS — 448/448 files covered, 0 unused licences, 0 bad licences
  • rg 'AGPL-3.0-or-later|PMPL-1.0-or-later' . (excluding LICENSES/) = 0 matches

https://claude.ai/code/session_01W9Voe3JceP66Bna9FT4jME


Generated by Claude Code

…gate

- Flip 2 remaining AGPL-3.0-or-later SPDX headers → MPL-2.0
  (parse-gate.yml, proof-corpus.yml + all AGPL-stamped source files
  carried over from prior partial normalise commit)
- Fix src/core/Cargo.toml and src/interface/Cargo.toml license fields
  AGPL-3.0-or-later → MPL-2.0
- Root LICENSE now contains canonical MPL-2.0 text (GitHub Licensee shows MPL-2.0)
- Add LICENSES/MPL-2.0.txt and LICENSES/CC-BY-SA-4.0.txt
- Add REUSE.toml (v1) covering all files without inline headers:
  docs/** + *.adoc + *.md + *.bib + *.tex → CC-BY-SA-4.0;
  configs, scripts, AI manifests, lockfiles, dotfiles, etc. → MPL-2.0
- Add .github/workflows/reuse.yml: fail-closed reuse lint CI gate
  (push + pull_request, ubuntu-latest, pip install reuse, reuse lint)
- reuse lint: PASS (448/448 files covered, 0 unused licences)
- rg residual AGPL/PMPL: 0 matches outside LICENSES/

https://claude.ai/code/session_01W9Voe3JceP66Bna9FT4jME
Comment thread .github/workflows/reuse.yml Fixed
@hyperpolymath
hyperpolymath marked this pull request as ready for review June 5, 2026 14:32
@hyperpolymath
hyperpolymath enabled auto-merge (squash) June 5, 2026 14:33
@hyperpolymath
hyperpolymath disabled auto-merge June 5, 2026 14:54
@hyperpolymath
hyperpolymath merged commit f7728b0 into main Jun 5, 2026
128 checks passed
@hyperpolymath
hyperpolymath deleted the licence/mpl-normalise branch June 5, 2026 14:54
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.

3 participants