Skip to content
chamerling edited this page Feb 1, 2013 · 5 revisions

Rules

  • Maven-based project can deployed on the OW2 Maven repositories (snapshots and release).

  • Every member of the project on the OW2 forge (http://forge.ow2.org) have rights to push artifacts (Check the developers page for instructions).

  • Artifacts groupIds MUST be org.ow2.play to be pushed to the repositories.

  • Each artifact descriptor (pom.xml) MUST have a SCM section to bypass release process issues.

  • Each artifact of a git repository MUST have the same git URLs. If not, the release process will fail.

Release process

Issues

  • Create an issue for each repository which will be released. The issue name must follow the pattern groupId:artifactId:version.
  • Assign the issue to the developer in charge of the release
  • When the release is achieved, close the issue and set the released label.

All released repositories are then available at https://github.com/play-project/play/issues?labels=released&sort=created&state=closed

Using Maven...

We use the maven-release-plugin to create releases. There are several steps to follow to successfully release artifacts to the OW2 infrastructure as described in the following sections.

Settings

Using Maven and OW2 repository needs some settings before the first release.

Passwords!

The release process needs to push data to the OW2 repositories. Update your Maven settings.xml file by setting your OW2 credentials for the ow2.release and ow2.snapshot servers:

<server>
  <id>ow2.release</id>
  <username>foo</username>
  <password>bar</password>            
</server>    
<server>
  <id>ow2.snapshot</id>
  <username>foo</username>
  <password>bar</password>            
</server>
Signing release

In order to push release to the OW2 repository (and next to the Central), the release manager must define a specific profile (in his settings.xml file) which will be activated by the release process.

<!-- Activate this profile when releasing on OW2 -->
<!-- http://ow2.org/view/IT_Infrastructure/NexusMigrationGuide -->
<profile>
  <id>ow2-release</id>
  <properties>
    <gpg.passphrase>thephraseforow2deployment</gpg.passphrase>
  </properties>
</profile>
<!-- Release plugin workaround cf http://jira.codehaus.org/browse/MNG-3328 -->
<profile>
  <id>empty</id>
  <activation>
    <!-- Activate this profile if no other profile is active -->
    <activeByDefault>true</activeByDefault>
  </activation>
</profile>

Prepare the release

mvn release:prepare -DautoVersionSubmodules=true -Dtag=1.0.0 -DreleaseVersion=1.0.0 -DdevelopmentVersion=1.1-SNAPSHOT -Darguments=-Dgpg.passphrase=thephraseforow2deployment -P release,ow2-release

Perform the release

mvn release:perform -Darguments=-Dgpg.passphrase=thephraseforow2deployment -P release,ow2-release

Check your artifacts

Artifacts deployed by the perform step are pushed to a staging repository on OW2. Once artifacts are validated, the release manager will have to close and release the staging repository.

Announce!

  • Please announce releases on the project mailing lists!
  • An entry must be added to the news section at http://forge.ow2.org/news/?group_id=424. It will be automatically included in various news channels (OW2.org and newsletter).
  • Up to the release manager to disseminate on other channels (twitter, hackernews, fresh meat, Mailing lists...).