guix-devel
[Top][All Lists]
Advanced

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

Automatically building packages affected by submitted patches


From: Christopher Baines
Subject: Automatically building packages affected by submitted patches
Date: Fri, 01 Mar 2019 21:08:31 +0000
User-agent: mu4e 1.0; emacs 26.1

Hey,

In short, following on from some previous emails about Patchwork [1] and
tracking and inspecting how Guix changes over time [2], I've got to the
point where I have a very rough setup for building packages changed by
patches sent to the guix-patches mailing list.

1: http://lists.gnu.org/archive/html/guix-devel/2018-10/msg00638.html
2: https://lists.gnu.org/archive/html/guix-devel/2019-02/msg00089.html

If you want to see this in action, assuming for a given patch series
that all goes to plan, patches sent to the guix-patches mailing list as
normal should appear in the Patchwork web interface [3], and after some
processing, a specification should be inserted in to this Cuirass
instances [4] which builds the packages affected by the patch series.

3: https://patchwork.cbaines.net/project/guix-patches/list/
4: https://cuirass.cbaines.net/

For a specific example, here [5] is series 700 (a Patchwork id). There
are a number of intermediate steps, but this is the specification in
Cuirass [6].

5: https://patchwork.cbaines.net/project/guix-patches/list/?series=700
6: https://cuirass.cbaines.net/jobset/series-700

If you want to see how this is held together at the moment, the main
script can be found here [7]. That script repeatedly in a loop:

 - Looks at patch series in the Patchwork database that have been
   processed through the patchwork-test-series job in Laminar.
 - Gets the recorded commits for the base commit and head commit.
 - Fetches the list of affected packages from the Guix Data Service.
 - Assuming the list is available, ensures that a Cuirass specification
   exists to build the affected packages.

7: https://laminar.cbaines.net/cfg/scripts/guix-patchwork-helper

This is very much an initial prototype, and from this I've got a load of
ideas about how better to set things up.

In terms of features I'd like to work towards next, the main thing on my
mind is doing something useful with the data from building these
packages. With the goal of displaying a check in Patchwork about the
build status of the affected packages, I need to compare what's been
build by my Cuirass instance, with what https://ci.guix.info/ has
built. To do this, my current plan is to have the Guix Data Service
monitor a number of Cuirass instances somehow, extract information from
them and store it. You'd then be able to get a comparison for the build
status using the results gathered from the two Cuirass instances from
the Guix Data Service.

Going back to some of the aims I have with this, I think something like
this could help people review and test there own patch submissions, as
well as assisting those taking the time to review patches that others
have submitted.

There's a few more related things on my mind, but I'll end this email
here.

Chris

Attachment: signature.asc
Description: PGP signature


reply via email to

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