]> git.proxmox.com Git - ceph.git/blob - ceph/src/jaegertracing/jaeger-client-cpp/CONTRIBUTING.md
buildsys: switch source download to quincy
[ceph.git] / ceph / src / jaegertracing / jaeger-client-cpp / CONTRIBUTING.md
1 # How to Contribute to Jaeger
2
3 We'd love your help!
4
5 Jaeger is [Apache 2.0 licensed](LICENSE) and accepts contributions via GitHub
6 pull requests. This document outlines some of the conventions on development
7 workflow, commit message formatting, contact points and other resources to make
8 it easier to get your contribution accepted.
9
10 We gratefully welcome improvements to documentation as well as to code.
11
12 ## Making A Change
13
14 *Before making any significant changes, please [open an issue](https://github.com/jaegertracing/jaeger-client-cpp/issues).*
15 Discussing your proposed changes ahead of time will make the contribution process smooth for everyone.
16
17 Once we've discussed your changes and you've got your code ready, make sure
18 that tests are passing and open your pull request. Your pull request is most likely to be accepted if it:
19
20 * Includes tests for new functionality.
21 * Follows the code style guidelines.
22 * Has a [good commit message](https://chris.beams.io/posts/git-commit/):
23 * Separate subject from body with a blank line
24 * Limit the subject line to 50 characters
25 * Capitalize the subject line
26 * Do not end the subject line with a period
27 * Use the imperative mood in the subject line
28 * Wrap the body at 72 characters
29 * Use the body to explain _what_ and _why_ instead of _how_
30 * Each commit is signed by the author ([see below](#sign-your-work)).
31
32 ## License and Certificate of Origin
33
34 By contributing to this project you agree to license your contribution under the terms
35 of the [Apache License](LICENSE), and you agree to the [Developer Certificate of
36 Origin](https://developercertificate.org/) (DCO). This document was created
37 by the Linux Kernel community and is a simple statement that you, as a
38 contributor, have the legal right to make the contribution. See the [DCO](DCO)
39 file for details.
40
41 ```
42 /*
43 * Copyright (c) 2018, The Jaeger Authors
44 *
45 * Licensed under the Apache License, Version 2.0 (the "License"); you may not use this file except
46 * in compliance with the License. You may obtain a copy of the License at
47 *
48 * http://www.apache.org/licenses/LICENSE-2.0
49 *
50 * Unless required by applicable law or agreed to in writing, software distributed under the License
51 * is distributed on an "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express
52 * or implied. See the License for the specific language governing permissions and limitations under
53 * the License.
54 */
55 ```
56
57 ## Sign your work
58
59 The sign-off is a simple line at the end of the explanation for the
60 patch, which certifies that you wrote it or otherwise have the right to
61 pass it on as an open-source patch. The rules are pretty simple: if you
62 can certify the below (from
63 [developercertificate.org](http://developercertificate.org/)):
64
65 ```
66 Developer Certificate of Origin
67 Version 1.1
68
69 Copyright (C) 2004, 2006 The Linux Foundation and its contributors.
70 660 York Street, Suite 102,
71 San Francisco, CA 94110 USA
72
73 Everyone is permitted to copy and distribute verbatim copies of this
74 license document, but changing it is not allowed.
75
76
77 Developer's Certificate of Origin 1.1
78
79 By making a contribution to this project, I certify that:
80
81 (a) The contribution was created in whole or in part by me and I
82 have the right to submit it under the open source license
83 indicated in the file; or
84
85 (b) The contribution is based upon previous work that, to the best
86 of my knowledge, is covered under an appropriate open source
87 license and I have the right under that license to submit that
88 work with modifications, whether created in whole or in part
89 by me, under the same open source license (unless I am
90 permitted to submit under a different license), as indicated
91 in the file; or
92
93 (c) The contribution was provided directly to me by some other
94 person who certified (a), (b) or (c) and I have not modified
95 it.
96
97 (d) I understand and agree that this project and the contribution
98 are public and that a record of the contribution (including all
99 personal information I submit with it, including my sign-off) is
100 maintained indefinitely and may be redistributed consistent with
101 this project or the open source license(s) involved.
102 ```
103
104 then you just add a line to every git commit message:
105
106 Signed-off-by: Joe Smith <joe@gmail.com>
107
108 using your real name (sorry, no pseudonyms or anonymous contributions.)
109
110 You can add the sign off when creating the git commit via `git commit -s`.
111
112 If you want this to be automatic you can set up some aliases:
113
114 ```
115 git config --add alias.amend "commit -s --amend"
116 git config --add alias.c "commit -s"
117 ```