qemu-devel
[Top][All Lists]
Advanced

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

[Qemu-devel] Patch checking bot


From: Stefan Hajnoczi
Subject: [Qemu-devel] Patch checking bot
Date: Mon, 20 Oct 2014 11:25:59 +0100
User-agent: Mutt/1.5.23 (2014-03-12)

Hi,
At KVM Forum 2014 we discussed a patch checking bot that automates patch
format checking and smoke testing:

1. Did the patch submitter include Signed-off-by?
2. Does checkpatch.pl pass?
3. Does the patch apply to qemu.git/master?
4. Does each patch compile?
5. Does the series pass make check and qemu-iotests?

Here are some thoughts on the patch checker:

If a patch series passes successfully, no email is sent.  If a patch
series fails, an email with the errors is sent as a reply to the patch
series email thread.  The patch submitter can then respond in case there
are false positive (e.g. from checkpatch.pl) - the bot doesn't care
about replies but it tells the human reviewers and maintainers what the
patch submitter intends to do.

The bot should detect new patches within 15 minutes so humans can rely
on it to perform these basic checks before they review the patch series.

There should be a web page showing the check status of each patch series
on the mailing list.  This allows anyone to see which patch series have
passed, failed, or are pending check.

Ideas on the implementation:

The "patches" tool allows querying patch series on the mailing list.  It
can be used to apply patches to a git tree and display patches in mbox
format:

  https://github.com/stefanha/patches/tree/stefanha-tweaks

Patch series contain untrusted code so it is critical that operations
are performed inside a sandbox.  Otherwise people could send email to
address@hidden with Makefile or checkpatch.pl changes that get
executed with the bot's privileges!

Use docker or lxc to run a container for builds.  The root file system
should be fresh for each build so previous builds cannot affect later
ones.  The container cannot have external networking connectivity (for
security).

Include automated deployment scripts so bot instances can be created
easily.  Here is an example of automated deployment scripts written with
Fabric that I use for VM that builds the QEMU "patches" database:

  https://github.com/stefanha/qemu-patches

Attachment: pgpYx_cYfZau3.pgp
Description: PGP signature


reply via email to

[Prev in Thread] Current Thread [Next in Thread]