blob: ac8f0893b6950405504771580817f9cb71d310da [file] [log] [blame] [view]
Hugo McNallyf6298b32023-02-12 14:47:22 +00001# Contributing to OpenTitan
Alex Bradburye04db852020-10-15 13:37:16 +01002
3Thank you for your interest in contributing to OpenTitan.
4This document provides some guidelines to making those contributions.
5Important points before getting started:
6* We consider honest feedback crucial to quality.
7 We work hard to thoroughly review changes and provide actionable feedback.
8 We do this to ensure a high quality open source design.
9* Always assume good intent.
10 Our feedback may be demanding and may even feel disheartening.
11 Again, this is to support a high quality silicon design, and we definitely appreciate all OpenTitan contributions.
12* Please be friendly and patient in your communications.
13* All OpenTitan interactions are covered by [lowRISC's code of conduct](https://www.lowrisc.org/code-of-conduct/).
14* When communicating, remember OpenTitan is a security-focused project.
15 Because of this, certain issues may need to be discussed in a small group first.
Hugo McNally544e7a62023-02-12 01:12:36 +000016 See the [Security Issues Process](#security-issues) described below for more details.
Alex Bradburye04db852020-10-15 13:37:16 +010017* OpenTitan involves both hardware and software.
18 We follow a hybrid approach involving both silicon and software design practices.
19* OpenTitan is a work in progress.
20 We are always looking for ways to improve and welcome feedback on any project matter, technical or not.
21
22**Important**: Please read the next three, short sections on reporting bugs, reporting security issues, and contributing code in preparation for making your first contribution to OpenTitan.
Hugo McNallyaef0a662023-02-11 19:44:55 +000023If you would like more details, see the [Detailed Contribution Guide](./detailed_contribution_guide/README.md).
Alex Bradburye04db852020-10-15 13:37:16 +010024
25## Bug reports
26
Hugo McNally544e7a62023-02-12 01:12:36 +000027**To report a security issue, please follow the [Security Issues Process](#security-issues)**.
Alex Bradburye04db852020-10-15 13:37:16 +010028
29Ideally, all designs are bug free.
30Realistically, each piece of collateral in our repository is in a different state of maturity with some still under active testing and development.
Hugo McNallyaef0a662023-02-11 19:44:55 +000031See the [Hardware Development Stages](../project_governance/development_stages.md) for an example of how hardware progress is tracked.
Alex Bradburye04db852020-10-15 13:37:16 +010032
33We are happy to receive bug reports and eager to fix them.
34Please make reports by opening a new issue in our [GitHub issue tracker](https://github.com/lowRISC/opentitan/issues).
35
36## Security issues
37
38Security is of major importance to the OpenTitan project.
39When dealing with security matters, and in keeping with standard industry practice, there are reasons why it makes sense to be cautious and have a non-public discussion within a small group of experts before full disclosure.
40For example,
41* to ensure responsible disclosure of vulnerabilities,
42* or to discuss the security impact of new features or proposed changes to an existing feature.
43
44If you believe you have found a security issue or intend to work on potentially security sensitive matters, please first reach out to our experienced security team at security@opentitan.org before starting a public discussion.
45That will enable us to engage successfully without creating undue risk to the project or its consumers.
46
47## Contributing code
48
49The information below aims at helping you get involved in the OpenTitan project by guiding you through our process of preparing your contribution and getting it integrated.
50
51For straight-forward and non-invasive contributions, a high level of coordination is unlikely to be necessary.
52In these cases, please open a pull request.
53
54For larger proposed changes we ask contributors to:
55* Discuss the matter with the team, either through the [opentitan-dev@opentitan.org](https://groups.google.com/a/opentitan.org/forum/#!forum/opentitan-dev) mailing list or through discussions in issues on GitHub.
56 Agree on a course of action and document this in a GitHub issue.
57* Implement the contribution, i.e., the solution previously agreed on, and reference the discussion when submitting the contribution.
58* Have the implementation reviewed by the team, address any feedback, and finally have it integrated into the project.
59
60Note that contributions must be accompanied by sign-off text which indicates acceptance of the project's Contributor License Agreement - see [CONTRIBUTING.md](https://github.com/lowRISC/opentitan/blob/master/CONTRIBUTING.md) for details.