Contributing Process

Contributions to the TF-M project need to follow the process below.

Note

Please contact TF-M mailing list tf-m@lists.trustedfirmware.org for any question.

  • It is recommended to subscribe to TF-M mailing list via this page.

  • Refer to the Roadmap or send a mail to the TF-M mailing list tf-m@lists.trustedfirmware.org to get the latest status and plan of TF-M.

  • Follow Design Proposal Guideline to propose your design.

  • Follow guidelines below to prepare the patch:

    • 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.

    • Follow Documentation Contribution Guidelines to update documentation in docs folder if needed.

    • Test your changes and add details to the commit description.

    • The code is accepted under Developer Certificate of Origin (DCO). Use git commit -s to add a Signed-off-by trailer at the end of the commit log message. See git-commit for details.

    • Ensure that each changed file has the correct copyright and license information. Files that entirely consist of contributions to this project should have a copyright notice and BSD-3-Clause SPDX license identifier of the form

      SPDX-License-Identifier: BSD-3-Clause
      SPDX-FileCopyrightText: Copyright The TrustedFirmware-M Contributors
      

      to reflect the community ownership of the project. Individual copyrights can be traced back through the corresponding commits. For more details please refer to Linux Foundation guidelines on copyright notices for OSS projects. Patches that contain changes to imported Third Party IP files should retain their original copyright and license notices. If changes are made to the imported files, then add an additional SPDX-FileCopyrightText tag line as shown above.

      The original form of the project copyright note as

      Copyright (c) XXXX[-YYYY], <OWNER>. All rights reserved.

      is still appropriate but shall be avoided in the new files.

    • Add a Change-Id to the commit message, which can be generated any way you like (e.g. from the SHA of the commit). It is suggested to clone repositories with commit-msg hook. The commit-msg hook attaches Change-Id automatically. Take trusted-firmware-m as an example.

  • Submit your patch for review. Refer to Uploading Changes for details of uploading patch.

  • Add relevant code owner(s) for reviewing the patch.

  • You may be asked to provide further details or make additional changes.

  • You can discuss further with code owner(s) and maintainer(s) directly via TF-M mailing list tf-m@lists.trustedfirmware.org if necessary.

  • If multiple patches are linked in a chain then code owners and maintainers should review and merge individual patches when they are ready, rather than waiting for the entire chain to be reviewed. If multiple patches are intended to be merged together then authors shall use topics or explicitly mention that in the commit message.

  • Click Allow-CI +1 button on Gerrit page to run CI to validate your patch. Your patch shall pass CI successfully before being merged. Code owner(s) and maintainer(s) may ask for additional test.

  • Once the change is approved by code owners, the patch will be merged by the maintainer.


Copyright (c) 2017-2022, Arm Limited. All rights reserved.