Skip to content

Contributor licence agreement

Adapted from the Apache Software Foundation Individual Contributor Licence Agreement v2.0, which is the text most contributors have already met.

Why this exists, in two sentences

Pion is licensed under Apache-2.0, and its tuned vector kernels ship as a separately licensed binary library (the map is in doc/licensing.md). One CLA covers contributions to any part of the repository. Keeping the option to relicense future versions, or to license the project commercially, is only possible if one party holds sufficient rights to do it, which is what this agreement establishes — it does not take your copyright away.

What you keep

You keep the copyright in everything you write. You are granting a licence, not assigning ownership. You remain free to use, publish, relicense or sell your own contribution however you like, including in other projects under other licences.

The agreement

By signing, you accept the following for any Contribution you submit to this project, now or in the future.

1. Definitions. "You" is the copyright owner, or the legal entity authorised by the copyright owner, entering this agreement. "Contribution" is any original work of authorship you intentionally submit to the project for inclusion, in any form, including any modification to existing work. "The Maintainer" means Pavel Horak <pion@pavelhorak.com> — the Licensor named in vendor/pion-vector/LICENSE — and any successor maintainer of the project.

2. Copyright licence. You grant the project maintainer a perpetual, worldwide, non-exclusive, royalty-free, irrevocable copyright licence to reproduce, prepare derivative works of, publicly display and perform, sublicense, and distribute your Contribution and such derivative works — including under licence terms different from those in effect when you contributed. That last clause is the whole point: it is what permits any future relicensing of the project without tracking down every contributor.

3. Patent licence. You grant the project maintainer a perpetual, worldwide, non-exclusive, royalty-free, irrevocable (except as stated below) patent licence to make, have made, use, offer to sell, sell, import and otherwise transfer your Contribution, covering only those patent claims licensable by you that are necessarily infringed by your Contribution alone or by its combination with the project. If any entity brings patent litigation alleging that the project or a Contribution constitutes patent infringement, any patent licence granted here for that Contribution terminates as of the date such litigation is filed.

4. You have the right to grant this. You represent that each Contribution is your original creation, and that you are legally entitled to grant the licences above. If your employer has rights to intellectual property you create, you represent either that you have received permission to contribute on their behalf, or that your employer has waived those rights, or that your employer has signed this agreement as an entity.

5. Third-party work. If you submit work that is not your original creation, you may submit it separately from any Contribution, identifying its source and any licence or other restriction you are aware of, and marking it clearly as "Submitted on behalf of a third party: [named here]".

6. No warranty. Except as stated above, your Contribution is provided "as is", without warranty of any kind, express or implied.

7. Notice of inaccuracy. You agree to tell the maintainer if you become aware that any representation above has become inaccurate.

Entities

If you are contributing on behalf of a company rather than personally, say so on the pull request. An entity agreement can be signed once and cover everyone at that organisation; contact the Maintainer at pion@pavelhorak.com.

How to sign

Open a pull request. A bot will comment asking for a signature; reply on that pull request with exactly:

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

Your signature is recorded in a JSON file on the cla-signatures branch of this repository. It is not sent to any third-party service. You sign once; it covers all your future contributions.

If you would rather not

That is a legitimate position and no hard feelings — plenty of people decline CLAs on principle. Bug reports, reproductions, benchmark results, design discussion and documentation feedback are all valuable and none of them require this. If you have a fix you do not want to sign for, describe it in an issue and it can be implemented independently.