Skip to content

Commit aff0319

Browse files
fix(licence): project licence is AGPL-3.0-or-later — align LICENSE, badges, manifests (#312)
## Owner decision (2026-07-07) The Governance **Licence consistency** gate has been red on main: `LICENSE` carried MPL-2.0 text while `Cargo.toml` — and 6 of 9 workspace crates — already declared `AGPL-3.0-or-later`. Owner ruled **AGPL**. ## Changes - `LICENSE` → verbatim GNU AGPL-3.0 text with an `SPDX-License-Identifier: AGPL-3.0-or-later` header. (The gate script establishes identity from the SPDX header; AGPL isn't in its body-template table, so the header is load-bearing — body then correctly WARNs 'manual review' without failing.) - `LICENSES/AGPL-3.0-or-later.txt` added (REUSE). - The three lagging interface crates (`grpc`/`graphql`/`rest`) aligned from MPL-2.0 to AGPL-3.0-or-later. - `guix.scm` licence field → `license:agpl3+` (was a palimpsest non-copyleft stub commented "MPL-2.0"). - README badge + licence section + BibTeX, CLAUDE.md licence lines. Documentation keeps its MPL-2.0/CC-BY-SA headers (intentional doc stance); the per-file source-header migration (thousands of MPL-2.0 SPDX lines) remains the owner-managed sweep and is called out in prose. ## Verification Ran the actual gate script (`standards/scripts/check-licence-consistency.sh`) against this tree: ``` [OK] SPDX header: AGPL-3.0-or-later [OK] Manifest licence (Cargo.toml): AGPL-3.0-or-later [OK] Licence identity matches manifest declaration. [OK] Licence consistency check passed. ``` REUSE lint findings are unchanged pre-existing debt (missing CC0/MIT/PMPL texts predate this PR). Closes the licence half of the Governance red; the other half (Validate Hypatia Baseline) is tracked separately. 🤖 Generated with [Claude Code](https://claude.com/claude-code) Co-authored-by: Claude Fable 5 <noreply@anthropic.com>
1 parent c78aa8b commit aff0319

8 files changed

Lines changed: 1336 additions & 385 deletions

File tree

CLAUDE.md

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -8,7 +8,7 @@ Guidelines and context for working with Claude Code on the ECHIDNA project.
88

99
- **Repository**: https://github.com/hyperpolymath/echidna
1010
- **Version + release history**: [`CHANGELOG.md`](CHANGELOG.md) (single source of truth; do not duplicate version strings elsewhere)
11-
- **License**: MPL-2.0
11+
- **License**: AGPL-3.0-or-later (owner decision 2026-07-07; per-file MPL-2.0 headers pending migration sweep)
1212
- **Architecture overview**: [`docs/ARCHITECTURE.md`](docs/ARCHITECTURE.md)
1313
- **Canonical prover count + tier table**: [`docs/PROVER_COUNT.md`](docs/PROVER_COUNT.md)
1414
- **Environment variables**: [`docs/ENV-VARS.md`](docs/ENV-VARS.md)
@@ -205,7 +205,7 @@ in `.github/workflows/`:
205205
- **RSR / CCCP compliance** — see [`RSR_COMPLIANCE.adoc`](RSR_COMPLIANCE.adoc) for the full hard-rule list and out-of-template adaptations.
206206
- **Justfile primary** (RSR-H14) — Just is the build entry point; no Make.
207207
- **Podman not Docker** (RSR-H15) — always Podman; `Containerfile` (not `Dockerfile`); `.containerization/Containerfile.wave3` for per-prover images.
208-
- **License**: MPL-2.0 across the documentation surface (intentional doc stance; see [`feedback_echidna_license_docs_mpl_intentional`](https://github.com/hyperpolymath/echidna/issues?q=license)historical drift on individual files is owner-managed and not reconciled in routine PRs).
208+
- **License**: project licence is AGPL-3.0-or-later (owner decision 2026-07-07, matching `Cargo.toml`); documentation surface keeps its MPL-2.0 headers (intentional doc stance; see [`feedback_echidna_license_docs_mpl_intentional`](https://github.com/hyperpolymath/echidna/issues?q=license)per-file header drift is owner-managed and not reconciled in routine PRs).
209209
- **Author**: Jonathan D.A. Jewell <j.d.a.jewell@open.ac.uk>.
210210

211211
---

LICENSE

Lines changed: 663 additions & 373 deletions
Large diffs are not rendered by default.

LICENSES/AGPL-3.0-or-later.txt

Lines changed: 661 additions & 0 deletions
Large diffs are not rendered by default.

README.md

Lines changed: 6 additions & 5 deletions
Original file line numberDiff line numberDiff line change
@@ -4,7 +4,7 @@ SPDX-FileCopyrightText: 2025-2026 Jonathan D.A. Jewell <j.d.a.jewell@open.ac.uk>
44
-->
55

66
[![OpenSSF Best Practices](https://img.shields.io/badge/OpenSSF-Best_Practices-green?logo=opensourcesecurity)](https://www.bestpractices.dev/en/projects/new?repo_url=https://github.com/hyperpolymath/echidna)
7-
[![License: MPL-2.0](https://img.shields.io/badge/License-MPL--2.0-blue.svg)](LICENSE) [![Green Hosting](https://api.thegreenwebfoundation.org/greencheckimage/nesy-prover.dev)](https://www.thegreenwebfoundation.org/green-web-check/?url=nesy-prover.dev)
7+
[![License: AGPL-3.0-or-later](https://img.shields.io/badge/License-AGPL--3.0--or--later-blue.svg)](LICENSE) [![Green Hosting](https://api.thegreenwebfoundation.org/greencheckimage/nesy-prover.dev)](https://www.thegreenwebfoundation.org/green-web-check/?url=nesy-prover.dev)
88

99
\*E\*xtensible \*C\*ognitive \*H\*ybrid \*I\*ntelligence for
1010
\*D\*eductive \*N\*eural \*A\*ssistance
@@ -611,12 +611,13 @@ Headline shape (as of the most recent on-main work):
611611
- **Podman not Docker** — always Podman; `Containerfile`
612612
(`.containerization/` for the per-prover images) not `Dockerfile`.
613613

614-
- **License**: MPL-2.0 (source files). See LICENSE.
614+
- **License**: AGPL-3.0-or-later. See LICENSE.
615615

616616
# License
617617

618-
This project is licensed under the [Mozilla Public License
619-
2.0](LICENSE).
618+
This project is licensed under the [GNU Affero General Public License
619+
v3.0 or later](LICENSE). Individual files may carry earlier MPL-2.0
620+
SPDX headers pending the header migration sweep.
620621

621622
# Citation
622623

@@ -626,7 +627,7 @@ This project is licensed under the [Mozilla Public License
626627
author = {Jewell, Jonathan D.A.},
627628
year = {2026},
628629
url = {https://github.com/hyperpolymath/echidna},
629-
license = {MPL-2.0}
630+
license = {AGPL-3.0-or-later}
630631
}
631632
```
632633

guix.scm

Lines changed: 1 addition & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -84,8 +84,7 @@ supports 30 prover backends including Agda, Coq, Lean 4, Isabelle, Z3, CVC5,
8484
and more, with a comprehensive verification pipeline featuring solver integrity
8585
checking, proof certificate validation, axiom tracking, and confidence scoring.")
8686
(home-page "https://github.com/hyperpolymath/echidna")
87-
(license (license:non-copyleft "https://github.com/hyperpolymath/palimpsest-license"
88-
#:comment "MPL-2.0"))))
87+
(license license:agpl3+)))
8988

9089
;; For development shell
9190
echidna

src/interfaces/graphql/Cargo.toml

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -5,7 +5,7 @@ name = "echidna-graphql"
55
version = "0.1.0"
66
edition = "2021"
77
authors = ["Jonathan D.A. Jewell <j.d.a.jewell@open.ac.uk>"]
8-
license = "MPL-2.0"
8+
license = "AGPL-3.0-or-later"
99
description = "GraphQL interface for ECHIDNA theorem proving platform"
1010
repository = "https://github.com/hyperpolymath/echidna-graphql"
1111
readme = "README.adoc"

src/interfaces/grpc/Cargo.toml

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -5,7 +5,7 @@ name = "echidna-grpc"
55
version = "0.1.0"
66
edition = "2021"
77
authors = ["Jonathan D.A. Jewell <j.d.a.jewell@open.ac.uk>"]
8-
license = "MPL-2.0"
8+
license = "AGPL-3.0-or-later"
99
description = "gRPC interface for ECHIDNA theorem proving platform"
1010
repository = "https://github.com/hyperpolymath/echidna-grpc"
1111
readme = "README.adoc"

src/interfaces/rest/Cargo.toml

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -5,7 +5,7 @@ name = "echidna-rest"
55
version = "0.1.0"
66
edition = "2021"
77
authors = ["Jonathan D.A. Jewell <j.d.a.jewell@open.ac.uk>"]
8-
license = "MPL-2.0"
8+
license = "AGPL-3.0-or-later"
99
description = "REST API for ECHIDNA theorem proving platform"
1010
publish = false
1111

0 commit comments

Comments
 (0)