Skip to content

chore(license): relicense to AGPL-3.0-only with the TownLight Public Institution Exception 1.0 - #21

Merged
scottconverse merged 3 commits into
mainfrom
license/agpl-3.0-only
Oct 21, 2026
Merged

scottconverse merged 3 commits into
mainfrom
license/agpl-3.0-only

Conversation

@scottconverse

Copy link
Copy Markdown
Contributor

What

Relicenses this repository's code from Apache-2.0 to AGPL-3.0-only with the TownLight Public Institution Exception 1.0. Documentation stays CC BY 4.0. Releases published before this change keep the license they were published with.

  • LICENSE — official AGPL-3.0 text from gnu.org (SHA-256 0d96a4ff…abcb0)
  • LICENSE-EXCEPTION.md — TownLight Public Institution Exception 1.0 (identical in every TownLight repo)
  • LICENSE-CODE — short pointer to the two files above
  • LICENSE-DOCS — full CC BY 4.0 legal code
  • SPDX-License-Identifier headers and pyproject.toml license fields → AGPL-3.0-only
  • README, contributor rules, UI footers and docs pages that state this project's own license → updated

Left unchanged on purpose: third-party license mentions (dependencies, model weights, SBOMs, third-party notices), changelogs, dated evidence/audit records, and lock files.

Self-audit (5 lenses)

  • Engineering: header and metadata changes are one-line edits; no Apache-2.0 SPDX header remains on first-party files (checked with grep across all 29 repos).
  • UX: user-visible license strings read "AGPL-3.0"; READMEs carry the standard license line.
  • Tests: no test asserts the old license text (grep of test folders); a pinned, hashed test fixture that mentions a mock document's "Apache-2.0" permission in core was deliberately left untouched.
  • Docs: contributor terms now state AGPL-3.0-only + exception for code, CC BY 4.0 for docs.
  • QA: the same license files are byte-identical across all TownLight repos.

🤖 Generated with Claude Code

…blic Institution Exception 1.0

Code moves from Apache-2.0 to AGPL-3.0-only. Qualifying public institutions
(governments, public schools, public libraries, qualifying charities) get the
TownLight Public Institution Exception 1.0: relief from AGPL section 13 for
their own deployments. Documentation stays CC BY 4.0. Releases published
before this change keep the license they were published with.

- LICENSE: official AGPL-3.0 text (gnu.org)
- LICENSE-EXCEPTION.md: TownLight Public Institution Exception 1.0
- LICENSE-CODE: short pointer to LICENSE and LICENSE-EXCEPTION.md
- LICENSE-DOCS: full CC BY 4.0 legal code
- SPDX headers and pyproject license fields: AGPL-3.0-only
- README, contributor rules, UI footers and docs pages: own-license
  statements updated; third-party license mentions and dated records
  left unchanged

Signed-off-by: Scott Converse <scottconverse@users.noreply.github.com>
Signed-off-by: Claude Opus 5.5 <noreply@anthropic.com>
Signed-off-by: Scott Converse <sconverse@gmail.com>
Signed-off-by: Scott Converse <sconverse@gmail.com>
@scottconverse
scottconverse merged commit 0435ea4 into main Oct 21, 2026
2 checks passed
@scottconverse
scottconverse deleted the license/agpl-3.0-only branch October 21, 2026 15:32
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.

1 participant