Prerequisite

1. Use Genesis 2.0 as a parent pom

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

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

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

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:

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:

    <plugin>
        <groupId>org.apache.maven.plugins</groupId>
        <artifactId>maven-deploy-plugin</artifactId>
        <configuration>
            <skip>true</skip>
        </configuration>
    </plugin>

3. Other changes

Release memo

1. NOTICE.txt files

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

3. After release, update versions to 2.1.6-SNAPSHOT

4. Update geronimo-plugins.xml

5. Vote and Announce