From mboxrd@z Thu Jan 1 00:00:00 1970 Received: from eggs.gnu.org ([2001:4830:134:3::10]:49003) by lists.gnu.org with esmtp (Exim 4.71) (envelope-from ) id 1dwwUZ-0004Vb-OT for guix-patches@gnu.org; Tue, 26 Sep 2017 16:30:09 -0400 Received: from Debian-exim by eggs.gnu.org with spam-scanned (Exim 4.71) (envelope-from ) id 1dwwUU-0003Jf-PY for guix-patches@gnu.org; Tue, 26 Sep 2017 16:30:07 -0400 Received: from debbugs.gnu.org ([208.118.235.43]:53236) by eggs.gnu.org with esmtps (TLS1.0:RSA_AES_128_CBC_SHA1:16) (Exim 4.71) (envelope-from ) id 1dwwUU-0003JL-J1 for guix-patches@gnu.org; Tue, 26 Sep 2017 16:30:02 -0400 Received: from Debian-debbugs by debbugs.gnu.org with local (Exim 4.84_2) (envelope-from ) id 1dwwUU-0008RH-CG for guix-patches@gnu.org; Tue, 26 Sep 2017 16:30:02 -0400 Subject: [bug#28487] [PATCH] cuirass: Add gnu-system build spec. Resent-Message-ID: From: ludo@gnu.org (Ludovic =?UTF-8?Q?Court=C3=A8s?=) References: <20170917201157.9802-1-janneke@gnu.org> <20170917201157.9802-5-janneke@gnu.org> <87zi9h27q3.fsf@gnu.org> <87mv5hqr73.fsf@gnu.org> Date: Tue, 26 Sep 2017 22:29:15 +0200 In-Reply-To: <87mv5hqr73.fsf@gnu.org> (Jan Nieuwenhuizen's message of "Tue, 26 Sep 2017 19:56:32 +0200") Message-ID: <87a81hgq5g.fsf@gnu.org> MIME-Version: 1.0 Content-Type: text/plain; charset=utf-8 Content-Transfer-Encoding: quoted-printable List-Id: List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , Errors-To: guix-patches-bounces+kyle=kyleam.com@gnu.org Sender: "Guix-patches" To: Jan Nieuwenhuizen Cc: 28487@debbugs.gnu.org Jan Nieuwenhuizen skribis: > Ludovic Court=C3=A8s writes: > >> I like this but=E2=80=A6 while we=E2=80=99re at it, could we arrange to = have a single >> file that works for both Hydra and Cuirass? > > I like that. It bothered me a bit to have similar files (not DRY) but > didn't see how that could be easily avoided. > >> The main difference is that one returns an alist with symbols, whereas >> the other returns an alist with keywords. > > That helps a lot...I kind of vaguely knew this but not well enough to see= it! > >> If we could instead add, say, build-aux/hydra/gnu-system-cuirass.scm, >> which simply loads gnu-system.scm and =E2=80=9Cconverts=E2=80=9D the res= ulting alist >> appropriately, that would be awesome. > > I opted for build-aux/cuiras/gnu-cuirass.scm. Sounds good! > Attached is a new proposal, untested. I will test it tomorrow, please > shoot on things that are already visibly foo. > > One question: Assuming we intend to move to Cuirass and away from Hydra, > do we want to reverse the translation: have Cuirass be the untranslated > version and keep the translation to Hydra alive for as long as we need > to support Hydra? > > Greetings, > janneke > > From 8f10a707b0bbf6949388d85de175ed98974a8df4 Mon Sep 17 00:00:00 2001 > From: Jan Nieuwenhuizen > Date: Sat, 16 Sep 2017 12:57:37 +0200 > Subject: [PATCH] cuirass: Add gnu-system build spec. > > * build-aux/hydra/gnu-system.scm (hydra-jobs): Add subsets "hello" > and list of packages: ("name[@version" ...). > * build-aux/cuirass/gnu-system.scm: New file. > * doc/guix.texi (Continuous Integration): Update example spec. > --- > build-aux/cuirass/gnu-system.scm | 36 ++++++++++++++++++++++++++++++++++= ++ > build-aux/hydra/gnu-system.scm | 18 ++++++++++++++++++ > doc/guix.texi | 4 ++-- > 3 files changed, 56 insertions(+), 2 deletions(-) > create mode 100644 build-aux/cuirass/gnu-system.scm > > diff --git a/build-aux/cuirass/gnu-system.scm b/build-aux/cuirass/gnu-sys= tem.scm > new file mode 100644 > index 000000000..b545323f6 > --- /dev/null > +++ b/build-aux/cuirass/gnu-system.scm > @@ -0,0 +1,36 @@ > +;;; GNU Guix --- Functional package management for GNU > +;;; Copyright =C2=A9 2017 Jan Nieuwenhuizen > +;;; > +;;; This file is part of GNU Guix. > +;;; > +;;; GNU Guix is free software; you can redistribute it and/or modify it > +;;; under the terms of the GNU General Public License as published by > +;;; the Free Software Foundation; either version 3 of the License, or (at > +;;; your option) any later version. > +;;; > +;;; GNU Guix is distributed in the hope that it will be useful, but > +;;; WITHOUT ANY WARRANTY; without even the implied warranty of > +;;; MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the > +;;; GNU General Public License for more details. > +;;; > +;;; You should have received a copy of the GNU General Public License > +;;; along with GNU Guix. If not, see . > + > +;;; > +;;; This file defines build jobs for the Cuirass continuation integration > +;;; tool. > +;;; > + > +(include-from-path "build-aux/hydra/gnu-system.scm") > + > +(define (cuirass-jobs store arguments) > + "Return Cuirass jobs." > + (pk (map hydra-job->cuirass-job (hydra-jobs store arguments)))) > + > +(define (hydra-job->cuirass-job hydra-job) > + (let ((name (car hydra-job)) > + (job ((cdr hydra-job)))) > + (cons name (lambda _ (map symbol-alist-entry->keyword-alist-entry jo= b))))) > + > +(define (symbol-alist-entry->keyword-alist-entry entry) > + (cons (symbol->keyword (car entry)) (cdr entry))) I *think* that=E2=80=99s correct, though we=E2=80=99ll need to double check. > --- a/build-aux/hydra/gnu-system.scm > +++ b/build-aux/hydra/gnu-system.scm > @@ -270,6 +270,8 @@ valid." > (define subset > (match (assoc-ref arguments 'subset) > ("core" 'core) ; only build core pack= ages > + ("hello" 'hello) ; only build hello > + (((? string?) (? string?) ...) 'list) ; only build selected = list of packages > (_ 'all))) ; build everything This part could be added separately. (It=E2=80=99s not usuable via Hydra since its UIs does not support passing list-of-strings arguments.) Thanks a lot! Ludo=E2=80=99.