Make sure all the tasks are listed on JIRA
Make sure all the tasks on jira are consistent with the current changes between the releases.
This process is more a responsibility of each individual developer, to make sure their changes are being reported accordingly to the reality, but the person cutting the release should aways double check that nothing (nothing major at least) is out of the release.
Verify that the release version numbers number and name is correct
Verify if jms/build-messaging.xml version tags are correctly updated and correspond to the version you want to release.
Each release must have a distinct version number.
Important A final release is GA (General Availability)!
When in doubt as to what versioning convention to use, go to JBoss Product Versioning Page
Make sure about the build-thirdparty
Make sure your build-thirdparty-TARGET is updated with the recently updates on the Target AS. (Mainly Javassist, JBosAOP, JBossRemoting and JGroups).
ALL dependencies used by the project must EXACTLY match the versions used by the target AS.
Update Jar versions on both Docs and Readme
The docs and Readme contains references to various jars and versions, e.g. JBoss Remoting, AOP etc. These version numbers MUST be updated to reflect the correct versions used by the project.
Synchronize the repository
Synchronize the whole repository:
cd $JBOSS_MESSAGING_HOME svn update svn status [svn ci]
Make sure there aren't local modifications that did not make it to the repository.
Make sure you are using the intended Remoting version
Look into lib to see if there are local jboss-remoting.jar overrides. If there are, make sure this is what you want, and update lib/README.txt file with details about the override. If there aren't, make sure that build-thirdparty.xml dependency versions are correct.
Fresh build the whole project
Make sure you build and run tests with Java 5.
cd $JBOSS_MESSAGING_HOME ant clean rm -rf thirdparty java -version ant
This will also produce the required Messaging artifacts.
Test run preparation
Before releasing a GA all tests must pass with all of our supported databases:
Note about multiple processors and race conditions: Tests, in particular stress tests and soak tests should always be run on a machine with multiple processors, this is because it is possible that there are race conditions that will not, or are unlikely to show up on a single processor/core machine.
Make sure you run the tests with Java 1.5.
Make sure you're using "mysql" as database (log output). This will allow to run all tests (functional, stress, clustering) tests consistently.
(parallelize if possible, the full run takes about 5 hours)
All JMS-related tests must pass.
Run integration tests
Instructions on how to run the integration testsuite are available here: JBossMessagingIntegrationUnitTests
All integration tests must pass.
Verify and update examples
Ensure ALL the examples run correctly - you will need to setup one non clustered and two clustered servers to do this.
Update the user guide
Make sure that all references to old version numbers are updated. grep for "1.0..." ("1.2" on trunk). Also grep for "CR", "Beta", etc.
Update the version whenever it occurs in the document.
Update the release date
Make sure the content stays relevant.
"Release Notes" will be added later.
Adjust JIRA tasks and release in JIRA.
The current release must have a green bar. Release it from: Administer Project -> Manage Versions -> Release.
Generate JIRA Release Notes
JIRA Navigation: Browse Project -> Release Notes -> Select version and Style (HTML).
JIRA generates release notes that can be accessible online at an URL like: http://jira.jboss.org/jira/secure/ReleaseNote.jspa?version=12310281&styleName=Html&projectId=12310061&Create=Create
Generate the HTML output, which will be later included in the release README.html.
Add JIRA release notes to ./docs/README.html
Build the binary release bundle
cd $JBOSS_MESSAGING_HOME ant clean rm -rf thirdparty java -version ant release-bundle
Unzip the release bundle, deploy the sar in a "clean" JBoss instance, start the "messaging" configuration and run the examples:
All examples must run
Make sure you run with Java5
cd examples/queue ant cd examples/topic ant cd examples/mdb ant cd examples/stateless ant cd examples/ejb3mdb ant cd examples/secure-socket ant also run the other example (there are more)
Also, load the README.html file and click on "Installation" relative links to make sure they work.
Note: For JBoss5 you will need to make some adjustments before running these examples, as the destinations will not exist
Check in the release notes (docs/README.html)
Use a CVS log that makes obvious that is the release README for this particular release. Example: "release notes for 1.0.0 alpha, PR3"
Tag the release
Tag the release. Use the value of messaging.version.cvstag from build-messaging.xml. Sample tag: JBossMessaging_1_0_0_Beta1
cd $JBOSS_MESSAGING_HOME svn copy --username joebloggs https://svn.jboss.org/repos/messaging/trunk/ \ https://svn.jboss.org/repos/messaging/tags/JBossMessaging_1_0_1_CR4 \ -m "Tagging 1.0.1.CR4"
Post tagging tasks
Update Branch Map
| O JBossMessaging_1_0_1_SP1 | r1582 (11/17/06) |
Load the README file in a browser and make sure the relative links to the docuentation work.
Create the source distribution
cd $JBOSS_MESSAGING_HOME ant clean ant source-bundle mv output/lib/jboss-messaging-1.3.0.GA-src.zip ./release
Make sure you can compile from the source bundle
Public Releases are considered the community releases intended for JBoss4.2. Releases intended for JBoss5 or EAP are not public. JBossMessaging is distributed inside EAP and JBoss5 hence there is no need for a separate download.
However you may consider to upload the documentation.
Update labs downloads
# you can checkout this from cms.lab svn co https://cms.labs.jboss.com/prod/forge/portal-content/default/members/jbossmessaging/ jbossmessaging cd jbossmessaging # case you are reusing your workspace make sure you update it svn update svn status
Add the new download in work/jboss-messaging-labs/jbossmessaging/downloads
If it's a GA or an SP, get rid of the preceding CRs
Update counters: work/jboss-messaging-labs/jbossmessaging/counter.xml
$ svn ci -m "added 1.0.1.CR4 download files"
Update labs documentation
cd work/jboss-messaging-labs/jbossmessaging/freezone/docs svn update svn status
Unzip the release binary zip into freezone/docs
cd work/jboss-messaging-labs/jbossmessaging/freezone/docs <unzip release binary> mkdir guide-1.0.1.CR4 cp -r <release_dir>/docs/userguide/* guide-1.0.1.CR4 mkdir javadoc/api-1.0.1.CR4 cp -r <release_dir>/api/* javadoc/api-1.0.1.CR4 rm -rf <release_dir>
If is a GA or SP, get rid of the preceding CRs.
Update freezone/docs/index.html accordingly
$ svn ci -m "added 1.0.1.CR4 documentation"
Check download, counter and documentation links
If it's an GA
In case updating the jboss.com landing page is needed:
Login as admin (use explorer) -> bottom right side menu -> Manage HTML -> products -> messaging (the bottom one) -> Edit
Add the release link to the wiki page -> Update HTML Page
Create the corresponding wiki page based on README.html, but also add the Download paragraph.
Create a new repository.jboss.com/jboss/messaging/1.X.X subdirectory
Create repository.jboss.com/jboss/messaging/1.X.X/component-info.xml (the best way to do it is to copy the previous version component-info.xml file)
Upload the latest jboss-messaging.jar in repository.jboss.com/jboss/messaging/1.X.X/lib
Modify repository.jboss.com/jboss/messaging/1.X.X/component-info.xml accordingly
Add config examples from the current release into /resource directory.
cvs add ... cvs ci -m "added 1.0.1.GA artifacts"
Remove the release directory.
rm -r $JBOSS_MESSAGING_HOME/release
Change the release date in JIRA
Adjust the new release date in JIRA
Based on the JIRA release notes, document differences from the last release and generate a "what's new" document in a human readable format. Generate a HTML document and post it in the blog are of the lab project. It will show up as "news"
If there were significant bugs that were discovered/fixed by external contributors, or if there were external contributions, mention their authors.
File name pattern: blog/2006.08.09_JBoss_Messaging_1_0_1_CR4_released.html. Use raw HTML and check with a browser at the end.
You should blog about the release on your own blog (aggregated by jboss.org), or on the JBoss Labs if you prefer (procedures bellow), but that is deprecated:
JBoss Labs News (this is how you blog).
Add the anouncement in a .html file (HTML format, but no need for <head> and <body>) in the local jbossmessaging SVN workarea (jbossmessaging/blog
svn add file-name
svn propedit title file-name
Title: "JBoss Messaging 1.0.1.GA Released"
Check in the change, it should be posted as news in several minutes.
Post the release anouncement on the forums
The text of the anouncement should be the same as the blog. The subject line should be similar to "JBoss Messaging 1.0.1.CR4 Released". However, use full links, otherwise they are lost when e-mailing. Here is a release anouncement example: http://www.jboss.org/index.html?module=bb&op=viewtopic&t=96679
DO NOT post the same message on the development forum, user forum should be sufficient.
Post a short anouncement on the news mailing list
news-and-anouncements http://www.jboss.com/index.html?module=bb&op=viewforum&f=62. Make sure you post it as Anouncement, not as a regular post!
Subject: JBoss Messaging 1.0.1.CR4 Released
The content should be identical to the forum announcement's.
Update the Release History with a humanly readable change notification
http://wiki.jboss.org/wiki/Wiki.jsp?page=JBossMessagingReleaseHistory. Add "Release Notes"
Verify that artifacts are in repository.jboss.com
Send a notification to PM