Table of Contents |
---|
Create release branch
From 0.6.0 release
...
Bump up version
...
and create tag
...
There are several places you need to bump up version before creating tag:
- Maven build: every pom.xml
- Docs: in docs/_config.yml update ZEPPELIN_VERSION, BASE_PATH, interpreter installation doc
- Configuration file: conf/interpreter-list
- Helium examplespackages: zeppelin-examples/zeppelin-example-clock/zeppelin-example-clock.json, zeppelin-examples/zeppelin-example-horizontalbar/zeppelin-example-horizontalbar.json
TODO(mina): Create bumping up script to simplify this process
- web/src/app/tabledata/package.json, zeppelin-web/src/app/visualization/package.json
- versions in all the Dockerfile
You can bump up the version and After bumping up the version, create tag from release branch by doing below.running `tag_release.sh` script as below:
Code Block | ||
---|---|---|
| ||
# Prepare release $ mvn versions:set -DnewVersion=0.6.0 -DgenerateBackupPoms=false $ git commit -a -m "Preparing Apache Zeppelin release 0.6.0" $ git tag v0.6.0-rc1 # Prepare next development version $ mvn versions:set -DnewVersion=0.6.1-SNAPSHOT -DgenerateBackupPoms=false $ git commit -a -m "Preparing development version 0.6.1-SNAPSHOT" # Push changes $ git push apache v0.6.0-rc1 $ git push apache HEAD:branch-0.6CURRENT_VERSION=[current ver.] RELEASE_VERSION=[release ver.] NEXT_DEV_VERSION=[next dev ver.] RC_TAG=[rc tag] GIT_BRANCH=[branch to create tag] dev/tag_release.sh |
For example
Code Block | ||
---|---|---|
| ||
$ CURRENT_VERSION="0.7.1-SNAPSHOT" RELEASE_VERSION="0.7.1" NEXT_DEV_VERSION="0.7.2-SNAPSHOT" RC_TAG="v0.7.1-rc1" GIT_BRANCH="branch-0.7" dev/tag_release.sh |
will bump up the version of all files mentioned above and create tag for 0.7.1 first release candidate.
Create release Candidate
Create source and binary package
...
https://dist.apache.org/repos/dist/dev/zeppelin/zeppelin-0.6.0-rc1
Refer the link here. https://stackoverflow.com/questions/15510119/how-to-add-an-existing-folder-with-files-to-svn/15511432
Deploy maven artifact to staging repository
...
Code Block | ||
---|---|---|
| ||
$ GPG_PASSPHRASE=[your gpg passphrase] ASF_USERID=[your asf user id] ASF_PASSWORD=[your asf password] dev/publish_release.sh 0.6.0 v0.6.0-rc1 |
...
Start a vote in dev@list
Once release candidate is ready, start a vote thread in dev@ list. For example
No Format |
---|
[VOTE] Release Apache Zeppelin 0.6.0 (RC1) Hi folks, I propose the following RC to be released for the Apache Zeppelin 0.6.0 release. The commit id is 72e38d0b3c3ba8b08ba1176c2eb2c38661a54d31 : https://git-wip-us.apache.org/repos/asf?p=zeppelin.git;a=commit;h=72e38d0b3c3ba8b08ba1176c2eb2c38661a54d31 This corresponds to the tag: v0.6.0-rc1 : https://git-wip-us.apache.org/repos/asf?p=zeppelin.git;a=tag;h=refs/tags/v0.6.0-rc1 The release archives (tgz), signature, and checksums are here https://dist.apache.org/repos/dist/dev/zeppelin/zeppelin-0.6.0-rc1/ The release candidate consists of the following source distribution archive zeppelin-0.6.0.tgz In addition, the following supplementary binary distributions are provided for user convenience at the same location zeppelin-0.6.0-bin-all.tgz The maven artifacts are here https://repository.apache.org/content/repositories/orgapachezeppelin-1001/org/apache/zeppelin/ You can find the KEYS file here: https://dist.apache.org/repos/dist/release/zeppelin/KEYS Release notes available at https://issues.apache.org/jira/secure/ReleaseNote.jspa?projectId=12316221&version=12333531 Vote will be open for next 72 hours (close at 7am 8/Nov PDT). [ ] +1 approve [ ] 0 no opinion [ ] -1 disapprove (and reason why) |
...
Once vote is passed, post result into the dev@list. For example
No Format |
---|
[RESULT] [VOTE] Release Apache Zeppelin 0.6.0 (RC1) The vote passes with 7 binding +1 votes, 9 non-binding +1 votes, and no +0 or -1 votes. Thanks for everyone who verified rc and voted. +1: DuyHai Doan Anthony Corbacho* Khalid Huseynov Jeff Steinmetz Victor Manuel Garcia Felix Cheung Jonathan Kelly Corneu Damien* Alexander Bezzubov* Madhuka Udantha Jian Zhong Guillaume Alleon Henry Saputra* Jongyoul Lee* Mina Lee* Moon soo Lee* +0: -1: *binding Vote thread: http://mail-archives.apache.org/mod_mbox/zeppelin-dev/201511.mbox/%3CCALf24sboheQdok1BRX1p5pT-mwY6waOfs490xiPAhT-QNCCAHg%40mail.gmail.com%3E |
...
Publish the release
...
release
...
Move release package from dev to release
...
Code Block | ||
---|---|---|
| ||
$ svn mv https://dist.apache.org/repos/dist/dev/zeppelin/zeppelin-0.6.0-rc1 https://dist.apache.org/repos/dist/release/zeppelin/zeppelin-0.6.0 -m 'Move 0.6.0 to release folder' |
Create tag for release and clean up tags for rc
Create tag without name 'rc' and remove all 'rc' tags. Make sure that release version archived under http://archive.apache.org/dist/zeppelin/ before creating tag so that docker build succeed without error.
Code Block | ||
---|---|---|
| ||
git tag v0.9.0-preview1 v0.9.0-preview1-rc1 git push apache v0.9.0-preview1 git push apache :v0.9.0-preview1-rc1 |
Remove old release
Old release should be removed from dist.apache.org. Old releases are automatically archived (See http://www.apache.org/dev/release.html#when-to-archive for more details.)
...
'Release' released version from JIRA
Update download page
Update download page in download.html and supported_interpreters.html with new releases information including release note.
Note that link to previous release should be updated while old releases will be moved from dist.apache.org -> archive.apache.orghttps://issues.apache.org/jira/projects/ZEPPELIN?selectedItem=com.atlassian.jira.jira-projects-plugin%3Arelease-page&status=unreleased
Publish documents
- Create and publish document for released version.
- Create and publish document for next development version.
- Update latest version redirect rule: Update latest doc page to point new release version in .htacess .
- DOAP file: Add new entry of the release in doap.rdf.
Here is example to publish documents to svn repo
Code Block | ||
---|---|---|
| ||
# Make sure you are using python 2.7 # Build release version document $ git clone https://github.com/apache/zeppelin.git $ cd zeppelin $ git checkout v0.6.0 $ cd docs # Update file _config.yml (ASSET_PATH & ZEPPELIN_VERSION & BASE_PATH) $ bundle exec jekyll build --safe # checkout ASF repo and copy release document to it $ svn co https://svn.apache.org/repos/asf/zeppelin asf-zeppelin $ cp -R _site asf-zeppelin/site/docs/0.6.0 # Do the same for snapshot version if you are releasing a new major version, e.g. 0.9.0 # Build develop version document $ git checkout master $ bundle exec jekyll build --safe # copy develop version document to ASF repo $ cp -R _site asf-zeppelin/site/docs/0.7.0-SNAPSHOT # go to Zeppelin directory and clone gh-pages $ cd .. $ git clone -b gh-pages https://github.com/apache/zeppelin.git gh-pages $ cd gh-pages # Update file download.md, doap.rdf, documentation.md, supported_interpreters.md, _navigation.html $ JEKYLL_ENV=production bundle exec jekyll build # copy main page to ASF repo $ cp -R _site/* ../docs/asf-zeppelin/site # add and delete directories to svn repo $ cd ../docs/asf-zeppelin/site/docs $ svn delete 0.6.0-SNAPSHOT $ svn add 0.6.0 $ svn add 0.7.0-SNAPSHOT $ svn commit -m "Publish document 0.6.0 and 0.7.0-SNAPSHOT" |
Check release status
Before announcing the release, you need to check the apache release status page to confirm there's no problem in the release process. https://checker.apache.org/projs/zeppelin.html
Announce the release
New release can be announced to some mailing lists such as
...
Here's an example of an announce.
Please also include a short description of what Apache Zeppelin is or does as the first paragraph i.e
Zeppelin is a collaborative data analytics and visualization tool for distributed, general-purpose data processing systems such as Apache Spark, Apache Flink, etc.
...