You are viewing a plain text version of this content. The canonical link for it is here.
Posted to infrastructure-issues@apache.org by "#asfinfra IRC Bot (JIRA)" <ji...@apache.org> on 2009/09/27 23:54:16 UTC

[jira] Closed: (INFRA-2173) Create CouchDB BuildBot Instance

     [ https://issues.apache.org/jira/browse/INFRA-2173?page=com.atlassian.jira.plugin.system.issuetabpanels:all-tabpanel ]

#asfinfra IRC Bot closed INFRA-2173.
------------------------------------

    Resolution: Fixed

> Create CouchDB BuildBot Instance
> --------------------------------
>
>                 Key: INFRA-2173
>                 URL: https://issues.apache.org/jira/browse/INFRA-2173
>             Project: Infrastructure
>          Issue Type: Task
>      Security Level: public(Regular issues) 
>          Components: Buildbot
>            Reporter: Paul Joseph Davis
>            Assignee: Gavin
>
> CouchDB Build Bot Request
> =========================
> General Outline
> ---------------
> 1. Two builds per commit - Normal and Coverage
> 2. Execution of test suite
> 3. Move generated reports to a public server
> 4. Harass developers on build failure via [commits|builds]@couchdb.apache.org
>    and #couchdb on irc.freenode.org if possible.
> Dependencies
> ------------
> * Erlang - http://erlang.org/
>   * Verision R13B01 - http://erlang.org/download/otp_src_R13B01.tar.gz
>   * Easily built with:
>     $ tar -xvzf otp_src_R13B01.tar.gz
>     $ cd 
>     $ ./configure --enable-threads --enable-smp-support \
>     --enable-kernel-poll --enable-hipe --with-ssl
>     $ make
>     $ make install
>   * If kernel poll or HiPE is not supported on the target platform, neither is
>     mission critical.
>   * Erlang may whine a bit about not having Java or wxWidgets but should compile
>     fine without either. CouchDB requires neither.
> * Spidermonkey
>   * Version 1.7 - http://ftp.mozilla.org/pub/mozilla.org/js/js-1.7.0.tar.gz
>   * By far the biggest headache of the bunch.
>   * Building the library goes something like this:
>     $ tar -xvzf js-1.7.0.tar.gz
>     $ cd js/src/
>     $ make -f Makefile.ref
>     $ JS_DIST=/usr/local make -f Makefile.ref export
>   * Supposedly, version 1.8.1 has an RC comming. If I were to guess, this is
>     the requirement that will change fastest.
> * ICU - http://site.icu-project.org/
>   * Version 4.0 - http://icu-project.org/download/4.0.html
>   * I have absolutely no experience building this. Its always been in package
>     manager repositories. The only report I've heard of issues is with versions
>     less than 3.2. Current standard versions are generally 4.0 or 4.2
> * cURL - http://curl.haxx.se/
>   * Version 7.19.5 - http://curl.haxx.se/download/curl-7.19.5.tar.gz
>   * Also never built by hand as package manager versions are generally
>     sufficient.
> A brief aside for future planning
> ---------------------------------
> The Erlang and Spidermonkey dependencies are the important two. Erlang
> development moves along pretty quickly and a fair amount of people tend to
> track with each release. Spidermonkey is undergoing some noticeable development
> with Tracemonkey (1.8.1) about to be released. Tracemonkey also introduces some
> noticeable API changes so having builds using versions on either side of the
> break would be appreciated.
> A future goal would be to have builds run against multiple versions and combinations of Erlang and Spidermonkey. Just thought I'd mention that now in
> case it affects decisions for software installation.
> Test builds on multiple operating systems would also be desirable (including
> Windows). I would guess that this is probably the most difficult dependency to 
> add, but just in case you're looking for raised hands.
> Building CouchDB
> ----------------
> Assuming libraries are installed on system paths, it should be as simple as:
>   $ ./bootstrap
>   $ ./configure
>   $ make
>   $ make dev
>   $ make check
> We would also like to have coverage reports generated which require building
> the Erlang sources with debug flags. A coverage run looks like this:
>   $ ./bootstrap
>   $ ERLC_FLAGS=+debug_info ./configure
>   $ make
>   $ make dev
>   $ make cover
> The coverage HTML output is placed in the `./cover` directory. Currently this
> is the only report that we'd want to have copied to a publicly viewable
> location. In the future when we have a stable internal API, we'd look to add
> documentation generation similar to the other BuildBot projects.
> There are also a few other build combinations that would be in the nice-to-have
> but only require different parameters passed through ERLC_FLAGS.
> Triggering Commits
> ------------------
> Files that trigger a commit are the simple and obvious choices. A simple file
> name regular expression might be written as something like:
>     .*\.(c|h|am|ac|erl|hrl|in|js|t|es|rb)$
> Ideally, builds would be triggered for each commit to the project's SVN
> repository that includes one or more files matching that regular expression. If
> that generates too many requests, then if possible backing off to once per
> commit but no more than 1 per some defined time period would be preferred.
> Notifications of build status
> -----------------------------
> This is obviously a ways off, but we'd probably want to see either a new
> mailing list created for build notices (builds@couchdb.apache.org) or have the
> notifications sent to the commits@couchdb.apahe.org list.
> Notices on the IRC channel (#couchdb on irc.freenode.org) would also be an
> excellent addition if they are available. IRC messages would probably be best
> for state transitions as opposed to the results of each build, but I would
> want to poll the channel before making a final decision.
> Thanks
> ------
> On behalf of the CouchDB team I'd like to thank the infrastructure team once
> again for providing all of the services that they do.
> Feel free to email me directly or hop on the #couchdb channel with questions.

-- 
This message is automatically generated by JIRA.
-
You can reply to this email to add a comment to the issue online.