| # Contributing code to the opentitan repository | 
 |  | 
 | ## Contributor License Agreement | 
 |  | 
 | Contributions to OpenTitan must be accompanied by sign-off text that indicates | 
 | acceptance of the Contributor License Agreement (see [CLA](CLA) for full | 
 | text), which is closely derived from the Apache Individual Contributor License | 
 | Agreement. 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 <random@developer.example.org>` | 
 |  | 
 | By adding this sign-off, you are 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._ | 
 |  | 
 | Please note that this project and any contributions to it are public and that | 
 | a record of all contributions (including any personal information submitted | 
 | with it, including a sign-off) is maintained indefinitely and may be | 
 | redistributed consistent with this project or the open source license(s) | 
 | involved. | 
 |  | 
 | ## Quick guidelines | 
 |  | 
 | * Keep a clean commit history. This means no merge commits, and no long series | 
 |   of "fixup" patches (rebase or squash as appropriate). Structure work as a | 
 |   series of logically ordered, atomic patches. `git rebase -i` is your friend. | 
 | * Changes should be made via pull request, with review. A pull request will be | 
 |   committed by a "committer" (an account listed in `COMMITTERS`) once it has | 
 |   had an explicit positive review. | 
 | * When changes are restricted to a specific area, you are recommended to add a | 
 |   tag to the beginning of the first line of the commit message in square | 
 |   brackets. e.g. "[uart] Fix bug #157". | 
 | * Code review is not design review and doesn't remove the need for discussing | 
 |   implementation options. If you would like to make a large-scale change or | 
 |   discuss multiple implementation options, discuss on the mailing list. | 
 | * Create pull requests from a fork rather than making new branches in  | 
 |   `github.com/lowrisc/opentitan`. | 
 | * Do not attempt to commit code with a non-Apache license without discussing | 
 |   first. | 
 | * If a relevant bug or tracking issue exists, reference it in the pull request | 
 |   and commits. | 
 |  | 
 | Please see [Contributing to | 
 | OpenTitan](https://docs.opentitan.org/doc/project/contributing/) for more | 
 | general guidance. |