Skip to content

Adopt EUPL-1.2: add missing LICENSE, SPDX headers on all Python files, CI gate - #7

Open
sumerjohal wants to merge 1 commit into
mainfrom
license/eupl-1.2
Open

Adopt EUPL-1.2: add missing LICENSE, SPDX headers on all Python files, CI gate#7
sumerjohal wants to merge 1 commit into
mainfrom
license/eupl-1.2

Conversation

@sumerjohal

Copy link
Copy Markdown
Collaborator

Why

Companion to agstack/ar2#17 and agstack/ar2-hub#8.

This repo was in the worst state of the three: no LICENSE file at all (unlicensed code is all-rights-reserved by default — nobody may legally reuse it), while GOVERNANCE.md and README.md declared "Apache 2.0" in prose. Apache-2.0 is permissive: had the declaration been honored, it would have allowed exactly the closed, modified fork this change exists to prevent. Pancake holds the permission office — grant issuance, revocation, the audit ledger — which is core logic the one-standard policy must cover.

EUPL-1.2's copyleft attaches to "providing access to its essential functionalities" (§1, §5), so it binds hosted forks, not just distributed ones.

What

  • LICENSE added: canonical EUPL-1.2 English text (sha256-pinned).
  • SPDX header on all 86 tracked Python files.
  • GOVERNANCE.md and README.md license declarations corrected to EUPL-1.2 (code) / CC BY 4.0 (documentation) in the same commit, so prose and file cannot diverge again unnoticed.
  • scripts/license_check.sh + gating license job in ci.yml.

Before merging

  • Relicensing consent: contributions to date were made under a prose Apache-2.0 declaration with no license file; all contributors must assent to EUPL-1.2. Collect it now, before external PRs make this a consent-gathering exercise.
  • AgStack TAC / Linux Foundation sign-off on the copyleft departure from the Apache-2.0 default.

Lint (ruff check services/pancake_services services/tests) passes locally with the headers in place.

…ions

Companion to agstack/ar2#17 and agstack/ar2-hub#8. This repo had no
LICENSE file at all while GOVERNANCE.md and README.md declared Apache 2.0
in prose -- unlicensed by default, and permissive if the prose had been
honored, either way contradicting the one-standard copyleft intent for
the permission office (grants, revocation, audit ledger).

LICENSE is the canonical EUPL-1.2 text; every tracked Python file carries
the SPDX header; prose declarations corrected in the same commit;
scripts/license_check.sh gates it all in CI.

Co-authored-by: Cursor <cursoragent@cursor.com>
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