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 packages: zeppelin-examples/zeppelin-example-clock/zeppelin-example-clock.json, zeppelin-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 create tag from release branch by running `tag_release.sh` script as below:It is recommended to fork git repository while one of the command may fail and you want to retry without making unnecessary commits.
Code Block | ||
---|---|---|
| ||
mvn -DperformRelease=true release:clean
mvn -DperformRelease=true release:prepare -Darguments="-DskipTests -Dgpg.passphrase=..." -Dtag=v0.6.0 -DreleaseVersion=0.6.0-incubating -DdevelopmentVersion=0.6.1-incubating-SNAPSHOT -DpushChanges=false
mvn -DperformRelease=true release:perform -Darguments="-DskipTests -Dgpg.passphrase=..." -Dtag=v0.6.0 -DreleaseVersion=0.6.0-incubating -DdevelopmentVersion=0.6.1-incubating-SNAPSHOT -DpushChanges=false -DconnectionUrl=scm:git:https://github.com/[your forked repo]/incubator-zeppelin.git |
Once it's done without problem, you'll need to go https://repository.apache.org/ and close staging repository.
And then you can push the changes from your forked git repo to Apache's git repo.
BASE_PATH
$ CURRENT_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 candidatein docs/_config.yml BASE_PATH need be updated for next development version.
Create release Candidate
...
'create_release.sh' script will create source and binary package for the release candidate under '/tmp/incubator-zeppelin-release' directory
Code Block | ||
---|---|---|
| ||
$ GPG_PASSPHRASE=[your gpg passphrase] dev/create_release.sh [Release nameversion] [Tag name] |
For example
Code Block | ||
---|---|---|
| ||
$ GPG_PASSPHRASE=[your gpg passphrase] dev/create_release.sh 0.6.0-incubating v0.6.0-rc1 |
will create source and binary package for release '0.6.0-incubating' based on tag 'v0.6.0'
Upload release candidate
Created release candidate need needs to be uploaded into svn repository
https://dist.apache.org/repos/dist/dev/incubatorzeppelin/zeppelin/-[Release nameversion]-[RC number]
for example, for 0.6.0 -incubating release candidate 1, contents of '/tmp/incubator-zeppelin-release' directory need to be uploaded into
https://dist.apache.org/repos/dist/dev/incubatorzeppelin/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 [Release version] [Tag name] |
For example
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 (incubating) 0.6.0-incubating (RC1) Hi folks, I propose the following RC to be released for the Apache Zeppelin (incubating) 0.6.0-incubating release. The commit id is 72e38d0b3c3ba8b08ba1176c2eb2c38661a54d31 : https://git-wip-us.apache.org/repos/asf?p=incubator-zeppelin.git;a=commit;h=72e38d0b3c3ba8b08ba1176c2eb2c38661a54d31 This corresponds to the tag: v0.6.0-rc1 : https://git-wip-us.apache.org/repos/asf?p=incubator-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/incubatorzeppelin/zeppelin/-0.6.0-incubating-rc1/ The release candidate consists of the following source distribution archive zeppelin-0.6.0-incubating.tgz In addition, the following supplementary binary distributions are provided for user convenience at the same location zeppelin-0.6.0-incubating-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/incubator/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 (incubating) 0.6.0-incubating (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/incubator-zeppelin-dev/201511.mbox/%3CCALf24sboheQdok1BRX1p5pT-mwY6waOfs490xiPAhT-QNCCAHg%40mail.gmail.com%3E |
Start a vote in general@list
After vote passed in dev@list, start a vote in general@list. For example
No Format |
---|
[VOTE] Release Apache Zeppelin (incubating) 0.6.0-incubating (RC1)
Hi forks,
Apache Zeppelin community has voted on following RC to be releaseed
as official Apache Zeppelin (incubating) 0.6.0-incubating release.
Vote on dev list:
http://mail-archives.apache.org/mod_mbox/incubator-zeppelin-dev/201511.mbox/%3CCALf24sboheQdok1BRX1p5pT-mwY6waOfs490xiPAhT-QNCCAHg%40mail.gmail.com%3E
Result of vote on dev list:
http://mail-archives.apache.org/mod_mbox/incubator-zeppelin-dev/201511.mbox/%3CCALf24sZAbn0ZVtT_SSdDSpj7vSrCjpd0izq_g_ex9MJF2VALUw%40mail.gmail.com%3E
The commit id is e4743e71d2421f5b6950f9e0f346f07bb84f1671 :
https://git-wip-us.apache.org/repos/asf?p=incubator-zeppelin.git;a=commit;h=e4743e71d2421f5b6950f9e0f346f07bb84f1671
This corresponds to the tag: v0.6.0 :
https://git-wip-us.apache.org/repos/asf?p=incubator-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/incubator/zeppelin/0.6.0-incubating-rc1/
The release candidate consists of the following source distribution archive
zeppelin-0.5.5-incubating.tgz
In addition, the following supplementary binary distributions are provided
for user convenience at the same location
zeppelin-0.5.5-incubating-bin-all.tgz
The maven artifacts are here
https://repository.apache.org/content/repositories/orgapachezeppelin-1003
You can find the KEYS file here:
https://dist.apache.org/repos/dist/release/incubator/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 5am 17/Nov PDT).
[ ] +1 approve
[ ] 0 no opinion
[ ] -1 disapprove (and reason why)
Best regards, |
Once vote is passed, post result into general@list. For example
No Format |
---|
[RESULT] [VOTE] Release Apache Zeppelin (incubating) 0.6.0-incubating (RC1)
Vote to release Apache Zeppelin 0.6.0-incubating (RC1) passed with the
following results:
3 binding "+1" votes, no "0" or "-1" votes.
IPMC binding votes were provided by:
Steve Loughran
Justin Mclean
Henry Saputra
Here's vote thread:
http://mail-archives.apache.org/mod_mbox/incubator-general/201511.mbox/%3CCALf24sZin774uuZ+ftOLV4pBf8egWyJRAMK3fscyh_kcQXZaig@mail.gmail.com%3E
Thanks to all who voted and took time to look over the release!
|
Publish the release
Create tag for release and clean up tags for rc
Create tag with name 'rc' and remove all 'rc' tags.
Move release package from dev to release
for example
Code Block | ||
---|---|---|
| ||
svn mv https://dist.apache.org/repos/dist/dev/incubator/zeppelin/0.6.0-incubating-rc1 https://dist.apache.org/repos/dist/release/incubator/zeppelin/0.6.0-incubating |
Release maven artifacts
Release staging repo from https://repository.apache.org/
Close JIRA issue version
'Release' released version from JIRA
Publish documents
Create document from released tag and publish it.
Create document from next development version and publish it as snapshot version
Publish the release
Move release package from dev to release
for example
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 maven artifacts
Release staging repo from https://repository.apache.org/
Add release to reporter tool( https://reporter.apache.org/addrelease.html?zeppelin) after releasing maven artifacts.
Close JIRA issue version
'Release' released version from JIRA
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
- announce at apache.orggeneral at incubator. apache.org
- users at zeppelin.incubator.apache.org
- dev at zeppelin.incubator.apache.org
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.
...