Gyorgy Szing | 5e429cb | 2019-12-03 20:39:55 +0100 | [diff] [blame] | 1 | Contributing |
| 2 | ============ |
| 3 | |
| 4 | |
| 5 | Getting Started |
| 6 | --------------- |
| 7 | |
| 8 | - Make sure you have a Github account and you are logged on |
| 9 | `developer.trustedfirmware.org`_. |
| 10 | - Send an email to the |TFACMF-MAIL-LIST| about your work. This gives |
| 11 | everyone visibility of whether others are working on something similar. |
| 12 | - Clone the `TFACMF repository`_ on your own machine as suggested in the |
| 13 | :ref:`User Guide`. |
| 14 | - Create a local topic branch based on the `TFACMF repository`_ ``master`` |
| 15 | branch. |
| 16 | |
| 17 | Making Changes |
| 18 | -------------- |
| 19 | |
| 20 | - Make commits of logical units. See these general `Git guidelines`_ for |
| 21 | contributing to a project. |
| 22 | - Follow the :ref:`Coding Style & Guidelines`. |
| 23 | - Keep the commits on topic. If you need to fix another bug or make another |
| 24 | enhancement, please create a separate change. |
| 25 | - Avoid long commit series. If you do have a long series, consider whether |
| 26 | some commits should be squashed together or addressed in a separate topic. |
| 27 | - Make sure your commit messages are in the proper format. |
| 28 | - Where appropriate, please update the documentation. |
| 29 | |
| 30 | - Consider whether the :ref:`User Guide` or other in-source documentation |
| 31 | needs updating. |
| 32 | - Ensure that each changed file has the correct copyright and license |
| 33 | information. Files that entirely consist of contributions to this |
| 34 | project should have a copyright notice and BSD-3-Clause SPDX license |
| 35 | identifier of the form as shown in :ref:`license`. Files that contain |
| 36 | changes to imported Third Party IP files should retain their original |
| 37 | copyright and license notices. For significant contributions you may |
| 38 | add your own copyright notice in following format: |
| 39 | |
| 40 | :: |
| 41 | |
| 42 | Portions copyright (c) [XXXX-]YYYY, <OWNER>. All rights reserved. |
| 43 | |
| 44 | where XXXX is the year of first contribution (if different to YYYY) and |
| 45 | YYYY is the year of most recent contribution. <OWNER> is your name or |
| 46 | your company name. |
| 47 | - If you are submitting new files that you intend to be the technical |
| 48 | sub-maintainer for (for example, a new platform port), then also update |
| 49 | the :ref:`maintainers` file. |
| 50 | - For topics with multiple commits, you should make all documentation |
| 51 | changes (and nothing else) in the last commit of the series. Otherwise, |
| 52 | include the documentation changes within the single commit. |
| 53 | |
| 54 | - Please test your changes. |
| 55 | |
| 56 | Submitting Changes |
| 57 | ------------------ |
| 58 | |
| 59 | - Ensure that each commit in the series has at least one ``Signed-off-by:`` |
| 60 | line, using your real name and email address. The names in the |
| 61 | ``Signed-off-by:`` and ``Author:`` lines must match. If anyone else |
| 62 | contributes to the commit, they must also add their own ``Signed-off-by:`` |
| 63 | line. By adding this line the contributor certifies the contribution is made |
| 64 | under the terms of the |
| 65 | :download:`Developer Certificate of Origin <../dco.txt>`. |
| 66 | |
| 67 | More details may be found in the `Gerrit Signed-off-by Lines guidelines`_. |
| 68 | |
| 69 | - Ensure that each commit also has a unique ``Change-Id:`` line. If you have |
| 70 | cloned the repository with the "`Clone with commit-msg hook`" clone method |
| 71 | (as advised on the :ref:`User Guide`), this should already be the case. |
| 72 | |
| 73 | More details may be found in the `Gerrit Change-Ids documentation`_. |
| 74 | |
| 75 | - Submit your changes for review at https://review.trustedfirmware.org |
| 76 | targeting the ``integration`` branch. |
| 77 | |
| 78 | - The changes will then undergo further review and testing by the |
| 79 | :ref:`maintainers`. Any review comments will be made directly on your |
| 80 | patch. This may require you to do some rework. |
| 81 | |
| 82 | Refer to the `Gerrit Uploading Changes documentation`_ for more details. |
| 83 | |
| 84 | - When the changes are accepted, the :ref:`maintainers` will integrate them. |
| 85 | |
| 86 | - Typically, the :ref:`maintainers` will merge the changes into the |
| 87 | ``integration`` branch. |
| 88 | - If the changes are not based on a sufficiently-recent commit, or if they |
| 89 | cannot be automatically rebased, then the :ref:`maintainers` may rebase it |
| 90 | on the ``master`` branch or ask you to do so. |
| 91 | - After final integration testing, the changes will make their way into the |
| 92 | ``master`` branch. If a problem is found during integration, the merge |
| 93 | commit will be removed from the ``integration`` branch and the |
| 94 | :ref:`maintainers` will ask you to create a new patch set to resolve the |
| 95 | problem. |
| 96 | |
| 97 | -------------- |
| 98 | |
| 99 | .. _developer.trustedfirmware.org: https://developer.trustedfirmware.org |
| 100 | .. _Git guidelines: http://git-scm.com/book/ch5-2.html |
| 101 | .. _Gerrit Uploading Changes documentation: https://review.trustedfirmware.org/Documentation/user-upload.html |
| 102 | .. _Gerrit Signed-off-by Lines guidelines: https://review.trustedfirmware.org/Documentation/user-signedoffby.html |
| 103 | .. _Gerrit Change-Ids documentation: https://review.trustedfirmware.org/Documentation/user-changeid.html |
| 104 | |
| 105 | *Copyright (c) 2019-2020, Arm Limited and Contributors. All rights reserved.* |
| 106 | |
| 107 | SPDX-License-Identifier: BSD-3-Clause |