HomeDocumentation > Geronimo Release Process > Geronimo 2.1.5 Release Tips

Prerequisite

1. Use Genesis 2.0 as a parent pom

  • genesis-java5-flava-2.0.pom
    • genesis-default-flava-2.0.pom
      • genesis-2.0.pom
        • apache-6.pom

2. Use Maven 2.2.1 (not try if 2.0.10 or 2.0.11 can run)

3. Setup PGP Keys (for the ones who be the release manager the first time

Special changes for releasing the server 2.1.5

1. Add "all-subprojects" profile(Similar with what David Jencks did for 2.2)

By default, maven-release-plugin will use the default profile to search all the pom.xml files and auto-update the version numbers. But integration tests are often run from non-pom packaging projects, so We also need include them during the release plugin running. Hence we create a new "all-subprojects" profile:

  • /pom.xml
    This profile is just the same as default profile.
  • /framework/configs/pom.xml
    The config modules are all included by default, but the 4 integration test are not. So if we want this 4 projects' pom can be updated by maven-release-profile, we need explicitly point out.
    btw, I refactored the names of above 4 itest to make them the same with 2.2, i.e.
    • j2ee-system -> j2ee-system-it1
    • j2ee-system-2 -> j2ee-system-it2
    • metadatageneration -> metadatageneration-it3
    • metadatageneration-2 -> metadatageneration-it4
  • /plugins/pom.xml (and some others do not need to add "all-subprojects" profile)
    Not all the pom.xml must have an "all-subprojects" in file. If there is no special projects as above, you can just leave the pom as is (take /plugins/pom.xml as example).
  • /testsuite/pom.xml and its childern
    A lot of efforts ware put on testsuite. When run with "all-subprojects" profile to do a release, we don't need really run and pass the tests. Remember the goal of this profile is just to find all the sub-projects' pom files so that release-plugin can auto update their versions.
  • prepare the release
    In above command -Dtest=false seems not take effect?? So, currently I add following in root pom's all-subprojects profile.
    and use the following command:
    • Check if all pom.xml files have a pom.xml.tag generated
      Compare the quantity of the 2 files
    • and if the versions in pom.xml.tag are updated correctly,
      The only things that should be different between these files are the <version> and <scm> elements.
    • and if there is no "SNAPSHOT" in pom.xml.tag files.
      Just find in files..

2. Don't deploy the test artifacts to maven repo

Because there are a lot of sub-projects that not need to be released, such as integration tests and testsuites, we need filter them out when do maven deploy:

  • /framework/configs/geronimo-gbean-deployer/src/it/j2ee-system-it1/pom.xml
  • /framework/configs/geronimo-gbean-deployer/src/it/j2ee-system-it2/pom.xml
  • /framework/configs/geronimo-gbean-deployer/src/it/metadatageneration-it3/pom.xml
  • /framework/configs/geronimo-gbean-deployer/src/it/metadatageneration-it4/pom.xml
  • /testsuite/pom.xml

3. Other changes

  • Remove tools-maven-plugin and use the ianal-maven-plugin(defined in genesis-default-flava-2.0.pom) to verify-legal-files
    • and also add following in testsuite/pom.xml
  • Remove a bunch of maven plugins definition in server root pom
  • Update xmlbeans-maven-plugin to 2.3.3 and remove all the following hacked codes:

Release memo

1. NOTICE.txt files

  • Check the "Year" of copyright in all NOTICE.txt file.
  • Check the "Year" of copyright in plugins\welcome\geronimo-welcome\src\main\webapp\index.jsp

2. Before release, need manually update versions from 2.1.5-SNAPSHOT to 2.1.5

  • Update the VERSION in README.txt / RELEASE_NOTES-2.1.5-SNAPSHOT.txt, and rename to RELEASE_NOTES-2.1.5.txt
  • Update <version> properties in root pom.xml ?? (need update to <version>${version}</version>)
  • Update versions in "assemblies\geronimo-boilerplate-minimal\src\main\underlay\etcgsh-classworlds.conf"
  • Others
    • plugins\remote-deploy\geronimo-remote-deploy\src\main\webapp\WEB-INF\geronimo-web.xml
    • plugins\welcome\geronimo-welcome\src\main\webapp\WEB-INF\geronimo-web.xm
    • framework\modules\geronimo-plugin\src\test\resources\geronimo-plugins.xml
    • framework\configs\plugin\pom.xml   - DownloadedPluginRepos
    • framework\configs\geronimo-gbean-deployer\src\it\j2ee-system-it1\src\test\resources\META-INF\geronimo-plugin.xml
      framework\configs\geronimo-gbean-deployer\src\it\j2ee-system-it1\src\test\resources\META-INF\plan.xml
      framework\configs\geronimo-gbean-deployer\src\it\metadatageneration-it3\src\test\resources\META-INF\geronimo-plugin.xml
    • testsuite/webservices-testsuite/jaxrpc-tests/jaxrpc-war/src/main/webapp/WEB-INF/geronimo-web.xml  - jaxrpc-war
  • Not Applicable after 2.1.5:
    framework\modules\geronimo-upgrade\src\test\resources\gbean_1.xml
    framework\modules\geronimo-upgrade\src\test\resources\gbean_1_result.xml
    framework\configs\geronimo-gbean-deployer\src\it\j2ee-system-it2\src\test\resources\META-INF\geronimo-plugin.xml
    framework\configs\geronimo-gbean-deployer\src\it\j2ee-system-it2\src\test\resources\META-INF\plan.xml
    framework\configs\geronimo-gbean-deployer\src\it\metadatageneration-it4\src\test\resources\META-INF\geronimo-plugin.xml

3. After release, update versions to 2.1.6-SNAPSHOT

  • Update artifact-alias, add version 2.1.5 in artifact-alias after 2.1.5 release
    • /framework/configs/pom.xml
    • /plugins/client/pom.xml
    • /plugins/corba/client-corba-yoko/pom.xml
    • /plugins/pom.xml
  • Revert versions definition in README.txt / RELEASE_NOTES-2.1.5.txt,  rename to RELEASE_NOTES-2.1.6-SNAPSHOT.txt,
  • Update <version> properties from ${version} to 2.1.6-SNAPSHOT in root pom.xml so that can be built in mvn 2.0.10
  • Update versions in "assemblies\geronimo-boilerplate-minimal\src\main\underlay\etcgsh-classworlds.conf"
  • Others, same as in #2

4. Update geronimo-plugins.xml

5. Vote and Announce

  • 1. Vote in mailing list, meanwhile wait TCK results
  • 2. Promote stagine repo
  • 3. Announce in mailing list
  • 4. Post news in homepage