[Date Prev][Date Next]   [Thread Prev][Thread Next]   [Thread Index] [Date Index] [Author Index]

[libvirt] Publishing libvirt 'patches' JSON database?



I'd imagine most developers on this list have their own workflows to
track/apply/test patches from the mailing list.  I normally just save
patches in Mutt's Maildir and apply them manually to a Git branch.  I
recently began using the 'patches'[1] tool, that some of you on this
list must be familiar with, to test arbitrary QEMU patches from the
mailing list, and found it relatively easy large patch series from
mailing list.

I'm writing this to check if the libvirt upstream community finds it
desirable to setup such a patches database.


What is 'patches'?
------------------

Quoting the README[2]:

    "patches is a patch tracking system.  It consists of two parts: a set
    of commands that build a database of patches from a mailing list and
    then a set of commands that can search that database.  It supports
    the following features:
    
    - Tracking patch status by determining which patches are already
      committed, have newer versions posted, are RFC, etc.
    
    - Applying patches or pull requests with a single command.
    
    - Searching for patches using a rich query language."


A quick workflow to test patches from mailing list
---------------------------------------------------

FWIW, this is my rudimentary use-case.

Clone the repo, and fetch the patches database (may take a few minutes):

    $ git clone https://github.com/stefanha/patches.git
    $ cd patches
    $ ./patches fetch http://wiki.qemu.org/patches/patches.json

And, suppose, I want to test Dan's LUKS encryption support (26) patch series, I
go find the message ID:

    $ ./patches list | grep -B5 "Support LUKS encryption"
    
    Message-id: 1456747261-22032-1-git-send-email-berrange redhat com
    From: Daniel P. Berrange <berrange redhat com>
    Date: 2016-02-29
    Tags: v4
       [0/26] Support LUKS encryption in block  devices
 
Trivially apply it (assuming you have a test branch):

    $ ./patches apply --git-dir ~/src/qemu/ \
        id:1456747261-22032-1-git-send-email-berrange redhat com
    Applying: crypto: add cryptographic random byte source
    Applying: crypto: add support for PBKDF2 algorithm
    Applying: crypto: add support for generating initialization vectors
    Applying: crypto: add support for anti-forensic split algorithm
    Applying: crypto: skip testing of unsupported cipher algorithms
    [...]

Test away!

Rinse, repeat:

   "The `fetch` command should be run whenever you want to refresh the
   patch database; it will download any new patches that have arrived
   since the last time you did a fetch."


Here's[3] the documentation to setup the patches database.


[1] https://github.com/stefanha/patches/tree/stefanha-tweaks
[2] https://github.com/stefanha/patches/blob/stefanha-tweaks/README.md
[3] https://github.com/stefanha/patches/blob/stefanha-tweaks/README-server.md
-- 
/kashyap


[Date Prev][Date Next]   [Thread Prev][Thread Next]   [Thread Index] [Date Index] [Author Index]