Return-Path: X-Original-To: apmail-couchdb-dev-archive@www.apache.org Delivered-To: apmail-couchdb-dev-archive@www.apache.org Received: from mail.apache.org (hermes.apache.org [140.211.11.3]) by minotaur.apache.org (Postfix) with SMTP id 0C3E217AEE for ; Mon, 29 Jun 2015 21:21:59 +0000 (UTC) Received: (qmail 3275 invoked by uid 500); 29 Jun 2015 21:21:58 -0000 Delivered-To: apmail-couchdb-dev-archive@couchdb.apache.org Received: (qmail 3207 invoked by uid 500); 29 Jun 2015 21:21:58 -0000 Mailing-List: contact dev-help@couchdb.apache.org; run by ezmlm Precedence: bulk List-Help: List-Unsubscribe: List-Post: List-Id: Reply-To: dev@couchdb.apache.org Delivered-To: mailing list dev@couchdb.apache.org Received: (qmail 3196 invoked by uid 99); 29 Jun 2015 21:21:58 -0000 Received: from Unknown (HELO spamd3-us-west.apache.org) (209.188.14.142) by apache.org (qpsmtpd/0.29) with ESMTP; Mon, 29 Jun 2015 21:21:58 +0000 Received: from localhost (localhost [127.0.0.1]) by spamd3-us-west.apache.org (ASF Mail Server at spamd3-us-west.apache.org) with ESMTP id 8314C18275B for ; Mon, 29 Jun 2015 21:21:57 +0000 (UTC) X-Virus-Scanned: Debian amavisd-new at spamd3-us-west.apache.org X-Spam-Flag: NO X-Spam-Score: 1.002 X-Spam-Level: * X-Spam-Status: No, score=1.002 tagged_above=-999 required=6.31 tests=[KAM_LAZY_DOMAIN_SECURITY=1, URIBL_BLOCKED=0.001, WEIRD_PORT=0.001] autolearn=disabled Received: from mx1-eu-west.apache.org ([10.40.0.8]) by localhost (spamd3-us-west.apache.org [10.40.0.10]) (amavisd-new, port 10024) with ESMTP id hCD41rrYgEO0 for ; Mon, 29 Jun 2015 21:21:48 +0000 (UTC) Received: from monoceres.uberspace.de (monoceres.uberspace.de [95.143.172.184]) by mx1-eu-west.apache.org (ASF Mail Server at mx1-eu-west.apache.org) with ESMTPS id A75E720B6F for ; Mon, 29 Jun 2015 21:21:47 +0000 (UTC) Received: (qmail 11233 invoked from network); 29 Jun 2015 21:21:40 -0000 Received: from localhost (HELO ?10.0.0.12?) (127.0.0.1) by monoceres.uberspace.de with SMTP; 29 Jun 2015 21:21:40 -0000 From: Jan Lehnardt Content-Type: text/plain; charset=utf-8 Content-Transfer-Encoding: quoted-printable Subject: Continuous Integration Redux Message-Id: <26A44728-ADDB-463E-BAE1-6FE9BD3D5C57@apache.org> Date: Mon, 29 Jun 2015 23:21:46 +0200 To: "dev@couchdb.apache.org Developers" , Bastian Krol , wizard@roborooter.com, dominik@brugger.org Mime-Version: 1.0 (Mac OS X Mail 8.2 \(2098\)) X-Mailer: Apple Mail (2.2098) Hey all, last week I did a bit of outreach on Twitter, trying to grow our CI = team. =E2=80=9CWhat CI team?=E2=80=9D you ask. =E2=80=94 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=E2=80=99ve 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!) =E2=80=94 I=E2=80=99= m very good personal friends with the Travis team, and they want to work = towards supporting these things, but it=E2=80=99s 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=E2=80=99d 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*.=20 You=E2=80=99ll 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=E2=80=99t 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=E2=80=99s= 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=E2=80=99d 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=E2=80=99t = hold off on it, but this is only crucial at a later state). * * *=20 ## 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=E2=80=99d 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=E2=80=99= 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=E2=80=99s 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=E2=80=99ll be pointing more folks to = this mailing list post, so I hope we=E2=80=99ll 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 --=20 Professional Support for Apache CouchDB: http://www.neighbourhood.ie/couchdb-support/