Adopt Apache-2.0 as the repository licence (+ open-source scaffolding) #276
oaksprout
started this conversation in
Canonical Changes
Replies: 2 comments
|
Apache seems the right fit for this. If we have this those files (TRADEMARKS.md, SECURITY.md etc.) then yes I think they should go through canon-owner review. |
0 replies
|
Aligning with the no-canonical-surfaces posture (#316): Apache-2.0 is the right licence not just because it's permissive, but because it structurally invites the forking we now explicitly want. The licence + the no-canonical posture together make plurality real instead of aspirational. Operational follow-ups that fall out:
|
0 replies
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment
Uh oh!
There was an error while loading. Please reload this page.
Uh oh!
There was an error while loading. Please reload this page.
Motivation
The repository is public but it is not, strictly, open source. There is no
LICENSEfile at root. The Jinn-authored Solidity carriesSPDX-License-Identifier: MITper-file andclient/package.jsondeclares MIT, but a public repository without a licence grants no rights to use, modify, or redistribute the code — the per-file SPDX tags imply MIT for those files, the rest defaults to "all rights reserved" by copyright law.That state is incoherent with PRINCIPLES.md:
package.jsonfield.This proposal closes the gap.
Decision proposed
Adopt Apache License, Version 2.0 as the repository licence for Jinn-authored code.
Why Apache 2.0 over MIT
MIT matches the existing per-file SPDX tags in the repository and is the lower-friction choice — a defensible answer. The reason to take a small amount of friction and pick Apache 2.0 instead is the patent grant:
For a network whose meta-principle is legitimacy and whose first derived principle is Neutral, "we cannot be captured by a patent claim" is a load-bearing property, not a nice-to-have. The patent grant is the property that makes the licence "expensive to fake" — anyone trying to capture Jinn via patent has to give up the patent first.
Why not AGPL or any copyleft
AGPL / GPL would tie downstream behaviour to upstream rules. That conflicts with Permissionless (composability without permission) and with Governance Minimal (every viral obligation is a governance surface). Copyleft is the wrong instrument for a coordination protocol that wants to be the substrate other things build on.
Why DCO and not a CLA
CLAs centralise contributor rights to a corporate entity that can then relicense or sub-license. That sits a governance surface between contributors and the licence. The Developer Certificate of Origin is the same attestation without the centralisation — contributor signs that they had the right to submit; rights flow directly to the project under the project's licence. Same legitimacy, smaller capture surface.
Why a separate trademark policy
The Jinn name, sigils, and wordmark are part of the protocol's identity — they are the "21M supply + proof-of-work" of the brand. They cannot be Apache-2.0 (which excludes trademarks anyway) but the headless-brand posture in
BRAND.mdrules out a corporate trademark regime. The compromise the proposedTRADEMARKS.mdmakes:This protects Legible (participants can tell what is and isn't Jinn) without contradicting headless-brand.
Why this is principle-aligned, not just hygiene
A licence is a coordination commitment. Apache 2.0 + DCO + trademark carve-out is the cheapest set of commitments we can make that:
If a future contributor tries to argue against any of these properties, they will be arguing against PRINCIPLES.md.
What the PR contains
PR: #277 — docs: adopt Apache-2.0 and add open-source scaffolding
Files added or modified:
LICENSE— Apache 2.0 verbatim text (canonical from apache.org).NOTICE— copyright statement, pointer to LICENSE, brief note on per-file SPDX precedence and the trademark carve-out.TRADEMARKS.md— the policy described above. Carves Jinn name, sigils, wordmark, and the protocol-level lexicon (summon, bind, vow, vessel, wish, smoke, seer, wane) out of the code licence. Headless-brand-aligned enforcement posture.CODE_OF_CONDUCT.md— Contributor Covenant 2.1, withconduct@jinn.network+ GitHub private reporting as the enforcement channel.SECURITY.md— private vulnerability reporting (GitHub PVR preferred,security@jinn.networkfallback), scope, disclosure timeline, safe harbour for good-faith research.THIRD_PARTY_LICENSES.md— by-directory inventory of vendored upstream code. Documents the licence count: 116 MIT, 4 AGPL-3.0-only (stolas/solmate fork), 4 LGPL-3.0 (mech lib), 1 GPL-3.0 (mech Account.sol). Flags the AGPL-3.0 contamination of the contracts package as a known follow-up requiring resolution (preferred: swap to upstream MIT Solmate).CONTRIBUTING.md— adds a "Licence and sign-off" section requiring DCOSigned-off-by:on every commit and stating that new files default to Apache-2.0 (existing per-file SPDX tags retained).README.md— adds a Licence section.contracts/package.json— adds"license": "SEE LICENSE IN LICENSE"(because the contracts package is mixed-licence due to vendored copyleft).Explicitly out of scope for this PR
These are the items I'd otherwise want to bundle, deferred to keep the PR reviewable and the decisions separable:
contracts/src/vendor/stolas/solmate/(4 files). The preferred resolution — swap to upstream MIT Solmate — is a contracts change that should go through its own review. Tracked inTHIRD_PARTY_LICENSES.mdand will be filed as a follow-up bd.yarn licensesmachine-readable inventory forclient/andpackages/. Same reason — separable from the licence-adoption decision.Questions for reviewers
TRADEMARKS.md,SECURITY.md,LICENSE,NOTICE,THIRD_PARTY_LICENSES.md,CODE_OF_CONDUCT.mdto.github/CODEOWNERSso future edits go through canon-owner review? I left this out of the PR but it would be a small addition.After this discussion
If consensus lands and the PR merges:
Discussion: <this URL>pointer in this PR's body becomes the canonical audit trail for the decision.All reactions