JBoss Community

Narayana Release Process

modified by Tom Jenkinson in JBoss Transactions Development - View the full document

This page provides a list of instructions that must be done in order when doing a release of Narayana.

 

Check JIRA

  1. Check all issues resolved.
  2. Create next point release version if not exists - this is so you can push issues in step 3 below.
  3. 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

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 $REPO

git 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 ..

done

 

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/

On Linux:

sshfs jbosstm@filemgmt.jboss.org: ~/narayana/filemgmt.jboss.org/

On MacOS:

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

On Linux:

ant -f build-release-pkgs.xml dist downloads docs magnolia -Drsync=false

On MacOS:

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

  1. https://repository.jboss.org/nexus/index.html#welcome
  2. login
  3. "Staging Repositories"
  4. Click tickbox for your repo
  5. Click "Close"
  6. Don't worry about a description, just click "Close"
  7. Click tickbox after it is closed
  8. Click "Release"
  9. Again a description doesn't matter

JIRA Release

  1. Close all issues for the release
  2. 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.

 

 

  1. https://issues.jboss.org/browse/AS7
  2. create a new 'component update' issue.
    1. Ensure the module is set to 'transactions'
    2. select an appropriate 'fix for'.
    3. 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}"

 

  1. Raise a pull request
  2. 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:

  1. Email jbossts-announce@lists.jboss.org
  2. Forum
  3. Blog - as appropriate

Comment by going to Community

Create a new document in JBoss Transactions Development at Community