Skip to content

Instantly share code, notes, and snippets.

@pbatard
Last active March 18, 2020 11:09
Show Gist options
  • Star 0 You must be signed in to star a gist
  • Fork 0 You must be signed in to fork a gist
  • Save pbatard/ec1c9d1dd6e7144b07a09b057b1735a8 to your computer and use it in GitHub Desktop.
Save pbatard/ec1c9d1dd6e7144b07a09b057b1735a8 to your computer and use it in GitHub Desktop.
Pete's quick edk2/edk2-platform submission guide

Preamble

This guide is meant as a complement to Laszlo's more official guide, in order to fill some missing bits and pieces.

This assumes that you cloned the edk2, edk2-platforms and edk2-non-osi repository and set up tianocore.template, edk2.diff.order and so on.

Commits validation

As per Laslzo's guide, the first thing you want to do before sending any patchset is validate that it passes the checks with something like:

 /c/python3/python /d/edk2/BaseTools/Scripts/PatchCheck.py -3 

The -3 at the end tells how many patches the script should check. In this case this assumes that you have a pacthset of 3 commits.

Pacthset generation

If the check passes, you will want to generate the .patch files and cover letter with something like this:

git format-patch --notes -O /d/edk2.diff.order --subject-prefix="`edk2-platform][PATCH" --stat=1000 --stat-graph-width=20 -M origin/master -3 HEAD

Once again, the -3 above indicates how many commits should be picked.

You will also note that the line above uses --subject-prefix="edk2-platform][PATCH" which results in each patch appearing on the list as [edk2-platforms][PATCH x/3] <commit title>, which is useful to differentiate edk2-platforms from straight edk2 patches.

If you are sending a patch to edk2, you should of course drop the edk2-platform][ part.

Note that if you are sending a revised version of a patchset, you should add a v2 or v3 to subject prefix to have something like -subject-prefix="edk2-platform][PATCH v2".

From there, you will have a bunch of .patch files as well a 0000-cover-letter.patch. Depending on the nature of the patchset, you want to either delete the cover letter (single small patch) or edit it to detail the changes being applied by the patchset.

Sending the patchset

Then you need to find out what maintainers you need to add in CC of your patchset (since the list is high volume, and maintainers may miss patches unless in explicit CC).Each of the edk2 repos has a Maintainers.txt that tell you the maintainers for each module or platform.

For instance, when it comes to sending Rasbperry Pi patches, you want to have Ard and Leif in CC since they are the official maintainers for the platform, and therefore use something like:

git send-email -cc=ard.biesheuvel@linaro.org -cc=leif@nuviainc.com --suppress-cc=author --suppress-cc=self --suppress-cc=cc --suppress-cc=sob *.patch

Note that this command will send any .patch file that resides in your repository, so you may want to make sure that there aren't any leftovers from previous patchsets before issuing the above.

And of course, you need to have set up your git config accordingly to send e-mail to the list, with something like:

  [sendemail]
    chainreplyto = false
    thread = true
    smtpserver = smtp.gmail.com
    smtpserverport = 587
    smtpencryption = tls
    smtpuser = pete@akeo.ie
    smtppass = #########################
    from = Pete Batard <pete@akeo.ie>
    to = devel@edk2.groups.io
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment