Great stuff Jan. I’ve forwarded to some of our internal CI team who might not 
be watching this list on a daily basis.

Your comments about non-x86 architectures also resonate, as we get relatively 
frequent requests to support Cloudant on the POWER architecture, and I’ve 
convinced IBM to donate hardware to the ASF CI system as a stepping stone there 
:) Cheers,

—
Adam Kocoloski
IBM Distinguished Engineer
CTO, Cloud Data Services

> On Jun 29, 2015, at 5:21 PM, Jan Lehnardt <[email protected]> wrote:
> 
> Hey all,
> 
> last week I did a bit of outreach on Twitter, trying to grow our CI team. 
> “What CI team?” you ask. — Exactly.
> 
> CouchDB needs world-class continuous integration in order to guarantee that 
> we deliver quality software across many platforms and configuration without 
> wasting too much time.
> 
> In the past, I’ve handled the CI setup (http://ci.couchdb.org:8888 / rough 
> docs at: http://wiki.apache.org/couchdb/CI where you see that we are a little 
> out of date ;) on a Mac Mini in my home. It was meant as a temporary measure 
> until a larger team could take over. This never happened and we are trying to 
> revive the effort now for the upcoming 2.0 release.
> 
> Before you ask: we are already using Travis CI, and it is really nice to do 
> baseline checks for ongoing development and Pull Requests, but it is 
> inadequate to satisfy all our testing needs. In particular testing on 
> multiple operating systems, different operating system versions, dependency 
> versions and configurations (and Windows!) — I’m very good personal friends 
> with the Travis team, and they want to work towards supporting these things, 
> but it’s nowhere near on their roadmap, and we need better CI now.
> 
> 
> ## There are a bunch of things to do
> 
> Before I go into details, I’d like to point out that the most important thing 
> we need here is someone, or better a group of people that are *interested in 
> assuming ownership of the CouchDB Continuous Integration operations*. 
> 
> You’ll be part of a uniquely friendly community and would work on something, 
> while sometimes thankless, that would be of incredible benefit to the 
> project. And we are here to hold your hands getting started. :)
> 
> Also, nothing here requires any specific Erlang knowledge. Any test suites 
> are up to the Erlang devs in the community and other than that, Erlang is 
> just another Unix/Windows binary, nothing special required, *and* you have a 
> bunch of experts eager to help you at your disposal :)
> 
> And one final prelude item: While these things might seem overly specific, it 
> doesn’t really matter how you arrive at what we need. One of the appeals of 
> Open Source is to do your own thing and see that it helps, so if you have a 
> completely different vision for CI that would give us the same or even better 
> benefits, by all means, it’s your show :)
> 
> With all that out of the way, there are multiple areas that need tackling:
> 
> - Coordination with the ASF Infra/CI team for the existing Jenkins setup and 
> build-machine configuration (we can continue to use ci.couchdb.org:8888 for a 
> while but eventually, this should live on ci.apache.org)
> - Automation of build-machine configuration with Ansible or whatever else 
> floats your boat / is required by ASF Infra.
> - Invent system to maintain and extend this going forward, with new operating 
> system releases and Erlang versions being released.
> - Set up newly minted build-machines with either ci.apache.org or 
> ci.couchdb.org:8888 Jenkins installs (ci.apache.org preferred)
> 
> This is already a bit of work. I’d recommend to start small:
> 
> 1. Get one OS in a single configuration going (maybe even just current Ubuntu 
> and latest-ish Erlang).
> 2. Go through the whole process and see it running on master and our test 
> branches, set up all the integrations (Github/IRC/Email) etc. just to see 
> that we have a full system running, from build-machine config to succeeding 
> builds.
> 3. Only then, start extending to multiple OSs and configurations (of course, 
> if you can roll some work for this into step 1., don’t hold off on it, but 
> this is only crucial at a later state).
> 
> 
> * * * 
> 
> ## Configurations
> 
> A small sidebar on configurations: the most interesting build variation is 
> different Erlang versions. CouchDB supports quite a wide range of Erlang 
> versions (R14B01|R14B03|R14B04|R16B02|R16B03-1|17), and eventually it’d be 
> nice to test against the whole range, or at least the last in a major release 
> line. Erlang also releases preview versions of upcoming major versions 
> frequently and being up to speed what is going to happen would be nice.
> 
> Most other CouchDB dependencies are rather stable. At this point we mostly 
> run on SpiderMonkey 1.8.5 and whatever is the latest ICU (icu4c) release, but 
> some variation there would be nice as well. Other devs, what am I missing?
> 
> As for operating systems, like mentioned in the wiki link above, it’d be nice 
> to arrive at a policy where we support all current and LTS releases of Linux 
> distros/FreeBSD/*BSD/{Solaris,Illumos}/Windows/etc. If we get to it, even 
> latest-1 versions. Also interesting are non-x86/ia64 architectures, 
> especially embedded ARM things like RasPI. All this is nice to have for *way* 
> later, just so you have an idea where this is going.
> 
> * * *
> 
> One last thing that we also want to get going eventually is release channels 
> for the various package management systems where the Apache CouchDB Project 
> maintains releases in that channel. Ideally, they are built and tested on our 
> CI infrastructure on each platform/version configuration and ideally of of 
> this is automated, with testing and stable channels, so people can test 
> in-development versions for CouchDB really easily. All this should make 
> CouchDB a lot easier to install on various platforms. But again, this is a 
> little off, and not a primary goal just yet.
> 
> * * *
> 
> Okay, that’s it for now. I hope you are still with me! :)
> 
> Thank you Francis and Bastian (in CC) for responding to the call to action 
> last week and Dominik, who voiced interest in this at the CouchDB Day in 
> Hamburg earlier this year. I’ll be pointing more folks to this mailing list 
> post, so I hope we’ll get some more to join.
> 
> If you know anyone partial to these topics, please point them here as well!
> 
> If you have any questions, feel free to ask here or on Freenode IRC #couchdb 
> or #couchdb-dev, but for now, the mailing list is probably best, with IRC 
> being reserved for hashing out details that need higher bandwidth.
> 
> Thanks for reading and I hope we can get this off the ground! :)
> 
> Best
> Jan
> -- 
> Professional Support for Apache CouchDB:
> http://www.neighbourhood.ie/couchdb-support/
> 

Reply via email to