Repository navigation
Conversation
Arc's OSS core stays AGPL-3.0. Enterprise features move to a separate license, and distributing contributed code under non-AGPL terms requires an explicit grant from its author — AGPL alone does not provide one, and a CLA only works prospectively. - CLA.md: Apache-style ICLA. Section 4 grants Basekick Labs the right to relicense contributions, including commercially. It is a license grant, not copyright assignment; contributors keep ownership of their work. - .github/workflows/cla.yml: contributor-assistant/github-action@v2.6.1. Signatures are stored in the private Basekick-Labs/cla-signatures repo so contributor emails are not published and signature commits stay out of Arc's history. Bots and the maintainer account are allow-listed. - CONTRIBUTING.md: pre-PR checklist item plus a section explaining the grant in plain terms, including what to do if signing is not possible.
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.
Summary
CLA.md, an Apache-style Individual CLA. The operative clause is section 4, Right to Relicense: contributors grant Basekick Labs the right to license their contribution under any terms, including commercial and closed-source. It is a license grant, not a copyright assignment — contributors keep full ownership and can use their own work anywhere else..github/workflows/cla.ymlusingcontributor-assistant/github-action@v2.6.1. Contributors sign by replying once to a bot comment; they are not asked again on later PRs.CONTRIBUTING.mdwith a pre-PR checklist item and a plain-language section on what the CLA covers, plus what to do if signing is not possible.Why
Arc's OSS core stays AGPL-3.0. Enterprise features move to a separate license, and shipping contributed code under non-AGPL terms requires an explicit grant from its author. AGPL does not provide one, and a CLA only works prospectively — it cannot cover code already merged, which is why this lands before the enterprise split rather than alongside it.
Design notes
Signatures live in a separate private repo (
Basekick-Labs/cla-signatures,signatures/arc.json) rather than in this one, so signature commits stay out of Arc's history and contributor emails are not published.Allowlist is
xe-nvdk,dependabot[bot],claude[bot],*[bot]. The maintainer's commits appear under two emails but one GitHub username, which is what the action matches on. Bots cannot sign a legal agreement.pull_request_targetis required so fork PRs can reach the signatures token. This workflow never checks out or executes fork code — it only reads PR metadata — so the usual privilege-escalation footgun of that trigger does not apply here. Do not copy the trigger into other workflows without the same property.Configuration matrix
pull_request_targetruns in base-repo contextcla-signatures; repo +mainexistxe-nvdkdependabot[bot],claude[bot],*[bot]CLA_SIGNATURES_TOKENabsent/expired (non-default)cla-signaturesmissingmain(non-default)maindid not physically exist despitedefault_branch: main. Seeded with a READMEThe last two rows were genuinely unguarded when first written and are the reason for the setup steps below; both are now satisfied.
Setup completed
Basekick-Labs/cla-signaturescreated, privatemainseeded (empty repo leftbranches: []; the action writes tobranch: mainand would have failed on the first signature)CLA_SIGNATURES_TOKENset onBasekick-Labs/arcsignatures/is intentionally absent — git does not track empty directories, and the action createssignatures/arc.jsonon the first signature.Test plan
with:key cross-checked against the action's ownaction.ymlat v2.6.1 (no invented inputs)custom-pr-sign-comment, andCLA.mdCONTRIBUTING.mdanchor link resolves to the new sectionsignatures/arc.jsonappearsUnproven until that first live PR: the PAT's scope. It is set, but
Contents: read-onlyfails identically to a correct token right up to the first signature write. The test PR is what proves it.Follow-up
The CLA is prospective, so existing contributions stay AGPL-only unless their authors sign. Scoped against the enterprise packages, only two signatures actually gate the split — @bferanmi806-sketch (
internal/iceberg) and @mah1104ahm (internal/tiering).internal/cluster,audit,license,rbac, andaggregationhave zero external commits. Remaining contributors touch OSS-core only, which stays AGPL regardless; collecting their signatures is hygiene, not a blocker.