From mboxrd@z Thu Jan 1 00:00:00 1970 From: Christopher Baines Subject: Patchwork + automated checking and testing of patches Date: Wed, 31 Oct 2018 10:43:00 +0000 Message-ID: <87h8h29z2j.fsf@cbaines.net> Mime-Version: 1.0 Content-Type: multipart/signed; boundary="=-=-="; micalg=pgp-sha512; protocol="application/pgp-signature" Return-path: Received: from eggs.gnu.org ([2001:4830:134:3::10]:46595) by lists.gnu.org with esmtp (Exim 4.71) (envelope-from ) id 1gHnyR-0005fs-Jd for guix-devel@gnu.org; Wed, 31 Oct 2018 06:43:44 -0400 Received: from Debian-exim by eggs.gnu.org with spam-scanned (Exim 4.71) (envelope-from ) id 1gHnyL-0003Y7-Gz for guix-devel@gnu.org; Wed, 31 Oct 2018 06:43:43 -0400 Received: from mira.cbaines.net ([2a01:7e00::f03c:91ff:fe69:8da9]:35226) by eggs.gnu.org with esmtp (Exim 4.71) (envelope-from ) id 1gHnyF-00037D-Am for guix-devel@gnu.org; Wed, 31 Oct 2018 06:43:35 -0400 Received: from localhost (cpc102582-walt20-2-0-cust14.13-2.cable.virginm.net [86.27.34.15]) by mira.cbaines.net (Postfix) with ESMTPSA id 111A916748 for ; Wed, 31 Oct 2018 10:43:03 +0000 (GMT) Received: from capella (localhost [127.0.0.1]) by localhost (OpenSMTPD) with ESMTP id 11b240d1 for ; Wed, 31 Oct 2018 10:43:02 +0000 (UTC) List-Id: "Development of GNU Guix and the GNU System distribution." List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , Errors-To: guix-devel-bounces+gcggd-guix-devel=m.gmane.org@gnu.org Sender: "Guix-devel" To: Guix-devel --=-=-= Content-Type: text/plain Hey, For a while, I've been thinking about ways in which contributing code changes to Guix can be better, in particular, how things like automatically checking and testing patches might be beneficial. Some tooling for doing checks already exists, like guix lint, but you can't run that on a patch, you need some way of getting from the text sent to the mailing list to some state in a git repository. I haven't used Patchwork [1], but it has been tried previously with Guix [2][3]. It also seems to be a step forward in terms of taking what's sent to the mailing list and organising it. 1: http://jk.ozlabs.org/projects/patchwork/ 2: https://lists.gnu.org/archive/html/guix-devel/2016-05/msg00056.html 3: https://patchwork.sourceware.org/project/guix/list/ I've now written a very rough package and service for Patchwork [4], and managed to setup a instance here [5]. With the help of an email account subscribed to both guix-patches and guix-commits, getmail and a couple of scripts, it should also collect new patches sent to guix-patches, and mark those that have been merged to the master branch as "Accepted" [6]. 4: https://debbugs.gnu.org/cgi/bugreport.cgi?bug=33185 5: https://patchwork.cbaines.net/ 6: https://patchwork.cbaines.net/project/guix-patches/list/?state=3 What I'm hoping now to do, is to try and use Patchwork to coordinate automated checking and testing of patch series. I haven't thought much about this yet, but Patchwork does have something for recording "checks", demonstrated here [7]. There has also been a talk at FOSDEM about this kind of thing [8] as well as a blog post with more detail [9]. 7: https://patches.dpdk.org/patch/43055/ 8: https://archive.fosdem.org/2017/schedule/event/patchwork_jenkins/ 9: https://that.guru/blog/patchwork-and-ci-in-a-tree/ I don't intend to do anything with Jenkins, as I think that wouldn't be maintainable, but I think setting up some system to check some of the following would be beneficial: - If a patch series applies to master - If ./configure and make run successfully - If building a guix package with the patch applied works - If running guix lint for all the new/changed packages works - If building all the new/changed packages works - If running the tests and system tests works I think there are also some review activities that are better done at scale. One example I can think of is comparing the contents of source tarballs and store outputs for new packages to those of existing packages. If there is some overlap, it may suggest that there is some bundled code/data that could be removed. Let me know if you have any thoughts, Chris --=-=-= Content-Type: application/pgp-signature; name="signature.asc" -----BEGIN PGP SIGNATURE----- iQKTBAEBCgB9FiEEPonu50WOcg2XVOCyXiijOwuE9XcFAlvZhzRfFIAAAAAALgAo aXNzdWVyLWZwckBub3RhdGlvbnMub3BlbnBncC5maWZ0aGhvcnNlbWFuLm5ldDNF ODlFRUU3NDU4RTcyMEQ5NzU0RTBCMjVFMjhBMzNCMEI4NEY1NzcACgkQXiijOwuE 9XeHEg/+NR2SgD58OOL0GGrktfxeBBLC0jAJe+EPiuskWDwDdjEYcR96RCzGqYmR 2/7y4TjNppBst6y6DoTaX/3oeMGy3HJa2FFdoH4QsD6ex3Wv6GaeSMjv5l2Obut4 khin6yy0cWcYAlFijZyMNwDoq5YJR3LsQlmP/3DrRRq2poGU/RVvEocpektWoWqA mjp0MLaFu+eipgDCJ1PvPM5kL72Llbd9tebJxzUkzC8rMhG+P3LdIsK3A3+eM+0r m1VroIjtnk6GuZrO8Ar9e3wQWJVM6zJNm4Rd9XlPqb3kYFtCsAaU+Yl5VzgX6yNV A9QWahJxMomjnli3D5muRFHUfRI8a009IeiZil0u3Kivfsnq8dsOeb74Wz2IdyAx eksGOAC0hrSPY7vlMbJPgkhSTxYx7h3ZqdZzxzhWzgUN0M4U+0hOYZwolgJfc0Zg 290xN/xwYq3cH8iRSKdcQFbqVyLVimIKXDv9VXDITrTHk4jb3IOE7+QiHh7foUV4 KrNpnYXAvcsw/rQoVN/KjkPvoKnulDlKuB81ykrNDkei2kwlK1g3tKUkZnbY1dkB 0fpxQ8cFGV1HkcIjyXVI3hlf2MqmV/PUaZ0X+Ef0Fe4Blot6T9IPBz8JT7Cw+bz8 cQDcLg1rDwFp3d2yVNTw8VzAFAU3G4G6BnHz6o1EGvoOYlIesSQ= =gErU -----END PGP SIGNATURE----- --=-=-=--