path: root/contributing.md
diff options
Diffstat (limited to 'contributing.md')
1 files changed, 114 insertions, 0 deletions
diff --git a/contributing.md b/contributing.md
new file mode 100644
index 0000000..2f46d7e
--- /dev/null
+++ b/contributing.md
@@ -0,0 +1,114 @@
+Contributing to ARM Trusted Firmware
+Before you start contributing to this project you must sign the ARM
+Contributor License Agreement (CLA).
+Individuals who want to contribute their own work must sign and return an
+Individual CLA. Companies that want to contribute must sign and return a
+Corporate CLA if their employees' intellectual property has been assigned to
+the employer. Copies of the CLAs are available on request from
+[cla-submissions@arm.com]. They will be available from http://www.arm.com in
+due course.
+For this project, ARM also requires the GitHub account name(s) associated with
+each individual contributor or the designated employees of corporate
+contributors. Only contributions originating from these accounts will be
+considered covered by the CLA. To avoid delay, you should provide the Github
+account name(s) at the same time as the signed CLA.
+ARM reserves the right to not accept a contribution. This may be for technical,
+commercial or legal reasons.
+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.
+ * For bugs, use the "bug" label in the [issue] and clearly describe the
+ problem, including steps to reproduce.
+ * For enhancements, use the "enhancement" label and clearly describe
+ how you intend to implement the change.
+ 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 re-used for the ARM Trusted
+ Firmware project.
+* 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 #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] or [Porting Guide] need updating.
+ * Changes that have a material impact on behavior or programming
+ interfaces should have an entry at the end of the "[Detailed changes
+ since last release]" section of the [Change Log]. Minor changes (e.g.
+ basic refactoring or typo fixes) do not need an entry.
+ * If this is your first contribution, you may add your name or your
+ company name to the [Acknowledgements] 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 the "[Running the software]" section of the
+ [User Guide] for more information.
+Submitting Changes
+* Ensure we have your signed CLA.
+* Push your local changes to your fork of the repository.
+* Submit a [pull request] to arm-trusted-firmware.
+ * The changes in the pull request will then undergo further review and
+ testing. 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, ARM will integrate them.
+ * To ensure a linear commit history, ARM will typically rebase the commits
+ locally before merging to the [arm-trusted-firmware] `master` branch. In
+ this case, the [pull request] will be closed rather than directly merged
+ on GitHub. If the rebase is not trivial, you may be asked to rebase the
+ commits yourself.
+- - - - - - - - - - - - - - - - - - - - - - - - - -
+_Copyright (c) 2013, ARM Limited and Contributors. All rights reserved._
+[Change Log]: ./docs/change-log.md
+[Detailed changes since last release]: ./docs/change-log.md#detailed-changes-since-last-release
+[User Guide]: ./docs/user-guide.md
+[Running the software]: ./docs/user-guide.md#running-the-software
+[Porting Guide]: ./docs/porting-guide.md
+[Acknowledgements]: ./acknowledgements.md "Contributor acknowledgements"
+[cla-submissions@arm.com]: mailto:cla-submissions@arm.com
+[GitHub account]: http://github.com/signup/free
+[Fork]: http://help.github.com/articles/fork-a-repo
+[issue]: http://github.com/ARM-software/arm-trusted-firmware/issues
+[pull request]: http://help.github.com/articles/using-pull-requests
+[automatically closed]: https://help.github.com/articles/closing-issues-via-commit-messages
+[Git guidelines]: http://git-scm.com/book/ch5-2.html
+[Linux coding style]: https://www.kernel.org/doc/Documentation/CodingStyle
+[arm-trusted-firmware]: https://github.com/ARM-software/arm-trusted-firmware