...
Tag the release. Do it from the release branch and push the created tag to the remote repository:
Code Block # create a signed tag git tag -s release-X.Y.Z -m "ZooKeeper X.Y.Z release." # push the newly created release tag to the remote repo. git push <remote> release-X.Y.Z
- Update the version number in build.xml to the next logical SNAPSHOT version (e.g. X.Y.Z to X.Y.Z+1-SNAPSHOT)
Commit this change.
Code Block # check for modified files git status # add modified files one by one git add <modified files> # commit and push the changes to remote repo branch-X.Y git commit -m "Prepare for the next release: update the version to X.Y.Z-SNAPSHOT" git push <remote> branch-X.Y
Check in release files to the distribution server
Code Block svn co https://dist.apache.org/repos/dist/release/zookeeper/ zookeeper_dist cd zookeeper_dist mkdir zookeeper-X.Y.Z # copy tgz/asc/md5/sha1 files from your public_html to zookeeper-X.Y.Z svn add zookeeper-X.Y.Z svn ci -m "Add ZooKeeper X.Y.Z release"
- After checking in the release, you'll receive an automated email from reporter.apache.org with a link requesting additional details about the release. This form must be completed by a PMC member. If you are a PMC members, follow the link and complete the form. If you are not a PMC member, forward the email to dev@zookeeper.apache.org and ask for assistance from a PMC member.
The release directory usually contains just two releases, the most recent from two branches, with a link named 'stable' to the most recent recommended version.
Code Block cd zookeeper_dist # don't do the following rm for the time being, until we are sure the new rel is actually stable --> ### rm -rf zookeeper-A.B.C rm stable; rm current ln -s zookeeper-A.B.D stable ln -s zookeeper-A.B.D current svn ci -m 'Updating links'
- Release the Maven artifacts on Apache Nexus:
- Click on 'Staging repositories'.
- Select the repository corresponding to the release candidate.
- Click on the 'Release' button and follow instructions.
- Wait 24 hours for release to propagate to mirrors.
Prepare to edit the website. ZooKeeper uses Jekyll/Markdown with gitpubsub.
Code Block git clone -b website https://git-wip-us.apache.org/repos/asf/zookeeper.git
Copy the new release documentation into the _released_docs directory
Code Block cd _released_docs mkdir rX.Y.Z cd rX.Y.Z tar xvf zookeeper-X.Y.Z.tar.gz 'zookeeper-X.Y.Z/docs' mv zookeeper-X.Y.Z/docs/* . rm -r zookeeper-X.Y.Z cd .. git add rX.Y.Z cd ..
- Update the release news in releases.md
- Update the nav panel to include X.Y.Z in _includes/sidenav.md, move previous version(s) to documentation.md (next step)
- Update documentation.md to include the previous version(s)
Stage changes to git
Code Block git add releases.md documentation.md
Regenerate the site, review it, then commit it. (install Jekyll/pygments if you haven't already - see the README.md in website branch)
Code Block jekyll build cp -rp _released_docs _site/doc # at this point verify that the site is working properly - open _site/index.html # once you are happy move on to the next step... git commit -m "Updated website content for release X.Y.Z." git push origin website
Deploy: you are now ready to deploy the changes to the public website using gitpubsub. Using the same repo as the previous step:
Code Block git checkout asf-site rm -fr content mv _site content git add content # verify that the content of "content" looks proper. open content/index.html in a browser and verify, etc... # verify git staging looks proper - remember, we added the release docs to content/doc/rX.Y.Z and that will also be added here git commit -m "Website update for release X.Y.Z" git push origin asf-site
Send announcements to the user and developer lists once the site changes are visible. Here is a sample email:
No Format Subject: [ANNOUNCE] Apache ZooKeeper X.Y.Z The Apache ZooKeeper team is proud to announce Apache ZooKeeper version X.Y.Z ZooKeeper is a high-performance coordination service for distributed applications. It exposes common services - such as naming, configuration management, synchronization, and group services - in a simple interface so you don't have to write them from scratch. You can use it off-the-shelf to implement consensus, group management, leader election, and presence protocols. And you can build on it for your own, specific needs. For ZooKeeper release details and downloads, visit: http://zookeeper.apache.org/releases.html ZooKeeper X.Y.Z Release Notes are at: http://zookeeper.apache.org/doc/rX.Y.Z/releasenotes.html We would like to thank the contributors that made the release possible. Regards, The ZooKeeper Team
- In Jira, ensure that only issues in the "Fixed" state have a "Fix Version" set to release X.Y.Z.
- In Jira, "release" the version. Visit the "Administer Project" page, then the "Manage versions" page. You need to have the "Admin" role in ZooKeeper's Jira for this step and the next.
- In Jira, close issues resolved in the release. Disable mail notifications for this bulk change.
...