blob: b20b39a15e82df7c792ba7eab08d30e2acee850c [file] [log] [blame] [view]
# Contributing code to the opentitan repository
## 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. Do not commit until
you've had an explicit "looks good to me". We don't yet have, but plan to
create a policy describing code owners and the like. In the meantime use your
best judgement. If you're submitting a change against something that was 90%
authored by a single person, you'll want to get their ACK before committing.
* 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 force push.
* 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.