Design proposal guideline
The design proposal guideline specifies the steps to propose and upload design proposals to TF-M. Those steps are lightweight and flexible to make sure that contributors can focus more on actual code implementation and iteration.
The guideline encourages developers to share design proposal via TF-M mailing list 1 and TF-M technical forum (tech forum) 2. The design details can be discussed via code reviews of actual implementations.
Typical steps are shown as the diagram below.
Discussion in TF-M mailing list and tech forum
It is highly recommended to propose and discuss designs in TF-M mailing list or TF-M tech forum, before or while the code implementation is under review.
It is efficient and flexible to directly discuss design proposal via TF-M mailing list and TF-M tech forum. Contributors can receive quick and broad feedback from TF-M community.
Although it is optional to present the ideas in mailing list or tech forum, it will help reviewers understand the design much better and expedite the code review process.
Code review of details
It is straightforward and convenient for contributors and reviewers to deliberate over design and implementation details via code review.
Contributors can implement their design proposal and upstream the patch set to TF-M gerrit 3 for code review. For non-trivial changes or new major features, it is strongly suggested to propose the design to TF-M mailing list and tech forum in advance.
Contributors don’t have to wait for any approvals before upstreaming patches, even if the changes are non-trivial. No formal design document in advance is required anymore.
The review process is the same as the general one 4, with some specific requirements:
Contributors can send an email to TF-M mailing list to ask for review.
If it requires additional reviewers besides code owners and maintainers, contributors shall add the specific reviewers in the review list.
Authors shall clearly specify the design purpose and briefly describe the implementation in the commit message.
Authors shall put essential comments and notes in code for the code changes.
Code owners and maintainers may require contributors to further verify the implementation besides normal per-patch CI test. Contributors shall provide the verification results as requested.
Integration guide and manual
Contributors can create an integration guide or a user manual to describe how to integrate the new features related to the design proposal.
Contributors shall update the corresponding documents if the design changes existing implementation.