Linux kernel mirror (for testing) git.kernel.org/pub/scm/linux/kernel/git/torvalds/linux.git
kernel os linux

docs: Clarify the usage and sign-off requirements for Co-developed-by

The documentation for Co-developed-by is a bit light on details, e.g. it
doesn't explicitly state that:

- Multiple Co-developed-by tags are perfectly acceptable
- Co-developed-by and Signed-off-by must be paired together
- SOB ordering should still follow standard sign-off procedure

Lack of explicit direction has resulted in developers taking a variety
of approaches, often lacking any intent whatsoever, e.g. scattering SOBs
willy-nilly, collecting them all at the end or the beginning, etc...
Tweak the wording to make it clear that multiple co-authors are allowed,
and document the expectation that standard sign-off procedures are to
be followed.

The use of "original author" has also led to confusion as many patches
don't have just one "original" author, e.g. when multiple developers
are involved from the genesis of the patch. Remove all usage of
"original" and instead call out that Co-developed-by is simply a way to
provide attribution in addition to the From tag, i.e. neither tag is
intended to imply anything with regard to who did what.

Provide examples to (hopefully) eliminate any ambiguity.

Cc: Tobin C. Harding <me@tobin.cc>
Cc: Thomas Gleixner <tglx@linutronix.de>
Cc: Jani Nikula <jani.nikula@linux.intel.com>
Cc: Jorge Ramirez-Ortiz <jorge.ramirez-ortiz@linaro.org>
Cc: Jonathan Cameron <jic23@kernel.org>
Cc: Joe Perches <joe@perches.com>
Cc: Greg Kroah-Hartman <gregkh@linuxfoundation.org>
Cc: Niklas Cassel <niklas.cassel@linaro.org>
Cc: Jonathan Corbet <corbet@lwn.net>
Signed-off-by: Sean Christopherson <sean.j.christopherson@intel.com>
Signed-off-by: Jonathan Corbet <corbet@lwn.net>

authored by

Sean Christopherson and committed by
Jonathan Corbet
24a2bb90 224b1e86

+41 -9
+6 -4
Documentation/process/5.Posting.rst
··· 216 216 which can be found in :ref:`Documentation/process/submitting-patches.rst <submittingpatches>` 217 217 Code without a proper signoff cannot be merged into the mainline. 218 218 219 - - Co-developed-by: states that the patch was also created by another developer 220 - along with the original author. This is useful at times when multiple 221 - people work on a single patch. Note, this person also needs to have a 222 - Signed-off-by: line in the patch as well. 219 + - Co-developed-by: states that the patch was co-created by several developers; 220 + it is a used to give attribution to co-authors (in addition to the author 221 + attributed by the From: tag) when multiple people work on a single patch. 222 + Every Co-developed-by: must be immediately followed by a Signed-off-by: of 223 + the associated co-author. Details and examples can be found in 224 + :ref:`Documentation/process/submitting-patches.rst <submittingpatches>`. 223 225 224 226 - Acked-by: indicates an agreement by another developer (often a 225 227 maintainer of the relevant code) that the patch is appropriate for
+35 -5
Documentation/process/submitting-patches.rst
··· 545 545 patch. This tag documents that potentially interested parties 546 546 have been included in the discussion. 547 547 548 - A Co-developed-by: states that the patch was also created by another developer 549 - along with the original author. This is useful at times when multiple people 550 - work on a single patch. Note, this person also needs to have a Signed-off-by: 551 - line in the patch as well. 548 + Co-developed-by: states that the patch was co-created by multiple developers; 549 + it is a used to give attribution to co-authors (in addition to the author 550 + attributed by the From: tag) when several people work on a single patch. Since 551 + Co-developed-by: denotes authorship, every Co-developed-by: must be immediately 552 + followed by a Signed-off-by: of the associated co-author. Standard sign-off 553 + procedure applies, i.e. the ordering of Signed-off-by: tags should reflect the 554 + chronological history of the patch insofar as possible, regardless of whether 555 + the author is attributed via From: or Co-developed-by:. Notably, the last 556 + Signed-off-by: must always be that of the developer submitting the patch. 557 + 558 + Note, the From: tag is optional when the From: author is also the person (and 559 + email) listed in the From: line of the email header. 560 + 561 + Example of a patch submitted by the From: author:: 562 + 563 + <changelog> 564 + 565 + Co-developed-by: First Co-Author <first@coauthor.example.org> 566 + Signed-off-by: First Co-Author <first@coauthor.example.org> 567 + Co-developed-by: Second Co-Author <second@coauthor.example.org> 568 + Signed-off-by: Second Co-Author <second@coauthor.example.org> 569 + Signed-off-by: From Author <from@author.example.org> 570 + 571 + Example of a patch submitted by a Co-developed-by: author:: 572 + 573 + From: From Author <from@author.example.org> 574 + 575 + <changelog> 576 + 577 + Co-developed-by: Random Co-Author <random@coauthor.example.org> 578 + Signed-off-by: Random Co-Author <random@coauthor.example.org> 579 + Signed-off-by: From Author <from@author.example.org> 580 + Co-developed-by: Submitting Co-Author <sub@coauthor.example.org> 581 + Signed-off-by: Submitting Co-Author <sub@coauthor.example.org> 552 582 553 583 554 584 13) Using Reported-by:, Tested-by:, Reviewed-by:, Suggested-by: and Fixes: ··· 726 696 The ``from`` line must be the very first line in the message body, 727 697 and has the form: 728 698 729 - From: Original Author <author@example.com> 699 + From: Patch Author <author@example.com> 730 700 731 701 The ``from`` line specifies who will be credited as the author of the 732 702 patch in the permanent changelog. If the ``from`` line is missing,