Relicense under PolyForm Noncommercial 1.0.0 - #104
Merged
Conversation
Replace the Apache-2.0 LICENSE with the verbatim PolyForm Noncommercial License 1.0.0 text (taken from the SPDX license list), carrying a Required Notice line for the copyright holder as the licence's Notices section provides for. Update the README badge and License section to match, and state plainly that the project is source-available rather than open source, with the noncommercial purposes the licence permits. The Terms page said "Open source" while its body already said source-available; correct the heading and name the licence there too, so the in-app terms and the repository agree. Co-Authored-By: Claude Opus 5 <noreply@anthropic.com> Claude-Session: https://claude.ai/code/session_01Jf6C8spZrjdfGdQMEqxMow
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment
Add this suggestion to a batch that can be applied as a single commit.This suggestion is invalid because no changes were made to the code.Suggestions cannot be applied while the pull request is closed.Suggestions cannot be applied while viewing a subset of changes.Only one suggestion per line can be applied in a batch.Add this suggestion to a batch that can be applied as a single commit.Applying suggestions on deleted lines is not supported.You must change the existing code in this line in order to create a valid suggestion.Outdated suggestions cannot be applied.This suggestion has been applied or marked resolved.Suggestions cannot be applied from pending reviews.Suggestions cannot be applied on multi-line comments.Suggestions cannot be applied while the pull request is queued to merge.Suggestion cannot be applied right now. Please check back later.
What and why
Switches the project from Apache-2.0 to the PolyForm Noncommercial License
1.0.0, and makes the three places that state the licence agree with each other.
LICENSE— the verbatim PolyForm Noncommercial 1.0.0 text, taken from theSPDX license list (
spdx/license-list-data) rather than transcribed, so itis character-for-character the canonical wording. It carries a
Required Notice: Copyright 2026 Ian Heinrich (…)line under the title:PolyForm's Notices section is the mechanism that propagates attribution
downstream, and without such a line the licence names no copyright holder
at all.
README.md— badge and License section. The section now says plainly thatthe project is source-available rather than open source, and names the
purposes the licence actually permits (personal use, hobby projects, study
and research, charities, schools, public research bodies, government), since
"noncommercial" on its own is the part people guess wrong about.
lib/ui/views/terms/terms_view.dart— the in-app Terms page had a sectionheaded "Open source" whose body already said "source-available". Under
Apache-2.0 that was loose; under PolyForm it is wrong. The heading is now
"Source available" and the body names the licence, so the terms a user reads
in the app match the repository.
assets/fonts/Roboto_LICENSE.txtstays Apache-2.0 — that is the font'slicence, not this project's.
How it was verified
None of the below were run: this session's container has no Dart or Flutter
SDK (
dart: command not found, and no SDK anywhere on the filesystem), so CIis the first thing to actually execute them. Flagging that rather than ticking
boxes on trust.
dart format --output=none --set-exit-if-changed .flutter analyzeflutter test --exclude-tags=goldenlib/features/studio/widgets/, which has no golden coverage)What was checked instead, by inspection:
LegalSectionlist — no new identifiers, no signature or import changes.
import on line 1, which
dart formatdoes not wrap. The added literalsfollow the same adjacent-string continuation shape as the lines around them,
which were already format-clean.
grepover the tree confirms no remaining Apache references outside theRoboto font licence and vendored
web/pdfjs/.Goldens
TermsViewhas no golden test —test/golden/covers drafts list, settingsand vault only.
Anything else
CONTRIBUTING.mdnow has a gap worth a decision. It states no inboundcontribution terms. Under Apache-2.0 that was survivable, because §5 supplies
a default inbound grant on the same terms as the outbound licence. PolyForm
has no equivalent clause, so with this merged, contributions arrive with no
stated licence at all. If the project keeps taking PRs, that wants either a
one-line inbound clause in
CONTRIBUTING.mdor a CLA. Deliberately left outof this PR: it is a policy call, not a mechanical consequence of the swap.
Relicensing is only clean while the copyright is yours alone. Apache-2.0
is irrevocable for versions already published, so anyone who took a copy
before this commit keeps those rights to that code — this changes the terms
going forward, not retroactively. If any third-party contribution is already
in the history, that contributor's Apache-2.0 grant does not permit
relicensing their lines without their agreement. Worth confirming before this
lands.
Generated by Claude Code