From 0a406eab94186ef6bd96c3f7e74fe7d86771fb30 Mon Sep 17 00:00:00 2001 From: Tatsuhiro Tsujikawa Date: Wed, 26 Nov 2014 23:43:20 +0900 Subject: [PATCH] Add contribution guidelines --- .gitignore | 1 + README.rst | 4 +++ configure.ac | 1 + doc/Makefile.am | 1 + doc/contribute.rst.in | 1 + doc/sources/contribute.rst | 57 ++++++++++++++++++++++++++++++++++++++ doc/sources/index.rst | 1 + 7 files changed, 66 insertions(+) create mode 100644 doc/contribute.rst.in create mode 100644 doc/sources/contribute.rst diff --git a/.gitignore b/.gitignore index f5f131d4..de0042b1 100644 --- a/.gitignore +++ b/.gitignore @@ -43,6 +43,7 @@ doc/python-apiref.rst doc/building-android-binary.rst doc/asio_http2.h.rst doc/libnghttp2_asio.rst +doc/contribute.rst python/setup.py python/dist python/MANIFEST diff --git a/README.rst b/README.rst index f72975af..580e8e2d 100644 --- a/README.rst +++ b/README.rst @@ -1150,3 +1150,7 @@ to hand over that patch/code to us. We will credit you for your changes as far as possible, to give credit but also to keep a trace back to who made what changes. Please always provide us with your full real name when contributing! + +See `Contribution Guidelines +`_ for more +details. diff --git a/configure.ac b/configure.ac index 0a710435..7d0808a7 100644 --- a/configure.ac +++ b/configure.ac @@ -597,6 +597,7 @@ AC_CONFIG_FILES([ doc/nghttp2.h.rst doc/nghttp2ver.h.rst doc/asio_http2.h.rst + doc/contribute.rst contrib/Makefile ]) AC_OUTPUT diff --git a/doc/Makefile.am b/doc/Makefile.am index 6aa0123b..544f42e3 100644 --- a/doc/Makefile.am +++ b/doc/Makefile.am @@ -40,6 +40,7 @@ EXTRA_DIST = \ sources/libnghttp2_asio.rst \ sources/python-apiref.rst \ sources/building-android-binary.rst \ + sources/contribute.rst \ _themes/sphinx_rtd_theme/footer.html \ _themes/sphinx_rtd_theme/theme.conf \ _themes/sphinx_rtd_theme/layout_old.html \ diff --git a/doc/contribute.rst.in b/doc/contribute.rst.in new file mode 100644 index 00000000..6a229d42 --- /dev/null +++ b/doc/contribute.rst.in @@ -0,0 +1 @@ +.. include:: @top_srcdir@/doc/sources/contribute.rst diff --git a/doc/sources/contribute.rst b/doc/sources/contribute.rst new file mode 100644 index 00000000..14a11e2e --- /dev/null +++ b/doc/sources/contribute.rst @@ -0,0 +1,57 @@ +Contribution Guidelines +======================= + +[This text was composed based on 1.2. License section of curl/libcurl +project.] + +When contributing with code, you agree to put your changes and new +code under the same license nghttp2 is already using unless stated and +agreed otherwise. + +When changing existing source code, you do not alter the copyright of +the original file(s). The copyright will still be owned by the +original creator(s) or those who have been assigned copyright by the +original author(s). + +By submitting a patch to the nghttp2 project, you are assumed to have +the right to the code and to be allowed by your employer or whatever +to hand over that patch/code to us. We will credit you for your +changes as far as possible, to give credit but also to keep a trace +back to who made what changes. Please always provide us with your +full real name when contributing! + +Coding style +------------ + +We use clang-format to format source code consistently. The +clang-format configuration file .clang-format is located at the root +directory. Since clang-format produces slightly different results +between versions, we currently use clang-format which comes with +clang-3.5. + +To detect any violation to the coding style, we recommend to setup git +pre-commit hook to check coding style of the changes you introduced. +The pre-commit file is located at the root directory. Copy it under +.git/hooks and make sure that it is executable. The pre-commit script +uses clang-format-diff.py to detect any style errors. If it is not in +your PATH or it exists under different name (e.g., +clang-format-diff-3.5 in debian), either add it to PATH variable or +add git option ``clangformatdiff.binary`` to point to the script. + +For emacs users, integrating clang-format to emacs is very easy. +clang-format.el should come with clang distribution. If it is not +found, download it from `here +`_. +And add these lines to your .emacs file: + +.. code-block:: lisp + + ;; From + ;; https://code.google.com/p/chromium/wiki/Emacs#Use_Google's_C++_style! + (load "//clang-format.el") + (add-hook 'c-mode-common-hook + (function (lambda () (local-set-key (kbd "TAB") + 'clang-format-region)))) + +You can find other editor integration in +http://clang.llvm.org/docs/ClangFormat.html. diff --git a/doc/sources/index.rst b/doc/sources/index.rst index 70d61622..fc753a20 100644 --- a/doc/sources/index.rst +++ b/doc/sources/index.rst @@ -17,6 +17,7 @@ Contents: :maxdepth: 2 package_README + contribute building-android-binary tutorial-client tutorial-server