Contributing Process
Contributions to the TF-M project need to follow the process below.
Note
Please contact maintainers for any questions.
Subscribe to TF-M development if not subscribed already.
Refer to the Roadmap or send a mail to the tf-m@lists.trustedfirmware.org to check if this work is already planned/progresses elsewhere.
Create a task in Phabricator, put as many details as possible in the description. Add ‘Trusted Firmware M’ in the ‘Tags’ field.
For non-trivial changes, need to follow the design proposal process Design Proposal Process for the TF-M project.
After the design has been accepted by the maintainer(s), a corresponding patch should be posted; follow guidelines below:
Clone the TF-M code on your own machine from TF-M git repository.
Follow the TF-M getting started, Build Instructions and Coding Guide for the TF-M project.
Make your changes in logical chunks to help reviewers. Each commit should be a separate review and either work properly or be squashed after the review and before merging.
Update documentation in docs/ folder if needed.
Test your changes and add details to the commit description.
The code is accepted under DCO, Developer Certificate of Origin, so you must add following fields to your commit description:
Author: Full Name <email address> Signed-off-by: Full Name <email address>
Note
Sign off authority needs to adhere to the [DCO](./dco.txt) rules.
You must add a Change-Id <https://review.trustedfirmware.org/Documentation/user-changeid.html> to the commit message, which can be generated any way you like (e.g. from the SHA of the commit), or use the commit hook.
Create a user in the TF-M Gerrit <https://review.trustedfirmware.org>, then add SSH keys or HTTP credentials <https://review.trustedfirmware.org/settings/>.
Submit your patch for review.
git push ssh://review.trustedfirmware.org:29418/TF-M/trusted-firmware-m.git HEAD:refs/for/master
or
git push https://review.trustedfirmware.org/TF-M/trusted-firmware-m.git HEAD:refs/for/master
Add relevant maintainers for reviewing the patch.
You may be asked to provide further details or make additional changes.
You can discuss further with maintainer(s) by directly over email if necessary.
Once the change is approved by maintainers, the patch will be merged by the maintainer.
Mark the task as ‘resolved’ after patch is merged.
Copyright (c) 2017-2021, Arm Limited. All rights reserved.