[Couchdb Wiki] Update of "Release_procedure" by NoahSlater
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=53&rev2=54 -- == Making a Source Release == + + Any Apache CouchDB committer is free to make a source release, but they are usually made by the release team. + + If you'd like to help out with making a release, lets us know on the [[http://mail-archives.apache.org/mod_mbox/couchdb-dev/|couchdb-dev]] mailing list. === Checklist ===
[Couchdb Wiki] Update of "Release_procedure" by NoahSlater
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=54&rev2=55 -- 1. Update the `README` file with important information. 2. Update the `NEWS` and `CHANGES` files with important information. + 3. Add note about breaking changes to `NEWS` file if necessary. - 3. Remove "version has not been released warnings" from `NEWS` and `CHANGES`. Remember to add it for next point release after current release has been made. + 4. Remove "version has not been released warnings" from `NEWS` and `CHANGES`. Remember to add it for next point release after current release has been made. - 4. Update the `acinclude.m4.in` file with version information. + 5. Update the `acinclude.m4.in` file with version information. - 5. Update the [[Breaking_changes]] document. + 6. Update the [[Breaking_changes]] document. === Preparing the Community ===
[Couchdb Wiki] Update of "Release_procedure" by NoahSlater
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=55&rev2=56 -- === Checklist === - 1. Update the `README` file with important information. + * Update the `README` file with important information. - 2. Update the `NEWS` and `CHANGES` files with important information. + * Update the `NEWS` and `CHANGES` files with important information. - 3. Add note about breaking changes to `NEWS` file if necessary. + * Add note about breaking changes to `NEWS` file if necessary. - 4. Remove "version has not been released warnings" from `NEWS` and `CHANGES`. Remember to add it for next point release after current release has been made. + * Remove "version has not been released" warnings from `NEWS` and `CHANGES` if present. + * If working on a branch, make sure `NEWS` and `CHANGES` are synced with trunk. - 5. Update the `acinclude.m4.in` file with version information. + * Update the `acinclude.m4.in` file with version information. - 6. Update the [[Breaking_changes]] document. + * Update the [[Breaking_changes]] document. === Preparing the Community === @@ -108, +109 @@ === Calling a Vote === - Call a vote on the [[http://mail-archives.apache.org/mod_mbox/couchdb-dev/|couchdb-dev]] mailing list: - - * [[http://mail-archives.apache.org/mod_mbox/couchdb-dev/200907.mbox/%3c20090716211304.ga17...@tumbolia.org%3E|example couchdb-dev vote]] - - The Release Manager has the power to abort a vote at any point and for any reason. + * The Release Manager has the power to abort a vote at any point and for any reason. + * [[http://mail-archives.apache.org/mod_mbox/couchdb-dev/200907.mbox/%3c20090716211304.ga17...@tumbolia.org%3E|Call a vote]] on the [[http://mail-archives.apache.org/mod_mbox/couchdb-dev/|couchdb-dev]] mailing list: + * When the vote passes, send a [[http://mail-archives.apache.org/mod_mbox/couchdb-dev/200907.mbox/%3c20090722214200.ga11...@tumbolia.org%3E|summary of the vote]] to the [[http://mail-archives.apache.org/mod_mbox/couchdb-dev/|couchdb-dev]] mailing list. - - When the vote passes, send a summary of the vote passing using the following template. Otherwise you will be publicly berated for forgetting this step. - - * [[http://mail-archives.apache.org/mod_mbox/couchdb-dev/200907.mbox/%3c20090722214200.ga11...@tumbolia.org%3E|example couchdb-dev vote results]] - === Making the Release === @@ -125, +119 @@ * Wait for all changes to be synced to public mirrors. * Update http://couchdb.apache.org/downloads.html * Wait for all changes to be synced to the public site. - * Make a release announcement to the [[http://mail-archives.apache.org/mod_mbox/www-announce/|annou...@apache.org]], [[http://mail-archives.apache.org/mod_mbox/couchdb-user/|u...@couchdb.apache.org]], and [[http://mail-archives.apache.org/mod_mbox/couchdb-dev/|d...@couchdb.apache.org]] mailing lists: -* [[http://mail-archives.apache.org/mod_mbox/www-announce/201007.mbox/%3c029b8f80-6c99-41c0-b47c-a334667e2...@apache.org%3E|example release announcement]] + * Make a [[http://mail-archives.apache.org/mod_mbox/www-announce/201007.mbox/%3c029b8f80-6c99-41c0-b47c-a334667e2...@apache.org%3E|release announcement]] to the [[http://mail-archives.apache.org/mod_mbox/www-announce/|announce]], [[http://mail-archives.apache.org/mod_mbox/couchdb-user/|couchdb-user]], and [[http://mail-archives.apache.org/mod_mbox/couchdb-dev/|couchdb-dev]] mailing lists. + + === Housekeeping === + + * Add new release markers to `NEWS` and `CHANGES` on trunk if not present. + * Add "version has not been released" warnings to these version markers if not present. * [[https://issues.apache.org/jira/secure/project/ManageVersions.jspa?pid=12310780|Update versions]] in JIRA. * If the currently released version is 0.1.0, JIRA should have options for 0.1.1, 0.2.0, and 0.3.0. * The released version should be marked as released in JIRA.
[Couchdb Wiki] Update of "Release_procedure" by NoahSlater
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=56&rev2=57 -- gpg --list-keys }}} - === Create the Release Artefacts === + === Creating the Release Artefacts === To build the source for distribution you should then run the following command: @@ -121, +121 @@ * Wait for all changes to be synced to the public site. * Make a [[http://mail-archives.apache.org/mod_mbox/www-announce/201007.mbox/%3c029b8f80-6c99-41c0-b47c-a334667e2...@apache.org%3E|release announcement]] to the [[http://mail-archives.apache.org/mod_mbox/www-announce/|announce]], [[http://mail-archives.apache.org/mod_mbox/couchdb-user/|couchdb-user]], and [[http://mail-archives.apache.org/mod_mbox/couchdb-dev/|couchdb-dev]] mailing lists. - === Housekeeping === + === Doing Housekeeping === * Add new release markers to `NEWS` and `CHANGES` on trunk if not present. * Add "version has not been released" warnings to these version markers if not present.
[Couchdb Wiki] Update of "Release_procedure" by NoahSlater
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=57&rev2=58 -- === Calling a Vote === - * The Release Manager has the power to abort a vote at any point and for any reason. * [[http://mail-archives.apache.org/mod_mbox/couchdb-dev/200907.mbox/%3c20090716211304.ga17...@tumbolia.org%3E|Call a vote]] on the [[http://mail-archives.apache.org/mod_mbox/couchdb-dev/|couchdb-dev]] mailing list: * When the vote passes, send a [[http://mail-archives.apache.org/mod_mbox/couchdb-dev/200907.mbox/%3c20090722214200.ga11...@tumbolia.org%3E|summary of the vote]] to the [[http://mail-archives.apache.org/mod_mbox/couchdb-dev/|couchdb-dev]] mailing list. + + The release manager has the power to abort a vote at any point and for any reason. + + Please try to make it a good one though! === Making the Release ===
[Couchdb Wiki] Update of "Release_procedure" by NoahSlater
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=58&rev2=59 -- * Update the `README` file with important information. * Update the `NEWS` and `CHANGES` files with important information. - * Add note about breaking changes to `NEWS` file if necessary. + * Add note about breaking changes to the `NEWS` file if necessary. * Remove "version has not been released" warnings from `NEWS` and `CHANGES` if present. * If working on a branch, make sure `NEWS` and `CHANGES` are synced with trunk. * Update the `acinclude.m4.in` file with version information.
[Couchdb Wiki] Update of "Release_procedure" by NoahSlater
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=59&rev2=60 -- * Remove "version has not been released" warnings from `NEWS` and `CHANGES` if present. * If working on a branch, make sure `NEWS` and `CHANGES` are synced with trunk. * Update the `acinclude.m4.in` file with version information. +* LOCAL_VERSION_MAJOR should be the X in X.Y.Y +* LOCAL_VERSION_MINOR should be the X in Y.X.Y +* LOCAL_VERSION_REVISION should be the X in Y.Y.X +* LOCAL_VERSION_STAGE must always be empty on a release tag. + * When this is set, it indicates a development version. It is set on branches or on trunk so that the release number includes the source code revision number, which can be very useful for development or nightly builds. * Update the [[Breaking_changes]] document. === Preparing the Community ===
[Couchdb Wiki] Update of "Release_procedure" by NoahSlater
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=60&rev2=61 -- * LOCAL_VERSION_MINOR should be the X in Y.X.Y * LOCAL_VERSION_REVISION should be the X in Y.Y.X * LOCAL_VERSION_STAGE must always be empty on a release tag. - * When this is set, it indicates a development version. It is set on branches or on trunk so that the release number includes the source code revision number, which can be very useful for development or nightly builds. + * When this is set, it indicates a development version. It is set on branches or on trunk so that the release number includes the source code revision number, which can be useful for development builds. * Update the [[Breaking_changes]] document. === Preparing the Community ===
[Couchdb Wiki] Update of "Release_procedure" by NoahSlater
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=61&rev2=62 -- }}} You must then use the `Y.Y.Y` directory to prepare the release. - - In the step for editing `NEWS` and `CHANGES` you should remove the line about "Note: This version has not been released" before continuing. Once the release has been made, you should add a section in the `Y.Y.x` branch for the next version. === Release Signing === @@ -131, +129 @@ === Doing Housekeeping === - * Add new release markers to `NEWS` and `CHANGES` on trunk if not present. + * Add a new release section to `NEWS` and `CHANGES` on trunk if not already present. + * Add a new release section to `NEWS` and `CHANGES` on Y.Y.x the branch if not already present. - * Add "version has not been released" warnings to these version markers if not present. + * Add "version has not been released" warnings to these release sections if not already present. * [[https://issues.apache.org/jira/secure/project/ManageVersions.jspa?pid=12310780|Update versions]] in JIRA. * If the currently released version is 0.1.0, JIRA should have options for 0.1.1, 0.2.0, and 0.3.0. * The released version should be marked as released in JIRA.
[Couchdb Wiki] Update of "Release_procedure" by NoahSlater
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=62&rev2=63 -- Call a vote on the [[http://mail-archives.apache.org/mod_mbox/couchdb-dev/|couchdb-dev]] mailing list asking for a request for comments on the release. Ask all developers to specifically check the `NEWS` and `CHANGES` file for anything that has been added in this release. === Preparing the Release === + + It is generally a good idea to work under a clean temporary directory. + + You can then run the following commands: {{{ $ repos="https://svn.apache.org/repos/asf/couchdb";
[Couchdb Wiki] Update of "Release_procedure" by NoahSlater
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=63&rev2=64 -- {{{ $ repos="https://svn.apache.org/repos/asf/couchdb"; - # Obviously only for non-point releases. + # For major or minor releases, you must create a new branch $ svn cp $repos/trunk $repos/branches/Y.Y.x -m 'branching Y.Y.x' $ svn cp $repos/branches/Y.Y.x $repos/tags/Y.Y.Y -m 'tagging Y.Y.Y'
[Couchdb Wiki] Update of "Release_procedure" by NoahSlater
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=64&rev2=65 -- === Release Signing === - If you have not yet created a GPG public/private key pair, you will need to create one. Creating a key pair is beyond the scope of this document, but the relevant Apache documentation can be found at: + You will need a GPG key pair to sign the release. + If you do not have one already, see the Useful Resources section for more help. - * [[http://www.apache.org/dev/openpgp.html]] - * [[http://www.apache.org/dev/release-signing.html]] - * [[http://www.apache.org/info/verification.html]]. - The important points after creating your key are to make sure that it has been uploaded to a public key server and that it gets added to [[http://www.apache.org/dist/couchdb/KEYS]]. Optionally, you should get your key signed so that it is part of the "web of trust." Google around for key signing parties for more information about this. + It is generally better if your key is also signed by other people. + + Your public key must be added to: + + * http://www.apache.org/dist/couchdb/KEYS + + You should also upload your key to a public key server for good measure. Edit Makefile.am so that `gpg` uses your key ID. + + ''We should probably make this a command line option.'' You can find your key ID by running: {{{ gpg --list-keys }}} + === Creating the Release Artefacts === @@ -147, +154 @@ * http://www.apache.org/dev/release.html * http://incubator.apache.org/guides/releasemanagement.html#best-practice + * http://www.apache.org/dev/openpgp.html + * http://www.apache.org/dev/release-signing.html + * http://www.apache.org/info/verification.html
[Couchdb Wiki] Update of "Release_procedure" by NoahSlater
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=65&rev2=66 -- === Calling a Vote === - * [[http://mail-archives.apache.org/mod_mbox/couchdb-dev/200907.mbox/%3c20090716211304.ga17...@tumbolia.org%3E|Call a vote]] on the [[http://mail-archives.apache.org/mod_mbox/couchdb-dev/|couchdb-dev]] mailing list: + * [[http://mail-archives.apache.org/mod_mbox/couchdb-dev/200907.mbox/%3c20090716211304.ga17...@tumbolia.org%3E|Call a vote]] on the [[http://mail-archives.apache.org/mod_mbox/couchdb-dev/|couchdb-dev]] mailing list. + * Make sure to link to the [[Test_procedure|test procedure]] page. * When the vote passes, send a [[http://mail-archives.apache.org/mod_mbox/couchdb-dev/200907.mbox/%3c20090722214200.ga11...@tumbolia.org%3E|summary of the vote]] to the [[http://mail-archives.apache.org/mod_mbox/couchdb-dev/|couchdb-dev]] mailing list. The release manager has the power to abort a vote at any point and for any reason.
[Couchdb Wiki] Update of "Release_procedure" by NoahSlater
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=68&rev2=69 Please try to make it a good one though! + A vote can only pass if three committers give a +1 vote. The PMC is not required to vote, although it is preferable. This is a safety feature to make sure that a release is not made when all the committers are away at a conference, or something similar. A vote from a committer is called a binding vote. All other votes are non-binding, but that does not mean they are unimportant. If anyone, including a non-committer, gives a -1 vote, then that should be addressed before proceeding. The aim of the vote is to build community consensus around a release. And anyone who votes, is by definition, a member of the community. Please note, however, that all votes should come with a valid rationale. + === Making the Release === * Copy the release directory to `/www/www.apache.org/dist/couchdb` on `people.apache.org`.
[Couchdb Wiki] Update of "Release_procedure" by NoahSlater
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=71&rev2=72 * Wait for all changes to be synced to the public site. * Make a [[http://mail-archives.apache.org/mod_mbox/www-announce/201007.mbox/%3c029b8f80-6c99-41c0-b47c-a334667e2...@apache.org%3E|release announcement]] to the [[http://mail-archives.apache.org/mod_mbox/www-announce/|announce]], [[http://mail-archives.apache.org/mod_mbox/couchdb-user/|couchdb-user]], and [[http://mail-archives.apache.org/mod_mbox/couchdb-dev/|couchdb-dev]] mailing lists. + At each stage of the actual release, it is expected that a person can follow the trail of changes back to the source. Because most of these systems are slow, things must be done in the correct order. It would be unfortunate if `downloads.html` listed a release that was not available on a local mirror, or that was missing a tag in the Git repository. The changes should always propagate from the source, to the `dist` directory, to the mirrors, to `downloads.html` to the release announcement. + === Doing Housekeeping === * Add a new release section to `NEWS` and `CHANGES` on trunk if not already present.
[Couchdb Wiki] Update of "Release_procedure" by NoahSlater
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=72&rev2=73 * Wait for all changes to be synced to the public site. * Make a [[http://mail-archives.apache.org/mod_mbox/www-announce/201007.mbox/%3c029b8f80-6c99-41c0-b47c-a334667e2...@apache.org%3E|release announcement]] to the [[http://mail-archives.apache.org/mod_mbox/www-announce/|announce]], [[http://mail-archives.apache.org/mod_mbox/couchdb-user/|couchdb-user]], and [[http://mail-archives.apache.org/mod_mbox/couchdb-dev/|couchdb-dev]] mailing lists. - At each stage of the actual release, it is expected that a person can follow the trail of changes back to the source. Because most of these systems are slow, things must be done in the correct order. It would be unfortunate if `downloads.html` listed a release that was not available on a local mirror, or that was missing a tag in the Git repository. The changes should always propagate from the source, to the `dist` directory, to the mirrors, to `downloads.html` to the release announcement. + At each stage of the actual release, it is expected that a person can follow the trail of changes back to the source. Because most of these systems are slow, things must be done in the correct order. It would be unfortunate if `downloads.html` listed a release that was not available on a local mirror, or that was missing a corresponding tag in the Git repository. The changes should always propagate from the source, to the `dist` directory, to the mirrors, to `downloads.html`, and finally to the release announcement. === Doing Housekeeping ===
[Couchdb Wiki] Update of "Release_procedure" by NoahSlater
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=73&rev2=74 * Wait for all changes to be synced to the public site. * Make a [[http://mail-archives.apache.org/mod_mbox/www-announce/201007.mbox/%3c029b8f80-6c99-41c0-b47c-a334667e2...@apache.org%3E|release announcement]] to the [[http://mail-archives.apache.org/mod_mbox/www-announce/|announce]], [[http://mail-archives.apache.org/mod_mbox/couchdb-user/|couchdb-user]], and [[http://mail-archives.apache.org/mod_mbox/couchdb-dev/|couchdb-dev]] mailing lists. - At each stage of the actual release, it is expected that a person can follow the trail of changes back to the source. Because most of these systems are slow, things must be done in the correct order. It would be unfortunate if `downloads.html` listed a release that was not available on a local mirror, or that was missing a corresponding tag in the Git repository. The changes should always propagate from the source, to the `dist` directory, to the mirrors, to `downloads.html`, and finally to the release announcement. + At each stage of the actual release, it is expected that a person can follow the trail of changes back to the source. Because most of these systems are slow, things must be done in the correct order. It would be unfortunate if `downloads.html` listed a release that was not available on a local mirror, or that was missing a corresponding tag in the Git repository. The changes should always propagate from the source, to the `dist` directory, to the mirrors, to `downloads.html`, and finally to the actual release announcement. === Doing Housekeeping ===
[Couchdb Wiki] Update of "Release_procedure" by NoahSlater
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=74&rev2=75 Please try to make it a good one though! - A vote can only pass if three committers give a +1 vote. The PMC is not required to vote, although it is preferable. This is a safety feature to make sure that a release is not made when all the committers are away at a conference, or something similar. A vote from a committer is called a binding vote. All other votes are non-binding, but that does not mean they are unimportant. If anyone, including a non-committer, gives a -1 vote, then that should be addressed before proceeding. The aim of the vote is to build community consensus around a release. And anyone who votes, is by definition, a member of the community. Please note, however, that all votes should come with a valid rationale. + A vote can only pass if there are at least three +1 votes. These votes can come from anyone, including non-committers, and in fact, everyone is encouraged to partake in and vote on each release. However, it is preferable that at least three +1 votes come from the committers, or better yet, the PMC. Once three +1 votes have been counted, the vote can pass. However, if anyone votes -1 or expresses any serious concern, that should be addressed. Usually, this will be cause to abort the vote. A vote can only be closed after three working days. This allows most people a chance to test and vote on the release. === Making the Release ===
[Couchdb Wiki] Update of "Release_procedure" by NoahSlater
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=75&rev2=76 * http://www.apache.org/dev/release.html * http://incubator.apache.org/guides/releasemanagement.html#best-practice + * http://www.apache.org/foundation/voting.html * http://www.apache.org/dev/openpgp.html * http://www.apache.org/dev/release-signing.html * http://www.apache.org/info/verification.html
[Couchdb Wiki] Update of "Release_procedure" by NoahSlater
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=76&rev2=77 * Update the links on this page to most recent email archives. * Update branches, trunk, and site with security changes not documented in the released. * Call a discussion on the [[http://mail-archives.apache.org/mod_mbox/couchdb-dev/|couchdb-dev]] mailing list about archiving old releases. +* To archive an old release, remove it from `downloads.html` and then delete the corresponding directory from the `dist` directory. Do not worry about the release artefacts no longer being available, they are automatically mirrored to the Apache archive site and will remain there even after they are deleted from the main `dist` directory. == Useful Resources ==
[Couchdb Wiki] Update of "Release_procedure" by NoahSlater
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=77&rev2=78 * Create a signed tag, using the same key as used to signed the release, pointing to the release tree-ish and a link to the [VOTE RESULTS] message on the dev mailing list. * Push the signed tag with 'git push origin Y.Y.Y'. * Copy the release directory to `/www/www.apache.org/dist/couchdb` on `people.apache.org`. +* Make sure that the release directory and all the files within it are owned by the `couchdb` group and are group writable. You can do this with `chgrp couchdb` and `chmod 664` respectively. * Wait for all changes to be synced to public mirrors. * Update http://couchdb.apache.org/downloads.html * Wait for all changes to be synced to the public site.
[Couchdb Wiki] Update of "Release_procedure" by NoahSlater
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=78&rev2=79 * Create a signed tag, using the same key as used to signed the release, pointing to the release tree-ish and a link to the [VOTE RESULTS] message on the dev mailing list. * Push the signed tag with 'git push origin Y.Y.Y'. * Copy the release directory to `/www/www.apache.org/dist/couchdb` on `people.apache.org`. -* Make sure that the release directory and all the files within it are owned by the `couchdb` group and are group writable. You can do this with `chgrp couchdb` and `chmod 664` respectively. +* Make sure that the release directory and all the files within it are owned by the `couchdb` group and are group writable. * Wait for all changes to be synced to public mirrors. * Update http://couchdb.apache.org/downloads.html * Wait for all changes to be synced to the public site.
[Couchdb Wiki] Update of "Release_procedure" by NoahSlater
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=80&rev2=81 Call a vote on the [[http://mail-archives.apache.org/mod_mbox/couchdb-dev/|couchdb-dev]] mailing list asking for a request for comments on the release. Ask all developers to specifically check the `NEWS` and `CHANGES` file for anything that has been added in this release. === Preparing the Release === + + Find a list of branches: + + {{{ + git branch -a + }}} + + Checkout the branch you're releasing from: + + {{{ + git checkout -b Y.Y.x origin/Y.Y.x + }}} It is generally a good idea to work under a clean temporary directory.
[Couchdb Wiki] Update of "Release_procedure" by NoahSlater
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=81&rev2=82 {{{ git checkout -b Y.Y.x origin/Y.Y.x + }}} + + Grab the current tree-ish: + + {{{ + git show HEAD | head -n 1 | cut -d " " -f 2 }}} It is generally a good idea to work under a clean temporary directory.
[Couchdb Wiki] Update of "Release_procedure" by NoahSlater
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=82&rev2=83 You should also upload your key to a public key server for good measure. - Edit Makefile.am so that `gpg` uses your key ID. + The build system will invoke GnuPG in a way that defaults to your first secret key. + + If this is not the key you wish to sign the release with, run: + + {{{ + export GPG_ARGS="--default-key=DEADBEAF" + }}} ''We should probably make this a command line option.''
[Couchdb Wiki] Update of "Release_procedure" by NoahSlater
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=83&rev2=84 The build system will invoke GnuPG in a way that defaults to your first secret key. - If this is not the key you wish to sign the release with, run: + If this is not the key you wish to sign the release with, run this command: {{{ export GPG_ARGS="--default-key=DEADBEAF" }}} + + Replace `DEADBEAF` with your key ID. ''We should probably make this a command line option.''
[Couchdb Wiki] Update of "Release_procedure" by NoahSlater
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=84&rev2=85 Replace `DEADBEAF` with your key ID. - ''We should probably make this a command line option.'' - You can find your key ID by running: {{{ gpg --list-keys }}} - === Creating the Release Artefacts ===
[Couchdb Wiki] Update of "Release_procedure" by NoahSlater
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=85&rev2=86 export GPG_ARGS="--default-key=DEADBEAF" }}} + Replace `DEADBEAF` with your key ID, which you can find by running: - Replace `DEADBEAF` with your key ID. - - You can find your key ID by running: {{{ gpg --list-keys
[Couchdb Wiki] Update of "Release_procedure" by NoahSlater
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=86&rev2=87 tar xf Y.Y.Y.tar }}} - You must then use the `Y.Y.Y` directory to prepare the release. + You must then use the `Y.Y.Y` directory to prepare the release: + + {{{ + cd Y.Y.Y.tar + }}} === Release Signing ===
[Couchdb Wiki] Update of "Release_procedure" by NoahSlater
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=87&rev2=88 You must then use the `Y.Y.Y` directory to prepare the release: {{{ - cd Y.Y.Y.tar + cd Y.Y.Y }}} === Release Signing ===
[Couchdb Wiki] Update of "Release_procedure" by NoahSlater
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=88&rev2=89 mv apache-couchdb* /tmp/couchdb }}} + Move the source tarball to the temporary directory: + + {{{ + mv ../Y.Y.Y.tar /tmp/couchdb + }}} + Change to the temporary directory: {{{
[Couchdb Wiki] Update of "Release_procedure" by NoahSlater
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=89&rev2=90 {{{ git archive --prefix=Y.Y.Y/ -o Y.Y.Y.tar - tar xf Y.Y.Y.tar + tar -xf Y.Y.Y.tar }}} You must then use the `Y.Y.Y` directory to prepare the release: @@ -131, +131 @@ cd /tmp/couchdb }}} + Unpack the release tarball: + + {{{ + tar -xvzf apache-couchdb-Y.Y.Y.tar.gz + }}} + - Then unpack another copy of the source tarball + Then unpack another copy of the source tarball: {{{ - tar xf Y.Y.Y.tar + tar -xf Y.Y.Y.tar }}} - Then compare the tarball with the exported tag directory: + Then compare the tarball with the source directory: {{{ diff -r apache-couchdb-Y.Y.Y Y.Y.Y
[Couchdb Wiki] Update of "Release_procedure" by NoahSlater
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=91&rev2=92 Then unpack another copy of the source tarball: {{{ - tar -xf Y.Y.Y.tar + tar -xvf Y.Y.Y.tar }}} Then compare the tarball with the source directory:
[Couchdb Wiki] Update of "Release_procedure" by NoahSlater
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=92&rev2=93 = Calling a Vote = - * [[http://mail-archives.apache.org/mod_mbox/couchdb-dev/200907.mbox/%3c20090716211304.ga17...@tumbolia.org%3E|Call a vote]] on the [[http://mail-archives.apache.org/mod_mbox/couchdb-dev/|couchdb-dev]] mailing list. + * [[http://mail-archives.apache.org/mod_mbox/couchdb-dev/201202.mbox/%3CCA%2BY%2B444JKqhZvfZduqMmqaR1nCZU9Uvts_W9QCjxSfsnFdwmfA%40mail.gmail.com%3E|Call a vote]] on the [[http://mail-archives.apache.org/mod_mbox/couchdb-dev/|couchdb-dev]] mailing list. * Make sure to link to the [[Test_procedure|test procedure]] page. * When the vote passes, send a [[http://mail-archives.apache.org/mod_mbox/couchdb-dev/200907.mbox/%3c20090722214200.ga11...@tumbolia.org%3E|summary of the vote]] to the [[http://mail-archives.apache.org/mod_mbox/couchdb-dev/|couchdb-dev]] mailing list.
[Couchdb Wiki] Update of "Release_procedure" by NoahSlater
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=93&rev2=94 = Calling a Vote = + Before you call the vote, you should now download your own release artefacts and [[Test_procedure|test procedure]] them. + * [[http://mail-archives.apache.org/mod_mbox/couchdb-dev/201202.mbox/%3CCA%2BY%2B444JKqhZvfZduqMmqaR1nCZU9Uvts_W9QCjxSfsnFdwmfA%40mail.gmail.com%3E|Call a vote]] on the [[http://mail-archives.apache.org/mod_mbox/couchdb-dev/|couchdb-dev]] mailing list. * Make sure to link to the [[Test_procedure|test procedure]] page. * When the vote passes, send a [[http://mail-archives.apache.org/mod_mbox/couchdb-dev/200907.mbox/%3c20090722214200.ga11...@tumbolia.org%3E|summary of the vote]] to the [[http://mail-archives.apache.org/mod_mbox/couchdb-dev/|couchdb-dev]] mailing list.
[Couchdb Wiki] Update of "Release_procedure" by NoahSlater
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=94&rev2=95 Before you call the vote, you should now download your own release artefacts and [[Test_procedure|test procedure]] them. + If they pass your own tests: + * [[http://mail-archives.apache.org/mod_mbox/couchdb-dev/201202.mbox/%3CCA%2BY%2B444JKqhZvfZduqMmqaR1nCZU9Uvts_W9QCjxSfsnFdwmfA%40mail.gmail.com%3E|Call a vote]] on the [[http://mail-archives.apache.org/mod_mbox/couchdb-dev/|couchdb-dev]] mailing list. * Make sure to link to the [[Test_procedure|test procedure]] page. * When the vote passes, send a [[http://mail-archives.apache.org/mod_mbox/couchdb-dev/200907.mbox/%3c20090722214200.ga11...@tumbolia.org%3E|summary of the vote]] to the [[http://mail-archives.apache.org/mod_mbox/couchdb-dev/|couchdb-dev]] mailing list.
[Couchdb Wiki] Update of "Release_procedure" by NoahSlater
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=95&rev2=96 Before you call the vote, you should now download your own release artefacts and [[Test_procedure|test procedure]] them. + Update the [[Test_procedure|test procedure]] to use the correct Y.Y.Y and correct links so that copying and pasting the commands will work. + If they pass your own tests: * [[http://mail-archives.apache.org/mod_mbox/couchdb-dev/201202.mbox/%3CCA%2BY%2B444JKqhZvfZduqMmqaR1nCZU9Uvts_W9QCjxSfsnFdwmfA%40mail.gmail.com%3E|Call a vote]] on the [[http://mail-archives.apache.org/mod_mbox/couchdb-dev/|couchdb-dev]] mailing list.
[Couchdb Wiki] Update of "Release_procedure" by NoahSlater
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=96&rev2=97 Before you call the vote, you should now download your own release artefacts and [[Test_procedure|test procedure]] them. - Update the [[Test_procedure|test procedure]] to use the correct Y.Y.Y and correct links so that copying and pasting the commands will work. + Update the [[Test_procedure|test procedure]] to use the correct values so that copying and pasting the commands will work. If they pass your own tests:
[Couchdb Wiki] Update of "Release_procedure" by NoahSlater
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=97&rev2=98 = Checking the Release Contents = + Remove any existing temporary directory: + + {{{ + rm -rf /tmp/couchdb + }}} + + Obviously, don't run this command if you're already using this directory for something else. + + The location isn't important, but this is a sensible default. + - Create a temporary directory: + Create a new temporary directory to work in: {{{ mkdir /tmp/couchdb }}} + + You can safely remove this directory and all of its contents when you're done. Move the release files to the temporary directory:
[Couchdb Wiki] Update of "Release_procedure" by NoahSlater
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=98&rev2=99 = Calling a Vote = - Before you call the vote, you should now download your own release artefacts and [[Test_procedure|test procedure]] them. + 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.
[Couchdb Wiki] Update of "Release_procedure" by NoahSlater
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=99&rev2=100 * Make sure that the release directory and all the files within it are owned by the `couchdb` group and are group writable. * Wait for all changes to be synced to public mirrors. * Update http://couchdb.apache.org/downloads.html + * Send an email to [[http://mail-archives.apache.org/mod_mbox/couchdb-dev/|couchdb-dev]] mailing list, informing them of the imminent release announcement, so that downstream distributors can prepare their own announcements. * Wait for all changes to be synced to the public site. * Make a [[http://mail-archives.apache.org/mod_mbox/www-announce/201007.mbox/%3c029b8f80-6c99-41c0-b47c-a334667e2...@apache.org%3E|release announcement]] to the [[http://mail-archives.apache.org/mod_mbox/www-announce/|announce]], [[http://mail-archives.apache.org/mod_mbox/couchdb-user/|couchdb-user]], and [[http://mail-archives.apache.org/mod_mbox/couchdb-dev/|couchdb-dev]] mailing lists.
[Couchdb Wiki] Update of "Release_procedure" by NoahSlater
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=100&rev2=101 * Make sure that the release directory and all the files within it are owned by the `couchdb` group and are group writable. * Wait for all changes to be synced to public mirrors. * Update http://couchdb.apache.org/downloads.html - * Send an email to [[http://mail-archives.apache.org/mod_mbox/couchdb-dev/|couchdb-dev]] mailing list, informing them of the imminent release announcement, so that downstream distributors can prepare their own announcements. + * Send an email to [[http://mail-archives.apache.org/mod_mbox/couchdb-dev/|couchdb-dev]] mailing list, so that downstream distributors can prepare their own announcements. * Wait for all changes to be synced to the public site. * Make a [[http://mail-archives.apache.org/mod_mbox/www-announce/201007.mbox/%3c029b8f80-6c99-41c0-b47c-a334667e2...@apache.org%3E|release announcement]] to the [[http://mail-archives.apache.org/mod_mbox/www-announce/|announce]], [[http://mail-archives.apache.org/mod_mbox/couchdb-user/|couchdb-user]], and [[http://mail-archives.apache.org/mod_mbox/couchdb-dev/|couchdb-dev]] mailing lists.
[Couchdb Wiki] Update of "Release_procedure" by NoahSlater
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=101&rev2=102 * Make sure that the release directory and all the files within it are owned by the `couchdb` group and are group writable. * Wait for all changes to be synced to public mirrors. * Update http://couchdb.apache.org/downloads.html - * Send an email to [[http://mail-archives.apache.org/mod_mbox/couchdb-dev/|couchdb-dev]] mailing list, so that downstream distributors can prepare their own announcements. + * Send a pre-announcement email to [[http://mail-archives.apache.org/mod_mbox/couchdb-dev/|couchdb-dev]] mailing list, so that downstream distributors can prepare their own announcements. * Wait for all changes to be synced to the public site. * Make a [[http://mail-archives.apache.org/mod_mbox/www-announce/201007.mbox/%3c029b8f80-6c99-41c0-b47c-a334667e2...@apache.org%3E|release announcement]] to the [[http://mail-archives.apache.org/mod_mbox/www-announce/|announce]], [[http://mail-archives.apache.org/mod_mbox/couchdb-user/|couchdb-user]], and [[http://mail-archives.apache.org/mod_mbox/couchdb-dev/|couchdb-dev]] mailing lists.
[Couchdb Wiki] Update of "Release_procedure" by NoahSlater
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=106&rev2=107 = Making the Release = - * Create a signed tag, using the same key as used to signed the release, pointing to the release tree-ish and a link to the [VOTE RESULTS] message on the dev mailing list. - * Push the signed tag with 'git push origin Y.Y.Y'. + Create a signed tag: + + {{{ + git tag -u DEADBEAF Y.Y.Y + }}} + + Use a tag message like this: + + {{{ + CouchDB Y.Y.Y + + Vote results: + }}} + + Use the Apache URL shortener to produce the URL: + + https://s.apache.org/ + + The URL should point to the vote results email you previously sent. + + Now, push the tag: + + {{{ + git push origin Y.Y.Y + }}} + + Now, follow these steps: + * Copy the release directory to `/www/www.apache.org/dist/couchdb` on `people.apache.org`. * Make sure that the release directory and all the files within it are owned by the `couchdb` group and are group writable. * Wait for all changes to be synced to public mirrors.
[Couchdb Wiki] Update of "Release_procedure" by NoahSlater
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=107&rev2=108 A vote can only pass if there are at least three +1 votes. These votes can come from anyone, including non-committers, and in fact, everyone is encouraged to partake in and vote on each release. However, it is preferable that at least three +1 votes come from the committers, or better yet, the PMC. Once three +1 votes have been counted, the vote can pass. However, if anyone votes -1 or expresses any serious concern, that should be addressed. Usually, this will be cause to abort the vote. A vote can only be closed after three working days. This allows most people a chance to test and vote on the release. + = Preparing the Release Notes = + + Go through the `NEWS` file and expand each bullet point as appropriate. + + Format this document as HTML, and call it something like: + + {{{ + apache-couchdb-Y.Y.Y.html + }}} + + Check that this HTML looks good when used for a draft blog post. + + Then generate a text only version by running: + + {{{ + elinks -dump -no-numbering -no-references apache-couchdb-Y.Y.Y.html > apache-couchdb-Y.Y.Y.txt + }}} + + Check the text only version to make sure that any important links are not lost. + + For example, a JIRA ticket that is not referenced by number. + + Upload these files to `/www/www.apache.org/dist/couchdb/notes/Y.Y.Y` on `people.apache.org`. + = Making the Release = Create a signed tag: @@ -242, +266 @@ * Copy the release directory to `/www/www.apache.org/dist/couchdb` on `people.apache.org`. * Make sure that the release directory and all the files within it are owned by the `couchdb` group and are group writable. * Wait for all changes to be synced to public mirrors. - * Update http://couchdb.apache.org/downloads.html + * Update http://couchdb.apache.org/ to point to the new files. * Send a pre-announcement email to [[http://mail-archives.apache.org/mod_mbox/couchdb-dev/|couchdb-dev]] mailing list, so that downstream distributors can prepare their own announcements. * Wait for all changes to be synced to the public site. + * Publish a blog post using the HTML version of the release notes. - * Make a [[http://mail-archives.apache.org/mod_mbox/www-announce/201007.mbox/%3c029b8f80-6c99-41c0-b47c-a334667e2...@apache.org%3E|release announcement]] to the [[http://mail-archives.apache.org/mod_mbox/www-announce/|announce]], [[http://mail-archives.apache.org/mod_mbox/couchdb-user/|couchdb-user]], and [[http://mail-archives.apache.org/mod_mbox/couchdb-dev/|couchdb-dev]] mailing lists. + * Send the [[http://mail-archives.apache.org/mod_mbox/www-announce/201007.mbox/%3c029b8f80-6c99-41c0-b47c-a334667e2...@apache.org%3E|release notes]] to the [[http://mail-archives.apache.org/mod_mbox/www-announce/|announce]], [[http://mail-archives.apache.org/mod_mbox/couchdb-user/|couchdb-user]], and [[http://mail-archives.apache.org/mod_mbox/couchdb-dev/|couchdb-dev]] mailing lists. At each stage of the actual release, it is expected that a person can follow the trail of changes back to the source. Because most of these systems are slow, things must be done in the correct order. It would be unfortunate if `downloads.html` listed a release that was not available on a local mirror, or that was missing a corresponding tag in the Git repository. The changes should always propagate from the source, to the `dist` directory, to the mirrors, to `downloads.html`, and finally to the actual release announcement.
[Couchdb Wiki] Update of "Release_procedure" by NoahSlater
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=108&rev2=109 * Publish a blog post using the HTML version of the release notes. * Send the [[http://mail-archives.apache.org/mod_mbox/www-announce/201007.mbox/%3c029b8f80-6c99-41c0-b47c-a334667e2...@apache.org%3E|release notes]] to the [[http://mail-archives.apache.org/mod_mbox/www-announce/|announce]], [[http://mail-archives.apache.org/mod_mbox/couchdb-user/|couchdb-user]], and [[http://mail-archives.apache.org/mod_mbox/couchdb-dev/|couchdb-dev]] mailing lists. - At each stage of the actual release, it is expected that a person can follow the trail of changes back to the source. Because most of these systems are slow, things must be done in the correct order. It would be unfortunate if `downloads.html` listed a release that was not available on a local mirror, or that was missing a corresponding tag in the Git repository. The changes should always propagate from the source, to the `dist` directory, to the mirrors, to `downloads.html`, and finally to the actual release announcement. + At each stage of the actual release, it is expected that a person can follow the trail of changes back to the source. Because most of these systems are slow, things must be done in the correct order. It would be unfortunate if the website listed a release that was not available on a local mirror, or that was missing a corresponding tag in the Git repository. The changes should always propagate from the source, to the `dist` directory, to the mirrors, to `downloads.html`, and finally to the actual release announcement. = Doing Housekeeping =
[Couchdb Wiki] Update of "Release_procedure" by NoahSlater
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=109&rev2=110 * Update the `NEWS` and `CHANGES` files with important information. * Add note about breaking changes to the `NEWS` file if necessary. * Remove "version has not been released" warnings from `NEWS` and `CHANGES` if present. - * If working on a branch, make sure `NEWS` and `CHANGES` are synced with trunk. + * If working on a branch, make sure `NEWS` and `CHANGES` are synced with master. * Update the `acinclude.m4.in` file with version information. * LOCAL_VERSION_MAJOR should be the X in X.Y.Y * LOCAL_VERSION_MINOR should be the X in Y.X.Y * LOCAL_VERSION_REVISION should be the X in Y.Y.X * LOCAL_VERSION_STAGE must always be empty on a release tag. - * When this is set, it indicates a development version. It is set on branches or on trunk so that the release number includes the source code revision number, which can be useful for development builds. + * When this is set, it indicates a development version. It is set on branches or on master so that the release number includes the source code revision number, which can be useful for development builds. * Update the [[Breaking_changes]] document. = Preparing the Community = @@ -276, +276 @@ = Doing Housekeeping = - * Add a new release section to `NEWS` and `CHANGES` on trunk if not already present. + * Add a new release section to `NEWS` and `CHANGES` on master if not already present. * Add a new release section to `NEWS` and `CHANGES` on Y.Y.x the branch if not already present. * Add "version has not been released" warnings to these release sections if not already present. * [[https://issues.apache.org/jira/secure/project/ManageVersions.jspa?pid=12310780|Update versions]] in JIRA. * If the currently released version is 0.1.0, JIRA should have options for 0.1.1, 0.2.0, and 0.3.0. * The released version should be marked as released in JIRA. * Update the links on this page to most recent email archives. - * Update branches, trunk, and site with security changes not documented in the released. + * Update branches, master, and site with security changes not documented in the released. * Call a discussion on the [[http://mail-archives.apache.org/mod_mbox/couchdb-dev/|couchdb-dev]] mailing list about archiving old releases. * To archive an old release, remove it from `downloads.html` and then delete the corresponding directory from the `dist` directory. Do not worry about the release artefacts no longer being available, they are automatically mirrored to the Apache archive site and will remain there even after they are deleted from the main `dist` directory.
[Couchdb Wiki] Update of "Release_procedure" by NoahSlater
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=110&rev2=111 * [[https://issues.apache.org/jira/secure/project/ManageVersions.jspa?pid=12310780|Update versions]] in JIRA. * If the currently released version is 0.1.0, JIRA should have options for 0.1.1, 0.2.0, and 0.3.0. * The released version should be marked as released in JIRA. +* Archived releases should be marked as archived. +* Every current release should have one unreleased maintenance release open. * Update the links on this page to most recent email archives. * Update branches, master, and site with security changes not documented in the released. * Call a discussion on the [[http://mail-archives.apache.org/mod_mbox/couchdb-dev/|couchdb-dev]] mailing list about archiving old releases.
[Couchdb Wiki] Update of "Release_procedure" by NoahSlater
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=111&rev2=112 * Send a pre-announcement email to [[http://mail-archives.apache.org/mod_mbox/couchdb-dev/|couchdb-dev]] mailing list, so that downstream distributors can prepare their own announcements. * Wait for all changes to be synced to the public site. * Publish a blog post using the HTML version of the release notes. - * Send the [[http://mail-archives.apache.org/mod_mbox/www-announce/201007.mbox/%3c029b8f80-6c99-41c0-b47c-a334667e2...@apache.org%3E|release notes]] to the [[http://mail-archives.apache.org/mod_mbox/www-announce/|announce]], [[http://mail-archives.apache.org/mod_mbox/couchdb-user/|couchdb-user]], and [[http://mail-archives.apache.org/mod_mbox/couchdb-dev/|couchdb-dev]] mailing lists. + * Send the [[http://s.apache.org/fR|release notes]] to the [[http://mail-archives.apache.org/mod_mbox/www-announce/|announce]], [[http://mail-archives.apache.org/mod_mbox/couchdb-user/|couchdb-user]], and [[http://mail-archives.apache.org/mod_mbox/couchdb-dev/|couchdb-dev]] mailing lists. At each stage of the actual release, it is expected that a person can follow the trail of changes back to the source. Because most of these systems are slow, things must be done in the correct order. It would be unfortunate if the website listed a release that was not available on a local mirror, or that was missing a corresponding tag in the Git repository. The changes should always propagate from the source, to the `dist` directory, to the mirrors, to `downloads.html`, and finally to the actual release announcement.
[Couchdb Wiki] Update of "Release_procedure" by NoahSlater
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=112&rev2=113 * Add a new release section to `NEWS` and `CHANGES` on master if not already present. * Add a new release section to `NEWS` and `CHANGES` on Y.Y.x the branch if not already present. * Add "version has not been released" warnings to these release sections if not already present. - * [[https://issues.apache.org/jira/secure/project/ManageVersions.jspa?pid=12310780|Update versions]] in JIRA. + * [[https://issues.apache.org/jira/plugins/servlet/project-config/COUCHDB/versions|Update versions]] in JIRA. * If the currently released version is 0.1.0, JIRA should have options for 0.1.1, 0.2.0, and 0.3.0. * The released version should be marked as released in JIRA. * Archived releases should be marked as archived.
[Couchdb Wiki] Update of "Release_procedure" by NoahSlater
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=113&rev2=114 * Wait for all changes to be synced to public mirrors. * Update http://couchdb.apache.org/ to point to the new files. * Send a pre-announcement email to [[http://mail-archives.apache.org/mod_mbox/couchdb-dev/|couchdb-dev]] mailing list, so that downstream distributors can prepare their own announcements. + * Update [[http://wiki.apache.org/couchdb/CurrentReleases|the wiki]] with the new release information. * Wait for all changes to be synced to the public site. * Publish a blog post using the HTML version of the release notes. * Send the [[http://s.apache.org/fR|release notes]] to the [[http://mail-archives.apache.org/mod_mbox/www-announce/|announce]], [[http://mail-archives.apache.org/mod_mbox/couchdb-user/|couchdb-user]], and [[http://mail-archives.apache.org/mod_mbox/couchdb-dev/|couchdb-dev]] mailing lists. @@ -287, +288 @@ * Update the links on this page to most recent email archives. * Update branches, master, and site with security changes not documented in the released. * Call a discussion on the [[http://mail-archives.apache.org/mod_mbox/couchdb-dev/|couchdb-dev]] mailing list about archiving old releases. -* To archive an old release, remove it from `downloads.html` and then delete the corresponding directory from the `dist` directory. Do not worry about the release artefacts no longer being available, they are automatically mirrored to the Apache archive site and will remain there even after they are deleted from the main `dist` directory. +* To archive an old release, remove it from [[http://wiki.apache.org/couchdb/CurrentReleases|the wiki]] and then delete the corresponding directory from the `dist` directory. Do not worry about the release artefacts no longer being available, they are automatically mirrored to the Apache archive site and will remain there even after they are deleted from the main `dist` directory. = Useful Resources =
[Couchdb Wiki] Update of "Release_Procedure" by NoahSlater
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: https://wiki.apache.org/couchdb/Release_Procedure?action=diff&rev1=244&rev2=245 * Every current release should have one unreleased maintenance release open. * Update branches, master, and site with security changes not documented in the released. - Look at the list of [[CurrentReleases|current releases]] and see if you can spot: + Look at the list of [[CurrentReleases|current releases]] and update it. - * A two or more bugfix releases on the same minor feature line (i.e. a 1.0.1 and a 1.0.2) + Archive: + + * Duplicate older bugfix releases on the most recent minor feature line +* i.e. If there is a 1.0.1 and you just released 1.0.2, archive 1.0.1 + * Any past minor versions +* i.e. If there is a 1.1 and you just released 1.2, archive 1.1 * Any release that is over a year old - If you find a release matching these criteria, it is likely a good candidate for being archived. + Archive these releases by calling a vote on the dev@ list, with your rationale. Open this file:
[Couchdb Wiki] Update of "Release_Procedure" by NoahSlater
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: https://wiki.apache.org/couchdb/Release_Procedure?action=diff&rev1=245&rev2=246 Archive these releases by calling a vote on the dev@ list, with your rationale. + @@ This bit is in the wrong section. Sort this out. This email is for notifying people about the release. We need an email that notifies people of the pending archive action. + Open this file: {{{ @@ -850, +852 @@ Assuming this discussion reaches consensus, you should proceed to archive the release. Remove the entry from [[http://wiki.apache.org/couchdb/CurrentReleases|the wiki]]. + + @@ Do not run these commands, yet. Need to figure out a way to set up mod_rewrite redirects so that the old links still work for things like Homebrew. There was a JIRA set up for cleaning up our dist dir like this. Find details. For now, just remove the links from the wiki. Run these commands:
[Couchdb Wiki] Update of "Release_Procedure" by NoahSlater
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: https://wiki.apache.org/couchdb/Release_Procedure?action=diff&rev1=246&rev2=247 Post a new link to the blog post you just published in the CouchDB Google+ community news category. + In both instances, try to summarise the important information, such as the type of release, and the most prominent changes in this release. - In both instances, add a comment to the link like so: - - {{{ - Woo hoo! CouchDB VERSION available now. - }}} Be sure to +1 each post from your own account. You should also consider sharing the post made by the CouchDB page publicly via your own account. + + === Facebook === + + Similar to Google+, post a link to the CouchDB page. Try to provide a useful summary of the release. + + Be sure to like the post from your own account. === Mailing List ===
[Couchdb Wiki] Update of "Release_Procedure" by NoahSlater
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: https://wiki.apache.org/couchdb/Release_Procedure?action=diff&rev1=247&rev2=248 * [[http://www.reddit.com/r/nosql|/r/nosql]] * [[http://www.reddit.com/r/CouchDB|/r/CouchDB]] + === Lobste.rs === + + If this is an important release, you might want to post it to [[lobste.rs|https://lobste.rs/]]. Follow the same procedure as Hacker News. + === Google+ === Log in as the CouchDB page.
[Couchdb Wiki] Update of "Release_Procedure" by NoahSlater
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: https://wiki.apache.org/couchdb/Release_Procedure?action=diff&rev1=219&rev2=220 (You should replace values as necessary.) + ''@@ Now is a good time to tweet about the vote. Add specific instructions.'' + == Preparing the Binary Packages == Everyone is welcome to prepare binary packages for the release.
[Couchdb Wiki] Update of "Release_Procedure" by NoahSlater
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: https://wiki.apache.org/couchdb/Release_Procedure?action=diff&rev1=220&rev2=221 Replace `VERSION` with the version you are releasing. - Replace `CANDIDATE` with the candidate number. - In this file, replace `VERSION` with the version you are releasing. In this file, replace `RELEASE` with the [[Roadmap_Process|type of release]] you are doing.
[Couchdb Wiki] Update of "Release_Procedure" by NoahSlater
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: https://wiki.apache.org/couchdb/Release_Procedure?action=diff&rev1=221&rev2=222 In this file, replace `ISH` with the tree-ish of the tag you created. + Check Windows or OS X packages are not available, modify the line that say they are. + Check that this HTML looks good when used for a draft blog post. Change in to the temporary directory:
[Couchdb Wiki] Update of "Release_Procedure" by NoahSlater
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: https://wiki.apache.org/couchdb/Release_Procedure?action=diff&rev1=222&rev2=223 Go through the `CHANGES` file and copy each section and summary. + For each ticket referenced, add a link to the JIRA URL. + Change into the temporary directory: {{{
[Couchdb Wiki] Update of "Release_Procedure" by NoahSlater
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: https://wiki.apache.org/couchdb/Release_Procedure?action=diff&rev1=223&rev2=224 git clone http://git-wip-us.apache.org/repos/asf/couchdb-admin.git }}} + Any path in this document that references the "couchdb-admin" directory should be modified to point to this Git clone. - Change in to the admin resources directory: - - {{{ - cd couchdb-admin - }}} - - The commands in this document assume this as a working directory. Some of these scripts take actions on your behalf, such accessing `people.apache.org` or checking files into Subversion. @@ -61, +55 @@ The notice email can be found here: {{{ - email/notice_release.txt + couchdb-admin/email/notice_release.txt }}} The merge request email can be found here: {{{ - email/request_merge.txt + couchdb-admin/email/request_merge.txt }}} The VOTE and DISCUSS threads are covered by the rest of these instructions. @@ -92, +86 @@ Build a list of CVE numbers: {{{ - ./release/build_cve_list.sh + ./couchdb-admin/release/build_cve_list.sh }}} This will produce output that ends with something like this: @@ -105, +99 @@ Check the documentation: {{{ - ./release/check_docs.sh CVE_LIST_FILE + ./couchdb-admin/release/check_docs.sh CVE_LIST_FILE }}} Replace ''CVE_LIST_FILE'' with the file generated by the `build_cve_list.sh` script. @@ -113, +107 @@ So, in this instance, you would run: {{{ - ./release/check_docs.sh /tmp/build_cve_list.sh.9PhpoO/cve_list.txt + ./couchdb-admin/release/check_docs.sh /tmp/build_cve_list.sh.9PhpoO/cve_list.txt }}} This is going to check several things for you. @@ -174, +168 @@ You can copy that directory name and append it the command to re-use the cached data: {{{ - ./release/check_docs.sh CVE_LIST_FILE CACHE_DIR + ./couchdb-admin/release/check_docs.sh CVE_LIST_FILE CACHE_DIR }}} Replace ''CVE_LIST_FILE'' with the file generated by the `build_cve_list.sh` script. @@ -184, +178 @@ So, in this instance, you would run: {{{ - ./release/check_docs.sh /tmp/build_cve_list.sh.9PhpoO/cve_list.txt /tmp/check_docs.sh.9oNHt9 + ./couchdb-admin/release/check_docs.sh /tmp/build_cve_list.sh.9PhpoO/cve_list.txt /tmp/check_docs.sh.9oNHt9 }}} This will be significantly faster than running the script from scratch again. @@ -200, +194 @@ Generate a release proposal: {{{ - ./email/discuss_release.sh CACHE_DIR BRANCH VERSION + ./couchdb-admin/email/discuss_release.sh CACHE_DIR BRANCH VERSION }}} Replace `CACHE_DIR` with the temporary directory name from the `check_docs.sh` script. @@ -212, +206 @@ So, in this instance, you might run: {{{ - ./email/discuss_release.sh /tmp/check_docs.sh.9oNHt9 1.3.x 1.3.0 + ./couchdb-admin/email/discuss_release.sh /tmp/check_docs.sh.9oNHt9 1.3.x 1.3.0 }}} This will output something like: @@ -232, +226 @@ Build a release candidate: {{{ - ./release/build_candidate.sh BRANCH VERSION + ./couchdb-admin/release/build_candidate.sh BRANCH VERSION }}} Replace `BRANCH` with the branch you are releasing from. @@ -242, +236 @@ So, in this instance, you might run: {{{ - ./release/build_candidate.sh 1.3.x 1.3.0 + ./couchdb-admin/release/build_candidate.sh 1.3.x 1.3.0 }}} This will do everything that is required to prepare the release candidate for you. @@ -328, +322 @@ You can do all of these things at once by running: {{{ - ./release/publish_candidate.sh CACHE_DIR BRANCH VERSION CANDIDATE + ./couchdb-admin/release/publish_candidate.sh CACHE_DIR BRANCH VERSION CANDIDATE }}} Replace `CACHE_DIR` with the output from the `build_candidate.sh` script. @@ -340, +334 @@ So, in this instance, you might run: {{{ - ./release/publish_candidate.sh /tmp/build_candidate.sh.DOtlGR 1.3.x 1.3.0 1 + ./couchdb-admin/release/publish_candidate.sh /tmp/build_candidate.sh.DOtlGR 1.3.x 1.3.0 1 }}} The candidate number should start at 1 and increase with each successive vote. @@ -348, +342 @@ If the vote fails, and you're doing a second, you might run: {{{ - ./release/publish_candidate.sh /tmp/build_candidate.sh.DOtlGR 1.3.x 1.3.0 2 + ./couchdb-admin/release/publish_candidate.sh /tmp/build_candidate.sh.DOtlGR 1.3.x 1.3.0 2 }}} If you attempt to publish a duplicate candidate number, you will get a cryptic Subversion error. @@ -374, +368 @@ After you've done that, open this file: {{{ - email/request_binaries.txt + couchdb-admin/email/request_binaries.txt }}} Copy the text from that file and send an email to the `d...@couchdb.apache.org` mailing list. @@ -469, +463 @@ Replace `CANDIDATE` with the candidate number. - Copy the template file from the admin resources directory: + Copy the template file: {{{ - cp ./notes/template.html /tmp/couchdb/not
[Couchdb Wiki] Update of "Release_Procedure" by NoahSlater
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: https://wiki.apache.org/couchdb/Release_Procedure?action=diff&rev1=224&rev2=225 In this file, replace `ISH` with the tree-ish of the tag you created. + In this file, replace `DATE` with the date of the release. This should take the form of -MM-DD. + Check Windows or OS X packages are not available, modify the line that say they are. Check that this HTML looks good when used for a draft blog post.
[Couchdb Wiki] Update of "Release_Procedure" by NoahSlater
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: https://wiki.apache.org/couchdb/Release_Procedure?action=diff&rev1=225&rev2=226 Replace `CANDIDATE` with the candidate you are building from. - ''Go back to the release notes section and complete the rest of the process.'' - Choose a date for the release. Tuesdays mornings PST are better, because they get more press coverage. - Open this file: {{{ @@ -646, +643 @@ Copy the text from that file and send an email to the `d...@couchdb.apache.org` mailing list. (You should replace values as necessary.) + + ''Come back to these instructions on release day.'' + + On release day, go back to the release notes section and complete the rest of the process. Copy the HTML version of the release notes, and [[https://blogs.apache.org/roller-ui/menu.rol|draft a blog post]].
[Couchdb Wiki] Update of "Release_Procedure" by NoahSlater
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: https://wiki.apache.org/couchdb/Release_Procedure?action=diff&rev1=226&rev2=227 (You should replace values as necessary.) - ''When the notes have been expanded, and you have generated the release tag, come back to this step.'' + ''Stop here. Come back to this point of the release notes instructions on release day.'' In this file, replace `ISH` with the tree-ish of the tag you created.
[Couchdb Wiki] Update of "Release_Procedure" by NoahSlater
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: https://wiki.apache.org/couchdb/Release_Procedure?action=diff&rev1=227&rev2=228 == Doing Housekeeping == + * ''@@ Updated NEWS, CHANGES, docs/ in the Y.Y.x and master branches to include release date'' * Add a new release section to `NEWS` and `CHANGES` on master if not already present. * Add a new release section to `NEWS` and `CHANGES` on Y.Y.x the branch if not already present. * Add "version has not been released" warnings to these release sections if not already present.
[Couchdb Wiki] Update of "Release_Procedure" by NoahSlater
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: https://wiki.apache.org/couchdb/Release_Procedure?action=diff&rev1=228&rev2=229 ''@@ Move most of this into a template email.'' - At each stage of the actual release, it is expected that a person can follow the trail of changes back to the source. Because most of these systems are slow, things must be done in the correct order. It would be unfortunate if the website listed a release that was not available on a local mirror, or that was missing a corresponding tag in the Git repository. The changes should always propagate from the source, to the `dist` directory, to the mirrors, to the website, and finally to the actual release announcement. - == Promoting the Release == === Twitter ===
[Couchdb Wiki] Update of "Release_Procedure" by NoahSlater
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: https://wiki.apache.org/couchdb/Release_Procedure?action=diff&rev1=229&rev2=230 Log in as the CouchDB page. - Post a new link to the blog post you just published and make it public. + Post a new link to the blog post you just published to the CouchDB page and make it public. - - Log in to your personal account. Post a new link to the blog post you just published in the CouchDB Google+ community news category. + + In both instances, add a comment to the link like so: + + {{{ + Woo hoo! CouchDB VERSION available now. + }}} === Mailing List ===
[Couchdb Wiki] Update of "Release_Procedure" by NoahSlater
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: https://wiki.apache.org/couchdb/Release_Procedure?action=diff&rev1=230&rev2=231 ## page was renamed from Release_procedure <> - = Making a Source Release = + = Release Procedure = Any Apache CouchDB committer is free to make a source release, but they are usually made by the release team.
[Couchdb Wiki] Update of "Release_Procedure" by NoahSlater
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: https://wiki.apache.org/couchdb/Release_Procedure?action=diff&rev1=231&rev2=232 The VOTE and DISCUSS threads are covered by the rest of these instructions. + Once all this has been done, you must identify the type of release: + + * If there are breaking changes, you must bump the major version number + * If there are new features, you must bump the minor version number + * Otherwise, bump the patch number + + If this is a patch release, master should be merged into the appropriate release branch. + + Otherwise, you should create a brand new release branch. + == Preparing the Docs == Run through the following items by hand:
[Couchdb Wiki] Update of "Release_Procedure" by NoahSlater
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: https://wiki.apache.org/couchdb/Release_Procedure?action=diff&rev1=233&rev2=234 * LOCAL_VERSION_MAJOR should be the X in X.Y.Y * LOCAL_VERSION_MINOR should be the X in Y.X.Y * LOCAL_VERSION_REVISION should be the X in Y.Y.X -* LOCAL_VERSION_STAGE must always be empty on a release branch. +* LOCAL_VERSION_STAGE must always be empty (i.e. "[]") on a release branch. +* LOCAL_VERSION_RELEASE must always be empty (i.e. "[]") on a release branch. * Update `share/doc/src/conf.py` with current year. * Update the [[Breaking_changes]] document.
[Couchdb Wiki] Update of "Release_Procedure" by NoahSlater
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: https://wiki.apache.org/couchdb/Release_Procedure?action=diff&rev1=234&rev2=235 Submit a new item for each of the following subreddits: - * `/r/programming` - * `/r/Database` - * `/r/nosql` - * `/r/CouchDB` + * http://www.reddit.com/r/programming";>/r/programming + * http://www.reddit.com/r/Database";>/r/Database + * http://www.reddit.com/r/nosql";>/r/nosql + * http://www.reddit.com/r/CouchDB";>/r/CouchDB === Google+ ===
[Couchdb Wiki] Update of "Release_Procedure" by NoahSlater
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: https://wiki.apache.org/couchdb/Release_Procedure?action=diff&rev1=235&rev2=236 Comment: Gee whiz. What was I thinking. HTML in my Internets? Submit a new item for each of the following subreddits: - * http://www.reddit.com/r/programming";>/r/programming + * [[http://www.reddit.com/r/programming|/r/programming]] - * http://www.reddit.com/r/Database";>/r/Database + * [[http://www.reddit.com/r/Database|/r/Database]] - * http://www.reddit.com/r/nosql";>/r/nosql + * [[http://www.reddit.com/r/nosql|/r/nosql]] - * http://www.reddit.com/r/CouchDB";>/r/CouchDB + * [[http://www.reddit.com/r/CouchDB|/r/CouchDB]] === Google+ ===
[Couchdb Wiki] Update of "Release_Procedure" by NoahSlater
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: https://wiki.apache.org/couchdb/Release_Procedure?action=diff&rev1=237&rev2=238 Woo hoo! CouchDB VERSION available now. }}} + Be sure to +1 each post from your own account. + + You should also consider sharing the post made by the CouchDB page publicly via your own account. + === Mailing List === Open this file:
[Couchdb Wiki] Update of "Release_Procedure" by NoahSlater
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: https://wiki.apache.org/couchdb/Release_Procedure?action=diff&rev1=239&rev2=240 Save this post as a draft. Then click the "Full Preview" button and make sure it looks okay. - Wait for the scheduled release time, or until all the release files have been synced to the public mirrors. + Wait for the scheduled release time, or until all the release files have been synced to the public mirrors. The mirrors can take up to 24 hours to update, so it's usually best to wait a day. You should be sure that both the source download and the binary downloads are all working. Update http://couchdb.apache.org/ to point to the new files (checkout the repository from https://svn.apache.org/repos/asf/couchdb/site).
[Couchdb Wiki] Update of "Release_Procedure" by NoahSlater
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: https://wiki.apache.org/couchdb/Release_Procedure?action=diff&rev1=240&rev2=241 Choose a date for the release. Tuesdays mornings PST are better, because they get more press coverage. + Your date should take into consideration the 24 hour delay while you wait for the mirrors to update themselves after you have uploaded the release files. + Open this file: {{{ @@ -671, +673 @@ Save this post as a draft. Then click the "Full Preview" button and make sure it looks okay. - Wait for the scheduled release time, or until all the release files have been synced to the public mirrors. The mirrors can take up to 24 hours to update, so it's usually best to wait a day. You should be sure that both the source download and the binary downloads are all working. + You must now wait until all the release files have been synced to the public mirrors. The mirrors can take up to 24 hours to update, so it's usually best to wait a day. You should be sure that both the source download and the binary downloads are all working. + + == Announcing the Release == + + Wait for the scheduled release time before announcing the release. If there is no scheduled release time, you can simply wait until the mirrors are up-to-date. Update http://couchdb.apache.org/ to point to the new files (checkout the repository from https://svn.apache.org/repos/asf/couchdb/site).
[Couchdb Wiki] Update of "Release_Procedure" by NoahSlater
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: https://wiki.apache.org/couchdb/Release_Procedure?action=diff&rev1=241&rev2=242 == Making the Release == - It is good to send release announcements on a Tuesday, for maximum impact. - - You may choose to time the rest of these steps to line up with a Tuesday release announcement date. - Tag the candidate: {{{
[Couchdb Wiki] Update of "Release_procedure" by NoahSlater
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=114&rev2=115 <> + = Release Procedure = + - = Making a Source Release = + == Making a Source Release == Any Apache CouchDB committer is free to make a source release, but they are usually made by the release team. @@ -10, +12 @@ <> - = Checklist = + == Checklist == * Update the `README` file with important information. * Update the `NEWS` and `CHANGES` files with important information. @@ -25, +27 @@ * When this is set, it indicates a development version. It is set on branches or on master so that the release number includes the source code revision number, which can be useful for development builds. * Update the [[Breaking_changes]] document. - = Preparing the Community = + == Preparing the Community == Call a vote on the [[http://mail-archives.apache.org/mod_mbox/couchdb-dev/|couchdb-dev]] mailing list asking for a request for comments on the release. Ask all developers to specifically check the `NEWS` and `CHANGES` file for anything that has been added in this release. - = Preparing the Release = + == Preparing the Release == First make sure your local repository has everything from the public repository: @@ -84, +86 @@ cd Y.Y.Y }}} - = Release Signing = + == Release Signing == You will need a GPG key pair to sign the release. @@ -112, +114 @@ gpg --list-keys }}} - = Creating the Release Artefacts = + == Creating the Release Artefacts == To build the source for distribution you should then run the following command: @@ -127, +129 @@ * apache-couchdb-Y.Y.Y.tar.gz.md5 * apache-couchdb-Y.Y.Y.tar.gz.sha - = Checking the Release Contents = + == Checking the Release Contents == Remove any existing temporary directory: @@ -189, +191 @@ Do not upload the exported tag directory, of course. That was only for testing. - = Calling a Vote = + == 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. @@ -209, +211 @@ A vote can only pass if there are at least three +1 votes. These votes can come from anyone, including non-committers, and in fact, everyone is encouraged to partake in and vote on each release. However, it is preferable that at least three +1 votes come from the committers, or better yet, the PMC. Once three +1 votes have been counted, the vote can pass. However, if anyone votes -1 or expresses any serious concern, that should be addressed. Usually, this will be cause to abort the vote. A vote can only be closed after three working days. This allows most people a chance to test and vote on the release. - = Preparing the Release Notes = + == Preparing the Release Notes == Go through the `NEWS` file and expand each bullet point as appropriate. @@ -233, +235 @@ Upload these files to `/www/www.apache.org/dist/couchdb/notes/Y.Y.Y` on `people.apache.org`. - = Making the Release = + == Making the Release == Create a signed tag: @@ -275, +277 @@ At each stage of the actual release, it is expected that a person can follow the trail of changes back to the source. Because most of these systems are slow, things must be done in the correct order. It would be unfortunate if the website listed a release that was not available on a local mirror, or that was missing a corresponding tag in the Git repository. The changes should always propagate from the source, to the `dist` directory, to the mirrors, to `downloads.html`, and finally to the actual release announcement. - = Doing Housekeeping = + == Doing Housekeeping == * Add a new release section to `NEWS` and `CHANGES` on master if not already present. * Add a new release section to `NEWS` and `CHANGES` on Y.Y.x the branch if not already present. @@ -290, +292 @@ * Call a discussion on the [[http://mail-archives.apache.org/mod_mbox/couchdb-dev/|couchdb-dev]] mailing list about archiving old releases. * To archive an old release, remove it from [[http://wiki.apache.org/couchdb/CurrentReleases|the wiki]] and then delete the corresponding directory from the `dist` directory. Do not worry about the release artefacts no longer being available, they are automatically mirrored to the Apache archive site and will remain there even after they are deleted from the main `dist` directory. - = Useful Resources = + == Useful Resources == * http://www.apache.org/dev/release.html * http://incubator.apache.org/guides/releasemanagement.html#best-practice
[Couchdb Wiki] Update of "Release_procedure" by NoahSlater
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=115&rev2=116 <> - = Release Procedure = - - == Making a Source Release == + = Making a Source Release = Any Apache CouchDB committer is free to make a source release, but they are usually made by the release team. @@ -12, +10 @@ <> - == Checklist == + = Checklist = * Update the `README` file with important information. * Update the `NEWS` and `CHANGES` files with important information. @@ -27, +25 @@ * When this is set, it indicates a development version. It is set on branches or on master so that the release number includes the source code revision number, which can be useful for development builds. * Update the [[Breaking_changes]] document. - == Preparing the Community == + = Preparing the Community = Call a vote on the [[http://mail-archives.apache.org/mod_mbox/couchdb-dev/|couchdb-dev]] mailing list asking for a request for comments on the release. Ask all developers to specifically check the `NEWS` and `CHANGES` file for anything that has been added in this release. - == Preparing the Release == + = Preparing the Release = First make sure your local repository has everything from the public repository: @@ -86, +84 @@ cd Y.Y.Y }}} - == Release Signing == + = Release Signing = You will need a GPG key pair to sign the release. @@ -114, +112 @@ gpg --list-keys }}} - == Creating the Release Artefacts == + = Creating the Release Artefacts = To build the source for distribution you should then run the following command: @@ -129, +127 @@ * apache-couchdb-Y.Y.Y.tar.gz.md5 * apache-couchdb-Y.Y.Y.tar.gz.sha - == Checking the Release Contents == + = Checking the Release Contents = Remove any existing temporary directory: @@ -191, +189 @@ Do not upload the exported tag directory, of course. That was only for testing. - == Calling a Vote == + = 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. @@ -211, +209 @@ A vote can only pass if there are at least three +1 votes. These votes can come from anyone, including non-committers, and in fact, everyone is encouraged to partake in and vote on each release. However, it is preferable that at least three +1 votes come from the committers, or better yet, the PMC. Once three +1 votes have been counted, the vote can pass. However, if anyone votes -1 or expresses any serious concern, that should be addressed. Usually, this will be cause to abort the vote. A vote can only be closed after three working days. This allows most people a chance to test and vote on the release. - == Preparing the Release Notes == + = Preparing the Release Notes = Go through the `NEWS` file and expand each bullet point as appropriate. @@ -235, +233 @@ Upload these files to `/www/www.apache.org/dist/couchdb/notes/Y.Y.Y` on `people.apache.org`. - == Making the Release == + = Making the Release = Create a signed tag: @@ -277, +275 @@ At each stage of the actual release, it is expected that a person can follow the trail of changes back to the source. Because most of these systems are slow, things must be done in the correct order. It would be unfortunate if the website listed a release that was not available on a local mirror, or that was missing a corresponding tag in the Git repository. The changes should always propagate from the source, to the `dist` directory, to the mirrors, to `downloads.html`, and finally to the actual release announcement. - == Doing Housekeeping == + = Doing Housekeeping = * Add a new release section to `NEWS` and `CHANGES` on master if not already present. * Add a new release section to `NEWS` and `CHANGES` on Y.Y.x the branch if not already present. @@ -292, +290 @@ * Call a discussion on the [[http://mail-archives.apache.org/mod_mbox/couchdb-dev/|couchdb-dev]] mailing list about archiving old releases. * To archive an old release, remove it from [[http://wiki.apache.org/couchdb/CurrentReleases|the wiki]] and then delete the corresponding directory from the `dist` directory. Do not worry about the release artefacts no longer being available, they are automatically mirrored to the Apache archive site and will remain there even after they are deleted from the main `dist` directory. - == Useful Resources == + = Useful Resources = * http://www.apache.org/dev/release.html * http://incubator.apache.org/guides/releasemanagement.html#best-practice
[Couchdb Wiki] Update of "Release_procedure" by NoahSlater
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 New page: #redirect Release_Procedure
[Couchdb Wiki] Update of "Release_Procedure" by NoahSlater
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=117&rev2=118 = Preparing the Community = - Call a vote on the [[http://mail-archives.apache.org/mod_mbox/couchdb-dev/|couchdb-dev]] mailing list asking for a request for comments on the release. Ask all developers to specifically check the `NEWS` and `CHANGES` file for anything that has been added in this release. + Submit an RFC to the [[http://mail-archives.apache.org/mod_mbox/couchdb-dev/|couchdb-dev]] mailing list asking for a request for comments on the release. Ask all developers to specifically check the `NEWS` and `CHANGES` file for anything that has been added in this release. = Preparing the Release =
[Couchdb Wiki] Update of "Release_Procedure" by NoahSlater
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=118&rev2=119 = Preparing the Community = - Submit an RFC to the [[http://mail-archives.apache.org/mod_mbox/couchdb-dev/|couchdb-dev]] mailing list asking for a request for comments on the release. Ask all developers to specifically check the `NEWS` and `CHANGES` file for anything that has been added in this release. + Submit an RFC to the [[http://mail-archives.apache.org/mod_mbox/couchdb-dev/|couchdb-dev]] mailing list asking for a request for comments on the release. + + Ask all developers to specifically check the `NEWS` and `CHANGES` file for anything that has been added in this release. = Preparing the Release =
[Couchdb Wiki] Update of "Release_Procedure" by NoahSlater
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=119&rev2=120 * LOCAL_VERSION_REVISION should be the X in Y.Y.X * LOCAL_VERSION_STAGE must always be empty on a release tag. * When this is set, it indicates a development version. It is set on branches or on master so that the release number includes the source code revision number, which can be useful for development builds. + * Update share/doc/src/conf.py with current information. * Update the [[Breaking_changes]] document. = Preparing the Community = @@ -120, +121 @@ To build the source for distribution you should then run the following command: {{{ - ./bootstrap && ./configure && make distsign + ./bootstrap && ./configure --enable-strictness && make distsign }}} If everything was successful you should see the following files in the working directory ready for distribution:
[Couchdb Wiki] Update of "Release_Procedure" by NoahSlater
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=120&rev2=121 * LOCAL_VERSION_REVISION should be the X in Y.Y.X * LOCAL_VERSION_STAGE must always be empty on a release tag. * When this is set, it indicates a development version. It is set on branches or on master so that the release number includes the source code revision number, which can be useful for development builds. - * Update share/doc/src/conf.py with current information. + * Update `share/doc/src/conf.py` with current year. * Update the [[Breaking_changes]] document. = Preparing the Community =
[Couchdb Wiki] Update of "Release_Procedure" by NoahSlater
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=121&rev2=122 Now, follow these steps: - * Copy the release directory to `/www/www.apache.org/dist/couchdb` on `people.apache.org`. + * Copy the release directory to `/www/www.apache.org/dist/couchdb/releases` on `people.apache.org`. -* Make sure that the release directory and all the files within it are owned by the `couchdb` group and are group writable. + * Make sure that the release directory and all the files within it are owned by the `couchdb` group and are group writable. * Wait for all changes to be synced to public mirrors. * Update http://couchdb.apache.org/ to point to the new files. * Send a pre-announcement email to [[http://mail-archives.apache.org/mod_mbox/couchdb-dev/|couchdb-dev]] mailing list, so that downstream distributors can prepare their own announcements.
[Couchdb Wiki] Update of "Release_Procedure" by NoahSlater
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=122&rev2=123 For example, a JIRA ticket that is not referenced by number. - Upload these files to `/www/www.apache.org/dist/couchdb/notes/Y.Y.Y` on `people.apache.org`. + Upload these files to `/www/www.apache.org/dist/couchdb/notes/Y.Y.Y` on `people.apache.org`. + + Make sure that these files are owned by the `couchdb` group and are group writable. = Making the Release =
[Couchdb Wiki] Update of "Release_Procedure" by NoahSlater
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=123&rev2=124 A vote can only pass if there are at least three +1 votes. These votes can come from anyone, including non-committers, and in fact, everyone is encouraged to partake in and vote on each release. However, it is preferable that at least three +1 votes come from the committers, or better yet, the PMC. Once three +1 votes have been counted, the vote can pass. However, if anyone votes -1 or expresses any serious concern, that should be addressed. Usually, this will be cause to abort the vote. A vote can only be closed after three working days. This allows most people a chance to test and vote on the release. + = Preparing the Binary packages = + + At this point in the process, you should reach out to the following people: + + * Dave Cottlehuber (Windows) + * Hans J Schroeder (Mac OS X) + + Ideally, both people would have been involved in the vote thread. + + Either way, ask them both to prepare binary packages for the release artefacts. + + If these are done in time, they can be mentioned in the release announcement. + = Preparing the Release Notes = Go through the `NEWS` file and expand each bullet point as appropriate.
[Couchdb Wiki] Update of "Release_Procedure" by NoahSlater
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=124&rev2=125 Check that this HTML looks good when used for a draft blog post. + ''@@ Add step that adds brief description of what CouchDB is, for the announcement emails.'' + Then generate a text only version by running: {{{
[Couchdb Wiki] Update of "Release_Procedure" by NoahSlater
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=126&rev2=127 = Preparing the Release = - First make sure your local repository has everything from the public repository: + It is advised that you spin up a VM to make the release, to ensure you're working from a known state. + Remove any previous staging area: + {{{ - git fetch origin + rm -rf /tmp/couchdb + }}} + + Create a new staging area: + + {{{ + mkdir /tmp/couchdb + }}} + + Turn this into a RAM disk, for performance: + + {{{ + chmod 777 /tmp/couchdb + sudo mount -t tmpfs -o size=1024M tmpfs /tmp/couchdb + }}} + + You may want to alter the generous `size` attribute if you're running on a smaller system. + + Change into the staging area: + + {{{ + cd /tmp/couchdb + }}} + + You can safely remove this directory and all of its contents when you're done. + + Check out a copy of the repository: + + {{{ + git clone https://git-wip-us.apache.org/repos/asf/couchdb.git /tmp/couchdb/git }}} Find a list of branches: @@ -136, +167 @@ Remove any existing temporary directory: {{{ - rm -rf /tmp/couchdb + rm -rf /tmp/couchdb/test }}} Obviously, don't run this command if you're already using this directory for something else. The location isn't important, but this is a sensible default. - Create a new temporary directory to work in: + Create a new test directory to work in: {{{ - mkdir /tmp/couchdb + mkdir /tmp/couchdb/test }}} You can safely remove this directory and all of its contents when you're done. @@ -154, +185 @@ Move the release files to the temporary directory: {{{ - mv apache-couchdb* /tmp/couchdb + mv apache-couchdb* /tmp/couchdb/test }}} Move the source tarball to the temporary directory: {{{ - mv ../Y.Y.Y.tar /tmp/couchdb + mv ../Y.Y.Y.tar /tmp/couchdb/test }}} Change to the temporary directory: {{{ - cd /tmp/couchdb + cd /tmp/couchdb/test }}} Unpack the release tarball:
[Couchdb Wiki] Update of "Release_Procedure" by NoahSlater
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=127&rev2=128 git clone https://git-wip-us.apache.org/repos/asf/couchdb.git /tmp/couchdb/git }}} + Change into the source checkout: + + {{{ + cd /tmp/couchdb/git + }}} + Find a list of branches: {{{
[Couchdb Wiki] Update of "Release_Procedure" by NoahSlater
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=128&rev2=129 Comment: Removed instructions no longer relevant for fresh checkout git checkout -b Y.Y.x origin/Y.Y.x }}} - You should make sure your branch matches whats on the remote repository. First check that you don't have any work that you're willing to lose: - - {{{ - git status - }}} - - When you have your work saved, forcefully update your branch to the version in the remote repository: - - {{{ - git reset --hard HEAD - git clean -qfxd - git rebase origin/Y.Y.x - }}} - Grab the current tree-ish: {{{
[Couchdb Wiki] Update of "Release_Procedure" by NoahSlater
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=129&rev2=130 git show HEAD | head -n 1 | cut -d " " -f 2 }}} - It is generally a good idea to work under a clean temporary directory. + Make a note of this. You'll need it later. You can then run the following commands:
[Couchdb Wiki] Update of "Release_Procedure" by NoahSlater
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=130&rev2=131 Comment: Remove RAM disk instructions mkdir /tmp/couchdb }}} - Turn this into a RAM disk, for performance: - - {{{ - chmod 777 /tmp/couchdb - sudo mount -t tmpfs -o size=1024M tmpfs /tmp/couchdb - }}} - - You may want to alter the generous `size` attribute if you're running on a smaller system. - Change into the staging area: {{{
[Couchdb Wiki] Update of "Release_Procedure" by NoahSlater
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=131&rev2=132 It is advised that you spin up a VM to make the release, to ensure you're working from a known state. + These instructions are tailored to that workflow. + + It is assumed you will sort out dependencies yourself, perhaps by creating a custom image. + Remove any previous staging area: {{{ @@ -88, +92 @@ }}} Make a note of this. You'll need it later. - - You can then run the following commands: - - {{{ - git archive --prefix=Y.Y.Y/ -o Y.Y.Y.tar - tar -xf Y.Y.Y.tar - }}} - - You must then use the `Y.Y.Y` directory to prepare the release: - - {{{ - cd Y.Y.Y - }}} = Release Signing =
[Couchdb Wiki] Update of "Release_Procedure" by NoahSlater
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=132&rev2=133 git show HEAD | head -n 1 | cut -d " " -f 2 }}} - Make a note of this. You'll need it later. + Make a note of this. You will need it later. = Release Signing =
[Couchdb Wiki] Update of "Release_Procedure" by NoahSlater
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=133&rev2=134 * Update the `README` file with important information. * Update the `NEWS` and `CHANGES` files with important information. +* Add entries for any (usually recent) releases missing from these files. * Add note about breaking changes to the `NEWS` file if necessary. * Remove "version has not been released" warnings from `NEWS` and `CHANGES` if present. * If working on a branch, make sure `NEWS` and `CHANGES` are synced with master.
[Couchdb Wiki] Update of "Release_Procedure" by NoahSlater
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=134&rev2=135 * Update the `README` file with important information. * Update the `NEWS` and `CHANGES` files with important information. * Add entries for any (usually recent) releases missing from these files. +* Remove any entries for other versions that have not been released yet. * Add note about breaking changes to the `NEWS` file if necessary. * Remove "version has not been released" warnings from `NEWS` and `CHANGES` if present. * If working on a branch, make sure `NEWS` and `CHANGES` are synced with master.
[Couchdb Wiki] Update of "Release_Procedure" by NoahSlater
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=135&rev2=136 * Update the `NEWS` and `CHANGES` files with important information. * Add entries for any (usually recent) releases missing from these files. * Remove any entries for other versions that have not been released yet. +* It is ''very important'' that these files are properly maintained. * Add note about breaking changes to the `NEWS` file if necessary. * Remove "version has not been released" warnings from `NEWS` and `CHANGES` if present. * If working on a branch, make sure `NEWS` and `CHANGES` are synced with master.
[Couchdb Wiki] Update of "Release_Procedure" by NoahSlater
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=136&rev2=137 * Update the `README` file with important information. * Update the `NEWS` and `CHANGES` files with important information. -* Add entries for any (usually recent) releases missing from these files. -* Remove any entries for other versions that have not been released yet. +* Check the list of recent releases and make sure each one has an entry. +* Check for "version has not been released" warnings and remove these sections entirely. + * Obviously, do not remove the section for the release you are preparing. * It is ''very important'' that these files are properly maintained. * Add note about breaking changes to the `NEWS` file if necessary. - * Remove "version has not been released" warnings from `NEWS` and `CHANGES` if present. + * Remove "version has not been released" warnings for this release from `NEWS` and `CHANGES` if present. * If working on a branch, make sure `NEWS` and `CHANGES` are synced with master. * Update the `acinclude.m4.in` file with version information. * LOCAL_VERSION_MAJOR should be the X in X.Y.Y
[Couchdb Wiki] Update of "Release_Procedure" by NoahSlater
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=137&rev2=138 * Update the `README` file with important information. * Update the `NEWS` and `CHANGES` files with important information. * Check the list of recent releases and make sure each one has an entry. -* Check for "version has not been released" warnings and remove these sections entirely. +* Check for "version has not been released" warnings. - * Obviously, do not remove the section for the release you are preparing. + * If this appears in the section for this release, remove the warning. + * If this appears in a section for an unreleased version, remove the section entirely. * It is ''very important'' that these files are properly maintained. * Add note about breaking changes to the `NEWS` file if necessary. - * Remove "version has not been released" warnings for this release from `NEWS` and `CHANGES` if present. * If working on a branch, make sure `NEWS` and `CHANGES` are synced with master. * Update the `acinclude.m4.in` file with version information. * LOCAL_VERSION_MAJOR should be the X in X.Y.Y
[Couchdb Wiki] Update of "Release_Procedure" by NoahSlater
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=138&rev2=139 Use your judgment here to figure out if anything is missing, or has been included by mistake. - Upload the release files to your `public_html` directory on `people.apache.org` and make sure they are world readable. + '''The next step has changed recently. Please read closely.''' - Do not upload the exported tag directory, of course. That was only for testing. + If you do not already have the release development directory checked out, run: + + {{{ + 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 =
[Couchdb Wiki] Update of "Release_Procedure" by NoahSlater
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=139&rev2=140 '''The next step has changed recently. Please read closely.''' - If you do not already have the release development directory checked out, run: + If you do not already have the release development directory checked out: {{{ svn co https://dist.apache.org/repos/dist/dev/couchdb