Re: [PATCH 1/1] docs: process: Submitting a patch for a single git commit.

[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]

 



On Thu,  1 Oct 2020 12:47:24 +0200
Ingo Rohloff <ingo.rohloff@xxxxxxxxxxxxxx> wrote:

> A short primer how to submit a single git commit as a patch via
> e-mail using git send-email.
> 
> Signed-off-by: Ingo Rohloff <ingo.rohloff@xxxxxxxxxxxxxx>
> ---
>  Documentation/process/submitting-patches.rst | 72 ++++++++++++++++++++
>  1 file changed, 72 insertions(+)

So I still don't think that this is appropriate for submitting-patches.rst,
which is already far too long.  It *might* be useful if it were filled out
and added as a separate tutorial document, though.

A few minor comments below...

> diff --git a/Documentation/process/submitting-patches.rst b/Documentation/process/submitting-patches.rst
> index 5219bf3cddfc..a73b94f677c8 100644
> --- a/Documentation/process/submitting-patches.rst
> +++ b/Documentation/process/submitting-patches.rst
> @@ -24,6 +24,8 @@ of the mechanical work done for you, though you'll still need to prepare
>  and document a sensible set of patches.  In general, use of ``git`` will make
>  your life as a kernel developer easier.
>  
> +.. _get_source_tree:
> +
>  0) Obtain a current source tree
>  -------------------------------
>  
> @@ -419,6 +421,7 @@ and other kernel developers more easily distinguish patches from other
>  e-mail discussions.
>  
>  
> +.. _dev_cert_of_origin:
>  
>  11) Sign your work - the Developer's Certificate of Origin
>  ----------------------------------------------------------
> @@ -892,6 +895,75 @@ command like this will do the trick::
>  
>    git request-pull master git://my.public.tree/linux.git my-signed-tag
>  
> +17) A simple use case: Submitting a single git commit with ``git send-email``
> +-----------------------------------------------------------------------------
> +
> +The scenario:
> +You have a small code modification which sensibly fits into
> +a single commit. You want to get this modification into the kernel.
> +
> +Assumptions:
> + - You are running a not too old Linux installation.

What is "too old"?  Somebody who needs a tutorial at this level is unlikely
to know that.

> + - You have ``git`` installed.
> + - You have the tools for ``git send-email`` installed.
> +   It seems many Linux distributions deliver this set of tools in a
> +   separate package. So make sure you have the appropriate package installed.
> +   ``git send-email`` is able to directly talk to an SMTP server; so you
> +   do not need a local mail transport agent or similar.
> + - You have configured ``git send-email``.
> +   You might set the properties describing how you would like to send e-mail
> +   via SMTP with the appropriate ``git config`` commands.
> +   In particular you might need to set the properties:
> +   ``sendemail.smtpserver``, ``sendemail.smtpserverport``,
> +   ``sendemail.smtpuser``, ``sendemail.smtpencryption``, ``sendemail.smtppass``

That's an awful lot of configuration that has just been skipped over...

> +Process:
> + - Clone the kernel source tree; see :ref:`get_source_tree`
> + - Use ``git config`` to configure the user name and e-mail address for
> +   yourself.

If we're going to make a tutorial, actually say how to do that.

> + - Create and checkout a git branch to work on your code modification.
> +   Use: ``git checkout -b <branch name>``
> + - Modify the code.
> + - Commit your code to your local git repository into your local branch with
> +   a single commit.
> +   Your commit message should start with a single line:
> +   ``<subsystem>: <summary phrase>``.
> +   The rest of the commit message should follow :ref:`describe_changes`
> + - Test your changes; they must compile and hopefully fix a problem.

Why on earth would you commit your changes before you test them?

> +   If there are problems, modify your commit.
> +   Use ``git commit --amend`` to modify your commit.
> + - You are now ready to generate a patch file suitable for sending via e-mail.
> +   Use::
> +
> +	git format-patch -1 -s
> +
> +   This command should create a patch file, which is close to what you need
> +   to send via e-mail.
> +   This command also adds a "Signed-off-by:" line; see
> +   :ref:`the_canonical_patch_format`, and :ref:`dev_cert_of_origin`.

Why wouldn't you put the signoff in the commit?

> + - Verify that your patch matches the required style::
> +
> +	./scripts/checkpatch.pl <patch file>
> +
> +   Also see :ref:`Documentation/process/coding-style.rst <codingstyle>`.
> +   If there are problems, modify your commit (``git commit --amend``)
> +   and subsequently your e-mail patch (``git format-patch``).
> + - Test if you are able to send the patch to yourself::
> +
> +	git send-email --to=<your email address> <patch file>
> +
> + - If sending the e-mail to yourself worked, inspect the e-mail you have
> +   received and check if it adheres to :ref:`the_canonical_patch_format`.

Haven't you already ensured that you've formatted it correctly?

> + - Find out to which people the e-mail should be send::
> +
> +	./scripts/get_maintainer.pl <patch file>
> +
> +   In general send the e-mail to the appropriate maintainer and put relevant
> +   mailing lists on CC.
> + - Finally send the patch e-mail with::
> +
> +	git send-email --to=<maintainer> --cc=<mail list 1> ... <patch file>
> +

Thanks,

jon



[Index of Archives]     [Kernel Newbies]     [Security]     [Netfilter]     [Bugtraq]     [Linux FS]     [Yosemite Forum]     [MIPS Linux]     [ARM Linux]     [Linux Security]     [Linux RAID]     [Samba]     [Video 4 Linux]     [Device Mapper]     [Linux Resources]

  Powered by Linux