# Submitting Patches ## Overview * LF Training * Configuration * Signing Commits * Formatting * Scripts * Email (mutt) * References ## Linux Foundation Training * free courses * professional certifications ## Configuration * no need for .git-credentials * .gitconfig The email in `signed-off-by:` tag should match ```bash= [user] name = FirstName LastName email = firstname.lastname@mail.com signingkey = ABCDEFGHIJKLMNOP [format] signoff = true [credential] helper = store ``` ## Sigining Commits * `git commit -S -m "commit message..."` * nice article here from [Github](https://docs.github.com/en/authentication/managing-commit-signature-verification/signing-commits) ## Formatting * after your change is ready (git add, commit etc.) * run the command `git format-patch -1` * you will get something like this `00001-patch-file-name` sample patch: ```bash= From c3f2311e4b9e20785f870042ed6ddb3e55d43daf Mon Sep 17 00:00:00 2001 From: FirstName LastName <firstname.lastname@mail.com> Date: Thu, 15 Apr 2021 15:37:58 +0100 Subject: [PATCH] ACPI: APEI: remove redundant assignment to variable rc The variable rc is being assigned a value that is never read, the assignment is redundant and can be removed. Addresses-Coverity: ("Unused value") Signed-off-by: FirstName LastName <firstname.lastname@mail.com> --- drivers/acpi/apei/einj.c | 1 - 1 file changed, 1 deletion(-) diff --git a/drivers/acpi/apei/einj.c b/drivers/acpi/apei/einj.c index 133156759551..328e8aeece6c 100644 --- a/drivers/acpi/apei/einj.c +++ b/drivers/acpi/apei/einj.c @@ -725,7 +725,6 @@ static int __init einj_init(void) goto err_release; } - rc = -ENOMEM; einj_param = einj_get_parameter_address(); if ((param_extension || acpi5) && einj_param) { debugfs_create_x32("flags", S_IRUSR | S_IWUSR, einj_debug_dir, -- 2.31.1 ``` ## Scripts * Ok, so before bothering maintainers (they are busy!) let's make sure we are not wasting their time with some built-in tools * by far the most popular are `scripts/checkpatch.pl` and `scripts/get_maintainer.pl` * Read through the kernel docs below to become more intimate with the usage ## Email (mutt) * writing and submitting patches is a bit of an art * always have a second email to send to for testing * mutt with [proton](https://account.proton.me/login) is pretty straight forward (below) * also see python with Titan [here](https://hackmd.io/sCmQtWvYRr2Rs79TYblJrg?view) .muttrc ```bash= set ssl_starttls=yes set ssl_force_tls=yes set send_charset="us-ascii:utf-8" set imap_user = "your.email@protonmail.com" set imap_pass = "proton-bridge-password" set spoolfile = "imap://localhost:1143/INBOX" set folder ="imap://localhost:1143/" set postponed = "imap://localhost:1143/[Protonmail]/Drafts" set mbox = "imap://localhost:1143/[Protonmail]/All Mail" set header_cache = "~/.mutt/cache/headers" set message_cachedir = "~/.mutt/cache/bodies" set certificate_file = "~/.mutt/certificates" set smtp_authenticators = "gssapi:login" # ================ SMTP ==================== set smtp_url = "smtp://your.user.name@protonmail.com:your-bridge-password@localhost:1025/" set move = no set imap_keepalive = 900 # ================ Composition ==================== set editor = `echo \$EDITOR` set edit_headers = yes # See the headers when editing set charset = UTF-8 # value of $LANG; also fallback for send_charset unset use_domain # because joe@localhost is just embarrassing set realname = "Your Name" set from = "your.user.name@protonmail.com" set use_from = yes ``` Create the email with `mutt -H 0001-patch-file-name` Be sure to send it to yourself or a friend to proofread! Happy patching! ## References * [Linux Foundation Training](https://training.linuxfoundation.org/training/a-beginners-guide-to-linux-kernel-development-lfd103/) * [docs](https://docs.kernel.org/index.html) * [mutt](http://www.mutt.org/)