From: %YOU%
To: dev@couchdb.apache.org
Subject: [VOTE] Release Apache CouchDB %VERSION%-rc.%CANDIDATE%
================================================================================

Dear community,

I would like to release Apache CouchDB %VERSION%-rc.%CANDIDATE%.

Changes since last round:

 * https://git-wip-us.apache.org/repos/asf?p=couchdb.git;a=shortlog;h=refs/heads/%BRANCH%

We encourage the whole community to download and test these release artefacts so that any critical issues can be resolved before the release is made. Everyone is free to vote on this release, so get stuck in!

The release artefacts we are voting on are available here:

    wget %CANDIDATE_URL%/%PACKAGE%.tar.gz
    wget %CANDIDATE_URL%/%PACKAGE%.tar.gz.asc
    wget %CANDIDATE_URL%/%PACKAGE%.tar.gz.ish
    wget %CANDIDATE_URL%/%PACKAGE%.tar.gz.md5
    wget %CANDIDATE_URL%/%PACKAGE%.tar.gz.sha

Please follow the test procedure here:

    https://cwiki.apache.org/confluence/display/COUCHDB/Testing+a+Source+Release

Please remember that "rc.%CANDIDATE%" is an annotation. If the vote passes, these artefacts will be released as Apache CouchDB %VERSION%.

Please cast your votes now.

Thanks,
