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.

You need to be added to the ContributorsGroup to edit the wiki. But don't worry! Just email any Mailing List or grab us on IRC and let us know your user name.

This page describes how the CouchDB source repository is organized.

The Repository

Note that the original subversion repo is no longer being maintained, CouchDB switched to git during 1.1.1 release cycle.

There are 3 ways to access CouchDB source via git:

There's more information at Apache Git mirror. It mirrors the svn repository's structure.

(Committers should use the SSL-secured server at https://<YOUR_ASF_LOGIN>@git-wip-us.apache.org/repos/asf/couchdb.git ).


The master branch is where day-to-day development happens. New features and bugfixes are committed here. Branch_management are merged into master in case new features have been developed in isolation.


Branches that are not feature branches are release branches. Major versions are represented by the first number (z) in the version triplet. The middle number (y) denotes minor versions and the third number (z) represents bugfix releases.

Once the developers decide master is in a good state to produce a new version of CouchDB, a release branch is created with the appropriate version numbers: Say master is deemed ready to be the basis for a future 0.11.0 release (where the current release is 0.10.1), a new branch 0.11.x is created to track the development of the 0.11.x series of CouchDB releases.

Each release of major version (1.0.0, 1.0.1, ..., 1.1.0, 1.1.1, etc) is guaranteed to work in backwards compatible ways (as well as we humanly guarantee it :). New major versions may have incompatibilities. Upgrades between bugfix versions (0.11.0 to 0.11.1) should be seamless, upgrading minor or major versions might require extra work.


When the 0.11.x branch is deemed ready for a first release a new tag tags/0.11.0 is created that is a snapshot of the CouchDB source code that is the 0.11.0 release. Bugfixes to the 0.11.x line of release go into branches/0.11.x. When a new version 0.11.1 is released because enough bugfixes went into the 0.11. , a new tag tags/0.11.1 is created to snapshot the next release and so on.

Source Code Repository Organization (last edited 2012-10-31 14:45:48 by 178)