Skip to content

chore: license under AGPL-3.0-or-later - #23

Merged
jstjoe merged 1 commit into
mainfrom
jstjoe/agpl-license
May 13, 2026
Merged

jstjoe merged 1 commit into
mainfrom
jstjoe/agpl-license

Conversation

@jstjoe

@jstjoe jstjoe commented May 13, 2026

Copy link
Copy Markdown
Owner

Summary

Add an AGPL-3.0-or-later license to the repo.

  • LICENSE (root) carries the canonical GNU text, fetched verbatim from gnu.org.
  • Root + workspace pyproject.toml files declare license = \"AGPL-3.0-or-later\" (PEP 639 SPDX expression) and point at the repo-root LICENSE via license-files.
  • FastAPI info.license restored, so the badge renders in Scalar/Swagger/ReDoc.
  • README gains a License section that calls out the §13 network clause: anyone running a modified version as a network service must publish the modified source. Worth surfacing because that's the deliberate distinction between AGPL and plain GPL/MIT here.
  • info.version 0.6.0 → 0.6.1 (additive metadata, non-breaking).

The upstream OPF model in privacy-filter/ is cloned separately and licensed by its author. This repo's AGPL choice doesn't relicense it.

Test plan

  • uv sync resolves with the new metadata.
  • pytest api/tests/test_routes.py — 22/22.
  • Regenerated spec carries info.license: AGPL-3.0-or-later.
  • After merge, Scalar/Swagger/ReDoc render the license badge.

🤖 Generated with Claude Code

Add the canonical AGPL-3.0 text as `LICENSE` (fetched verbatim from
gnu.org/licenses/agpl-3.0.txt) and surface the choice everywhere a
consumer would look:

- Root `pyproject.toml` and the two workspace member packages (`opf-api`,
  `opf-eval`) declare `license = "AGPL-3.0-or-later"` (PEP 639 SPDX
  expression) and point at the repo-root `LICENSE` via `license-files`.
- FastAPI `info.license` restored on the app metadata, so Scalar/Swagger/
  ReDoc render the license badge.
- README gains a `License` section that calls out the §13 network clause
  explicitly — anyone running a modified version of this code as a
  network service must make the modified source available to its users.
- `info.version` 0.6.0 -> 0.6.1 (additive, non-breaking).

The upstream OPF model in `privacy-filter/` is cloned separately and
licensed by its author; this repo's AGPL choice does not relicense it.

Co-Authored-By: Claude Opus 4.7 (1M context) <noreply@anthropic.com>
@jstjoe
jstjoe merged commit 7807b88 into main May 13, 2026
4 checks passed
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