From: "Alex Bennée" <alex.bennee@linaro.org>
To: "Daniel P. Berrangé" <berrange@redhat.com>
Cc: qemu-devel@nongnu.org, "Thomas Huth" <thuth@redhat.com>,
"Michael S. Tsirkin" <mst@redhat.com>,
"Gerd Hoffmann" <kraxel@redhat.com>,
"Mark Cave-Ayland" <mark.cave-ayland@ilande.co.uk>,
"Philippe Mathieu-Daudé" <philmd@linaro.org>,
"Kevin Wolf" <kwolf@redhat.com>,
"Stefan Hajnoczi" <stefanha@redhat.com>,
"Alexander Graf" <agraf@csgraf.de>,
"Paolo Bonzini" <pbonzini@redhat.com>,
"Richard Henderson" <richard.henderson@linaro.org>,
"Peter Maydell" <peter.maydell@linaro.org>,
"Markus Armbruster" <armbru@redhat.com>
Subject: Re: [PATCH v2 1/3] docs: introduce dedicated page about code provenance / sign-off
Date: Fri, 17 May 2024 19:08:21 +0100 [thread overview]
Message-ID: <87zfsopazu.fsf@draig.linaro.org> (raw)
In-Reply-To: <20240516162230.937047-2-berrange@redhat.com> ("Daniel P. Berrangé"'s message of "Thu, 16 May 2024 17:22:28 +0100")
Daniel P. Berrangé <berrange@redhat.com> writes:
> Currently we have a short paragraph saying that patches must include
> a Signed-off-by line, and merely link to the kernel documentation.
> The linked kernel docs have a lot of content beyond the part about
> sign-off an thus are misleading/distracting to QEMU contributors.
>
> This introduces a dedicated 'code-provenance' page in QEMU talking
> about why we require sign-off, explaining the other tags we commonly
> use, and what to do in some edge cases.
>
<snip>
> +
> +Other commit tags
> +~~~~~~~~~~~~~~~~~
> +
> +While the ``Signed-off-by`` tag is mandatory, there are a number of other tags
> +that are commonly used during QEMU development:
> +
> + * **``Reviewed-by``**: when a QEMU community member reviews a patch on the
> + mailing list, if they consider the patch acceptable, they should send an
> + email reply containing a ``Reviewed-by`` tag. Subsystem maintainers who
> + review a patch should add this even if they are also adding their
> + ``Signed-off-by`` to the same commit.
> +
> + * **``Acked-by``**: when a QEMU subsystem maintainer approves a patch that
> + touches their subsystem, but intends to allow a different maintainer to
> + queue it and send a pull request, they would send a mail containing a
> + ``Acked-by`` tag. Where a patch touches multiple subsystems, ``Acked-by``
> + only implies review of the maintainers' own areas of responsibility. If a
> + maintainer wants to indicate they have done a full review they should use
> + a ``Reviewed-by`` tag.
> +
> + * **``Tested-by``**: when a QEMU community member has functionally tested the
> + behaviour of the patch in some manner, they should send an email reply
> + containing a ``Tested-by`` tag.
> +
> + * **``Reported-by``**: when a QEMU community member reports a problem via the
> + mailing list, or some other informal channel that is not the issue tracker,
> + it is good practice to credit them by including a ``Reported-by`` tag on
> + any patch fixing the issue. When the problem is reported via the GitLab
> + issue tracker, however, it is sufficient to just include a link to the
> + issue.
> +
> + * **``Suggested-by``**: when a reviewer or other 3rd party makes non-trivial
> + suggestions for how to change a patch, it is good practice to credit them
> + by including a ``Suggested-by`` tag.
Should we mention our use of Message-Id in so far the informal good
practice is that we keep the Message-Id's of the last time a patch was
posted and potentially the message-ids of previous posters?
But this is definitely an improvement of what we had before so:
Reviewed-by: Alex Bennée <alex.bennee@linaro.org>
> +
> +Subsystem maintainer requirements
> +~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
> +
> +When a subsystem maintainer accepts a patch from a contributor, in addition to
> +the normal code review points, they are expected to validate the presence of
> +suitable ``Signed-off-by`` tags.
> +
> +At the time they queue the patch in their subsystem tree, the maintainer
> +**must** also then add their own ``Signed-off-by`` to indicate that they have
> +done the aforementioned validation. This is in addition to any of their own
> +``Reviewed-by`` tags the subsystem maintainer may wish to include.
> +
> +Tools for adding ``Signed-off-by``
> +~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
> +
> +There are a variety of ways tools can support adding ``Signed-off-by`` tags
> +for patches, avoiding the need for contributors to manually type in this
> +repetitive text each time.
> +
> +git commands
> +^^^^^^^^^^^^
> +
> +When creating, or amending, a commit the ``-s`` flag to ``git commit`` will
> +append a suitable line matching the configuring git author details.
> +
> +If preparing patches using the ``git format-patch`` tool, the ``-s`` flag can
> +be used to append a suitable line in the emails it creates, without modifying
> +the local commits. Alternatively to modify all the local commits on a branch::
> +
> + git rebase master -x 'git commit --amend --no-edit -s'
> +
> +emacs
> +^^^^^
> +
> +In the file ``$HOME/.emacs.d/abbrev_defs`` add::
> +
> + (define-abbrev-table 'global-abbrev-table
> + '(
> + ("8rev" "Reviewed-by: YOUR NAME <your@email.addr>" nil 1)
> + ("8ack" "Acked-by: YOUR NAME <your@email.addr>" nil 1)
> + ("8test" "Tested-by: YOUR NAME <your@email.addr>" nil 1)
> + ("8sob" "Signed-off-by: YOUR NAME <your@email.addr>" nil 1)
> + ))
> +
> +with this change, if you type (for example) ``8rev`` followed by ``<space>``
> +or ``<enter>`` it will expand to the whole phrase.
> +
> +vim
> +^^^
> +
> +In the file ``$HOME/.vimrc`` add::
> +
> + iabbrev 8rev Reviewed-by: YOUR NAME <your@email.addr>
> + iabbrev 8ack Acked-by: YOUR NAME <your@email.addr>
> + iabbrev 8test Tested-by: YOUR NAME <your@email.addr>
> + iabbrev 8sob Signed-off-by: YOUR NAME <your@email.addr>
> +
> +with this change, if you type (for example) ``8rev`` followed by ``<space>``
> +or ``<enter>`` it will expand to the whole phrase.
> +
> +Re-starting abandoned work
> +~~~~~~~~~~~~~~~~~~~~~~~~~~
> +
> +For a variety of reasons there are some patches that get submitted to QEMU but
> +never merged. An unrelated contributor may decide (months or years later) to
> +continue working from the abandoned patch and re-submit it with extra changes.
> +
> +The general principles when picking up abandoned work are:
> +
> + * Continue to credit the original author for their work, by maintaining their
> + original ``Signed-off-by``
> + * Indicate where the original patch was obtained from (mailing list, bug
> + tracker, author's git repo, etc) when sending it for review
> + * Acknowledge the extra work of the new contributor by including their
> + ``Signed-off-by`` in the patch in addition to the orignal author's
> + * Indicate who is responsible for what parts of the patch. This is typically
> + done via a note in the commit message, just prior to the new contributor's
> + ``Signed-off-by``::
> +
> + Signed-off-by: Some Person <some.person@example.com>
> + [Rebased and added support for 'foo']
> + Signed-off-by: New Person <new.person@mycorp.test>
> +
> +In complicated cases, or if otherwise unsure, ask for advice on the project
> +mailing list.
> +
> +It is also recommended to attempt to contact the original author to let them
> +know you are interested in taking over their work, in case they still intended
> +to return to the work, or had any suggestions about the best way to continue.
> diff --git a/docs/devel/index-process.rst b/docs/devel/index-process.rst
> index 362f97ee30..b54e58105e 100644
> --- a/docs/devel/index-process.rst
> +++ b/docs/devel/index-process.rst
> @@ -13,6 +13,7 @@ Notes about how to interact with the community and how and where to submit patch
> maintainers
> style
> submitting-a-patch
> + code-provenance
> trivial-patches
> stable-process
> submitting-a-pull-request
> diff --git a/docs/devel/submitting-a-patch.rst b/docs/devel/submitting-a-patch.rst
> index 83e9092b8c..2cc4d53ff6 100644
> --- a/docs/devel/submitting-a-patch.rst
> +++ b/docs/devel/submitting-a-patch.rst
> @@ -322,23 +322,8 @@ Patch emails must include a ``Signed-off-by:`` line
>
> Your patches **must** include a Signed-off-by: line. This is a hard
> requirement because it's how you say "I'm legally okay to contribute
> -this and happy for it to go into QEMU". The process is modelled after
> -the `Linux kernel
> -<http://git.kernel.org/cgit/linux/kernel/git/torvalds/linux.git/tree/Documentation/SubmittingPatches?id=f6f94e2ab1b33f0082ac22d71f66385a60d8157f#n297>`__
> -policy.
> -
> -If you wrote the patch, make sure your "From:" and "Signed-off-by:"
> -lines use the same spelling. It's okay if you subscribe or contribute to
> -the list via more than one address, but using multiple addresses in one
> -commit just confuses things. If someone else wrote the patch, git will
> -include a "From:" line in the body of the email (different from your
> -envelope From:) that will give credit to the correct author; but again,
> -that author's Signed-off-by: line is mandatory, with the same spelling.
> -
> -There are various tooling options for automatically adding these tags
> -include using ``git commit -s`` or ``git format-patch -s``. For more
> -information see `SubmittingPatches 1.12
> -<http://git.kernel.org/cgit/linux/kernel/git/torvalds/linux.git/tree/Documentation/SubmittingPatches?id=f6f94e2ab1b33f0082ac22d71f66385a60d8157f#n297>`__.
> +this and happy for it to go into QEMU". For full guidance, read the
> +:ref:`code-provenance` documentation.
>
> .. _include_a_meaningful_cover_letter:
--
Alex Bennée
Virtualisation Tech Lead @ Linaro
next prev parent reply other threads:[~2024-05-17 18:09 UTC|newest]
Thread overview: 23+ messages / expand[flat|nested] mbox.gz Atom feed top
2024-05-16 16:22 [PATCH v2 0/3] docs: define policy forbidding use of "AI" / LLM code generators Daniel P. Berrangé
2024-05-16 16:22 ` [PATCH v2 1/3] docs: introduce dedicated page about code provenance / sign-off Daniel P. Berrangé
2024-05-16 17:29 ` Peter Maydell
2024-05-16 17:34 ` Michael S. Tsirkin
2024-05-16 17:43 ` Peter Maydell
2024-05-17 5:05 ` Thomas Huth
2024-05-17 10:03 ` Daniel P. Berrangé
2024-05-16 17:33 ` Michael S. Tsirkin
2024-05-17 11:09 ` Daniel P. Berrangé
2024-05-17 18:08 ` Alex Bennée [this message]
2024-05-16 16:22 ` [PATCH v2 2/3] docs: define policy limiting the inclusion of generated files Daniel P. Berrangé
2024-05-16 17:04 ` Michael S. Tsirkin
2024-05-17 10:51 ` Daniel P. Berrangé
2024-05-17 18:23 ` Alex Bennée
2024-05-28 15:41 ` Kevin Wolf
2024-05-16 16:22 ` [PATCH v2 3/3] docs: define policy forbidding use of AI code generators Daniel P. Berrangé
2024-05-16 17:11 ` Michael S. Tsirkin
2024-05-17 10:57 ` Daniel P. Berrangé
2024-05-16 17:20 ` [PATCH v2 0/3] docs: define policy forbidding use of "AI" / LLM " Michael S. Tsirkin
2024-05-16 17:34 ` Peter Maydell
2024-05-16 17:36 ` Michael S. Tsirkin
2024-05-21 14:27 ` Stefan Hajnoczi
2024-05-28 15:41 ` Kevin Wolf
Reply instructions:
You may reply publicly to this message via plain-text email
using any one of the following methods:
* Save the following mbox file, import it into your mail client,
and reply-to-all from there: mbox
Avoid top-posting and favor interleaved quoting:
https://en.wikipedia.org/wiki/Posting_style#Interleaved_style
* Reply using the --to, --cc, and --in-reply-to
switches of git-send-email(1):
git send-email \
--in-reply-to=87zfsopazu.fsf@draig.linaro.org \
--to=alex.bennee@linaro.org \
--cc=agraf@csgraf.de \
--cc=armbru@redhat.com \
--cc=berrange@redhat.com \
--cc=kraxel@redhat.com \
--cc=kwolf@redhat.com \
--cc=mark.cave-ayland@ilande.co.uk \
--cc=mst@redhat.com \
--cc=pbonzini@redhat.com \
--cc=peter.maydell@linaro.org \
--cc=philmd@linaro.org \
--cc=qemu-devel@nongnu.org \
--cc=richard.henderson@linaro.org \
--cc=stefanha@redhat.com \
--cc=thuth@redhat.com \
/path/to/YOUR_REPLY
https://kernel.org/pub/software/scm/git/docs/git-send-email.html
* If your mail client supports setting the In-Reply-To header
via mailto: links, try the mailto: link
Be sure your reply has a Subject: header at the top and a blank line
before the message body.
This is an external index of several public inboxes,
see mirroring instructions on how to clone and mirror
all data and code used by this external index.