Files
Vijay Janapa Reddi 86db3a36d5 feat(staffml): add Contributor License Agreement and contribution guide
StaffML is open source under AGPL v3, but the project may want to offer
commercial licenses to organizations that cannot accept AGPL's network-
deployment-share-back terms. Without a CLA, copyright on contributions
fragments across all contributors, foreclosing the dual-license option.
Adding the CLA now — while the contributor list is essentially the
maintainer plus one — captures that option at the cheapest possible
moment.

CLA.md is adapted from the Apache Software Foundation ICLA (the
best-tested template in the open-source world) and grants rights to the
"Project Maintainer and his successors and assigns," which preserves
flexibility on the institutional question without committing to either
outcome.

CONTRIBUTING.md explains the process for contributors and includes a
copy-paste workflow file for activating the contributor-assistant
GitHub Action, along with the secrets and PAT setup steps. The action
is not committed yet so existing in-flight PRs are not affected; the
maintainer can enable it when ready by copying the YAML into
.github/workflows/.
2026-04-25 13:11:05 -04:00

6.5 KiB

StaffML Individual Contributor License Agreement (ICLA)

Version 1.0 — adapted from the Apache Software Foundation ICLA

Thank you for your interest in contributing to StaffML (the "Project").

This Contributor License Agreement ("Agreement") clarifies the intellectual-property rights granted with each Contribution from any person or entity ("You"). It protects both You and the Project. It does not change Your rights to use Your own Contributions for any other purpose.

You accept and agree to the following terms for past and future Contributions submitted to the Project. Except for the licenses granted herein, You reserve all right, title, and interest in and to Your Contributions.


1. Definitions

  • "You" means the individual who submits a Contribution. If You are submitting on behalf of an employer or other legal entity, You represent that You are authorized to bind that entity, and references to "You" include that entity.
  • "Contribution" means any original work of authorship, including any modifications or additions to existing work, that is intentionally submitted by You to the Project for inclusion in or documentation of the Project.
  • "Project Maintainer" means Vijay Janapa Reddi and his successors and assigns. Where the Project is operated through an institutional sponsor, the Project Maintainer may assign the rights granted herein to that sponsor.
  • "Submitted" means any form of electronic, verbal, or written communication sent to the Project Maintainer or its representatives, including but not limited to communication on issue trackers, pull requests, or discussion forums managed by, or on behalf of, the Project, for the purpose of discussing and improving the Project.

Subject to the terms and conditions of this Agreement, You hereby grant to the Project Maintainer and to recipients of software distributed by the Project Maintainer a perpetual, worldwide, non-exclusive, no-charge, royalty-free, irrevocable copyright license to reproduce, prepare derivative works of, publicly display, publicly perform, sublicense, and distribute Your Contributions and such derivative works.

The Project Maintainer may relicense Your Contributions, in whole or in part, under any license, including commercial licenses, provided that any distribution under an open-source license remains compatible with the license under which the Project as a whole is then distributed.

3. Grant of Patent License

Subject to the terms and conditions of this Agreement, You hereby grant to the Project Maintainer and to recipients of software distributed by the Project Maintainer a perpetual, worldwide, non-exclusive, no-charge, royalty-free, irrevocable (except as stated in this section) patent license to make, have made, use, offer to sell, sell, import, and otherwise transfer the Project, where such license applies only to those patent claims licensable by You that are necessarily infringed by Your Contribution(s) alone or by combination of Your Contribution(s) with the Project to which such Contribution(s) was submitted.

If any entity institutes patent litigation against You or any other entity (including a cross-claim or counterclaim in a lawsuit) alleging that Your Contribution, or the Project to which You have contributed, constitutes direct or contributory patent infringement, then any patent licenses granted to that entity under this Agreement for that Contribution or Project shall terminate as of the date such litigation is filed.

4. Representations

You represent that:

  1. Each of Your Contributions is Your original creation, OR You have sufficient rights to submit the Contribution under the terms of this Agreement.
  2. Your Contribution submissions include complete details of any third-party license or other restriction (including, but not limited to, related patents and trademarks) of which You are personally aware and which are associated with any part of Your Contributions.
  3. If Your employer(s) has rights to intellectual property that You create that includes Your Contributions, You represent that You have received permission to make Contributions on behalf of that employer, that Your employer has waived such rights for Your Contributions to the Project, or that Your employer has executed a separate Corporate CLA with the Project Maintainer.

5. Support and Disclaimer

You are not expected to provide support for Your Contributions, except to the extent You desire to provide support. You may provide support for free, for a fee, or not at all. Unless required by applicable law or agreed to in writing, You provide Your Contributions on an "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied, including, without limitation, any warranties or conditions of TITLE, NON-INFRINGEMENT, MERCHANTABILITY, or FITNESS FOR A PARTICULAR PURPOSE.

6. Notification

You agree to notify the Project Maintainer of any facts or circumstances of which You become aware that would make these representations inaccurate in any respect.


How to sign

We use the CLA Assistant GitHub Action to collect signatures. When You open Your first pull request that touches StaffML code, the bot will ask You to sign by commenting:

I have read the CLA Document and I hereby sign the CLA

Your GitHub username, the date, and the SHA of the agreement file are recorded in .github/cla-signatures.json in this repository as a public, auditable log.


Why this exists

StaffML is open source under AGPL v3, but the Project Maintainer reserves the option to offer commercial licenses to organizations that cannot accept AGPL's network-deployment-share-back terms. This CLA is what preserves that option.

Without the CLA, each contributor would retain copyright on their lines of code, and the Project could only be relicensed with unanimous consent from every past contributor. That fragmentation is a one-way trap, so we ask for the CLA up front, while the contributor list is small and the cost of asking is low.

You retain full rights to use Your Contribution however You wish — in Your own projects, under Your own license, anywhere else. The CLA only grants the Project Maintainer the additional ability to incorporate Your Contribution into StaffML under terms compatible with the Project's open-source license and any future commercial license.

For questions, please open a discussion in the repository or contact edu@tinyML.org.