From: Stefan Hajnoczi <stefanha@redhat.com>
To: Fam Zheng <famz@redhat.com>, John Snow <jsnow@redhat.com>
Cc: qemu-devel@nongnu.org
Subject: [Qemu-devel] Patch checking bot
Date: Mon, 20 Oct 2014 11:25:59 +0100 [thread overview]
Message-ID: <20141020102559.GA29278@stefanha-thinkpad.redhat.com> (raw)
[-- Attachment #1: Type: text/plain, Size: 2043 bytes --]
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
qemu-devel@nongnu.org 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 #2: Type: application/pgp-signature, Size: 473 bytes --]
next reply other threads:[~2014-10-20 10:26 UTC|newest]
Thread overview: 7+ messages / expand[flat|nested] mbox.gz Atom feed top
2014-10-20 10:25 Stefan Hajnoczi [this message]
2014-10-20 14:08 ` [Qemu-devel] Patch checking bot Peter Maydell
2014-10-21 15:27 ` John Snow
2014-10-22 10:03 ` Stefan Hajnoczi
2014-10-27 18:25 ` Andreas Färber
2014-10-21 8:19 ` Fam Zheng
2014-10-22 10:08 ` Stefan Hajnoczi
Reply instructions:
You may reply publicly to this message via plain-text email
using any one of the following methods:
* Save the following mbox file, import it into your mail client,
and reply-to-all from there: mbox
Avoid top-posting and favor interleaved quoting:
https://en.wikipedia.org/wiki/Posting_style#Interleaved_style
* Reply using the --to, --cc, and --in-reply-to
switches of git-send-email(1):
git send-email \
--in-reply-to=20141020102559.GA29278@stefanha-thinkpad.redhat.com \
--to=stefanha@redhat.com \
--cc=famz@redhat.com \
--cc=jsnow@redhat.com \
--cc=qemu-devel@nongnu.org \
/path/to/YOUR_REPLY
https://kernel.org/pub/software/scm/git/docs/git-send-email.html
* If your mail client supports setting the In-Reply-To header
via mailto: links, try the mailto: link
Be sure your reply has a Subject: header at the top and a blank line
before the message body.
This is a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox;
as well as URLs for NNTP newsgroup(s).