HOWTO: Submit a patch
---------------------

This document is here mainly to make my job easier, and is more of a guideline,
and not a strict set of rules.  Please try to follow as much as you can.

NOTE: Much of this is paraphrased from the kernel documentation's
"SubmittingPatches" file.

Creating your patch:

Most of this was more relevant before we switched to GIT for version control.
However, much of it is still applicable and should be followed. Some notes
have been added to make this a bit more up-to-date with the GIT workflow.

* Use "diff -up" or "diff -uprN" to create patches.

  These options make the diff easier to read for those of us who try to review
  submitted patches. If you are working on your own git branch, then GIT
  formatted patches are perfectly acceptable.

* Please try to make patches "p1 applicable"

  This means that if you are patching file "lib/libalpm/alpm.h", I should be
  able to apply your patch while passing the -p1 argument to 'patch'.  The diff
  header should look like so:

  --- ORIGINAL_DIR/lib/libalpm/alpm.h
  +++ NEW_DIR/lib/libalpm/alpm.h

  With '-p1' the ORIGINAL_DIR and NEW_DIR arguments are stripped. GIT produces
  p1 formatted patches by default.

Submitting your patch:

* Send the patch to the pacman-dev mailing list

  The mailing list is the primary queue for review and acceptance.  Here you
  will get feedback, and let me know the details of your patch.  It also helps
  if you add "[patch]" to the beginning of your Subject line.

* No MIME, no links, no compression, no attachments.  Just plain text.

  Patches should be contained in the actual body of the email.  There are many
  reasons for this.  Firstly, it makes them easier to read with any mail reader,
  it allows easier review "at a glance", and most importantly, it allows people
  to comment on exact lines of the patch in reply emails.

  It is important to know that the diff format ignores plain text before (and
  after) the main diff itself.  If you directly insert your patch into an email,
  you can safely add lines above it describing your patch.

* Describe your patch.

  Before the actual diff begins, it helps if you describe the changes in the
  patch.  This allows others to see what you intended so as to compare it to
  what was actually done, and allows better feedback. If you use
  'git-format-patch' to create your patch, then your commit message will
  be shown above the patch by default.

* Credit yourself

  Just like with the kernel, it helps if you add a "Signed Off By" line to
  indicate who has "signed" the patch - who has approved it.

    Signed-off-by: Aaron Griffin <aaron@archlinux.org>

  Please use your real name and email address.  Feel free to "scramble" the
  address if you're afraid of spam. 'git commit -s' makes this easy.

After you submit:

* Don't get discouraged

  Any feedback you get, positive or negative, has nothing to do with you.  If a
  patch is rejected, try taking the suggestions into account and re-submitting.
  We welcome most submissions here, and some may take a bit longer to get
  looked over than others. If you think your patch got lost in the shuffle,
  send another email to the list in reply to the original asking if anyone has
  looked at it yet.