unofficial mirror of guile-devel@gnu.org 
 help / color / mirror / Atom feed
* Resurrecting top-notch continuous integration for Guile
@ 2023-01-29 17:36 Ludovic Courtès
  2023-01-29 18:34 ` Felix Lechner via Development of GNU Guix and the GNU System distribution.
                   ` (2 more replies)
  0 siblings, 3 replies; 5+ messages in thread
From: Ludovic Courtès @ 2023-01-29 17:36 UTC (permalink / raw)
  To: guile-devel; +Cc: guix-devel

[-- Attachment #1: Type: text/plain, Size: 2587 bytes --]

Hello Guilers!

(And hello Guix—that’s 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’ve been bitrotting for ~10 years:

  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 = Guile + Nix, see?).  To close the loop, it’s natural to
reinstate CI, but this time with Guix and Cuirass, its companion CI
tool—Guile 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=wip-cuirass-ci

This branch brings several things:

  1. The ‘guix.scm’ 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=x86_64-w64-mingw32

  2. ‘build-aux/manifest.scm’ defines a Guix “manifest” for several
     Guile builds we may want to test: building with Clang,
     cross-compiling to MinGW and RISCV and whatnot, building with
     ‘--disable-threads’, etc.

  3. There’s a ‘.guix-channel’ file at the top, meaning that Guile can
     be used as a Guix “channel” providing additional packages.  You’d
     do that by having something as following in
     ~/.config/guix/channels.scm and then running ‘guix pull’:

       (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’s how we get Cuirass
     to consume Guile.

There’s still much tweaking we can do, but the basics are in place, and
I find it pretty cool.  :-)  If there are no objections, I’ll merge this
branch into “main”.  It’s going to be nice to have a dashboard to look
at before the next release!

Feedback welcome!

Ludo’.

[-- Attachment #2: signature.asc --]
[-- Type: application/pgp-signature, Size: 853 bytes --]

^ permalink raw reply	[flat|nested] 5+ messages in thread

* Re: Resurrecting top-notch continuous integration for Guile
  2023-01-29 17:36 Resurrecting top-notch continuous integration for Guile Ludovic Courtès
@ 2023-01-29 18:34 ` Felix Lechner via Development of GNU Guix and the GNU System distribution.
  2023-01-29 21:02 ` Tobias Geerinckx-Rice
  2023-02-06 16:58 ` Ludovic Courtès
  2 siblings, 0 replies; 5+ messages in thread
From: Felix Lechner via Development of GNU Guix and the GNU System distribution. @ 2023-01-29 18:34 UTC (permalink / raw)
  To: Ludovic Courtès; +Cc: guix-devel, guile-devel

Hi Ludo'

On Sun, Jan 29, 2023 at 9:37 AM Ludovic Courtès <ludo@gnu.org> wrote:
>
> I hereby ask fellow Guix hackers to voice any
> concerns they may have regarding this use of project resources.

I am not a Guix hacker (although maybe every user is one too) and, as
a newbie, I cannot speak for the group but the Guix project is built
on Guile and depends on Guile functioning properly. I cannot imagine
any opposition whatsoever.

The way I see it, Guixers are more likely to celebrate your proposal
as a welcome milestone in the continuous evolution of Guix and Nix.

> If there are no objections, I’ll merge this
> branch into “main”.

As it stands, Guix owes a profound debt of gratitude to Guile and its
developers. There is no reason to wait.

Thank you for your expert stewardship in designing the OS we all love so much!

Kind regards
Felix



^ permalink raw reply	[flat|nested] 5+ messages in thread

* Re: Resurrecting top-notch continuous integration for Guile
  2023-01-29 17:36 Resurrecting top-notch continuous integration for Guile Ludovic Courtès
  2023-01-29 18:34 ` Felix Lechner via Development of GNU Guix and the GNU System distribution.
@ 2023-01-29 21:02 ` Tobias Geerinckx-Rice
  2023-02-06 16:58 ` Ludovic Courtès
  2 siblings, 0 replies; 5+ messages in thread
From: Tobias Geerinckx-Rice @ 2023-01-29 21:02 UTC (permalink / raw)
  To: guile-devel, Ludovic Courtès; +Cc: guix-devel

Hello,

> (Speaking of which, I hereby ask fellow Guix hackers to voice any
> concerns they may have regarding this use of project resources.)

Please use project resources.  Thank you.

Kind regards,

T G-R

Sent on the go.  Excuse or enjoy my brevity.



^ permalink raw reply	[flat|nested] 5+ messages in thread

* Re: Resurrecting top-notch continuous integration for Guile
  2023-01-29 17:36 Resurrecting top-notch continuous integration for Guile Ludovic Courtès
  2023-01-29 18:34 ` Felix Lechner via Development of GNU Guix and the GNU System distribution.
  2023-01-29 21:02 ` Tobias Geerinckx-Rice
@ 2023-02-06 16:58 ` Ludovic Courtès
  2023-02-06 20:55   ` Maxim Cournoyer
  2 siblings, 1 reply; 5+ messages in thread
From: Ludovic Courtès @ 2023-02-06 16:58 UTC (permalink / raw)
  To: guile-devel; +Cc: guix-devel

Hi!

Ludovic Courtès <ludo@gnu.org> skribis:

> There’s still much tweaking we can do, but the basics are in place, and
> I find it pretty cool.  :-)  If there are no objections, I’ll merge this
> branch into “main”.  It’s going to be nice to have a dashboard to look
> at before the next release!

Merged in Guile’s ‘main’ branch as commit
32f33756d0fbbf28e848f087375f75c265d0a46c!

If Guix is your thing, you can now get started hacking on Guile with:

  guix shell

The continuous integration jobs are visible at:

  https://ci.guix.gnu.org/jobset/guile

Happy hacking!

Ludo’.



^ permalink raw reply	[flat|nested] 5+ messages in thread

* Re: Resurrecting top-notch continuous integration for Guile
  2023-02-06 16:58 ` Ludovic Courtès
@ 2023-02-06 20:55   ` Maxim Cournoyer
  0 siblings, 0 replies; 5+ messages in thread
From: Maxim Cournoyer @ 2023-02-06 20:55 UTC (permalink / raw)
  To: Ludovic Courtès; +Cc: guile-devel, guix-devel

Hi!

Ludovic Courtès <ludo@gnu.org> writes:

> Hi!
>
> Ludovic Courtès <ludo@gnu.org> skribis:
>
>> There’s still much tweaking we can do, but the basics are in place, and
>> I find it pretty cool.  :-)  If there are no objections, I’ll merge this
>> branch into “main”.  It’s going to be nice to have a dashboard to look
>> at before the next release!
>
> Merged in Guile’s ‘main’ branch as commit
> 32f33756d0fbbf28e848f087375f75c265d0a46c!
>
> If Guix is your thing, you can now get started hacking on Guile with:
>
>   guix shell
>
> The continuous integration jobs are visible at:
>
>   https://ci.guix.gnu.org/jobset/guile
>
> Happy hacking!
>
> Ludo’.
>

Fun!  Nice symbiosis :-).

-- 
Thanks,
Maxim



^ permalink raw reply	[flat|nested] 5+ messages in thread

end of thread, other threads:[~2023-02-06 20:55 UTC | newest]

Thread overview: 5+ messages (download: mbox.gz / follow: Atom feed)
-- links below jump to the message on this page --
2023-01-29 17:36 Resurrecting top-notch continuous integration for Guile Ludovic Courtès
2023-01-29 18:34 ` Felix Lechner via Development of GNU Guix and the GNU System distribution.
2023-01-29 21:02 ` Tobias Geerinckx-Rice
2023-02-06 16:58 ` Ludovic Courtès
2023-02-06 20:55   ` Maxim Cournoyer

This is a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox;
as well as URLs for read-only IMAP folder(s) and NNTP newsgroup(s).