[PATCH 0/3] Add a tool to simplify patch checking and posting (patman)

From: Simon Glass
Date: Sun May 03 2015 - 15:01:38 EST


Preparing, checking and sending patches to a mailing list is a tedious and
error-prone process. Dealing with multiple series, each which its own
revision history, CC list, cover letter requires concentation. Mistakes
are easy to make.

This tool aims to help with this. A single command generates the patch
series, runs it through checkpatch, generates the cover letter, adds a
change list to each patch and the cover letter, determines who should
receive the patch and Ccs people on the patch either using maintainer
information or tags in the commit subject. A dry-run mode allows output
to be checked.

This tool makes patch series repeatable, since everything needed to create
and send patches in stored in the git branch containing that series.
When making a change to one commit you can update the change log in that
commit and know that everything will turn out OK.

Specifically this tool is a Python script which (from the README):
- Creates patch directly from your branch
- Cleans them up by removing unwanted tags
- Inserts a cover letter with change lists
- Runs the patches through checkpatch.pl and its own checks
- Optionally emails them out to selected people

It is intended to automate patch creation and make it a less
error-prone process. It is useful for U-Boot and Linux work so far,
since it uses the checkpatch.pl script.

It is configured almost entirely by tags it finds in your commits.
This means that you can work on a number of different branches at
once, and keep the settings with each branch rather than having to
git format-patch, git send-email, etc. with the correct parameters
each time. So for example if you put:

Series-to: fred.blogs@xxxxxxxxxxxx

in one of your commits, the series will be sent there.

In Linux and U-Boot this will also call get_maintainer.pl on each of your
patches automatically (unless you use -m to disable this).

I am submitting this to LKML to raise awareness, since those who are not
involved in U-Boot probably don't know about it. I could not find a
specific linux-tools list but may have missed something.


Simon Glass (3):
Add patman patch automation script
Add tests for patman
Add documentation for patman

MAINTAINERS | 5 +
tools/patman/.gitignore | 1 +
tools/patman/README | 475 ++++++++++++++++++++++++++++++++
tools/patman/checkpatch.py | 173 ++++++++++++
tools/patman/command.py | 123 +++++++++
tools/patman/commit.py | 88 ++++++
tools/patman/cros_subprocess.py | 397 +++++++++++++++++++++++++++
tools/patman/get_maintainer.py | 47 ++++
tools/patman/gitutil.py | 582 ++++++++++++++++++++++++++++++++++++++++
tools/patman/patchstream.py | 488 +++++++++++++++++++++++++++++++++
tools/patman/patman | 1 +
tools/patman/patman.py | 167 ++++++++++++
tools/patman/project.py | 27 ++
tools/patman/series.py | 271 +++++++++++++++++++
tools/patman/settings.py | 295 ++++++++++++++++++++
tools/patman/terminal.py | 158 +++++++++++
tools/patman/test.py | 243 +++++++++++++++++
17 files changed, 3541 insertions(+)
create mode 100644 tools/patman/.gitignore
create mode 100644 tools/patman/README
create mode 100644 tools/patman/checkpatch.py
create mode 100644 tools/patman/command.py
create mode 100644 tools/patman/commit.py
create mode 100644 tools/patman/cros_subprocess.py
create mode 100644 tools/patman/get_maintainer.py
create mode 100644 tools/patman/gitutil.py
create mode 100644 tools/patman/patchstream.py
create mode 120000 tools/patman/patman
create mode 100755 tools/patman/patman.py
create mode 100644 tools/patman/project.py
create mode 100644 tools/patman/series.py
create mode 100644 tools/patman/settings.py
create mode 100644 tools/patman/terminal.py
create mode 100644 tools/patman/test.py

--
2.2.0.rc0.207.ga3a616c

--
To unsubscribe from this list: send the line "unsubscribe linux-kernel" in
the body of a message to majordomo@xxxxxxxxxxxxxxx
More majordomo info at http://vger.kernel.org/majordomo-info.html
Please read the FAQ at http://www.tux.org/lkml/