This page provides a list of instructions that must be done in order when doing a release of Narayana.
Check JIRA
Ensure all issues are resolved. Any outstanding issues must be pushed back or resolved.
Check Hudson
Ensure no test failures in the following group of hudson tests (for the branch you intend to release):
- 4.16 Branch : jbossts-branch416-*
- 4.17 Branch : jbossts-branch417-*
- 5 Branch: jbossts-narayana-*
Do Release
svn branches
#Make sure your checkout has no local changes
svn update
svn status
POINT_VERSION=5
NEXT_POINT_VERSION=6
#Update the version in text files
find . -name \*.java -o -name \*.xml -o -name \*.ent -o -name \INSTALL -o -name \README | grep -v ".svn" | grep -v target | xargs grep -l "4[._]16" | xargs sed -i "s/4\([._]\)16\([._]\)${POINT_VERSION}\([._]\)Final-SNAPSHOT/4\116\2$POINT_VERSION\3Final/"
svn commit -m "Updated to version 4.16.$POINT_VERSION.Final"
#Tag the release:
svn cp https://svn.jboss.org/repos/labs/labs/jbosstm/branches/JBOSSTS_4_16 https://svn.jboss.org/repos/labs/labs/jbosstm/tags/JBOSSTS_4_16_${POINT_VERSION}_Final/ -m "4.16.$POINT_VERSION"
#Bump to next version using similar find to above
find . -name \*.java -o -name \*.xml -o -name \*.ent -o -name \INSTALL -o -name \README | grep -v ".svn" | grep -v target | xargs grep -l "4[._]16" | xargs sed -i "s/4\([._]\)16\([._]\)${POINT_VERSION}\([._]\)Final/4\116\2${NEXT_POINT_VERSION}\3Final-SNAPSHOT/"
svn commit -m "Updated to version 4.16.${NEXT_POINT_VERSION}.Final-SNAPSHOT"
#Update the maven version of jbossts in our fork of JBossAS: https://github.com/jbosstm/jboss-as
sed -i "s/4.16.${POINT_VERSION}.Final-SNAPSHOT/4.16.${NEXT_POINT_VERSION}.Final-SNAPSHOT/g" pom.xml
git commit - am "Updated to 4.16.${NEXT_POINT_VERSION}.Final-SNAPSHOT"
git push
#Build and deploy the release to nexus staging:
mkdir ~/filemgmt.jboss.org/
sshfs jbosstm@filemgmt.jboss.org: ~/filemgmt.jboss.org/
ant -f build-release-pkgs.xml dist mvn-repository downloads magnolia
git branches
#Make sure your checkout has no local changes
git checkout master
git status
#Pull remote changes
git fetch
git reset --hard upstream/master
#Update the version in text files and tag and push the release
CHANGE:
current='4\([._]\)17\([._]\)0\([._]\)Final-SNAPSHOT'
next='4\117\20\3Final'
find . -name \*.java -o -name \*.xml -o -name \*.ent -o -name \INSTALL -o -name \README | grep -v ".svn" | grep -v ".git" | grep -v target | xargs sed -i "s/"$current"/"$next"/"
git commit -am "Updated to $next"
git tag 4.17.0.Final
git push upstream master
git push upstream --tags
#Bump to next version using similar find to above
CHANGE:
current='4\([._]\)17\([._]\)0\([._]\)Final'
next='5\10\20\3M2-SNAPSHOT'
find . -name \*.java -o -name \*.xml -o -name \*.ent -o -name \INSTALL -o -name \README | grep -v ".svn" | grep -v ".git" | grep -v target | xargs sed -i "s/"$current"/"$next"/"
git push upstream master
#Update the maven version of jbossts in our fork of JBossAS: https://github.com/jbosstm/jboss-as
git clone -o jbosstm https://github.com/jbosstm/jboss-as
git checkout 5_BRANCH
sed -i "s/5.0.0.M1-SNAPSHOT/5.0.0.M2-SNAPSHOT/g" pom.xml
git commit -am "Updated to 5.0.0.M2-SNAPSHOT"
git push jbosstm 5_BRANCH
#Build and deploy the release to nexus staging:
mkdir ~/narayana/filemgmt.jboss.org/
sshfs jbosstm@filemgmt.jboss.org: ~/narayana/filemgmt.jboss.org/
ant -f build-release-pkgs.xml dist mvn-repository downloads magnolia
Release Quickstarts and Docs
current='4\([._]\)17\([._]\)0\([._]\)Final-SNAPSHOT'
next='4\117\20\3Final'
find . -name \*.java -o -name \*.xml -o -name \*.ent -o -name \INSTALL -o -name \README | grep -v ".svn" | grep -v ".git" | grep -v target | xargs sed -i "s/"$current"/"$next"/"
git commit -am "Updated to $next"
git tag 4.17.0.Final
current='4\([._]\)17\([._]\)0\([._]\)Final'
next='5\10\20\3M2-SNAPSHOT'
find . -name \*.java -o -name \*.xml -o -name \*.ent -o -name \INSTALL -o -name \README | grep -v ".svn" | grep -v ".git" | grep -v target | xargs sed -i "s/"$current"/"$next"/"
git push upstream master --tags
Release the artifact through Nexus
- https://repository.jboss.org/nexus/index.html#welcome
- login
- "Staging Repositories"
- Click tickbox for your repo
- Click "Close"
- Dont worry about a description, just click "Close"
- Click tickbox after it is closed
- Click "Release"
- Again a description doesn't matter
JIRA Release
- Mark as released.
Push Upstream
If appropriate for this release, create a new 'component update' issue in AS7 JIRA. Ensure the module is set to 'transactions' and select an appropriate 'fix for'.
Assign it to yourself
Resolve the work and raise the pull request
- https://issues.jboss.org/browse/AS7
- cd AS source
- git checkout -b AS7-<JIRANUMBER>
- sed -i "s/4.16.3.Final/4.16.4.Final/g" pom.xml
- git commit -am "AS7-<JIRA> Updated to 4.16.4.Final"
- git push
- Raise a pull request
Update Website
Update the Narayana community site:
- Documentation
- Downloads
- Magnolia (using file generated in build-release-pkgs.xml), also update the front page announcement and the release notes link
Promote
NOTE: It is worth waiting for the merge of the pull request before advertising, or at least wait for the merge build notification first ;)
Promote the release through the following channels:
- Email jbossts-announce@lists.jboss.org
- Forum
- Blog - as appropriate