blob: 25fb7dd05387265ab735d62d51ef709a8abfa2ee [file] [log] [blame]
Summer Qinabf66982021-04-06 17:22:15 +08001Contributing Process
2====================
Gyorgy Szingdb9783c2019-04-17 21:08:48 +02003
Ashutosh Singh429ceec2019-05-01 16:14:10 +01004Contributions to the TF-M project need to follow the process below.
Gyorgy Szingdb9783c2019-04-17 21:08:48 +02005
Ashutosh Singh429ceec2019-05-01 16:14:10 +01006.. Note::
Gyorgy Szingdb9783c2019-04-17 21:08:48 +02007
David Hue0dbac02022-06-09 16:00:18 +08008 Please contact `TF-M mailing list <mailing_list_>`_ for any question.
Ashutosh Singh429ceec2019-05-01 16:14:10 +01009
David Hue0dbac02022-06-09 16:00:18 +080010- It is recommended to subscribe to `TF-M mailing list <mailing_list_>`_
11 via `this page <https://lists.trustedfirmware.org/mailman3/lists/tf-m.lists.trustedfirmware.org>`_.
Anton Komlevbd4582c2024-04-04 15:37:43 +010012- Refer to the :doc:`/roadmap` or send a mail to the `TF-M mailing list <mailing_list_>`_
13 to get the latest status and plan of TF-M.
David Hue0dbac02022-06-09 16:00:18 +080014- Follow :doc:`Design Proposal Guideline </contributing/tfm_design_proposal_guideline>`
15 to propose your design.
16- Follow guidelines below to prepare the patch:
Ashutosh Singh429ceec2019-05-01 16:14:10 +010017
18 - Clone the TF-M code on your own machine from `TF-M git repository
Minos Galanakis0f39fa52020-06-08 16:53:53 +010019 <https://git.trustedfirmware.org/TF-M/trusted-firmware-m.git>`_.
Anton Komlev3356ba32022-03-31 22:02:11 +010020 - Follow the :doc:`TF-M getting started </getting_started/tfm_getting_started>`,
Anton Komlev0dbe8f12022-06-17 16:48:12 +010021 :doc:`Build Instructions </building/tfm_build_instruction>`
Anton Komlev3356ba32022-03-31 22:02:11 +010022 :doc:`Coding Guide </contributing/coding_guide>` for the TF-M project.
Ashutosh Singh429ceec2019-05-01 16:14:10 +010023 - Make your changes in logical chunks to help reviewers. Each commit should
24 be a separate review and either work properly or be squashed after the
25 review and before merging.
David Hue0dbac02022-06-09 16:00:18 +080026 - Follow :doc:`Documentation Contribution Guidelines </contributing/doc_guidelines>`
27 to update documentation in ``docs`` folder if needed.
Ashutosh Singh429ceec2019-05-01 16:14:10 +010028 - Test your changes and add details to the commit description.
David Hue0dbac02022-06-09 16:00:18 +080029 - The code is accepted under :doc:`Developer Certificate of Origin (DCO) </contributing/dco>`.
30 Use ``git commit -s`` to add a ``Signed-off-by`` trailer at the end of the
31 commit log message.
32 See `git-commit <https://git-scm.com/docs/git-commit>`_ for details.
Anton Komleva36614c2023-02-27 12:18:19 +000033 - Ensure that each changed file has the correct copyright and license
34 information. Files that entirely consist of contributions to this project
35 should have a copyright notice and BSD-3-Clause SPDX license identifier of
Anton Komlev228deca2024-10-07 13:25:26 +010036 the form
Anton Komleva36614c2023-02-27 12:18:19 +000037
38 ::
39
Anton Komlev228deca2024-10-07 13:25:26 +010040 SPDX-License-Identifier: BSD-3-Clause
41 SPDX-FileCopyrightText: Copyright The TrustedFirmware-M Contributors
42
43 to reflect the community ownership of the project. Individual copyrights
44 can be traced back through the corresponding commits. For more details please refer
45 to `Linux Foundation guidelines on copyright notices`_ for OSS projects.
46 Patches that contain changes to imported Third Party IP files should retain
47 their original copyright and license notices. If changes are made to the imported
48 files, then add an additional ``SPDX-FileCopyrightText`` tag line as shown above.
49
50 The original form of the project copyright note as
51
Anton Komleva36614c2023-02-27 12:18:19 +000052 Copyright (c) XXXX[-YYYY], <OWNER>. All rights reserved.
53
Anton Komlev228deca2024-10-07 13:25:26 +010054 is still appropriate but shall be avoided in the new files.
Anton Komleva36614c2023-02-27 12:18:19 +000055
David Hue0dbac02022-06-09 16:00:18 +080056 - Add a `Change-Id <https://review.trustedfirmware.org/Documentation/user-changeid.html>`_
57 to the commit message, which can be generated any way you like (e.g. from
58 the SHA of the commit).
59 It is suggested to clone repositories with commit-msg hook. The commit-msg
60 hook attaches Change-Id automatically.
61 Take `trusted-firmware-m <https://review.trustedfirmware.org/admin/repos/TF-M/trusted-firmware-m>`_
62 as an example.
Ashutosh Singh429ceec2019-05-01 16:14:10 +010063
David Hue0dbac02022-06-09 16:00:18 +080064- Submit your patch for review.
65 Refer to `Uploading Changes <https://review.trustedfirmware.org/Documentation/user-upload.html>`_
66 for details of uploading patch.
67- Add relevant :doc:`code owner(s) </contributing/maintainers>` for reviewing
Galanakis, Minos0c1ad782019-11-08 11:28:40 +000068 the patch.
Ashutosh Singh429ceec2019-05-01 16:14:10 +010069- You may be asked to provide further details or make additional changes.
David Hue0dbac02022-06-09 16:00:18 +080070- You can discuss further with code owner(s) and maintainer(s) directly via
71 `TF-M mailing list <mailing_list_>`_ if necessary.
Anton Komlevf6da3292023-05-17 17:42:40 +010072- If multiple patches are linked in a chain then code owners and maintainers
73 should review and merge individual patches when they are ready, rather than
74 waiting for the entire chain to be reviewed. If multiple patches are intended
75 to be merged together then authors shall use topics or explicitly mention
76 that in the commit message.
David Hue0dbac02022-06-09 16:00:18 +080077- Click ``Allow-CI +1`` button on Gerrit page to run CI to validate your patch.
78 Your patch shall pass CI successfully before being merged. Code owner(s) and
79 maintainer(s) may ask for additional test.
80- Once the change is approved by code owners, the patch will be merged by the
Ashutosh Singh429ceec2019-05-01 16:14:10 +010081 maintainer.
David Hue0dbac02022-06-09 16:00:18 +080082
Gyorgy Szingdb9783c2019-04-17 21:08:48 +020083--------------
84
Anton Komlev228deca2024-10-07 13:25:26 +010085.. _mailing_list: tf-m@lists.trustedfirmware.org
86.. _Linux Foundation guidelines on copyright notices: https://www.linuxfoundation.org/blog/blog/copyright-notices-in-open-source-software-projects
87
David Hu633f1f22022-01-30 22:16:23 +080088*Copyright (c) 2017-2022, Arm Limited. All rights reserved.*