unofficial mirror of guile-devel@gnu.org 
 help / color / mirror / Atom feed
* Setting up CI for Guile
@ 2016-10-06  4:26 Wilfred Hughes
  2016-10-06  9:43 ` Taylan Ulrich Bayırlı/Kammer
                   ` (3 more replies)
  0 siblings, 4 replies; 6+ messages in thread
From: Wilfred Hughes @ 2016-10-06  4:26 UTC (permalink / raw)
  To: guile-devel

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.

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).

You can see my different branches being tested here:
https://gitlab.com/wilfred/guile/pipelines?scope=branches

Guile compilation is slow: 3 hours 15 minutes on my feeble laptop.
GitLab's CI only gives you an hour.

I solved this by creating a Docker image:
https://gitlab.com/wilfred/guile-build-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).

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.

In any case, I'm finding it very helpful, maybe you will find so too.

Cheers
Wilfred



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

* Re: Setting up CI for Guile
  2016-10-06  4:26 Setting up CI for Guile Wilfred Hughes
@ 2016-10-06  9:43 ` Taylan Ulrich Bayırlı/Kammer
  2016-10-06 14:34 ` Thompson, David
                   ` (2 subsequent siblings)
  3 siblings, 0 replies; 6+ messages in thread
From: Taylan Ulrich Bayırlı/Kammer @ 2016-10-06  9:43 UTC (permalink / raw)
  To: Wilfred Hughes; +Cc: guile-devel

Wilfred Hughes <me@wilfred.me.uk> writes:

> 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.

Hi, thanks for working on this, it sounds like an interesting idea. :-)

Just one thing that caught my eye:

> 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).
>
> You can see my different branches being tested here:
> https://gitlab.com/wilfred/guile/pipelines?scope=branches

As far as I know, while there's a "community edition" of GitLab that's
free software, gitlab.com runs on the proprietary "enterprise edition".
So using it for a GNU project is probably not a good idea.

Taylan



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

* Re: Setting up CI for Guile
  2016-10-06  4:26 Setting up CI for Guile Wilfred Hughes
  2016-10-06  9:43 ` Taylan Ulrich Bayırlı/Kammer
@ 2016-10-06 14:34 ` Thompson, David
  2016-10-06 15:16   ` Jan Nieuwenhuizen
  2016-10-11 19:56 ` Ludovic Courtès
  2016-10-18  1:39 ` Mike Gerwitz
  3 siblings, 1 reply; 6+ messages in thread
From: Thompson, David @ 2016-10-06 14:34 UTC (permalink / raw)
  To: Wilfred Hughes; +Cc: guile-devel

On Thu, Oct 6, 2016 at 12:26 AM, Wilfred Hughes <me@wilfred.me.uk> 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).

gitlab.com 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:
> https://gitlab.com/wilfred/guile/pipelines?scope=branches
>
> 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 hydra.gnu.org 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:
> https://gitlab.com/wilfred/guile-build-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



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

* Re: Setting up CI for Guile
  2016-10-06 14:34 ` Thompson, David
@ 2016-10-06 15:16   ` Jan Nieuwenhuizen
  0 siblings, 0 replies; 6+ messages in thread
From: Jan Nieuwenhuizen @ 2016-10-06 15:16 UTC (permalink / raw)
  To: Thompson, David; +Cc: guile-devel

Thompson, David writes:

>> 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.

+1

> 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 hydra.gnu.org that runs Hydra from the
> Nix project, named Cuirass, so I think we should try to use that
> instead of GitLab.

I so much like this idea, that I contributed some patches to Cuirass to
do exactly this.  Next to being a CI dedicated for GuixSD to track any
package's git.  Here's the discussion

    https://lists.gnu.org/archive/html/guix-devel/2016-09/threads.html#01338

patches are in  Cuirass now and anyone is much encouraged to play.

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

Yes!

Greetings,
Jan

-- 
Jan Nieuwenhuizen <janneke@gnu.org> | GNU LilyPond http://lilypond.org
Freelance IT http://JoyofSource.com | Avatar®  http://AvatarAcademy.nl  



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

* Re: Setting up CI for Guile
  2016-10-06  4:26 Setting up CI for Guile Wilfred Hughes
  2016-10-06  9:43 ` Taylan Ulrich Bayırlı/Kammer
  2016-10-06 14:34 ` Thompson, David
@ 2016-10-11 19:56 ` Ludovic Courtès
  2016-10-18  1:39 ` Mike Gerwitz
  3 siblings, 0 replies; 6+ messages in thread
From: Ludovic Courtès @ 2016-10-11 19:56 UTC (permalink / raw)
  To: guile-devel

Hello,

Wilfred Hughes <me@wilfred.me.uk> skribis:

> 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.

FWIW, Guile has been continuously built on resources provided by the
NixOS project for several years now:

  http://hydra.nixos.org/jobset/gnu/guile-master
  http://hydra.nixos.org/jobset/gnu/guile-2-0

See <https://www.gnu.org/software/devel.html#Hydra> for details.

There’s no integration with patch review though.

Thanks,
Ludo’.




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

* Re: Setting up CI for Guile
  2016-10-06  4:26 Setting up CI for Guile Wilfred Hughes
                   ` (2 preceding siblings ...)
  2016-10-11 19:56 ` Ludovic Courtès
@ 2016-10-18  1:39 ` Mike Gerwitz
  3 siblings, 0 replies; 6+ messages in thread
From: Mike Gerwitz @ 2016-10-18  1:39 UTC (permalink / raw)
  To: Wilfred Hughes; +Cc: guile-devel

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

Wilfred:

On Thu, Oct 06, 2016 at 00:26:28 -0400, Wilfred Hughes wrote:
> 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).

GitLab CE is free software.  GitLab EE is not, but all of the JavaScript
served to the browser is.[0]

But their CI services are SaaSS.[1]  If all builds took place on servers
that Guile developers control---like the current Hydra servers---then
this wouldn't be a problem.

The GNU Project has criteria for hosts that it considers to be
acceptable for hosting GNU software.[2]  GitLab is an acceptable host
under those criteria, but one of the criteria---A5---requires that the
host not recommend SaaSS.  Unfortunately, GitLab won't ever be able to
meet that.  It's okay to use GitLab to host repositories, but not for
SaaSS.


[0]: https://about.gitlab.com/2015/05/20/gitlab-gitorious-free-software/
[1]: https://www.gnu.org/philosophy/who-does-that-server-really-serve.html
[2]: https://www.gnu.org/software/repo-criteria.html

-- 
Mike Gerwitz
Free Software Hacker+Activist | GNU Maintainer & Volunteer
GPG: D6E9 B930 028A 6C38 F43B  2388 FEF6 3574 5E6F 6D05
Old: 2217 5B02 E626 BC98 D7C0  C2E5 F22B B815 8EE3 0EAB
https://mikegerwitz.com

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

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

end of thread, other threads:[~2016-10-18  1:39 UTC | newest]

Thread overview: 6+ messages (download: mbox.gz follow: Atom feed
-- links below jump to the message on this page --
2016-10-06  4:26 Setting up CI for Guile Wilfred Hughes
2016-10-06  9:43 ` Taylan Ulrich Bayırlı/Kammer
2016-10-06 14:34 ` Thompson, David
2016-10-06 15:16   ` Jan Nieuwenhuizen
2016-10-11 19:56 ` Ludovic Courtès
2016-10-18  1:39 ` Mike Gerwitz

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).