Skip to content

Commit 6d95098

Browse files
authored
📄 docs: add CLA + CONTRIBUTING (Phase 0 F-3)
Adds a Harmony-style CLA that grants the maintainer the option to relicense contributions under AGPL-3.0-or-later in the future (notably `server/`) without re-collecting permission from past contributors. Outbound license stays Apache-2.0. Signing is by PR comment + maintainer eyeball — no workflow / signatures repo / PAT (overkill while sole-author; can be added later if needed).
1 parent f877395 commit 6d95098

3 files changed

Lines changed: 157 additions & 3 deletions

File tree

CLA.md

Lines changed: 126 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,126 @@
1+
# Quire Contributor License Agreement
2+
3+
**Version:** 1.0
4+
**Effective:** 2026-05-22
5+
6+
Thank you for contributing to Quire. This Contributor License Agreement
7+
("Agreement") documents the rights You grant to the maintainer of Quire so that
8+
Your contributions can be accepted, maintained, distributed, and — if needed in
9+
the future — licensed under AGPL-3.0-or-later for all or part of the Project,
10+
including the `server/` subtree.
11+
12+
By signing this Agreement as described in Section 8, You agree to its terms for
13+
every Contribution You Submit to the Project, now and in the future, unless and
14+
until You withdraw the Agreement in writing to the maintainer.
15+
16+
## 1. Definitions
17+
18+
**"You"** means the individual submitting a Contribution. If You are submitting
19+
on behalf of a legal entity (e.g., as part of Your employment), "You" includes
20+
that entity, and You represent that You are authorized to bind it.
21+
22+
**"We"** or **"Maintainer"** means Vito Fico, in his personal capacity as
23+
maintainer of Quire, and any successor, assignee, or legal entity that Vito
24+
Fico (or his estate) later designates in writing to own or maintain the
25+
Project. If maintainership is transferred, this Agreement transfers with it.
26+
27+
**"Project"** means Quire, including the Android application, the Python
28+
server, and related documentation, tests, build files, assets, configuration,
29+
and infrastructure, in any branch or fork maintained by Us.
30+
31+
**"Contribution"** means any code, documentation, test, configuration, asset,
32+
patch, pull request, or other copyrightable material that You intentionally
33+
Submit to Us for inclusion in the Project. A communication is not a
34+
Contribution if You clearly mark it "Not a Contribution."
35+
36+
**"Submit"** means sending a Contribution to Us through GitHub, email, the
37+
issue tracker, source control, or another channel used by the Project.
38+
39+
## 2. Copyright Grant
40+
41+
You retain ownership of Your Contributions.
42+
43+
You grant Us a perpetual, worldwide, non-exclusive, royalty-free, fully
44+
paid-up, irrevocable, transferable license, with the right to sublicense
45+
through multiple tiers, to use, reproduce, modify, prepare derivative works of,
46+
publicly display, publicly perform, distribute, and otherwise make available
47+
Your Contributions, alone or as part of the Project or works derived from the
48+
Project.
49+
50+
## 3. Patent Grant
51+
52+
If Your Contribution would otherwise infringe patent claims that You own or
53+
control, You grant Us a perpetual, worldwide, non-exclusive, royalty-free,
54+
fully paid-up, irrevocable, transferable patent license, with the right to
55+
sublicense through multiple tiers, to make, have made, use, sell, offer for
56+
sale, import, and otherwise transfer Your Contribution alone or as part of the
57+
Project or works derived from the Project.
58+
59+
This patent license applies only to patent claims necessarily infringed by
60+
Your Contribution alone or by Your Contribution combined with the Project to
61+
which it was Submitted.
62+
63+
## 4. Allowed Outbound Licenses
64+
65+
We may license Your Contributions, and Project material containing Your
66+
Contributions, under either or both of:
67+
68+
- the license or licenses that apply to the relevant Project material on the
69+
date You Submit the Contribution — currently Apache License 2.0 for the
70+
entire Project; and
71+
- GNU Affero General Public License version 3.0, or GNU Affero General Public
72+
License version 3.0 or any later version published by the Free Software
73+
Foundation ("AGPL-3.0-or-later"), for all or any part of the Project,
74+
including the `server/` subtree.
75+
76+
This Agreement does not by itself change the Project's outbound license. Quire
77+
remains Apache-2.0 unless a file, subtree, or future release states otherwise.
78+
Section 4 only preserves Our option to relicense.
79+
80+
## 5. Your Representations
81+
82+
You represent that:
83+
84+
- You have the legal authority to enter into this Agreement.
85+
- You own the rights needed to grant the licenses in this Agreement, or You
86+
have received permission from the rights holder to do so.
87+
- If You are contributing as part of Your employment or on behalf of a legal
88+
entity, You are authorized to Submit the Contribution under this Agreement
89+
and to bind that entity to it.
90+
- Your Contribution does not knowingly include third-party material unless
91+
that material is clearly identified and is provided under a license
92+
compatible with the Project's then-current licensing and with the outbound
93+
licenses listed in Section 4.
94+
95+
## 6. No Obligation
96+
97+
We are not required to accept, use, publish, or maintain any Contribution.
98+
99+
## 7. Disclaimer
100+
101+
Your Contributions are provided "AS IS", without warranties or conditions of
102+
any kind, including warranties of title, non-infringement, merchantability, or
103+
fitness for a particular purpose.
104+
105+
## 8. Electronic Signature
106+
107+
You sign this Agreement by commenting **exactly** the following text on a
108+
Quire pull request, in plain text (no quotes, no Markdown formatting):
109+
110+
```
111+
I have read the Quire Contributor License Agreement and I hereby sign the CLA
112+
```
113+
114+
Your signature is recorded by the Maintainer — currently via manual review of
115+
the PR comment thread before merge — and may be archived (GitHub username, user
116+
ID, PR number, commit SHA, timestamp) indefinitely for Project legal records.
117+
Pull request comments are public; the metadata above is already public via the
118+
comment itself.
119+
120+
## 9. Versioning
121+
122+
This is version 1.0 of the Quire CLA. If the Maintainer changes the CLA text
123+
materially, the version number will be incremented and a correspondingly
124+
versioned signature phrase will be adopted (e.g., "…version 2.0 of the Quire
125+
Contributor License Agreement…"), so previous signatures remain attached to
126+
the version of the CLA that was in force when they were given.

CONTRIBUTING.md

Lines changed: 28 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -153,7 +153,33 @@ participates in the cache key.
153153

154154
By participating you agree to the [Code of Conduct](CODE_OF_CONDUCT.md).
155155

156+
## Contributor License Agreement
157+
158+
Before a pull request from any contributor other than the maintainer
159+
can be merged, every such contributor on the PR must sign the [Quire
160+
Contributor License Agreement](CLA.md) by posting a new comment on the
161+
PR containing **exactly**:
162+
163+
```
164+
I have read the Quire Contributor License Agreement and I hereby sign the CLA
165+
```
166+
167+
The maintainer reviews PR comments before merge and will not merge a PR
168+
until every required signer has commented the phrase above. Automation
169+
bots that don't author copyrightable changes (`dependabot[bot]`,
170+
`github-actions[bot]`, `renovate[bot]`) are implicitly exempt.
171+
172+
The CLA does **not** change Quire's outbound license. Quire remains
173+
Apache-2.0 unless a specific file, subtree, or future release states
174+
otherwise. What the CLA does is grant the maintainer the option to also
175+
license accepted contributions under AGPL-3.0-or-later for parts of the
176+
Project (notably the `server/` subtree) in the future, without needing
177+
to re-collect permission from every past contributor. See `CLA.md` §4.
178+
156179
## License
157180

158-
By submitting a contribution you agree it is licensed under the
159-
project's [LICENSE](LICENSE) (Apache-2.0).
181+
Quire is licensed under [Apache-2.0](LICENSE). By Submitting a
182+
contribution You agree it is provided under Apache-2.0 and under the
183+
terms of [the Quire CLA](CLA.md), which (per CLA §4) also lets the
184+
maintainer license it under AGPL-3.0-or-later for parts of the Project
185+
in the future.

README.md

Lines changed: 3 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -225,7 +225,9 @@ Dockerfile Reproducible Android build environment (linux/amd64)
225225

226226
See [`CONTRIBUTING.md`](CONTRIBUTING.md). TL;DR: gitmoji + conventional
227227
commits, `scripts/dgradle test` and `cd server && uv run pytest` must
228-
pass, no telemetry / analytics PRs.
228+
pass, no telemetry / analytics PRs. External contributors also need to
229+
sign the [Quire CLA](CLA.md) on the PR before it can be merged — see
230+
CONTRIBUTING.md for the one-line comment.
229231

230232
## Security
231233

0 commit comments

Comments
 (0)