about summary refs log tree commit diff
path: root/CONTRIBUTING.md
diff options
context:
space:
mode:
Diffstat (limited to 'CONTRIBUTING.md')
-rw-r--r--CONTRIBUTING.md55
1 files changed, 55 insertions, 0 deletions
diff --git a/CONTRIBUTING.md b/CONTRIBUTING.md
new file mode 100644
index 000000000000..33497a37985f
--- /dev/null
+++ b/CONTRIBUTING.md
@@ -0,0 +1,55 @@
+# How to become a contributor and submit your own code
+
+## Contributor License Agreements
+
+We'd love to accept your patches! Before we can take them, we
+have to jump a couple of legal hurdles.
+
+Please fill out either the individual or corporate Contributor License Agreement
+(CLA).
+
+  * If you are an individual writing original source code and you're sure you
+    own the intellectual property, then you'll need to sign an
+    [individual CLA](https://developers.google.com/open-source/cla/individual).
+  * If you work for a company that wants to allow you to contribute your work,
+    then you'll need to sign a
+    [corporate CLA](https://developers.google.com/open-source/cla/corporate).
+
+Follow either of the two links above to access the appropriate CLA and
+instructions for how to sign and return it. Once we receive it, we'll be able to
+accept your pull requests.
+
+## Contributing A Patch
+
+1. Submit an issue describing your proposed change to the repo in question.
+1. The repo owner will respond to your issue promptly.
+1. If your proposed change is accepted, and you haven't already done so, sign a
+   Contributor License Agreement (see details above).
+1. Fork the desired repo, develop and test your code changes.
+1. Ensure that your code adheres to the existing style in the sample to which
+   you are contributing.
+1. Ensure that your code has an appropriate set of unit tests which all pass.
+1. Submit a pull request.
+
+## Style
+
+This repository follow the [Google C++ Style Guide](
+https://google.github.io/styleguide/cppguide.html).
+Please make sure your contributions adhere to the style guide.
+
+### Formatting
+
+The code in this project is formatted with `clang-format(1)`, and our CI builds
+will check that the code matches the format generated by this tool before
+accepting a pull request. Please configure your editor or IDE to use the Google
+style for indentation and other whitespace. If you need to reformat one or more
+files, you can simply run `clang-format` manually:
+
+```console
+$ clang-format -i <file>....
+```
+
+If you need to reformat one of the files to match the Google style.  Please be
+advised that `clang-format` has been known to generate slightly different
+formatting in different versions. We use version 7; use the same version if you
+run into problems.