legal: add CLA agreement and cla-bot configuration - #93
Conversation
Contributions currently arrive with no explicit licence grant beyond Apache-2.0 §5's inbound=outbound clause, and no commit in the tree carries a Signed-off-by. That is thin coverage for a project with a commercial surface, so this adds the standard instrument. - CLA.md, adapted from the Apache Software Foundation Individual CLA v2.0 (the instrument designed for Apache-2.0 projects): copyright licence, patent licence with the usual litigation-termination clause, contributor representations, and a third-party-work carve-out. Adds a short generative-AI clause making explicit that using an assistant does not relieve the contributor of the representations. - .clabot pointing at .contributors via the GitHub contents API, so signing is a pull request from the signer's own account and the commit history is the durable record. - .contributors seeded with xerj-org only. Nobody else is listed, deliberately: the list asserts that a person HAS signed, and that is not an assertion this repo may make on someone else's behalf. - .gitignore allowlists CLA.md, which the blanket *.md rule hid. CLA.md carries a maintainer note: it is unreviewed by counsel and has two placeholders (the legal entity named as Project Owner, and a contact address) that must be filled before it is authoritative.
|
Reviewed this today because four external PRs are in flight (#156, #160, #162, #167/#168 from two contributors) and leaving it unexamined has a real cost. CI is 9/9 green and it merges cleanly against 1. The bot this configures is not installed, so merging changes nothing. 2. 3. The contact placeholder is unfilled. Section 7 obliges the signer to notify us of facts that would make their representations inaccurate, then gives the address as The file carries its own maintainer note saying it has not been reviewed by a lawyer and that two placeholders must be filled before it is authoritative. That note is honest and correct, and I am taking it at its word rather than merging past it. Asking four external contributors to sign an instrument that names no grantee and no contact would be worse than having no CLA — and the To unblock, in order of who has to do it:
The Apache ICLA v2.0 adaptation underneath is a sound choice and the "signature is a PR from your own account adding your username to |
Configures the cla-bot installed on this repo, and adds the agreement it points at.
Why
Contributions currently arrive with no explicit licence grant beyond Apache-2.0 §5's inbound=outbound clause, and no commit in the tree carries a
Signed-off-by. For a project with a commercial surface that is thin coverage — §5 gives you a licence to use the contribution under the same terms, but no explicit patent grant, which is the part that matters if XERJ is ever relicensed or offered commercially.What
CLA.md— adapted from the Apache Software Foundation Individual CLA v2.0, the standard instrument for Apache-2.0 projects: copyright licence, patent licence with the usual litigation-termination clause, contributor representations, third-party-work carve-out. Adds a short generative-AI clause making explicit that using an assistant does not relieve the contributor of the representations — increasingly relevant and cheap to state now..clabot— pointscontributorsat.contributorsvia the GitHub contents API, so signing is a pull request from the signer's own account and the commit history is the durable record. Custom message links the agreement and the one-line signing step..contributors— seeded withxerj-orgonly..gitignore— allowlistsCLA.md, which the blanket*.mdrule hid.Two things the maintainer must decide
CLA.mdis unreviewed by counsel and carries a visible note saying so. Two placeholders must be filled before it is authoritative: the legal entity named as the Project Owner, and a contact address in "Notifying us".Nobody but
xerj-orgis listed in.contributors, deliberately. That file asserts a person has signed. That is not an assertion this repo may make on someone's behalf, so the existing contributors on open PRs (perf(engine): hydrate only global semantic winners #85–fix(query): resolve named ES date formats for ignore_malformed validation #89, fix(engine): parse_date_ms accepts no-colon numeric zone offsets #91) will need to sign before those merge. Each signs once, not per PR.Merging this activates the check on all open pull requests.