JBoss Community

Narayana Release Process

modified by Paul Robinson 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

 

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

 

Update our AS7 fork

BRANCH=4_BRANCH
CURRENT=1
NEXT=2

git clone git@github.com:jbosstm/jboss-as.git
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

BRANCH=4.17

CURRENT=1

 

mkdir -p ~/narayana/filemgmt.jboss.org/

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

git checkout $BRANCH.$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

  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, 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

  1. https://issues.jboss.org/browse/AS7
  2. cd AS source
  3. git checkout -b AS7-<JIRANUMBER>
  4. sed -i "s/4.16.3.Final/4.16.4.Final/g" pom.xml
  5. git commit -am "AS7-<JIRA> Updated to 4.16.4.Final"
  6. git push
  7. Raise a pull request

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