If you would like to contribute to OpenTitan
Non-membersWhy are CLAs important to OpenTitan?
01 / Why CLAs?A Contributor License Agreement is key to the successful functioning of an open source project such as OpenTitan. It offers critical support to three separate groups:
- Ensures that the OpenTitan project has the right to distribute the contribution.
- Confirms the contributor's ownership and grants licenses to the project.
- Provides protection for recipients and users of the contributions.
What does the OpenTitan CLA cover?
The OpenTitan CLA grants a copyright license and a patent license to the OpenTitan project and its recipients, allowing the project to freely distribute the contribution. It does not remove or transfer copyright or patent rights from the contributor. See CLA for the full text, which is closely derived from the Apache Individual Contributor License Agreement.
How are CLAs implemented
02 / ImplementationOpenTitan implements a signoff at the point of each contribution (this signoff is referred to as a DCO - Developer Certificate of Origin - by Linux Foundation). This indicates that the individual making the contribution accepts the Contributor License Agreement and is legally entitled to grant the licenses.
The sign-off text must be included once per commit, in the commit message. The sign-off can be automatically inserted using a command such as
git commit -s
which will generate the text in the form:
Signed-off-by: Random J Developer
By adding this sign-off, the individual submitting is certifying:
By signing-off on this submission, I agree to be bound by the terms of the Contributor License Agreement located at the root of the project repository, and I agree that this submission constitutes a "Contribution" under that Agreement.
CLA Authorisation
03 / AuthorisationIt is important to confirm that the individual is empowered to grant the rights under the OpenTitan CLA. This is managed in different ways depending on the exact circumstances.
Member organisations
If the individual is part of a member organisation, the membership agreement already covers contribution and they can contribute using the signoff mechanism above.
Non-member organisations
Where an individual contributor is part of a non-member organisation, it is important to confirm that the individual is empowered to grant the rights under the OpenTitan CLA. For robust protection, Open Silicon Development governance requires a second layer of assurance with a Corporate CLA. This is a legal agreement between the organisation and lowRISC, as stewards of OpenTitan, authorising certain named members of the organisation to make contributions under the terms of the CLA.
Individuals
Some contributors may not be part of an organisation. In this case, we ask them to become “individual collaborators” and sign an individual collaboration agreement. Such individuals must be nominated by organisations who are current OpenTitan members..
Copyright messages
04 / CopyrightMore than 200 individuals from more than 25 organizations and more than 20 non-organizational individuals have contributed to OpenTitan to date. If all of them would add their own attribution or copyright notices, that would clutter the code base.
Copyright is therefore indicated in OpenTitan files by a generic header:
Copyright lowRISC contributors (OpenTitan project).
Detailed and up-to-date attribution for all contributions is available via the Git version control system:
git shortlog --author "<your name>" lists all contributions under your name. git shortlog --author "<organization's domain>" lists all contributions by an organization. git shortlog -- <path> lists all contributors for a file or directory tree.