From mboxrd@z Thu Jan 1 00:00:00 1970 Path: news.gmane.io!.POSTED.blaine.gmane.org!not-for-mail From: =?utf-8?Q?Ludovic_Court=C3=A8s?= Newsgroups: gmane.comp.gnu.guix.devel,gmane.lisp.guile.devel Subject: Resurrecting top-notch continuous integration for Guile Date: Sun, 29 Jan 2023 18:36:19 +0100 Message-ID: <87lell2qgc.fsf@inria.fr> Mime-Version: 1.0 Content-Type: multipart/signed; boundary="=-=-="; micalg=pgp-sha512; protocol="application/pgp-signature" Injection-Info: ciao.gmane.io; posting-host="blaine.gmane.org:116.202.254.214"; logging-data="34661"; mail-complaints-to="usenet@ciao.gmane.io" User-Agent: Gnus/5.13 (Gnus v5.13) Emacs/28.2 (gnu/linux) Cc: guix-devel@gnu.org To: guile-devel@gnu.org Original-X-From: guix-devel-bounces+gcggd-guix-devel=m.gmane-mx.org@gnu.org Sun Jan 29 18:36:59 2023 Return-path: Envelope-to: gcggd-guix-devel@m.gmane-mx.org Original-Received: from lists.gnu.org ([209.51.188.17]) by ciao.gmane.io with esmtps (TLS1.2:ECDHE_RSA_AES_256_GCM_SHA384:256) (Exim 4.92) (envelope-from ) id 1pMBbv-0008q5-98 for gcggd-guix-devel@m.gmane-mx.org; Sun, 29 Jan 2023 18:36:59 +0100 Original-Received: from localhost ([::1] helo=lists1p.gnu.org) by lists.gnu.org with esmtp (Exim 4.90_1) (envelope-from ) id 1pMBbN-0008JI-0K; Sun, 29 Jan 2023 12:36:25 -0500 Original-Received: from eggs.gnu.org ([2001:470:142:3::10]) by lists.gnu.org with esmtps (TLS1.2:ECDHE_RSA_AES_256_GCM_SHA384:256) (Exim 4.90_1) (envelope-from ) id 1pMBbL-0008Ic-Dm; Sun, 29 Jan 2023 12:36:23 -0500 Original-Received: from fencepost.gnu.org ([2001:470:142:3::e]) by eggs.gnu.org with esmtps (TLS1.2:ECDHE_RSA_AES_256_GCM_SHA384:256) (Exim 4.90_1) (envelope-from ) id 1pMBbL-0006xz-66; Sun, 29 Jan 2023 12:36:23 -0500 DKIM-Signature: v=1; a=rsa-sha256; q=dns/txt; c=relaxed/relaxed; d=gnu.org; s=fencepost-gnu-org; h=MIME-Version:Date:Subject:To:From:in-reply-to: references; bh=8Zj7KwYXWiNHB87qL+lAsVuWJwXbzfjA0qNCtp9IhY4=; b=e8ljzCL7giD8vY qHXsHrcwYPNiZB6hBvK2Zytfhxc/1JTI7IBJYGHEOXv36RrPkhEYzKin+01/x1bWfbL9r7S0UC0np C+tYyoOctv0RFuqGNzExRQzzV1jJn5NY37lc3O39u33WVBwC/PYKSXYRz6SzsFGuFqehqW0GfLGm9 XirYGRoP4dngwdT1jB2q/aQeSRChh+rQxaa2YIZSn++ys0iT60CmL9QwsrCyXZgVltGQeIYpwFdT2 2M4xM0q/KfuQR+sQPdftFyNZ6jO/xyXbSLNSEwcAsm5OUlAGYCb5M1zCH8a3EqElF+JPJFm5Rt5T9 2Wjlit6kQe4x5Sm0GSEg==; Original-Received: from [2a01:e0a:1d:7270:af76:b9b:ca24:c465] (helo=ribbon) by fencepost.gnu.org with esmtpsa (TLS1.2:ECDHE_RSA_AES_256_GCM_SHA384:256) (Exim 4.90_1) (envelope-from ) id 1pMBbK-0006QP-PT; Sun, 29 Jan 2023 12:36:22 -0500 X-URL: http://www.fdn.fr/~lcourtes/ X-Revolutionary-Date: =?utf-8?Q?D=C3=A9cadi?= 10 =?utf-8?Q?Pluvi=C3=B4se?= an 231 de la =?utf-8?Q?R=C3=A9volution=2C?= jour de la =?utf-8?Q?Cogn=C3=A9e?= X-PGP-Key-ID: 0x090B11993D9AEBB5 X-PGP-Key: http://www.fdn.fr/~lcourtes/ludovic.asc X-PGP-Fingerprint: 3CE4 6455 8A84 FDC6 9DB4 0CFB 090B 1199 3D9A EBB5 X-OS: x86_64-pc-linux-gnu X-BeenThere: guix-devel@gnu.org X-Mailman-Version: 2.1.29 Precedence: list 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-mx.org@gnu.org Original-Sender: guix-devel-bounces+gcggd-guix-devel=m.gmane-mx.org@gnu.org Xref: news.gmane.io gmane.comp.gnu.guix.devel:65217 gmane.lisp.guile.devel:21659 Archived-At: --=-=-= Content-Type: text/plain; charset=utf-8 Content-Transfer-Encoding: quoted-printable Hello Guilers! (And hello Guix=E2=80=94that=E2=80=99s about an interesting use case. :-)) Back in 2009, together with Rob Vermaas of NixOS, we set up continuous integration for Guile (among other GNU packages), using Nix coupled with Hydra, its continuous integration (CI) system: https://lists.gnu.org/archive/html/guile-devel/2009-11/msg00084.html The CI jobs still exist although they=E2=80=99ve been bitrotting for ~10 ye= ars: https://hydra.nixos.org/jobset/gnu/guile-2-0 https://git.savannah.gnu.org/cgit/hydra-recipes.git/tree/guile/release.nix Ten years ago is when I embarked on this side project *cough* called Guix (Guix =3D Guile + Nix, see?). To close the loop, it=E2=80=99s natural= to reinstate CI, but this time with Guix and Cuirass, its companion CI tool=E2=80=94Guile code all the way down! You can see these new CI jobs on= the build farm of the Guix project: https://ci.guix.gnu.org/jobset/guile (Speaking of which, I hereby ask fellow Guix hackers to voice any concerns they may have regarding this use of project resources.) Code for these jobs is currently in a Guile branch: https://git.savannah.gnu.org/cgit/guile.git/log/?h=3Dwip-cuirass-ci This branch brings several things: 1. The =E2=80=98guix.scm=E2=80=99 file at the top can be used to spawn a = shell with a development environment for Guix: guix shell It can also be used to (cross-)build Guile, as in: guix build -f guix.scm --target=3Dx86_64-w64-mingw32 2. =E2=80=98build-aux/manifest.scm=E2=80=99 defines a Guix =E2=80=9Cmanif= est=E2=80=9D for several Guile builds we may want to test: building with Clang, cross-compiling to MinGW and RISCV and whatnot, building with =E2=80=98--disable-threads=E2=80=99, etc. 3. There=E2=80=99s a =E2=80=98.guix-channel=E2=80=99 file at the top, mea= ning that Guile can be used as a Guix =E2=80=9Cchannel=E2=80=9D providing additional packa= ges. You=E2=80=99d do that by having something as following in ~/.config/guix/channels.scm and then running =E2=80=98guix pull=E2=80= =99: (cons (channel (name 'guile) (url "https://git.savannah.gnu.org/git/guile.git") (branch "wip-cuirass-ci")) %default-channels) This is arguably the weirdest part, but that=E2=80=99s how we get Cuir= ass to consume Guile. There=E2=80=99s still much tweaking we can do, but the basics are in place,= and I find it pretty cool. :-) If there are no objections, I=E2=80=99ll merge= this branch into =E2=80=9Cmain=E2=80=9D. It=E2=80=99s going to be nice to have = a dashboard to look at before the next release! Feedback welcome! Ludo=E2=80=99. --=-=-= Content-Type: application/pgp-signature; name="signature.asc" -----BEGIN PGP SIGNATURE----- iQJBBAEBCgArFiEEPORkVYqE/cadtAz7CQsRmT2a67UFAmPWrpMNHGx1ZG9AZ251 Lm9yZwAKCRAJCxGZPZrrta+ED/0d5qj/BXOt4wlmwJ0H8Li2mn5WsSbRC7K34/Jz xYjsrbLUROv1oih//AQcz8Z7hrfx6O/aFNifHjsIZEYiYIHZFUgM+iD7QFKcajdr P4iz89zNX6KM8dxfosFAE00Ei7qkR75OxRCdR6z1lSoq/7rlmtDQTKYSwoObLPUX LaYG7O+4yC7eXntUWR4MkDv780/gI80qUs/ty5QdJeI/jC0RWoPFcg5e+8H3mOBr FDhIspRO89Ne93MmlV+aJV6M6S8TaLmePgUUS1nLIiJm1d6rJGjvHSsIYC1hQn20 CgG2QgPkriplJMvqsvVHYcyZqlhb7Qf8/kC0mA+sNYEy7pO0dE9FZWAaB23yhiuv cIf+CImhN1BtCN5CGf8+Cu/SQCPjaAU/ukHdxzTLmAGlTY2CEJoTjsc7fdAYPKrb yqiS+sHksU/X9a07h+RCx11rRH4WEz8Mmgr5+okeJB37Kpk4altm3SxXbjyDxUFS B4YGc1eMo8Ik3dka7EYbFH1FAF+atBt3BHGnFHD/3LiSafaT2+jIkHbc98Uo+X4r KTFCsrB7SHjfzYAwvMzrQllo3Lj1Gwhyt6HjMCf3f8OTh7JZVHTytKS282Kcu+0W MddPIYO3CI0MuDZVl8yZ49/7ydP/XuWn+BeCGMTDVQ2oFBtTbxSPQwXyiDyyWsVl N2zhgg== =Hu+i -----END PGP SIGNATURE----- --=-=-=--