Versions Compared

Key

  • This line was added.
  • This line was removed.
  • Formatting was changed.

Geronimo 3.0.x Release Process

Reference  http://www.apache.org/dev/publishing-maven-artifacts.html

...

2. mvn

...

verify

...

  • Updates all pom.xml files to search "SNAPSHOT" to ensure there is no snapshot dependencies
  • Updates plugin-list url in $SRC\framework\configs\plugin\pom.xml
  • Updates ##VERSION## in README.txt and RELEASE_NOTES.txt in source code root folder and $SRC\framework\configs\karaf-framework
  • Updates JIRAs in RELEASE_NOTES.txt (bugs, improvement, new features, known issues, and limitations)
  • Updates the copyright year number in NOTICE files
  • Updates some un-released modules' versions to 3.0.1. Refer to this ant scripts to update the versions in batch.

    Code Block
    xml
    xml
    
    <target name="manualupdate-versions">
        <echo>Updating un-released modules' versions manually</echo>
        <replace dir="${user.dir}" token="version>3.0.1-SNAPSHOT" value="version>3.0.1" summary="yes">
            <include name="assemblies/geronimo-jetty8-javaee6/pom.xml" />
            <include name="assemblies/geronimo-jetty8-javaee6-web/pom.xml" />
            <include name="assemblies/geronimo-jetty8-minimal/pom.xml" />
            <include name="framework/modules/geronimo-config-groovy-transformer/pom.xml" />
            <include name="plugingroups/clustering-jetty/pom.xml" />
            <include name="plugingroups/clustering-tomcat/pom.xml" />
            <include name="plugingroups/webservices-cxf/pom.xml" />
            <include name="plugins/activemq/activemq-jetty-server/pom.xml" />
            <include name="plugins/activemq/activemq-webconsole/pom.xml" />
            <include name="plugins/activemq/activemq-webconsole-jetty/pom.xml" />
            <include name="plugins/activemq/activemq-webconsole-tomcat/pom.xml" />
            <include name="plugins/axis/axis-jetty-server/pom.xml" />
            <include name="plugins/ca-helper/pom.xml" />
            <include name="plugins/ca-helper/ca-helper-jetty/pom.xml" />
            <include name="plugins/ca-helper/ca-helper-tomcat/pom.xml" />
            <include name="plugins/ca-helper/geronimo-ca-helper/pom.xml" />
            <include name="plugins/clustering/clustering-it/pom.xml" />
            <include name="plugins/clustering/clustering-it/clustering-test/pom.xml" />
            <include name="plugins/clustering/clustering-it/customer-jetty/pom.xml" />
            <include name="plugins/clustering/clustering-it/plugin-farm-it/pom.xml" />
            <include name="plugins/clustering/clustering-it/sample-datasource/pom.xml" />
            <include name="plugins/connector-1_6/geronimo-connector-server/pom.xml" />
            <include name="plugins/console/console-jetty-server/pom.xml" />
            <include name="plugins/console/console-tomcat-server/pom.xml" />
            <include name="plugins/corba/corba-server/pom.xml" />
            <include name="plugins/cxf/cxf-jaxws-tools/pom.xml" />
            <include name="plugins/cxf/cxf-tools/pom.xml" />
            <include name="plugins/cxf/geronimo-cxf-tools/pom.xml" />
            <include name="plugins/jetty8/jetty-server/pom.xml" />
            <include name="plugins/monitoring/mconsole-jetty-server/pom.xml" />
            <include name="plugins/monitoring/mconsole-jetty-server/mconsole-itest-simple/pom.xml" />
            <include name="plugins/openejb/geronimo-openejb-server/pom.xml" />
            <include name="plugins/uddi/uddi-jetty-server/pom.xml" />
            <include name="plugins/wab/web-jetty-server/pom.xml" />
            <include name="plugins/wab/web-tomcat-server/pom.xml" />
            <include name="plugins/welcome/welcome-jetty-server/pom.xml" />
            <include name="plugins/welcome/welcome-tomcat-server/pom.xml" />
            <include name="plugins/wink/wink-tomcat-server/pom.xml" />
        </replace>
    </target>
    
  • Commit them

...

  • Vote in mailing list, meanwhile wait TCK results. Sample release vote email as following:
Code Block
borderStylesolid
title[VOTE] Release Geronimo 3.0.0
borderStylesolid

Hi Devs,

With correction of legal files, here we have a new release candidate for vote. Please help vote at your earliest convenient time.

The server code up for vote is:
https://repository.apache.org/content/repositories/orgapachegeronimo-013/org/apache/geronimo/geronimo/3.0.0/geronimo-3.0.0-source-release.tar.gz
https://repository.apache.org/content/repositories/orgapachegeronimo-013/org/apache/geronimo/geronimo/3.0.0/geronimo-3.0.0-source-release.zip

The binary code up for vote is:
Java EE 6 Full Profile Tomcat Assemblies:
https://repository.apache.org/content/repositories/orgapachegeronimo-013/org/apache/geronimo/assemblies/geronimo-tomcat7-javaee6/3.0.0/geronimo-tomcat7-javaee6-3.0.0-bin.tar.gz
https://repository.apache.org/content/repositories/orgapachegeronimo-013/org/apache/geronimo/assemblies/geronimo-tomcat7-javaee6/3.0.0/geronimo-tomcat7-javaee6-3.0.0-bin.zip

Java EE 6 Web Profile Tomcat Assemblies:
https://repository.apache.org/content/repositories/orgapachegeronimo-013/org/apache/geronimo/assemblies/geronimo-tomcat7-javaee6-web/3.0.0/geronimo-tomcat7-javaee6-web-3.0.0-bin.tar.gz
https://repository.apache.org/content/repositories/orgapachegeronimo-013/org/apache/geronimo/assemblies/geronimo-tomcat7-javaee6-web/3.0.0/geronimo-tomcat7-javaee6-web-3.0.0-bin.zip

Little-G Tomcat Assemblies:
https://repository.apache.org/content/repositories/orgapachegeronimo-013/org/apache/geronimo/assemblies/geronimo-tomcat7-minimal/3.0.0/geronimo-tomcat7-minimal-3.0.0-bin.tar.gz
https://repository.apache.org/content/repositories/orgapachegeronimo-013/org/apache/geronimo/assemblies/geronimo-tomcat7-minimal/3.0.0/geronimo-tomcat7-minimal-3.0.0-bin.zip

Staging repo is:
https://repository.apache.org/content/repositories/orgapachegeronimo-013

The tag has created at:
http://svn.apache.org/repos/asf/geronimo/server/tags/geronimo-3.0.0

Java EE 6 TCKs all passed!

Vote will be at least open for 72 hours.
[ ] +1  approve
[ ] +0  no opinion
[ ] -1  disapprove (and reason why)

...

1. Use Genesis 2.0 as a parent pom

Code Block
xml
xml

<parent>
  <groupId>org.apache.geronimo.genesis</groupId>
  <artifactId>genesis-java5-flava</artifactId>
  <version>2.0</version>
</parent>

...

Code Block
xml
xml

<settings>
...
  <servers>
    <!-- To publish a snapshot of some part of Maven -->
    <server>
      <id>apache.snapshots.https</id>
      <username> <!-- YOUR APACHE LDAP USERNAME --> </username>
      <password> <!-- YOUR APACHE LDAP PASSWORD --> </password>
    </server>
    <!-- To publish a website of some part of Maven -->
    <server>
      <id>apache.website</id>
      <username> <!-- YOUR APACHE LDAP USERNAME --> </username>
      <filePermissions>664</filePermissions>
      <directoryPermissions>775</directoryPermissions>
    </server>
    <!-- To stage a release of some part of Maven -->
    <server>
      <id>apache.releases.https</id>
      <username> <!-- YOUR APACHE LDAP USERNAME --> </username>
      <password> <!-- YOUR APACHE LDAP PASSWORD --> </password>
    </server>
    <!-- To stage a website of some part of Maven -->
    <server>
      <id>stagingSite</id> <!-- must match hard-coded repository identifier in site:stage-deploy -->
      <username> <!-- YOUR APACHE LDAP USERNAME --> </username>
      <filePermissions>664</filePermissions>
      <directoryPermissions>775</directoryPermissions>
    </server>
    ...
  </servers>
</settings>

...

  • Download gnupg2
  • Generate your PGP Key (refer: http://www.apache.org/dev/openpgp.html) so that maven-release-plugin can sign your built artifacts when do release:perform
    • How To Avoid SHA-1
    • How To Generate a Strong Key
  • Update Maven's settings.xml with following:

    Code Block
    xml
    xml
    
    <settings>
      ...
      <profiles>
        <profile>
          <id>apache-release</id>
          <properties>
            <gpg.passphrase> <!-- YOUR KEY PASSPHRASE --> </gpg.passphrase>
          </properties>
        </profile>
      </profiles>
      ...
    </settings>
    
  • Meanwhile, append your public key to https://svn.apache.org/repos/asf/geronimo/KEYS and https://dist.apache.org/repos/dist/release/geronimo/KEYS so that user can verify the artifacts you released.
    • gpg --gen-key
      • RSA and RSA (default), 4096
    • gpg --list-sigs "xxxxxx" && gpg --armor --export "xxxxxx" > xxxxxx.key
      • "cat" your public key to above KEYS file

...