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.