CONTRIBUTING.md: initial commit

Change-Id: Ic9a678d890e622628db4677cce93d4f8be39003f
Reviewed-on: https://go-review.googlesource.com/127336
Reviewed-by: Damien Neil <dneil@google.com>
diff --git a/CONTRIBUTING.md b/CONTRIBUTING.md
new file mode 100644
index 0000000..4d12ab3
--- /dev/null
+++ b/CONTRIBUTING.md
@@ -0,0 +1,72 @@
+# Contributing to Go Protocol Buffers
+
+Go protocol buffers is an open source project and accepts contributions.
+The source of truth for this repository is at
+[go.googlesource.com/protobuf](https://go.googlesource.com/protobuf).
+The code review tool used is
+[Gerrit Code Review](https://www.gerritcodereview.com/).
+
+
+## Becoming a contributor
+
+The first step is to configure your environment.
+Please follow the steps outlined in
+[Becoming a contributor](https://golang.org/doc/contribute.html#contributor)
+as the setup for contributing to the `protobuf` project is identical
+to that for contributing to the `go` project.
+
+
+## Before contributing code
+
+The project welcomes submissions, but to make sure things are well coordinated
+we ask that everyone discuss any significant changes before starting work.
+Best practice is to connect your work to the
+[issue tracker](https://github.com/golang/protobuf/issues),
+either by filing a new issue or by claiming an existing issue.
+Issues related to the new API should have a "APIv2:" prefix in the title.
+
+
+## Sending a change via Gerrit
+
+The `protobuf` project performs development in Gerrit.
+Unfortunately, we are not currently able to accept GitHub pull requests.
+Below are the steps to send a change using Gerrit.
+
+
+**Step 1:** Clone the Go source code:
+```
+git clone https://go.googlesource.com/protobuf
+```
+
+**Step 2:** Prepare changes in a new branch, created from the `master` branch.
+To commit the changes, use `git codereview change`;
+that will create or amend a single commit in the branch.
+
+```
+$ git checkout -b mybranch
+$ [edit files...]
+$ git add [files...]
+$ git codereview change   # create commit in the branch
+$ [edit again...]
+$ git add [files...]
+$ git codereview change   # amend the existing commit with new changes
+$ [etc.]
+```
+
+**Step 3:** Send the changes for review to Gerrit using `git codereview mail`.
+```
+$ git codereview mail     # send changes to Gerrit
+```
+
+**Step 4:** After a review, there may be changes that are required.
+Do so by applying changes to the same commit and mail them to Gerrit again:
+```
+$ [edit files...]
+$ git add [files...]
+$ git codereview change   # update same commit
+$ git codereview mail     # send to Gerrit again
+```
+
+The [Contribution Guidelines](https://golang.org/doc/contribute.html) for the
+Go project provides additional details that are also relevant to
+contributing to the Go `protobuf` project.
diff --git a/README.md b/README.md
index abf27ad..153e8d2 100644
--- a/README.md
+++ b/README.md
@@ -17,6 +17,10 @@
 * [Go Protocol Buffer API Improvements](https://goo.gl/wwiPVx)
 * [Go Reflection API for Protocol Buffers](https://goo.gl/96gGnE)
 
+# Contributing
+
+We appreciate community contributions. See [CONTRIBUTING.md](CONTRIBUTING.md).
+
 # Reporting Issues
 
 Issues regarding the new API can be filed at