We have a new wiki. The migration is not 100% complete. You can help out by moving pages across. This wiki will exist for as long as there are pages left.

The official documentation has moved to http://docs.couchdb.org — The transition is not 100% complete, but http://docs.couchdb.org should be seen as having the latest info. In some cases, the wiki still has some more or older info on certain topics inside CouchDB.

Notes

Since we can’t build against one of multiple installed JS engines, we need a build slave for each tested JS engine.

For multiple Erlang versions, we use “Matrix” builds.

Roadmap

Set up all necessary build slaves. From the above, these are missing today:

Debian

Gentoo

Mac OS X 10.6.5

Windows 7

OmniOS/Solaris

FreebSD 8.3

others.

Add integration jobs for feature and bug fix branches.

Open up access to the public.

Expand test configuration range (we currently only test one spidermonkey per host os)

Migrate to ci.apache.org.

How can I help?

All this is to get a CouchDB QA team going. So far the developers and users do QA, but no dedicated team takes on the task of caring about QA, creating testing infrastructure, etc. This could be you!

Since this is a non-existent team, you can do anything end everything. You can help shape the

The Build Job

Each one of these varies by build slave (i.e. Operating System and configuration), but what they all do is this:

Check out the latest version of CouchDB for its branch. Each Build Job only builds a single branch.

Clean up the current workspace with git clean -fdx

[Set environment variables]

./bootstrap

./configure [$ARGS]

make distcheck

At this point, we have an apache-couchdb-$VERSION_INFO.tar.gz that is packaged up like a release.tar.gz, its sources have been build successfully and all JS and Erlang tests have been run (with 1.2.0 and earlier, only the Erlang tests were run). THESE ARE NOT OFFICIAL APACHE RELEASES.

./configure --prefix=/tmp/$ERLANG_VERSION

make install

tar czf /tmp/$ERLANG_VERSION

Now we created a platform-dependent binary version that unpacks into /tmp that users and devs can run on their systems, given they have the same dependencies in the same places, e.g. to test out new features or verify bug fixes. THESE ARE NOT OFFICIAL APACHE RELEASES.

Normalize .tar.gz filenames

Upload .tar.gz files to S3.

This is so we can distribute the files easily. We might want to move that to ASF infrastructure as well.

Notify #couchdb-ci on irc.freenode.net

This is so devs get real time info on builds.

FaQ

What is CI / Continuous Integration?

CI or Continuous Integration is the idea that with ongoing development of a piece of software all sorts of automated tests are run alongside. For CouchDB that means that we set up software that tries to build and test release branches and feature branches while they are being developed on in multiple configurations (e.g. various Erlang versions) on different operating systems.

Why isn’t this using http://ci.apache.org/?

The goal eventually is running this on official infrastructure. To get there, we needed team members to figure out what needs to be done. To be able to learn all the details, we started with a private installation of Jenkins. We hope to migrate this to ci.apache.org in due time.

The ASF has an OS X Jenkins node we can use. Additionally, we can probably request any flavour of Linux we need. One way forward might be to gather list of requirements and then send an email to infrastructure@apache.org to ask for help.