Dear Wiki user, You have subscribed to a wiki page or wiki category on "Couchdb Wiki" for change notification.
The "Release_Procedure" page has been changed by NoahSlater: http://wiki.apache.org/couchdb/Release_Procedure?action=diff&rev1=147&rev2=148 Replace `CACHE_DIR` with the temporary directory name from the `check_docs.sh` script. - Replace `BRANCH` with the branch you are proposing to release from. + Replace `BRANCH` with the branch you are releasing from. - Replace `VERSION` with the version you are proposing to release. + Replace `VERSION` with the version you are releasing. So, in this instance, you might run: @@ -168, +168 @@ This command will output some text that you should email to the `d...@couchdb.apache.org` mailing list. - = Preparing the Release = + = Preparing the Candidate = If the proposal meets no objection, you can continue. @@ -213, +213 @@ All other parts of this process must be done on your local machine. - = Checking the Release = + = Checking the Candidate = Assume that you cannot trust: @@ -258, +258 @@ gpg --list-keys }}} - = Creating the Release Artefacts = + = Publishing the Candidate = - To build the source for distribution you should then run the following command: + Once you are satisfied with the release candidate, you can sign it, publish it, and call a vote. + You can do all of these things at once by running: - {{{ - ./bootstrap && ./configure --enable-strictness && make distsign - }}} - If everything was successful you should see the following files in the working directory ready for distribution: - - * apache-couchdb-Y.Y.Y.tar.gz - * apache-couchdb-Y.Y.Y.tar.gz.asc - * apache-couchdb-Y.Y.Y.tar.gz.md5 - * apache-couchdb-Y.Y.Y.tar.gz.sha - - = Checking the Release Contents = - - Remove any existing temporary directory: - {{{ - rm -rf /tmp/couchdb/test + ./publish_candidate.sh CACHE_DIR VERSION CANDIDATE_NUMBER }}} - Obviously, don't run this command if you're already using this directory for something else. + Replace `CACHE_DIR` with the output from the `build_candidate.sh` script. - The location isn't important, but this is a sensible default. + Replace `VERSION` with the version you are releasing. - Create a new test directory to work in: + Replace `CANDIDATE_NUMBER` with the candidate number. + The candidate number should start at 1 and increase with each successive vote. - {{{ - mkdir /tmp/couchdb/test - }}} + ``@@ UNFINISHED`` - You can safely remove this directory and all of its contents when you're done. - - Move the release files to the temporary directory: - - {{{ - mv apache-couchdb* /tmp/couchdb/test - }}} - - Move the source tarball to the temporary directory: - - {{{ - mv ../Y.Y.Y.tar /tmp/couchdb/test - }}} - - Change to the temporary directory: - - {{{ - cd /tmp/couchdb/test - }}} - - Unpack the release tarball: - - {{{ - tar -xvzf apache-couchdb-Y.Y.Y.tar.gz - }}} - - Then unpack another copy of the source tarball: - - {{{ - tar -xvf Y.Y.Y.tar - }}} - - Then compare the tarball with the source directory: - - {{{ - diff -r apache-couchdb-Y.Y.Y Y.Y.Y - }}} - - Use your judgment here to figure out if anything is missing, or has been included by mistake. - - '''The next step has changed recently. Please read closely.''' - - If you do not already have the release development directory checked out: - - {{{ - svn co https://dist.apache.org/repos/dist/dev/couchdb - }}} - - Change into the development directory: - - {{{ - cd couchdb - }}} - - Now create the development release directory: - - {{{ - mkdir releases/Y.Y.Y - }}} - - Copy the release artefacts to the development release directory: - - {{{ - cp /tmp/couchdb/test/apache-couchdb-Y.Y.Y.tar.gz* releases/Y.Y.Y - }}} - - Add the development release directory: - - {{{ - svn add releases/Y.Y.Y - }}} - - And commit: - - {{{ - svn commit -m "Added Y.Y.Y development release artefacts" - }}} - - = Calling a Vote = - - Before you call the vote, you should now download your own release artefacts and run the [[Test_procedure|test procedure]] with them. Update the [[Test_procedure|test procedure]] to use the correct values so that copying and pasting the commands will work.