Releasing Petals ESB projects

Requirements

  1. Internet connection
  2. You have an access to the OW2's MRM (Nexus), and your account can publish artifacts of the repository 'stagging'.
  3. Your Maven's setting file is right, containing:
    • MRM declarations,
    • Credential of the OW2's MRM to publish artifacts into the repository 'stagging'
          <server>
            <id>ow2.release</id>
            <username>petals</username>
            <password>......</password>
          </server>
          <server>
            <id>ow2.snapshot</id>
            <username>petals</username>
            <password>......</password>
          </server>
      
    • The secret GPG key to sign artifacts
      cdeneux@cdeneux-laptop:~$ gpg --list-secret-keys
      /home/cdeneux/.gnupg/secring.gpg
      --------------------------------
      sec   2048R/09334662 2012-10-08
      uid                  Petals (ESB) <petals-dev@ow2.org>
      ssb   2048R/C8353498 2012-10-08
      
      If needed, import the secret key secret.key: gpg --import secret.key
    • The credential of the GPG key:
        <profile>
           <id>gpg-passphrase</id>
           <activation>
            <property>
              <name>performRelease</name>
              <value>true</value>
             </property>
           </activation>
           <properties>
             <gpg.passphrase>.............</gpg.passphrase>
           </properties>
         </profile>
      
      

Before release

Before to start the release process, disable the continuous integration to avoid failed build because of artifacts not promote from the repository 'stagging' to the repository 'public'.
In the Jenkins console script, execute the following script to disable all jobs:

import hudson.model.*

// For each project
for(item in Hudson.instance.items) {
  println("JOB : "+item.name)
  item.disabled=true
  item.save()
  println("\n=======\n")
}

Releasing Petals ESB

To release Petals ESB, you will release, if needed, in the following order:

  1. Petals dev tools,
  2. Easycommons tools,
  3. Petals ESB.

Releasing Petals dev tools

For each dev tools:

  1. prepare the release executing the command:
    > mvn release:prepare
    
  2. perform the release executing the command:
    > mvn release:perform
    

During the perform phase, Maven will ask you the PGP's pass-phrase.

Once dev tools are released, go to the OW2's MRM to promote the released artifacts into the repository containing released artifacts:

  1. Select the temporary repository containing artifacts just released,
  2. and "close" it,
  3. and "release" it.

Releasing EasyCommons artifacts

TO BE DEFINED

Releasing Petals ESB artifacts

For the Petals root parent POM:

  1. prepare the release executing the command:
    > mvn release:prepare -P prepare-release-profile
    
  2. perform the release executing the command:
    > mvn release:perform -P perform-release-profile
    

For all other Petals ESB project:

  1. prepare the release executing the command:
    > mvn release:prepare -Darguments="-P prepare-release-profile"
    
    Caution, for Debian package and ZIP distributions artifacts, you must enter something as ${petals-cli.version}-1.1-SNAPSHOT as the new development version.
    Preparing release from a branch as .../svnroot/branches-legacy/petals-esb-enterprise-4.2.x requires the definition of the right tag base adding the following argument to the previous command line: -DtagBase=https://svn.petalslink.org/svnroot/tags
    The profile prepare-release-profile is required to disable the check about SCM URL. During the release preparation, SCM URL are updated just before to tag the artifact and the SCM URL declared in the POM will not match the current SCM URL, so SCM enforcer rule must be disable.
  2. perform the release executing the command:
    > mvn release:perform -Darguments="-P perform-release-profile"
    
    The profile perform-release-profile is required to sign all deployed artifacts (required by OW2).

Once Petals ESB projects are released, go to the OW2's MRM to promote the released artifacts into the repository containing released artifacts:

  1. Select the temporary repository containing artifacts just released,
  2. and "close" it,
  3. and "release" it.

After the release

Acceptance & Integration tests

Update integration and acceptance tests against new SNAPSHOT versions.

Enable Jenkins's jobs

Now, the continuous integration can be re-enable. In the Jenkins console script, execute the following script to enable all jobs:

import hudson.model.*

// For each project
for(item in Hudson.instance.items) {
  println("JOB : "+item.name)
  item.disabled=false
  item.save()
  println("\n=======\n")
}

Changelog

In JIRA, release version of released projects. If needed, move unresolved issues to a next version or change its resolution state.

Release the documentation

If the released component has a documentation, release the documentation 'SNAPSHOT' renaming 'SNAPSHOT' by the right version, next copying the released documentation with a new name ending with 'SNAPSHOT'

Communication

If needed, an announcement will be done on the right channels: Twitter, News on the Petals web-site, ...

All tweets done with a personal account should be retweeted with the account 'petalslink' to be automatically listed on the home page of the Petals web site (see [consulting:Le Compte Twitter de Petals Link] for more information on account 'petalslink').

Enter labels to add to this page:
Please wait 
Looking for a label? Just start typing.