send-email.org (3599B)
1 * Conventions 2 ** Threading revisions 3 Depends on project preference. Consider: 4 5 - the [[https://git-scm.com/docs/MyFirstContribution#v2-git-send-email][Git project's guidelines]]: set =--in-reply-to= for version $n$ to 6 the Message-ID for version $n-1$'s cover letter. 7 #+begin_quote 8 You will also need to go and find the Message-ID of your previous 9 cover letter. You can either note it when you send the first series, 10 from the output of =git= =send-email=, or you can look it up on the 11 [[https://lore.kernel.org/git][mailing list]]. Find your cover letter in the archives, click on it, 12 then click "permalink" or "raw" to reveal the Message-ID header. It 13 should match: 14 15 #+begin_example 16 Message-ID: <foo.12345.author@example.com> 17 #+end_example 18 19 Your Message-ID is =<foo.12345.author@example.com>=. This example will 20 be used below as well; make sure to replace it with the correct 21 Message-ID for your *previous cover letter* - that is, if you're 22 sending v2, use the Message-ID from v1; if you're sending v3, use the 23 Message-ID from v2. 24 #+end_quote 25 26 - the [[https://git.kernel.org/pub/scm/docs/man-pages/man-pages.git/tree/CONTRIBUTING.d/patches/sendmail][Linux man-pages project's guidelines]]: set =--in-reply-to= for 27 version $n$ to the Message-ID for version $1$'s cover letter. 28 #+begin_example 29 In-Reply-To 30 Revisions of a patch or patch set should reply to the cover 31 letter of the first iteration of the patch set. If there was no 32 cover letter, they should reply to the first patch. Example: 33 34 [PATCH v1 00] ... 35 ├─> [PATCH v1 01] ... 36 ├─> [PATCH v1 02] ... 37 ├─> [PATCH v1 03] ... 38 ├─> [PATCH v2 00] ... 39 │ ├─> [PATCH v2 01] ... 40 │ ├─> [PATCH v2 02] ... 41 │ └─> [PATCH v2 03] ... 42 └─> [PATCH v3 00] ... 43 ├─> [PATCH v3 01] ... 44 ├─> [PATCH v3 02] ... 45 └─> [PATCH v3 03] ... 46 #+end_example 47 48 - the [[https://docs.kernel.org/process/submitting-patches.html#explicit-in-reply-to-headers][Linux project's guidelines]]: avoid setting =In-Repy-To= at all; 49 prefer =Link= trailers; [[https://lwn.net/Articles/1037069/][contentious]] though. 50 51 On the tool side, [[https://b4.docs.kernel.org/en/latest/config.html#:~:text=b4.send-same-thread][b4 supports all conventions]] via 52 =b4.send-same-thread=. The default is not to thread at all. 53 * =.authinfo.gpg= 54 ** Step 1: Install ~git-credential-netrc~ 55 AFAICT not all distributions package this script? As far as those I 56 use are concerned: 57 58 - On Debian, the =git= package brings 59 =/usr/share/doc/git/contrib/credential/netrc/git-credential-netrc.perl=, 60 but the file is not executable, so it's not as simple as symlinking 61 it from =~/.local/bin=: it must be =cp='ed and =chmod='ed. 62 63 - openSUSE does not include anything from =contrib=, I think? So just 64 grab =contrib/credential/netrc/git-credential-netrc.perl= from the [[https://git.kernel.org/pub/scm/git/git.git/][Git 65 repository]], stick it in =~/.local/bin= and =chmod= it. 66 67 Now ~git help --all | grep credential-~ should show =credential-netrc=. 68 69 ** Step 2: Configure ~git send-email~ 70 In =~/.gitconfig=, assuming a GMail account for =luser@gmail.com=: 71 72 #+begin_src conf 73 [sendemail] 74 smtpencryption = tls 75 smtpserver = smtp.gmail.com 76 smtpuser = luser 77 smtpserverport = 587 78 #+end_src 79 80 Most =send-email= guides seem to use the full email address for 81 =smtpuser=; I'm putting in just the /local-part/, since that's what is in 82 my =~/.authinfo.gpg=. 83 84 ** Step 3: Configure ~git-credential~ 85 In =~/.gitconfig=: 86 87 #+begin_src conf 88 [credential] 89 helper = netrc 90 #+end_src 91 92 ** Step 4: Enjoy 📨