[Top][All Lists]

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

Re: Setting up CI for Guile

From: Thompson, David
Subject: Re: Setting up CI for Guile
Date: Thu, 6 Oct 2016 10:34:39 -0400

On Thu, Oct 6, 2016 at 12:26 AM, Wilfred Hughes <address@hidden> wrote:
> Hi folks
> I'm a big fan of CI (automated testing), and maybe you are too. I'd
> love to have CI for reviewing patches of Guile.

This is a good idea.

> So, I decided to set it up! This isn't something that's available on
> GNU Savannah, so I've used GitLab (which is still FSF-approved Free
> Software). runs the proprietary version of the GitLab server, but IIRC
all of the JavaScript is still free, so it's OK, but not ideal.

> You can see my different branches being tested here:
> Guile compilation is slow: 3 hours 15 minutes on my feeble laptop.
> GitLab's CI only gives you an hour.

That's unfortunate.  It's important to build from scratch, which means
bootstrapping the compiler, which indeed takes awhile, but patches
generally take days or longer to be reviewed and merged so a few hours
is no big deal, IMO.  The GNU Guix project is working on a replacement
for its current CI system at that runs Hydra from the
Nix project, named Cuirass, so I think we should try to use that
instead of GitLab.

> I solved this by creating a Docker image:
> that contains a recent
> checkout of Guile that has been built. This allows me to do an
> incremental build in GitLab, which is much faster (5-10 minutes,
> including tests).

Docker is a dealbreaker for me.  Don't have time to get into it here
but it would be much better to use Guix, which has the additional
benefit of being written in Guile.

> What do you think? I'd love this to become the standard way to
> contribute: it's easy to see what patches are in need of review, and
> whether tests pass after a given patch is applied.

I think this is a wonderful idea that could use a new implementation.
Thanks for getting the ball rolling with the proof-of-concept!

- Dave

reply via email to

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