Skip to content
contributing.md 4.21 KiB
Newer Older
Contributing to SCP-firmware
============================

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

- Make sure you have a [GitHub account](https://github.com/signup/free).
- [Fork](https://help.github.com/articles/fork-a-repo)
  [SCP-firmware](https://github.com/ARM-software/SCP-firmware) on Github.
- Clone the fork to your own machine.
- Create a local topic branch based on the
  [SCP-firmware](https://github.com/ARM-software/SCP-firmware) `master` branch.

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

- Make commits of logical units. See these general
  [Git guidelines](http://git-scm.com/book/ch5-2.html) for contributing to a
  project.
- Follow the project [coding style](./doc/code_style.md) and
  [coding rules](./doc/code_rules.md).
- Keep the commits on topic. If you need to fix another bug or make another
  enhancement, please 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.
- Where appropriate, please update the documentation.
- 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.md](./license.md)
    - Files that contain changes to imported Third Party IP files should retain
      their original copyright and license notices.
- 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](./maintainers.md) file.
- For topics with multiple commits, it is recommended that you make all the
  documentation changes (and nothing else) in the last commit of the series.
- Please test your changes. As a minimum, ensure you can do an AP boot.

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)](./dco.txt).
- Push your local changes to your fork of the repository.
- Submit a [pull request](https://help.github.com/articles/using-pull-requests)
  to the [SCP-firmware](https://github.com/ARM-software/SCP-firmware) `master`
  branch.
    - The changes in the
      [pull request](https://help.github.com/articles/using-pull-requests) will
      then undergo further review and testing by the
      [maintainers](./maintainers.md). Any review comments will be made as
      comments on the [pull request](https://help.github.com/articles/using-pull-requests).
      This may require you to do some rework.
- When the changes are accepted, the [maintainers](./maintainers.md) will
  integrate them.

    - Typically, the [maintainers](./maintainers.md) will merge the
      [pull request](https://help.github.com/articles/using-pull-requests) into
      the 'master' branch within the Github UI by rebasing and then merging.
    - Please avoid creating merge commits in the
      [pull request](https://help.github.com/articles/using-pull-requests)
      itself.
    - If the [pull request](https://help.github.com/articles/using-pull-requests)
      is not based on a recent commit, the [maintainers](./maintainers.md) may
      rebase it onto the `master` branch first, or ask you to do this.
    - If the [pull request](https://help.github.com/articles/using-pull-requests)
      cannot be automatically merged, the [maintainers](./maintainers.md) will
      ask you to rebase it onto the `master` branch.
    - If after merging the [maintainers](./maintainers.md) find any issues, they
      may remove the commits and 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) 2018-2019, Arm Limited and Contributors. All rights reserved.*