aboutsummaryrefslogtreecommitdiff
path: root/contributing.rst
blob: af413a65c8186e6fb18f3d529c27648e0de2c771 (plain)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
Contributing to Trusted Firmware-A Tests
========================================

Getting Started
---------------

-  Make sure you have a Github account and you are logged on
   `developer.trustedfirmware.org`_.

   For any non-trivial piece of work, we advise you to create a `task`_ if one
   does not already exist. This gives everyone visibility of whether others are
   working on something similar.

   Please select the `Trusted Firmware-A Tests` tag in the task creation form.

-  Clone the repository from the Gerrit server. The project details may be found
   on the `tf-a-tests project page`_. We recommend the "`Clone with commit-msg
   hook`" clone method, which will setup the git commit hook that automatically
   generates and inserts appropriate `Change-Id:` lines in your commit messages.

-  Base you work on the latest ``master`` branch.

Making Changes
--------------

-  Make commits of logical units. See these general `Git guidelines`_ for
   contributing to a project.

-  Follow the `Linux coding style`_; this style is enforced for the TF-A Tests
   project (style errors only, not warnings).

   Use the ``checkpatch.pl`` script provided with the Linux source tree. A
   Makefile target is provided for convenience (see section `Checking source
   code style`_ in the User Guide).

-  Keep the commits on topic. If you need to fix another bug or make another
   enhancement, please address it on a separate patch series.

-  Avoid long commit series. If you do have a long series, consider whether
   some commits should be squashed together or addressed in a separate series.

-  Where appropriate, please update the documentation.

-  Ensure that each changed file has the correct copyright and license
   information.

-  Please test your changes. As a minimum, ensure that all standard tests pass
   on the Foundation FVP. See `Running the TF-A Tests`_ for more information.

Submitting Changes
------------------

-  Ensure that each commit in the series has at least one ``Signed-off-by:``
   line, using your real name and email address. If anyone else contributes to
   the commit, they must also add their own ``Signed-off-by:`` line.

   By adding this line the contributor certifies the contribution is made under
   the terms of the `Developer Certificate of Origin (DCO)`_.

   More details may be found in the `Gerrit Signed-off-by Lines guidelines`_.

-  Ensure that each commit also has a unique ``Change-Id:`` line. If you have
   cloned the repository with the "`Clone with commit-msg hook`" clone method
   (as advised in section `Getting started`_), this should already be the case.

   More details may be found in the `Gerrit Change-Ids documentation`_.

-  Submit your patches to the Gerrit review server. Please choose a Gerrit topic
   for your patch series - that is, a short tag associated with all of the
   changes in the same group, such as the local topic branch name.

   Refer to the `Gerrit documentation`_ for more details.

-  Once the patch has had sufficient peer review and has passed the checks run
   by the continuous integration system, the `maintainers`_ will merge your
   patch.

--------------

*Copyright (c) 2018, Arm Limited. All rights reserved.*

.. _maintainers: maintainers.rst
.. _license.rst: license.rst
.. _Developer Certificate of Origin (DCO): dco.txt
.. _Checking source code style: docs/user-guide.rst#checking-source-code-style
.. _Running the TF-A Tests: docs/user-guide.rst#running-the-tf-a-tests

.. _Git guidelines: http://git-scm.com/book/ch5-2.html
.. _Linux coding style: https://www.kernel.org/doc/html/latest/process/coding-style.html

.. _developer.trustedfirmware.org: https://developer.trustedfirmware.org
.. _task: https://developer.trustedfirmware.org/maniphest/query/open/
.. _tf-a-tests project page: https://review.trustedfirmware.org/#/admin/projects/TF-A/tf-a-tests
.. _Gerrit documentation: https://review.trustedfirmware.org/Documentation/user-upload.html
.. _Gerrit Signed-off-by Lines guidelines: https://review.trustedfirmware.org/Documentation/user-signedoffby.html
.. _Gerrit Change-Ids documentation: https://review.trustedfirmware.org/Documentation/user-changeid.html