blob: b9598686199e4123b2a110c327eefd570d5e4c4b [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>`_.
Ashutosh Singh429ceec2019-05-01 16:14:10 +010012- Refer to the `Roadmap
13 <https://developer.trustedfirmware.org/w/tf_m/planning>`_ or send a mail to
David Hue0dbac02022-06-09 16:00:18 +080014 the `TF-M mailing list <mailing_list_>`_ to get the latest status and plan of
15 TF-M.
16- Follow :doc:`Design Proposal Guideline </contributing/tfm_design_proposal_guideline>`
17 to propose your design.
18- Follow guidelines below to prepare the patch:
Ashutosh Singh429ceec2019-05-01 16:14:10 +010019
20 - Clone the TF-M code on your own machine from `TF-M git repository
Minos Galanakis0f39fa52020-06-08 16:53:53 +010021 <https://git.trustedfirmware.org/TF-M/trusted-firmware-m.git>`_.
Anton Komlev3356ba32022-03-31 22:02:11 +010022 - Follow the :doc:`TF-M getting started </getting_started/tfm_getting_started>`,
Anton Komlev0dbe8f12022-06-17 16:48:12 +010023 :doc:`Build Instructions </building/tfm_build_instruction>`
Anton Komlev3356ba32022-03-31 22:02:11 +010024 :doc:`Coding Guide </contributing/coding_guide>` for the TF-M project.
Ashutosh Singh429ceec2019-05-01 16:14:10 +010025 - Make your changes in logical chunks to help reviewers. Each commit should
26 be a separate review and either work properly or be squashed after the
27 review and before merging.
David Hue0dbac02022-06-09 16:00:18 +080028 - Follow :doc:`Documentation Contribution Guidelines </contributing/doc_guidelines>`
29 to update documentation in ``docs`` folder if needed.
Ashutosh Singh429ceec2019-05-01 16:14:10 +010030 - Test your changes and add details to the commit description.
David Hue0dbac02022-06-09 16:00:18 +080031 - The code is accepted under :doc:`Developer Certificate of Origin (DCO) </contributing/dco>`.
32 Use ``git commit -s`` to add a ``Signed-off-by`` trailer at the end of the
33 commit log message.
34 See `git-commit <https://git-scm.com/docs/git-commit>`_ for details.
Anton Komleva36614c2023-02-27 12:18:19 +000035 - Ensure that each changed file has the correct copyright and license
36 information. Files that entirely consist of contributions to this project
37 should have a copyright notice and BSD-3-Clause SPDX license identifier of
38 the form as shown in :doc:`lic`. Files that contain changes to imported
39 Third Party IP files should retain their original copyright and license
40 notices.
41
42 Contributors can add the following copyright note, (whilst) it is suggested
43 to update copyright note only for *major*, non-trivial changes.
44
45 ::
46
47 Copyright (c) XXXX[-YYYY], <OWNER>. All rights reserved.
48
49 where XXXX is the year of first contribution and YYYY is the optional year
50 of most recent contribution. <OWNER> is your or your company name.
51
David Hue0dbac02022-06-09 16:00:18 +080052 - Add a `Change-Id <https://review.trustedfirmware.org/Documentation/user-changeid.html>`_
53 to the commit message, which can be generated any way you like (e.g. from
54 the SHA of the commit).
55 It is suggested to clone repositories with commit-msg hook. The commit-msg
56 hook attaches Change-Id automatically.
57 Take `trusted-firmware-m <https://review.trustedfirmware.org/admin/repos/TF-M/trusted-firmware-m>`_
58 as an example.
Ashutosh Singh429ceec2019-05-01 16:14:10 +010059
David Hue0dbac02022-06-09 16:00:18 +080060- Submit your patch for review.
61 Refer to `Uploading Changes <https://review.trustedfirmware.org/Documentation/user-upload.html>`_
62 for details of uploading patch.
63- Add relevant :doc:`code owner(s) </contributing/maintainers>` for reviewing
Galanakis, Minos0c1ad782019-11-08 11:28:40 +000064 the patch.
Ashutosh Singh429ceec2019-05-01 16:14:10 +010065- You may be asked to provide further details or make additional changes.
David Hue0dbac02022-06-09 16:00:18 +080066- You can discuss further with code owner(s) and maintainer(s) directly via
67 `TF-M mailing list <mailing_list_>`_ if necessary.
Anton Komlevf6da3292023-05-17 17:42:40 +010068- If multiple patches are linked in a chain then code owners and maintainers
69 should review and merge individual patches when they are ready, rather than
70 waiting for the entire chain to be reviewed. If multiple patches are intended
71 to be merged together then authors shall use topics or explicitly mention
72 that in the commit message.
David Hue0dbac02022-06-09 16:00:18 +080073- Click ``Allow-CI +1`` button on Gerrit page to run CI to validate your patch.
74 Your patch shall pass CI successfully before being merged. Code owner(s) and
75 maintainer(s) may ask for additional test.
76- Once the change is approved by code owners, the patch will be merged by the
Ashutosh Singh429ceec2019-05-01 16:14:10 +010077 maintainer.
David Hue0dbac02022-06-09 16:00:18 +080078
79.. _mailing_list: tf-m@lists.trustedfirmware.org
Gyorgy Szingdb9783c2019-04-17 21:08:48 +020080
81--------------
82
David Hu633f1f22022-01-30 22:16:23 +080083*Copyright (c) 2017-2022, Arm Limited. All rights reserved.*