...
We need to send out an email to dev@ proposing a release and reference this thread in the heads up email(see below)
Naming conventions:
Release name: (Major.Minor.Patch)
Branch name: (Major.Minor)
Tag-name: (Major.Minor.Patch)
Give a heads up
The RM should first create an umbrella issue and then setup a timeline for release branch point. The time for the day the umbrella issue is created to the release branch point must be at least two weeks in order to give the community a chance to prioritize and commit any last minute features and issues they would like to see in the upcoming release.
...
No Format |
---|
To: dev@sentry.apache.org Subject: Work on $release releaserelease X.Y.Z has started Created a tracking jira (jira#) for the Sentry $releaserelease X.Y.Z and plan to branch tentatively on $date. What would you like to see included? Thanks, $RM |
...
Before a release is done, make sure that any issues that are fixed have their fix version setup correctly. Run the following JIRA query to see which resolved issues do not have their fix version set up correctly:
Code Block project = sentry and resolution = fixed and fixVersion is empty
The result of the above query should be empty. If some issues do show up in this query that have been fixed since the last release, please bulk-edit them to set the fix version to '1.8.0'.
Move the unresolved jiras to the next release
Code Block project = sentry and fixVersion = 1X.8Y.0Z and status not in( resolved, done, Accepted, Closed)
You can also run the following query to make sure that the issues fixed for the to-be-released version look accurate:
Code Block project = sentry and fixVersion = '1X.8Y.0Z'
Finally, check out the output of the JIRA release note tool to see which JIRAs are included in the release, in order to do a sanity check.
...
Preparing branches
- Create a release branchbranch
Clone fresh repository copy
Code Block git clone https://git-wip-us.apache.org/repos/asf/sentry.git cd sentry
Checkout master branch
Code Block git checkout master
Check that current HEAD points to commit on which you want to base new release branch. Checkout particular commit if not.
Code Block git log # Check current branch history. HEAD should point to commit that you want to be base for your release branch git checkout abcdef123 # Check out particular commit that should be base for release branch if -^
Create new release branch with name "branch-$version"
Code Block git checkout -b branch-1X.8Y
Update CHANGELOG in the trunk to indicate the changes going into the new version.
The change list can be swiped from the JIRA release note tool (use the "text" format for the change log). See JIRA Cleanup above to ensure that the release notes generated by this tool are what you are expecting.
Remove -SNAPSHOT from the release branch and commit
Code Block find . -name pom.xml | xargs sed -i "" -e "s/X.Y.0-SNAPSHOT/X.Y.0/" or mvn versions:set -DnewVersion=X.Y.0Z -DgenerateBackupPoms=false git add . git commit -m "SENTRY-XXXX: Removing -SNAPSHOT from X.Y release branch"
Check your changes and push new branch to Apache repository
Code Block mvn package -Pdownload-hadoop git push origin branch-1X.8Y
Check that branch was correctly propagated to Apache repository.
Prepare the trunk for next release (TODO: update change log?)
Code Block git checkout master find . -name pom.xml | xargs sed -i "" -e "s/1.8.0-SNAPSHOT/2.0.0-SNAPSHOT/" or mvn versions:set -DnewVersion=2<X.0Y.0Z+1>-SNAPSHOT -DgenerateBackupPoms=false git add . git commit -m "SENTRY-XXXX: Preparing for sentry 2.0.0<Release name> development" git push origin master:master
- Send an email announcing new branch
No Format To: dev@sentry.apache.org Subject: New sentry release branch 1.8.0-X.Y I've just created new release branch for upcoming 1.8.0 <Release name> release. Please continue committing to master branch as usual. I'll cherry-pick commits to branch-1X.8.0Y on per needed basis. Thanks, $RM
...
Check out release branch
Code Block git checkout branch-1X.8Y
Create tag on this commit to identify precise point where the RC was generated and push this tag to main repository
Code Block git tag -a release-1X.8Y.0Z -m "Sentry 1X.8Y.0Z release" #Make sure compiles/tests run fine and rat check is fine mvn clean install -DskipTests mvn test mvn verify -DskipTests (to do the rat check) git push origin release-1X.8Y.0 Z
If an rc1, rc2, etc is needed, delete that tag before creating a new one:
Code Block git tag -d release-1X.8Y.0Z git push origin :refs/tags/release-1X.8Y.0Z
Create temporary directory where you'll be preparing all required artifacts
Code Block mkdir -p /tmp/sentry-release-preparations
Create source artifact and move it to your temporary directory (TODO: git verify?)
Code Block git archive --format=tar --prefix=apache-sentry-1X.8Y.0Z-src/ HEAD | gzip > /tmp/sentry-release-preparations/apache-sentry-1X.8Y.0Z-src.tar.gz
Sanity Check
Make sure the tar and the rc match
Code Block cd /tmp/sentry-release-preparations tar -xvf apache-sentry-1X.8Y.0Z-src.tar.gz #Do a fresh clone of the tag git clone https://git-wip-us.apache.org/repos/asf/sentry.git cd sentry/ git checkout tags/release-1X.8Y.0Z cd .. diff -r sentry apache-sentry-1X.8Y.0Z-src
Make sure code compiles and tests pass on the untared src.
Code Block cd apache-sentry-1X.8Y.0Z-src mvn clean install -DskipTests mvn test mvn verify -DskipTests (to do the rat check)
...
2. Make sure you have an entry in your ~/.m2/settings.xml with id "apache.staging.https" with your Apache username + password, e.g.:
<server>
<id>apache.staging.https</id>
<username>coheigea</username>
<password>...</password>
</server>
<settings>
<servers>
<server>
<id>apache.releases.https</id>
<username><apache-username></username>
<password><apache-password></password>
</server>
<server>
<id>apache.staging.https</id>
<username><apache-username></username>
<password><apache-password></password>
</server>
</servers>
</settings>
3. Deploy the release with: mvn clean deploy -Psign-artifacts
...
No Format |
---|
To: dev@sentry.apache.org Subject: [VOTE] Release Sentry version 1.8.0 This is the release of Apache Sentry, version 1.8.0. It fixes the following issues: http://s.apache.org/VlU Source files : https://dist.apache.org/repos/dist/dev/sentry/sentry-1.8.0/ Tag to be voted on (rc#): https://git-wip-us.apache.org/repos/asf/sentry/?p=sentry.git;a=commit;h=<commit-hash-of-the-tag> Sentry's KEYS containing the PGP key we used to sign the release: https://people.apache.org/keys/group/sentry.asc (or http://www.apache.org/dist/sentry/KEYS for non committers) Note that this is a source only release and we are voting on the source: tag=release-1.2.0, SHA=5e6e34202b26d7d5bc1a41e3dd4ad0cacd123e3f (You can get the hash of the tag by doing "git rev-list release-1X.4Y.0Z | head -n 1" ) Vote will be open for 72 hours. [ ] +1 approve [ ] +0 no opinion [ ] -1 disapprove (and reason why) Thanks, $RM |
...
No Format |
---|
To: dev@sentry.apache.org Subject: [RESULT][VOTE] Release Sentry version 1X.8Y.0Z Voting is now closed and has passed with the following tally, Binding +1s: Patrick Hunt, Arvind Prabhakar, Andrei Savu Non binding +1s: Xuefu Zhang, Jarcec Cecho, Ashish Paliwal. Thanks to everyone who voted! I'll continue with the rest of the release process. $RM |
...
No Format |
---|
svn co https://dist.apache.org/repos/dist/release/sentry/ sentry-release cd sentry-release mkdir 1X.8Y.0Z/ cp $source_to_your_artifacts 1X.8Y.0Z/ svn add 1X.8Y.0Z |
It may take up to 24 hours for all mirrors to sync up (http://www.apache.org/dyn/closer.cgi/sentry/)
...
No Format |
---|
To: announce@apache.org, dev@sentry.apache.org Subject: [ANNOUNCE] Apache Sentry 1X.8Y.0Z released The Apache Sentry team is happy to announce the release of version 1X.8Y.0Z. Apache Sentry is a system to enforce fine grained role based authorization to data and metadata stored on a Hadoop cluster. The release bits are available at: http://www.apache.org/dyn/closer.cgi/sentry The change list is available at: http://s.apache.org/VlU We would like to thank all contributors who made the release possible. Regards, Sentry team |
...