Summer Qin | abf6698 | 2021-04-06 17:22:15 +0800 | [diff] [blame] | 1 | Contributing Process |
| 2 | ==================== |
Gyorgy Szing | db9783c | 2019-04-17 21:08:48 +0200 | [diff] [blame] | 3 | |
Ashutosh Singh | 429ceec | 2019-05-01 16:14:10 +0100 | [diff] [blame] | 4 | Contributions to the TF-M project need to follow the process below. |
Gyorgy Szing | db9783c | 2019-04-17 21:08:48 +0200 | [diff] [blame] | 5 | |
Ashutosh Singh | 429ceec | 2019-05-01 16:14:10 +0100 | [diff] [blame] | 6 | .. Note:: |
Gyorgy Szing | db9783c | 2019-04-17 21:08:48 +0200 | [diff] [blame] | 7 | |
Matthew Dalzell | 988bbd6 | 2025-06-05 15:49:26 +0100 | [diff] [blame^] | 8 | Please contact TF-M mailing list |
| 9 | `tf-m@lists.trustedfirmware.org <mailing_list_>`_ for any question. |
Ashutosh Singh | 429ceec | 2019-05-01 16:14:10 +0100 | [diff] [blame] | 10 | |
Matthew Dalzell | 988bbd6 | 2025-06-05 15:49:26 +0100 | [diff] [blame^] | 11 | - It is recommended to subscribe to TF-M mailing list |
David Hu | e0dbac0 | 2022-06-09 16:00:18 +0800 | [diff] [blame] | 12 | via `this page <https://lists.trustedfirmware.org/mailman3/lists/tf-m.lists.trustedfirmware.org>`_. |
Matthew Dalzell | 988bbd6 | 2025-06-05 15:49:26 +0100 | [diff] [blame^] | 13 | - Refer to the :doc:`/roadmap` or send a mail to the TF-M mailing list `tf-m@lists.trustedfirmware.org <mailing_list_>`_ |
Anton Komlev | bd4582c | 2024-04-04 15:37:43 +0100 | [diff] [blame] | 14 | to get the latest status and plan of TF-M. |
David Hu | e0dbac0 | 2022-06-09 16:00:18 +0800 | [diff] [blame] | 15 | - Follow :doc:`Design Proposal Guideline </contributing/tfm_design_proposal_guideline>` |
| 16 | to propose your design. |
| 17 | - Follow guidelines below to prepare the patch: |
Ashutosh Singh | 429ceec | 2019-05-01 16:14:10 +0100 | [diff] [blame] | 18 | |
| 19 | - Clone the TF-M code on your own machine from `TF-M git repository |
Minos Galanakis | 0f39fa5 | 2020-06-08 16:53:53 +0100 | [diff] [blame] | 20 | <https://git.trustedfirmware.org/TF-M/trusted-firmware-m.git>`_. |
Anton Komlev | 3356ba3 | 2022-03-31 22:02:11 +0100 | [diff] [blame] | 21 | - Follow the :doc:`TF-M getting started </getting_started/tfm_getting_started>`, |
Matthew Dalzell | 988bbd6 | 2025-06-05 15:49:26 +0100 | [diff] [blame^] | 22 | :doc:`Build Instructions </building/tfm_build_instruction>` and |
Anton Komlev | 3356ba3 | 2022-03-31 22:02:11 +0100 | [diff] [blame] | 23 | :doc:`Coding Guide </contributing/coding_guide>` for the TF-M project. |
Ashutosh Singh | 429ceec | 2019-05-01 16:14:10 +0100 | [diff] [blame] | 24 | - Make your changes in logical chunks to help reviewers. Each commit should |
| 25 | be a separate review and either work properly or be squashed after the |
| 26 | review and before merging. |
David Hu | e0dbac0 | 2022-06-09 16:00:18 +0800 | [diff] [blame] | 27 | - Follow :doc:`Documentation Contribution Guidelines </contributing/doc_guidelines>` |
| 28 | to update documentation in ``docs`` folder if needed. |
Ashutosh Singh | 429ceec | 2019-05-01 16:14:10 +0100 | [diff] [blame] | 29 | - Test your changes and add details to the commit description. |
David Hu | e0dbac0 | 2022-06-09 16:00:18 +0800 | [diff] [blame] | 30 | - The code is accepted under :doc:`Developer Certificate of Origin (DCO) </contributing/dco>`. |
| 31 | Use ``git commit -s`` to add a ``Signed-off-by`` trailer at the end of the |
| 32 | commit log message. |
| 33 | See `git-commit <https://git-scm.com/docs/git-commit>`_ for details. |
Anton Komlev | a36614c | 2023-02-27 12:18:19 +0000 | [diff] [blame] | 34 | - Ensure that each changed file has the correct copyright and license |
| 35 | information. Files that entirely consist of contributions to this project |
| 36 | should have a copyright notice and BSD-3-Clause SPDX license identifier of |
Anton Komlev | 228deca | 2024-10-07 13:25:26 +0100 | [diff] [blame] | 37 | the form |
Anton Komlev | a36614c | 2023-02-27 12:18:19 +0000 | [diff] [blame] | 38 | |
| 39 | :: |
| 40 | |
Anton Komlev | 228deca | 2024-10-07 13:25:26 +0100 | [diff] [blame] | 41 | SPDX-License-Identifier: BSD-3-Clause |
| 42 | SPDX-FileCopyrightText: Copyright The TrustedFirmware-M Contributors |
| 43 | |
| 44 | to reflect the community ownership of the project. Individual copyrights |
| 45 | can be traced back through the corresponding commits. For more details please refer |
| 46 | to `Linux Foundation guidelines on copyright notices`_ for OSS projects. |
| 47 | Patches that contain changes to imported Third Party IP files should retain |
| 48 | their original copyright and license notices. If changes are made to the imported |
| 49 | files, then add an additional ``SPDX-FileCopyrightText`` tag line as shown above. |
| 50 | |
| 51 | The original form of the project copyright note as |
| 52 | |
Anton Komlev | a36614c | 2023-02-27 12:18:19 +0000 | [diff] [blame] | 53 | Copyright (c) XXXX[-YYYY], <OWNER>. All rights reserved. |
| 54 | |
Anton Komlev | 228deca | 2024-10-07 13:25:26 +0100 | [diff] [blame] | 55 | is still appropriate but shall be avoided in the new files. |
Anton Komlev | a36614c | 2023-02-27 12:18:19 +0000 | [diff] [blame] | 56 | |
David Hu | e0dbac0 | 2022-06-09 16:00:18 +0800 | [diff] [blame] | 57 | - Add a `Change-Id <https://review.trustedfirmware.org/Documentation/user-changeid.html>`_ |
| 58 | to the commit message, which can be generated any way you like (e.g. from |
| 59 | the SHA of the commit). |
| 60 | It is suggested to clone repositories with commit-msg hook. The commit-msg |
| 61 | hook attaches Change-Id automatically. |
| 62 | Take `trusted-firmware-m <https://review.trustedfirmware.org/admin/repos/TF-M/trusted-firmware-m>`_ |
| 63 | as an example. |
Ashutosh Singh | 429ceec | 2019-05-01 16:14:10 +0100 | [diff] [blame] | 64 | |
David Hu | e0dbac0 | 2022-06-09 16:00:18 +0800 | [diff] [blame] | 65 | - Submit your patch for review. |
| 66 | Refer to `Uploading Changes <https://review.trustedfirmware.org/Documentation/user-upload.html>`_ |
| 67 | for details of uploading patch. |
| 68 | - Add relevant :doc:`code owner(s) </contributing/maintainers>` for reviewing |
Galanakis, Minos | 0c1ad78 | 2019-11-08 11:28:40 +0000 | [diff] [blame] | 69 | the patch. |
Ashutosh Singh | 429ceec | 2019-05-01 16:14:10 +0100 | [diff] [blame] | 70 | - You may be asked to provide further details or make additional changes. |
David Hu | e0dbac0 | 2022-06-09 16:00:18 +0800 | [diff] [blame] | 71 | - You can discuss further with code owner(s) and maintainer(s) directly via |
Matthew Dalzell | 988bbd6 | 2025-06-05 15:49:26 +0100 | [diff] [blame^] | 72 | TF-M mailing list `tf-m@lists.trustedfirmware.org <mailing_list_>`_ if necessary. |
Anton Komlev | f6da329 | 2023-05-17 17:42:40 +0100 | [diff] [blame] | 73 | - If multiple patches are linked in a chain then code owners and maintainers |
| 74 | should review and merge individual patches when they are ready, rather than |
| 75 | waiting for the entire chain to be reviewed. If multiple patches are intended |
| 76 | to be merged together then authors shall use topics or explicitly mention |
| 77 | that in the commit message. |
David Hu | e0dbac0 | 2022-06-09 16:00:18 +0800 | [diff] [blame] | 78 | - Click ``Allow-CI +1`` button on Gerrit page to run CI to validate your patch. |
| 79 | Your patch shall pass CI successfully before being merged. Code owner(s) and |
| 80 | maintainer(s) may ask for additional test. |
| 81 | - Once the change is approved by code owners, the patch will be merged by the |
Ashutosh Singh | 429ceec | 2019-05-01 16:14:10 +0100 | [diff] [blame] | 82 | maintainer. |
David Hu | e0dbac0 | 2022-06-09 16:00:18 +0800 | [diff] [blame] | 83 | |
Gyorgy Szing | db9783c | 2019-04-17 21:08:48 +0200 | [diff] [blame] | 84 | -------------- |
| 85 | |
Anton Komlev | 228deca | 2024-10-07 13:25:26 +0100 | [diff] [blame] | 86 | .. _mailing_list: tf-m@lists.trustedfirmware.org |
| 87 | .. _Linux Foundation guidelines on copyright notices: https://www.linuxfoundation.org/blog/blog/copyright-notices-in-open-source-software-projects |
| 88 | |
David Hu | 633f1f2 | 2022-01-30 22:16:23 +0800 | [diff] [blame] | 89 | *Copyright (c) 2017-2022, Arm Limited. All rights reserved.* |