From 52a665502f610a85183f74453e28efa9cdead6c7 Mon Sep 17 00:00:00 2001 From: ekklesia Date: Wed, 7 Oct 2026 13:53:56 -0500 Subject: [PATCH] chore: license Ekklesia under AGPL-3.0-or-later instead of AGPL-3.0-only The project decision is the GNU Affero General Public License, version 3 or (at your option) any later version. - "license": "AGPL-3.0-or-later" in all 14 Ekklesia-owned package.json files. - README: the License section states AGPL v3 or any later version (SPDX AGPL-3.0-or-later) and carries the FSF's standard grant: "either version 3 of the License, or (at your option) any later version", with its warranty disclaimer and pointer to the license. - Module template README and module development guide: AGPL-3.0-or-later for Ekklesia and official modules. LICENSE is unchanged: it remains the canonical AGPLv3 text. Co-Authored-By: Claude Opus 5.5 --- README.md | 21 ++++++++++++++++----- apps/api/package.json | 2 +- core/package.json | 2 +- docs/module-development/README.md | 7 ++++--- package.json | 2 +- packages/contracts/package.json | 2 +- packages/design-tokens/package.json | 2 +- packages/module-pack/package.json | 2 +- packages/module-sdk/package.json | 2 +- packages/module-ui-build/package.json | 2 +- packages/module-ui-host/package.json | 2 +- packages/module-ui-sdk/package.json | 2 +- packages/typescript-config/package.json | 2 +- packages/ui/package.json | 2 +- surfaces/shell/package.json | 2 +- templates/module/README.md | 4 ++-- templates/module/package.json | 2 +- 17 files changed, 36 insertions(+), 24 deletions(-) diff --git a/README.md b/README.md index b113457..9721116 100644 --- a/README.md +++ b/README.md @@ -1074,14 +1074,25 @@ environment. ## License -Ekklesia is free software, licensed under the **GNU Affero General Public License, version 3 only** -(SPDX `AGPL-3.0-only`). The full text is in [LICENSE](LICENSE). Its source is available to you under -the terms of that license. +Ekklesia is licensed under the **GNU Affero General Public License, version 3 or any later version** +(SPDX `AGPL-3.0-or-later`). The full text of version 3 is in [LICENSE](LICENSE). Its source is +available to you under the terms of that license. + +> Ekklesia is free software: you can redistribute it and/or modify it under the terms of the GNU +> Affero General Public License as published by the Free Software Foundation, either version 3 of +> the License, or (at your option) any later version. +> +> Ekklesia is distributed in the hope that it will be useful, but WITHOUT ANY WARRANTY; without even +> the implied warranty of MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU Affero +> General Public License for more details. +> +> You should have received a copy of the GNU Affero General Public License along with Ekklesia. If +> not, see . Section 13 of the license adds an obligation for network use: if you modify Ekklesia and run your modified version for users who interact with it remotely over a network, your version must offer those users the opportunity to receive its Corresponding Source. -Official Ekklesia modules, published by the Ekklesia project, are licensed under `AGPL-3.0-only` as -well. Each module's own repository declares its license. The module template declares it in its +Official Ekklesia modules, published by the Ekklesia project, are licensed under `AGPL-3.0-or-later` +as well. Each module's own repository declares its license. The module template declares it in its `package.json`, so a module started from the template begins with the same license. diff --git a/apps/api/package.json b/apps/api/package.json index 9d3e4ff..eb7fcdd 100644 --- a/apps/api/package.json +++ b/apps/api/package.json @@ -1,7 +1,7 @@ { "name": "@ekklesia/api", "version": "0.1.2", - "license": "AGPL-3.0-only", + "license": "AGPL-3.0-or-later", "private": true, "type": "module", "files": [ diff --git a/core/package.json b/core/package.json index 2fee8d5..e849bee 100644 --- a/core/package.json +++ b/core/package.json @@ -1,7 +1,7 @@ { "name": "@ekklesia/core", "version": "0.1.2", - "license": "AGPL-3.0-only", + "license": "AGPL-3.0-or-later", "private": true, "type": "module", "files": [ diff --git a/docs/module-development/README.md b/docs/module-development/README.md index 8e080a2..b40d1c4 100644 --- a/docs/module-development/README.md +++ b/docs/module-development/README.md @@ -159,9 +159,10 @@ Ekklesia are proven ([ADR 0047](../architecture/decisions/0047-module-ci-harness ### License -Ekklesia is licensed under `AGPL-3.0-only` ([LICENSE](../../LICENSE)), and official Ekklesia modules -use the same license. Declare it in your module's development `package.json` -(`"license": "AGPL-3.0-only"`), as the module template does. +Ekklesia is licensed under the GNU Affero General Public License, version 3 or (at your option) any +later version, `AGPL-3.0-or-later` ([LICENSE](../../LICENSE)), and official Ekklesia modules use the +same license. Declare it in your module's development `package.json` +(`"license": "AGPL-3.0-or-later"`), as the module template does. A Module Package v1 does not yet record a module's own license: its runtime `package.json` and `ekklesia.package.json` have fixed fields, and its contents are fixed, by ADR 0049. Carrying the diff --git a/package.json b/package.json index 4f01ff4..b8311ab 100644 --- a/package.json +++ b/package.json @@ -1,7 +1,7 @@ { "name": "ekklesia", "version": "0.1.2", - "license": "AGPL-3.0-only", + "license": "AGPL-3.0-or-later", "private": true, "type": "module", "description": "Open, modular church technology platform", diff --git a/packages/contracts/package.json b/packages/contracts/package.json index 8c441fc..df754be 100644 --- a/packages/contracts/package.json +++ b/packages/contracts/package.json @@ -1,7 +1,7 @@ { "name": "@ekklesia/contracts", "version": "0.1.2", - "license": "AGPL-3.0-only", + "license": "AGPL-3.0-or-later", "type": "module", "files": [ "dist" diff --git a/packages/design-tokens/package.json b/packages/design-tokens/package.json index a7a873c..0dc79b5 100644 --- a/packages/design-tokens/package.json +++ b/packages/design-tokens/package.json @@ -1,7 +1,7 @@ { "name": "@ekklesia/design-tokens", "version": "0.1.2", - "license": "AGPL-3.0-only", + "license": "AGPL-3.0-or-later", "type": "module", "files": [ "dist" diff --git a/packages/module-pack/package.json b/packages/module-pack/package.json index 1923ba9..bc20c10 100644 --- a/packages/module-pack/package.json +++ b/packages/module-pack/package.json @@ -1,7 +1,7 @@ { "name": "@ekklesia/module-pack", "version": "0.1.2", - "license": "AGPL-3.0-only", + "license": "AGPL-3.0-or-later", "type": "module", "files": [ "bin", diff --git a/packages/module-sdk/package.json b/packages/module-sdk/package.json index 9530dab..d67f3e3 100644 --- a/packages/module-sdk/package.json +++ b/packages/module-sdk/package.json @@ -1,7 +1,7 @@ { "name": "@ekklesia/module-sdk", "version": "0.1.2", - "license": "AGPL-3.0-only", + "license": "AGPL-3.0-or-later", "type": "module", "files": [ "dist" diff --git a/packages/module-ui-build/package.json b/packages/module-ui-build/package.json index b4b50e7..c510de3 100644 --- a/packages/module-ui-build/package.json +++ b/packages/module-ui-build/package.json @@ -1,7 +1,7 @@ { "name": "@ekklesia/module-ui-build", "version": "0.1.2", - "license": "AGPL-3.0-only", + "license": "AGPL-3.0-or-later", "type": "module", "files": [ "bin", diff --git a/packages/module-ui-host/package.json b/packages/module-ui-host/package.json index 0c86b34..bfe20fe 100644 --- a/packages/module-ui-host/package.json +++ b/packages/module-ui-host/package.json @@ -1,7 +1,7 @@ { "name": "@ekklesia/module-ui-host", "version": "0.1.2", - "license": "AGPL-3.0-only", + "license": "AGPL-3.0-or-later", "type": "module", "files": [ "dist" diff --git a/packages/module-ui-sdk/package.json b/packages/module-ui-sdk/package.json index 8bf362b..3b5c252 100644 --- a/packages/module-ui-sdk/package.json +++ b/packages/module-ui-sdk/package.json @@ -1,7 +1,7 @@ { "name": "@ekklesia/module-ui-sdk", "version": "0.1.2", - "license": "AGPL-3.0-only", + "license": "AGPL-3.0-or-later", "type": "module", "files": [ "dist" diff --git a/packages/typescript-config/package.json b/packages/typescript-config/package.json index 9cfe70d..b80617a 100644 --- a/packages/typescript-config/package.json +++ b/packages/typescript-config/package.json @@ -1,7 +1,7 @@ { "name": "@ekklesia/typescript-config", "version": "0.1.2", - "license": "AGPL-3.0-only", + "license": "AGPL-3.0-or-later", "private": true, "files": [ "base.json", diff --git a/packages/ui/package.json b/packages/ui/package.json index ffab0cc..9c1b27a 100644 --- a/packages/ui/package.json +++ b/packages/ui/package.json @@ -1,7 +1,7 @@ { "name": "@ekklesia/ui", "version": "0.1.2", - "license": "AGPL-3.0-only", + "license": "AGPL-3.0-or-later", "type": "module", "files": [ "dist" diff --git a/surfaces/shell/package.json b/surfaces/shell/package.json index e97ab2d..0fce3cf 100644 --- a/surfaces/shell/package.json +++ b/surfaces/shell/package.json @@ -1,7 +1,7 @@ { "name": "@ekklesia/shell", "version": "0.1.2", - "license": "AGPL-3.0-only", + "license": "AGPL-3.0-or-later", "private": true, "type": "module", "files": [ diff --git a/templates/module/README.md b/templates/module/README.md index 1f979b1..42c3189 100644 --- a/templates/module/README.md +++ b/templates/module/README.md @@ -84,7 +84,7 @@ classification or approval. ## License -The template's `package.json` declares `"license": "AGPL-3.0-only"`, the license of Ekklesia and of -official Ekklesia modules (see the repository [README](../../README.md#license) and +The template's `package.json` declares `"license": "AGPL-3.0-or-later"`, the license of Ekklesia +and of official Ekklesia modules (see the repository [README](../../README.md#license) and [LICENSE](../../LICENSE)). A module started from the template begins with that declaration; an official Ekklesia module keeps it. diff --git a/templates/module/package.json b/templates/module/package.json index 5055520..2fb5666 100644 --- a/templates/module/package.json +++ b/templates/module/package.json @@ -1,7 +1,7 @@ { "name": "@ekklesia/module-template", "version": "0.1.0", - "license": "AGPL-3.0-only", + "license": "AGPL-3.0-or-later", "private": true, "type": "module", "files": [