aboutsummaryrefslogtreecommitdiffhomepage
path: root/CONTRIBUTING.md
diff options
context:
space:
mode:
authorGravatar Nicolas "Pixel" Noble <pixel@nobis-crew.org>2015-02-21 19:34:19 +0100
committerGravatar Nicolas "Pixel" Noble <pixel@nobis-crew.org>2015-02-21 19:34:19 +0100
commitb77cee9431068d8bc95287403dc4c31f719ea92d (patch)
tree0f4b0cc5104bcc32c8af6380140fc0c32555f8fa /CONTRIBUTING.md
parentc3555ce626dde857463d367c75d2dfc173229d0f (diff)
Adding a CONTRIBUTING file.
Diffstat (limited to 'CONTRIBUTING.md')
-rw-r--r--CONTRIBUTING.md53
1 files changed, 53 insertions, 0 deletions
diff --git a/CONTRIBUTING.md b/CONTRIBUTING.md
new file mode 100644
index 0000000000..57d176f663
--- /dev/null
+++ b/CONTRIBUTING.md
@@ -0,0 +1,53 @@
+# How to contribute
+
+We definitely welcome patches and contribution to grpc! Here is some guideline
+and information about how to do so.
+
+## Getting started
+
+### Legal requirements
+
+In order to protect both you and ourselves, you will need to sign the
+[Contributor License Agreement](https://cla.developers.google.com/clas).
+
+### Technical requirements
+
+You will need several tools to work with this repository. In addition to all of
+the packages described in the [INSTALL](INSTALL) file, you will also need
+python, and the mako template renderer. To install the latter, using pip, one
+should simply be able to do `pip install mako`.
+
+In order to run all of the tests we provide, you will need valgrind and clang.
+More specifically, under debian, you will need the package libc++-dev to
+properly run all the tests.
+
+If you are planning to work on any of the languages other than C and C++, you
+will also need their appropriate development environments.
+
+If you want to work under Windows, we recommend you to use Visual Studio 2013.
+The [Community or Express editions](http://www.visualstudio.com/en-us/downloads/download-visual-studio-vs.aspx)
+are free and suitable for developing with grpc. Note however that our test
+environment and tools are available for Unix environments only at the moment.
+
+## Testing your changes
+
+We provide a tool to help you run our suite of tests in various environments.
+In order to run most of the available tests, one would need to run:
+
+`./tools/run_tests/run_tests.py`
+
+If you want to run all the possible tests for all possible languages, do this:
+
+`./tools/run_tests/run_tests.py -lall -call`
+
+## Adding or removing source code
+
+Each language uses its own build system to work. Currently, the root's Makefile
+and the Visual Studio project files are building the C and C++ source code only
+at the moment. In order to ease the maintenance of these files, we have a
+template system. Please do not contribute manual changes to any of the generated
+files. Instead, modify the template files, or the build.json file, and
+re-generate the project files using the following command:
+
+`./tools/buildgen/generate_projects.sh`
+