From mboxrd@z Thu Jan 1 00:00:00 1970 From: ludo@gnu.org (Ludovic =?utf-8?Q?Court=C3=A8s?=) Subject: Re: Cuirass changes Date: Wed, 11 Jul 2018 12:09:54 +0200 Message-ID: <874lh6nkwd.fsf@gnu.org> References: <87h8lh34av.fsf@lassieur.org> Mime-Version: 1.0 Content-Type: text/plain; charset=utf-8 Content-Transfer-Encoding: quoted-printable Return-path: Received: from eggs.gnu.org ([2001:4830:134:3::10]:43758) by lists.gnu.org with esmtp (Exim 4.71) (envelope-from ) id 1fdC4M-0008Nv-JB for guix-devel@gnu.org; Wed, 11 Jul 2018 06:09:59 -0400 Received: from Debian-exim by eggs.gnu.org with spam-scanned (Exim 4.71) (envelope-from ) id 1fdC4L-0004m3-F5 for guix-devel@gnu.org; Wed, 11 Jul 2018 06:09:58 -0400 In-Reply-To: <87h8lh34av.fsf@lassieur.org> (=?utf-8?Q?=22Cl=C3=A9ment?= Lassieur"'s message of "Mon, 02 Jul 2018 20:01:28 +0200") 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: =?utf-8?Q?Cl=C3=A9ment?= Lassieur Cc: guix-devel@gnu.org Hi Cl=C3=A9ment, Sorry for the delay. Lots of exciting stuff in this message! Cl=C3=A9ment Lassieur skribis: > 1. Adding support for multiple inputs. Currently Cuirass only supports > one input per specification, which has to be the Guix git repository. > But one might want inputs for: > - a repository containing the 'proc' that returns the jobs, > - a repository containing extra packages (GUIX_PACKAGE_PATH). > Those inputs would be fetched at INTERVAL as well, and any change would > trigger an evaluation. This is a follow-up of > https://lists.gnu.org/archive/html/guix-patches/2018-06/msg00311.html. Excellent. I think the polling interval should be per input, while we=E2=80=99re at it. > 2. Removing the notion of 'project'. Cuirass really has no project, and > what is called a 'project' is in fact a 'specification' (which Hydra > calls 'jobset'). And what is called a 'jobset' by Cuirass is in fact > the branch of the Guix input. So the patch associates to the name > 'jobset' what it really is: a specification. A consequence is that the > 'jobset' filtering of the API now filters by specification name, and it > is not possible anymore to filter by branch. (But it was useless IMHO.) That makes sense to me. > 3. Allowing any input to be in Guile's %load-path when 'proc' is called. > Usually, the only input that is in Guile's %load-path is Guix. But > someone might want to use a custom library in 'proc'. The alternative > is to just specify the Guix input that should be appended to Guile's > %load-path. > > (I'm unsure about 3., I can't find any real use case. That would just > make it more flexible I guess.) We can also wait until there=E2=80=99s a real use case, it=E2=80=99s often = a good idea. :-) > Also, some specification fields (#:load-path-inputs, > #:package-path-inputs, #:proc-input) refer to the inputs by their name, > as Hydra does (with nixExprInput). Nice! > This makes it easy to do configuration mistakes, and would ultimately > require a configuration syntax checker. The only alternative I can > think of involves duplicating the inputs, which isn't good. Good. > I'm sending this email because even though the patches are already done > and they work on my Cuirass instance, there are a few other things to do > before I can send them: > - add a mechanism to update the database, > - update the documentation. > So if you think I'm not on the right track, please let me know as soon > as possible :-) Looks like you=E2=80=99re on the right track. You submitted changes to guix-patches in the meantime so I=E2=80=99ll take a look at these. > I attached my configuration before those patches and the one after them, > so that you can see how the new configuration would look like. The work > in progress is available at > https://git.lassieur.org/cgit/cuirass.git/log/. Neat. > '((#:name . "guix-manifest-savannah") > (#:load-path-inputs . ("guix")) > (#:package-path-inputs . ("packages")) > (#:proc-input . "conf") > (#:proc-path . "guix/cuirass-derivations.scm") > (#:proc . drv-list) > (#:proc-args . ()) > (#:inputs . (((#:name . "guix") > (#:url . "git://git.savannah.gnu.org/guix.git") > (#:load-path . ".") > (#:branch . "master") > (#:no-compile? . #t)) > ((#:name . "conf") > (#:url . "git://git.lassieur.org/emacs.git") > (#:load-path . ".") > (#:branch . "master") > (#:no-compile? . #t)) > ((#:name . "packages") > (#:url . "git://git.lassieur.org/packages.git") > (#:load-path . ".") > (#:branch . "master") > (#:no-compile? . #t))))) Really cool example, and exactly what we were missing from Hydra. Thanks a lot for working on this! Ludo=E2=80=99.