mbox series

[RFC,00/16] RFC: patman: Collect review tags and comments from Patchwork

Message ID 20200706034203.2171077-1-sjg@chromium.org
Headers show
Series RFC: patman: Collect review tags and comments from Patchwork | expand

Message

Simon Glass July 6, 2020, 3:41 a.m. UTC
Patman is a useful tool for creating, checking sending out patches. It
automates the creation of patches, simplifies checking them and handles
cover letters and change logs.

However once patches are sent and reviewers add Reviewed-by tags, etc.,
these must be manually added into the commits using git before the next
version of the series is sent. Also, the only way to look at patches is
in the web interface.

It would be nice if patman could talk to Patchwork and collect the review
tags itself. Even better if it could show the review comments in a
command-line view patch-by-patch to speed up addressing comments.

This series adds these features to patman, talking directly to the web
URLs. While pwclient seems like it could handle some of this, or at least
provide a library to patman, the documentation[1] doesn't really explain
what the commands do and it doesn't seem to work with the current
Patchwork (e.g. pwclient git-am requires a patch number but Patchwork
seems to use an ID now).

With these changes, which currently lack tests, it is possible to type
'patman status' and see a list of new review tags. It is also possible
to create a new branch with those tags and list out the review comments
as small snippets on the command line.

I have been using these features for a short while and they seem useful,
so herewith a series.

This series depends on u-boot-dm/next so you might find it easier to get
it from u-boot-dm/patman-working[2]

[1] https://patchwork.readthedocs.io/projects/pwclient/en/latest/usage/
[2] https://gitlab.denx.de/u-boot/custodians/u-boot-dm/-/tree/patman-working


Simon Glass (16):
  patman: Use test_util to show test results
  patman: Move main code out to a control module
  patman: Add a test that uses gitpython
  patman: Allow creating patches for another branch
  patman: Allow skipping patches at the end
  patman: Convert to ArgumentParser
  patman: Allow different commands
  patman: Add a 'test' subcommand
  patman: Allow disabling 'bright' mode with Print output
  patman: Support collecting response tags in Patchstream
  patman: Allow linking a series with patchwork
  patman: Add a -D option to enable debugging
  patchstream: Support parsing of review snippets
  patman: Support checking for review tags in patchwork
  patman: Support updating a branch with review tags
  patman: Support listing comments from patchwork

 .azure-pipelines.yml        |   2 +-
 .gitlab-ci.yml              |   2 +-
 .travis.yml                 |   2 +-
 test/run                    |   2 +-
 tools/patman/README         |  93 ++++++-
 tools/patman/checkpatch.py  |   6 +
 tools/patman/commit.py      |  14 ++
 tools/patman/control.py     | 214 ++++++++++++++++
 tools/patman/func_test.py   | 170 ++++++++++++-
 tools/patman/gitutil.py     |  23 +-
 tools/patman/main.py        | 219 ++++++++---------
 tools/patman/patchstream.py |  82 ++++++-
 tools/patman/series.py      |   4 +-
 tools/patman/settings.py    |  10 +-
 tools/patman/status.py      | 476 ++++++++++++++++++++++++++++++++++++
 tools/patman/terminal.py    |   4 +-
 tools/patman/test_util.py   |   8 +-
 tools/patman/tools.py       |   4 +-
 18 files changed, 1178 insertions(+), 157 deletions(-)
 create mode 100644 tools/patman/control.py
 create mode 100644 tools/patman/status.py