[gambit-list] CI (continuous integration) and bootstrapping

Lassi Kortela lassi at lassi.io
Sat Nov 2 05:41:20 EDT 2019


What is the main developers' stance on CI?

Currently a Linux build is done on Travis and a Windows build on AppVeyor.

I would recommend migrating to newer CI services:

* I've have an excellent experience with Cirrus CI. They offer an 
extremely simple, no-frills experience; the UI has only the information 
you need. They support building on arbitrary Docker containers (which 
means it's easy to build on any Linux distro). They also have Windows, 
MacOS and FreeBSD. All of these can be driven from one YAML file.

* I can also recommend GitLab CI which is similarly easy to use. Like 
Cirrus, they easily support Docker containers for Linux builds. I'm not 
sure how to do MacOS, Windows or BSD on it; you may have to bring your 
own server and install your own build runner on it. GitLab CI has more 
features than Cirrus but I'm not sure whether we need them (yet). It may 
be that GitLab CI can only be used on GitLab-hosted repos; not sure 
about this. So if we host Gambit on GitHub, there would have to be a 
hook that auto-updates a GitLab mirror as well.

* Circle CI also gets a thumbs up from Göran Weinholt who has done 
complex CI for Scheme. It has Linux, Windows and Mac; not sure about the 
details. I have no personal experience with this service.

Separately from the choice of CI service, there's the question of how to 
handle bootstrapping. Browsing Gambit's recent Travis logs, some builds 
fail because they expect a `make modules` run. How often does the CI 
break due to bootstrapping issues, and is there an easy solution to them?

It might be worth considering some "releases between releases" to ease 
bootstrapping for people who actively follow Gambit to make it easier to 
build the latest master. Would this make sense? I don't really grasp the 
details of what I'm talking about here.




More information about the Gambit-list mailing list