| Contributing to Trusted Firmware-A |
| ================================== |
| |
| Getting Started |
| --------------- |
| |
| - Make sure you have a `GitHub account`_. |
| - Create an `issue`_ for your work if one does not already exist. This gives |
| everyone visibility of whether others are working on something similar. Arm |
| licensees may contact Arm directly via their partner managers instead if |
| they prefer. |
| |
| - Note that the `issue`_ tracker for this project is in a separate |
| `issue tracking repository`_. Please follow the guidelines in that |
| repository. |
| - If you intend to include Third Party IP in your contribution, please |
| raise a separate `issue`_ for this and ensure that the changes that |
| include Third Party IP are made on a separate topic branch. |
| |
| - `Fork`_ `arm-trusted-firmware`_ on GitHub. |
| - Clone the fork to your own machine. |
| - Create a local topic branch based on the `arm-trusted-firmware`_ ``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 |
| 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 2 in the |
| `User Guide`_). |
| |
| - Keep the commits on topic. If you need to fix another bug or make another |
| enhancement, please create a separate `issue`_ and address it on a separate |
| topic branch. |
| - Avoid long commit series. If you do have a long series, consider whether |
| some commits should be squashed together or addressed in a separate topic. |
| - Make sure your commit messages are in the proper format. If a commit fixes |
| a GitHub `issue`_, include a reference (e.g. |
| "fixes arm-software/tf-issues#45"); this ensures the `issue`_ is |
| `automatically closed`_ when merged into the `arm-trusted-firmware`_ ``master`` |
| branch. |
| - Where appropriate, please update the documentation. |
| |
| - Consider whether the `User Guide`_, `Porting Guide`_, `Firmware Design`_ or |
| other in-source documentation needs updating. |
| - Ensure that each changed file has the correct copyright and license |
| information. Files that entirely consist of contributions to this |
| project should have a copyright notice and BSD-3-Clause SPDX license |
| identifier of the form as shown in `license.rst`_. Files that contain |
| changes to imported Third Party IP files should retain their original |
| copyright and license notices. For significant contributions you may |
| add your own copyright notice in following format: |
| |
| :: |
| |
| Portions copyright (c) [XXXX-]YYYY, <OWNER>. All rights reserved. |
| |
| where XXXX is the year of first contribution (if different to YYYY) and |
| YYYY is the year of most recent contribution. <OWNER> is your name or |
| your company name. |
| - If you are submitting new files that you intend to be the technical |
| sub-maintainer for (for example, a new platform port), then also update |
| the `Maintainers`_ file. |
| - For topics with multiple commits, you should make all documentation |
| changes (and nothing else) in the last commit of the series. Otherwise, |
| include the documentation changes within the single commit. |
| |
| - Please test your changes. As a minimum, ensure UEFI boots to the shell on |
| the Foundation FVP. See `Running the software on FVP`_ 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. The names in the |
| ``Signed-off-by:`` and ``Author:`` lines must match. 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)`_. |
| - Push your local changes to your fork of the repository. |
| - Submit a `pull request`_ to the `arm-trusted-firmware`_ ``integration`` branch. |
| |
| - The changes in the `pull request`_ will then undergo further review and |
| testing by the `Maintainers`_. Any review comments will be made as |
| comments on the `pull request`_. This may require you to do some rework. |
| |
| - When the changes are accepted, the `Maintainers`_ will integrate them. |
| |
| - Typically, the `Maintainers`_ will merge the `pull request`_ into the |
| ``integration`` branch within the GitHub UI, creating a merge commit. |
| - Please avoid creating merge commits in the `pull request`_ itself. |
| - If the `pull request`_ is not based on a recent commit, the `Maintainers`_ |
| may rebase it onto the ``master`` branch first, or ask you to do this. |
| - If the `pull request`_ cannot be automatically merged, the `Maintainers`_ |
| will ask you to rebase it onto the ``master`` branch. |
| - After final integration testing, the `Maintainers`_ will push your merge |
| commit to the ``master`` branch. If a problem is found during integration, |
| the merge commit will be removed from the ``integration`` branch and the |
| `Maintainers`_ will ask you to create a new pull request to resolve the |
| problem. |
| - Please do not delete your topic branch until it is safely merged into |
| the ``master`` branch. |
| |
| -------------- |
| |
| *Copyright (c) 2013-2018, Arm Limited and Contributors. All rights reserved.* |
| |
| .. _GitHub account: https://github.com/signup/free |
| .. _issue: https://github.com/ARM-software/tf-issues/issues |
| .. _issue tracking repository: https://github.com/ARM-software/tf-issues |
| .. _Fork: https://help.github.com/articles/fork-a-repo |
| .. _arm-trusted-firmware: https://github.com/ARM-software/arm-trusted-firmware |
| .. _Git guidelines: http://git-scm.com/book/ch5-2.html |
| .. _Linux coding style: https://github.com/torvalds/linux/blob/master/Documentation/process/coding-style.rst |
| .. _User Guide: ./docs/user-guide.rst |
| .. _automatically closed: https://help.github.com/articles/closing-issues-via-commit-messages |
| .. _Porting Guide: ./docs/porting-guide.rst |
| .. _Firmware Design: ./docs/firmware-design.rst |
| .. _license.rst: ./license.rst |
| .. _Acknowledgements: ./acknowledgements.rst |
| .. _Maintainers: ./maintainers.rst |
| .. _Running the software on FVP: ./docs/user-guide.rst#user-content-running-the-software-on-fvp |
| .. _Developer Certificate of Origin (DCO): ./dco.txt |
| .. _pull request: https://help.github.com/articles/using-pull-requests |