Shawn O. Pearce | e31d02c | 2009-12-08 12:21:37 -0800 | [diff] [blame] | 1 | Gerrit Code Review - Signed-off-by Lines |
| 2 | ========================================= |
Shawn O. Pearce | 7c85da4 | 2009-06-24 19:13:32 -0700 | [diff] [blame] | 3 | |
| 4 | [NOTE] |
| 5 | This document was literally taken from link:http://git.kernel.org/?p=linux/kernel/git/torvalds/linux-2.6.git;a=blob;f=Documentation/SubmittingPatches;hb=4e8a2372f9255a1464ef488ed925455f53fbdaa1[linux-2.6 Documentation/SubmittingPatches] |
| 6 | and is covered by the GPLv2. |
| 7 | |
| 8 | [[Signed-off-by]] |
| 9 | Signed-off-by: |
| 10 | -------------- |
| 11 | |
| 12 | To improve tracking of who did what, especially with patches that can |
| 13 | percolate to their final resting place in the kernel through several |
| 14 | layers of maintainers, we've introduced a "sign-off" procedure on |
| 15 | patches that are being emailed around. |
| 16 | |
| 17 | The sign-off is a simple line at the end of the explanation for the |
| 18 | patch, which certifies that you wrote it or otherwise have the right to |
| 19 | pass it on as a open-source patch. The rules are pretty simple: if you |
| 20 | can certify the below: |
| 21 | |
| 22 | ---- |
| 23 | Developer's Certificate of Origin 1.1 |
| 24 | |
| 25 | By making a contribution to this project, I certify that: |
| 26 | |
| 27 | (a) The contribution was created in whole or in part by me and I |
| 28 | have the right to submit it under the open source license |
| 29 | indicated in the file; or |
| 30 | |
| 31 | (b) The contribution is based upon previous work that, to the best |
| 32 | of my knowledge, is covered under an appropriate open source |
| 33 | license and I have the right under that license to submit that |
| 34 | work with modifications, whether created in whole or in part |
| 35 | by me, under the same open source license (unless I am |
| 36 | permitted to submit under a different license), as indicated |
| 37 | in the file; or |
| 38 | |
| 39 | (c) The contribution was provided directly to me by some other |
| 40 | person who certified (a), (b) or (c) and I have not modified |
| 41 | it. |
| 42 | |
| 43 | (d) I understand and agree that this project and the contribution |
| 44 | are public and that a record of the contribution (including all |
| 45 | personal information I submit with it, including my sign-off) is |
| 46 | maintained indefinitely and may be redistributed consistent with |
| 47 | this project or the open source license(s) involved. |
| 48 | ---- |
| 49 | |
| 50 | then you just add a line saying |
| 51 | |
| 52 | ---- |
| 53 | Signed-off-by: Random J Developer <random@developer.example.org> |
| 54 | ---- |
| 55 | |
| 56 | using your real name (sorry, no pseudonyms or anonymous contributions.) |
| 57 | |
| 58 | Some people also put extra tags at the end. They'll just be ignored for |
| 59 | now, but you can do this to mark internal company procedures or just |
Shawn O. Pearce | d607846 | 2009-11-02 10:37:01 -0800 | [diff] [blame] | 60 | point out some special detail about the sign-off. |
Shawn O. Pearce | 7c85da4 | 2009-06-24 19:13:32 -0700 | [diff] [blame] | 61 | |
| 62 | If you are a subsystem or branch maintainer, sometimes you need to slightly |
| 63 | modify patches you receive in order to merge them, because the code is not |
| 64 | exactly the same in your tree and the submitters'. If you stick strictly to |
| 65 | rule (c), you should ask the submitter to rediff, but this is a totally |
| 66 | counter-productive waste of time and energy. Rule (b) allows you to adjust |
| 67 | the code, but then it is very impolite to change one submitter's code and |
| 68 | make him endorse your bugs. To solve this problem, it is recommended that |
| 69 | you add a line between the last Signed-off-by header and yours, indicating |
| 70 | the nature of your changes. While there is nothing mandatory about this, it |
| 71 | seems like prepending the description with your mail and/or name, all |
| 72 | enclosed in square brackets, is noticeable enough to make it obvious that |
| 73 | you are responsible for last-minute changes. Example : |
| 74 | |
| 75 | ---- |
| 76 | Signed-off-by: Random J Developer <random@developer.example.org> |
| 77 | [lucky@maintainer.example.org: struct foo moved from foo.c to foo.h] |
| 78 | Signed-off-by: Lucky K Maintainer <lucky@maintainer.example.org> |
| 79 | ---- |
| 80 | |
| 81 | This practise is particularly helpful if you maintain a stable branch and |
| 82 | want at the same time to credit the author, track changes, merge the fix, |
| 83 | and protect the submitter from complaints. Note that under no circumstances |
| 84 | can you change the author's identity (the From header), as it is the one |
| 85 | which appears in the changelog. |
| 86 | |
| 87 | [[Acked-by]] |
| 88 | [[Cc]] |
| 89 | Acked-by:, Cc: |
| 90 | -------------- |
| 91 | |
| 92 | The Signed-off-by: tag indicates that the signer was involved in the |
| 93 | development of the patch, or that he/she was in the patch's delivery path. |
| 94 | |
| 95 | If a person was not directly involved in the preparation or handling of a |
| 96 | patch but wishes to signify and record their approval of it then they can |
| 97 | arrange to have an Acked-by: line added to the patch's changelog. |
| 98 | |
| 99 | Acked-by: is often used by the maintainer of the affected code when that |
| 100 | maintainer neither contributed to nor forwarded the patch. |
| 101 | |
| 102 | Acked-by: is not as formal as Signed-off-by:. It is a record that the acker |
| 103 | has at least reviewed the patch and has indicated acceptance. Hence patch |
| 104 | mergers will sometimes manually convert an acker's "yep, looks good to me" |
| 105 | into an Acked-by:. |
| 106 | |
| 107 | Acked-by: does not necessarily indicate acknowledgement of the entire patch. |
| 108 | For example, if a patch affects multiple subsystems and has an Acked-by: from |
| 109 | one subsystem maintainer then this usually indicates acknowledgement of just |
| 110 | the part which affects that maintainer's code. Judgement should be used here. |
| 111 | When in doubt people should refer to the original discussion in the mailing |
| 112 | list archives. |
| 113 | |
| 114 | If a person has had the opportunity to comment on a patch, but has not |
| 115 | provided such comments, you may optionally add a "Cc:" tag to the patch. |
| 116 | This is the only tag which might be added without an explicit action by the |
| 117 | person it names. This tag documents that potentially interested parties |
| 118 | have been included in the discussion |
| 119 | |
| 120 | |
| 121 | [[Reported-by]] |
| 122 | [[Tested-by]] |
| 123 | [[Reviewed-by]] |
| 124 | Reported-by:, Tested-by: and Reviewed-by: |
| 125 | ----------------------------------------- |
| 126 | |
| 127 | If this patch fixes a problem reported by somebody else, consider adding a |
| 128 | Reported-by: tag to credit the reporter for their contribution. Please |
| 129 | note that this tag should not be added without the reporter's permission, |
| 130 | especially if the problem was not reported in a public forum. That said, |
| 131 | if we diligently credit our bug reporters, they will, hopefully, be |
| 132 | inspired to help us again in the future. |
| 133 | |
| 134 | A Tested-by: tag indicates that the patch has been successfully tested (in |
| 135 | some environment) by the person named. This tag informs maintainers that |
| 136 | some testing has been performed, provides a means to locate testers for |
| 137 | future patches, and ensures credit for the testers. |
| 138 | |
| 139 | Reviewed-by:, instead, indicates that the patch has been reviewed and found |
| 140 | acceptable according to the Reviewer's Statement: |
| 141 | |
| 142 | ---- |
| 143 | Reviewer's statement of oversight |
| 144 | |
| 145 | By offering my Reviewed-by: tag, I state that: |
| 146 | |
| 147 | (a) I have carried out a technical review of this patch to |
| 148 | evaluate its appropriateness and readiness for inclusion into |
| 149 | the mainline kernel. |
| 150 | |
| 151 | (b) Any problems, concerns, or questions relating to the patch |
| 152 | have been communicated back to the submitter. I am satisfied |
| 153 | with the submitter's response to my comments. |
| 154 | |
| 155 | (c) While there may be things that could be improved with this |
| 156 | submission, I believe that it is, at this time, (1) a |
| 157 | worthwhile modification to the kernel, and (2) free of known |
| 158 | issues which would argue against its inclusion. |
| 159 | |
| 160 | (d) While I have reviewed the patch and believe it to be sound, I |
| 161 | do not (unless explicitly stated elsewhere) make any |
| 162 | warranties or guarantees that it will achieve its stated |
| 163 | purpose or function properly in any given situation. |
| 164 | ---- |
| 165 | |
| 166 | A Reviewed-by tag is a statement of opinion that the patch is an |
| 167 | appropriate modification of the kernel without any remaining serious |
| 168 | technical issues. Any interested reviewer (who has done the work) can |
| 169 | offer a Reviewed-by tag for a patch. This tag serves to give credit to |
| 170 | reviewers and to inform maintainers of the degree of review which has been |
| 171 | done on the patch. Reviewed-by: tags, when supplied by reviewers known to |
| 172 | understand the subject area and to perform thorough reviews, will normally |
| 173 | increase the likelihood of your patch getting into the kernel. |
| 174 | |
| 175 | GERRIT |
| 176 | ------ |
| 177 | Part of link:index.html[Gerrit Code Review] |