This page provides a list of instructions that must be done in order when doing a release of Narayana.
Check JIRA
- Check all issues resolved.
- Create next point release version if not exists - this is so you can push issues in step 3 below.
- Unresolved issues should be resolved or pushed.
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
Git Branches (4.17 and 5 only)
Must be done first as the build-release-packages.xml relies on the tag being available
For REPO in (documentation quickstart narayana); do
REPO=<REPO>
BRANCH=<4.17|master>
CURRENT=<Point version to release>
NEXT=<point version of next release, likely to be $CURRENT+1>
git clone git@github.com:jbosstm/$REPO.git
cd $REPOgit checkout $BRANCH
find . -name \*.java -o -name \*.xml -o -name \*.properties -o -name \*.ent -o -name \INSTALL -o -name \README | grep -v ".svn" | grep -v ".git" | grep -v target | grep -v .idea | xargs sed -i "s/4\([._]\)17\([._]\)$CURRENT\([._]\)Final-SNAPSHOT/4\117\2$CURRENT\3Final/"
git commit -am "Updated to 4.17.$CURRENT.Final"
git tag 4.17.$CURRENT.Final
find . -name \*.java -o -name \*.xml -o -name \*.properties -o -name \*.ent -o -name \INSTALL -o -name \README | grep -v ".svn" | grep -v ".git" | grep -v target | grep -v .idea | xargs sed -i "s/4\([._]\)17\([._]\)$CURRENT\([._]\)Final/4\117\2$NEXT\3Final-SNAPSHOT/"
git commit -am "Updated to 4.17.$NEXT.Final-SNAPSHOT"
git push origin $BRANCH --tags
cd ..
Update our AS7 fork
BRANCH=4_BRANCH
CURRENT=<Point version to release>
NEXT=<point version of next release, likely to be $CURRENT+1>
git clone git@github.com:jbosstm/jboss-as.git
cd jboss-as
git checkout $BRANCH
sed -i "s/4.17.$CURRENT.Final-SNAPSHOT/4.17.$NEXT.Final-SNAPSHOT/g" pom.xml
git commit -am "Updated to 4.17.$NEXT.Final-SNAPSHOT"
git push origin $BRANCH
Build and release
CURRENT=<Point version to release>
mkdir -p ~/narayana/filemgmt.jboss.org/
sshfs -o defer_permissions jbosstm@filemgmt.jboss.org: ~/narayana/filemgmt.jboss.org/
git clone git@github.com:jbosstm/narayana.git
cd narayana
git checkout 4.17.$CURRENT.Final
ant -f build-release-pkgs.xml dist downloads docs magnolia
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 \*.properties -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 \*.properties -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
git checkout 4_16_BRANCH
git pull --rebase --ff-only
#Check no local changes
git status
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 -o defer_permissions jbosstm@filemgmt.jboss.org: ~/filemgmt.jboss.org/
svn switch https://svn.jboss.org/repos/labs/labs/jbosstm/tags/JBOSSTS_4_16_${NEXT_POINT_VERSION}_Final/
ant -f build-release-pkgs.xml dist mvn-repository downloads magnolia
Release the artifact through Nexus
- https://repository.jboss.org/nexus/index.html#welcome
- login
- "Staging Repositories"
- Click tickbox for your repo
- Click "Close"
- Don't worry about a description, just click "Close"
- Click tickbox after it is closed
- Click "Release"
- Again a description doesn't matter
JIRA Release
- Close all issues for the release
- Mark as released (Need admin permissions)
Update Website
Update the Narayana community site:
- Login to Magnolia
- Documentation
- Browse to 'jbosstm/documentation'
- right click on 'downloads' and select 'import'
- browse to the location of the 'website.jbosstm.documentation.4.16.5.Final.xml' file
- Right click on the new file and click 'move'
- Drag the file to the top of the documentation list.
- Right click on the new page and select 'open page...'
- Check that the page looks right and that the download links work
- Right click on the new page and select 'activate'
- You now need to wait for the page to be moderated before it will appear.
- Downloads
- Browse to 'jbosstm/downloads'
- right click on 'downloads' and select 'import'
- browse to the location of the 'website.jbosstm.downloads.4.16.5.Final.xml' file
- Right click on the new file and click 'move'
- Drag the file to the top of the downloads list.
- Right click on the new page and select 'open page...'
- Check that the page looks right and that the download links work
- Right click on the new page and select 'activate'
- You now need to wait for the page to be moderated before it will appear.
- Announcement
- Right click on 'jbosstm' and select 'open page...'
- Click edit on the 'announcement' pane
- Update the announcement for this release.
- Right click on 'jbosstm' and select 'activate changes'
- You now need to wait for the page to be moderated before it will appear.
- Release notes
- Right click on 'jbosstm' and select 'open page...'
- Click edit on the 'getting started' pane on the right-hand-side
- Edit the release notes url to point to the release notes for this version
- Click save
- Right click on 'jbosstm' and select 'activate changes'
- You now need to wait for the page to be moderated before it will appear.
Push Upstream
If appropriate for this release, update AS7.
- https://issues.jboss.org/browse/AS7
- create a new 'component update' issue.
- Ensure the module is set to 'transactions'
- select an appropriate 'fix for'.
- Assign it to yourself.
Now update the code in your fork:
#cd to *your* fork of AS7
BRANCH=master # master for JBossTS-4.17.x and 7.1 for JBossTS-4.16.x
JIRA=AS7-5815
PREVIOUS=4.17.1.Final
CURRENT=4.17.2.Final
git checkout $BRANCH
git pull --rebase --ff-only upstream $BRANCH
git checkout -b "${JIRA}_Upgrading_JBossTS_to_${CURRENT}"
sed -i "s/$PREVIOUS/$CURRENT/g" pom.xml
git add pom.xml
git commit -m "${JIRA} Upgrading JBossTS to ${CURRENT}"
rm -rf ~/.m2/repository/org/jboss/jbossts
rm -rf ~/.m2/repository/org/jboss/narayana
build.sh clean install
git push origin "${JIRA}_Upgrading_JBossTS_to_${CURRENT}"
- Raise a pull request
- Once merged, resolve the Jira issue.
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