Skip to end of metadata
Go to start of metadata

You are viewing an old version of this page. View the current version.

Compare with Current View Page History

« Previous Version 16 Next »

(warning) Note that the following instruction are still in development

The following are details related to OPS4J release process and is to be used by those OPS4J members that are able to release OPS4J artifacts, such as Alin Dreghiciu, Niclas Hedhman, Stuart McCulloch, Toni Menzel.

The instructions bellow are assuming that your project pom has as parent the pax "master" pom.

Before releasing

Before starting the release process ensure that:

  • there are no snapshot dependencies in the project to be released
  • ...

Prepare the release

From a command line run the following:

mvn -Prelease,<reposProfile> -Darguments="-Prelease,<reposProfile>" release:prepare

where reposProfile should be replaced with one of the profiles described bellow.

Performing the release

From a command line run the following:

mvn -Prelease,<reposProfile> -Darguments="-Prelease,<reposProfile>" release:perform

where reposProfile should be replaced with one of the profiles described bellow.

Jira

In the admin section of the released project us the "Release" button to mark the version as released and create the next version. Then close all issues related to just released version using a comment as "Released under x.y".

Change log

Create a change log in Confluence (wiki).
Here is an example from Pax Runner.

Release announcement

Create a news item announcing the release. The announcement should eventually include the release highlights and a link to change log created in the step above.
Here is an example from Pax Runner.

Appendix A: Repositories

While releasing use one of the following profiles based on your needs:

  • repos.ops4j
    This will use OPS4J maven repositories. Use this profile when the version of artifacts you are releasing is < 1.0.
  • repos.sonatype
    This will use Sonatype OSS maven repositories: Use this profile when the version of artifacts you are releasing is >= 1.0 and you do not want/need to use staging.
  • repos.sonatype.staging
    This will use Sonatype OSS maven repositories: Use this profile when the version of artifacts you are releasing is >= 1.0 and you want/need to use staging.

(warning) To deploy to this repositories you must have the necessary credentials and rights.

Appendix B: Authentication

While deploying the artifacts to the specified repositories Maven will use credentials specified in ~/.m2/settings.xml.

Sonatype Nexus authentication

To deploy to Sonatype repositories you will need an account for which you will get an name/password pair. Then edit settings.xml and add the following:

<settings>
  <servers>
    <server>
      <id>sonatype.releases.deploy</id>
      <username> <!-- your user --> </username>
      <password> <!-- your password --> </password>
    </server>
    <server>
      <id>sonatype.staging.releases.deploy</id>
      <username> <!-- your user --> </username>
      <password> <!-- your password --> </password>
    </server>
  </servers>
</settings>

Appendix C: Signing key

We are using GnuPG for signing the artifacts via Maven gpg plugin.

Generate the private/public key pair

On *nix run the code bellow and follow the instructions:

gpg --gen-key

We suggest that:

  • when gpg asks for e-mail linked to the key you should use the e-mail that you use on the mailing lists
  • when gpg asks for comment linked to the key you should use "CODE SIGNING KEY"

Upload the key

Add the key to http://www.ops4j.org/keys by typing the following commands, replacing the word e-mail with your email used while generating the key pair.

(gpg --list-sigs e-mail && gpg --export --armor e-mail) > toadd.key
scp toadd.key www.ops4j.org:
ssh www.ops4j.org "cat toadd.key >> /var/http/www.ops4j.org/keys"

Specify your gpg passphrase

While releasing you will be asked for gpg pass phrase. To avoid entering the pass phrase you can add it to your ~/.m2/settings.xml as follow

<settings>
  ...
  <profiles>
    <profile>
      <id>release</id>
      <properties>
        <gpg.passphrase> <!-- your key passphrase --> </gpg.passphrase>
      </properties>
    </profile>
  </profiles>
  ...
</settings>

Note that you can also provide the pass phrase via command line:

mvn ... -Dgpg.passphrase=<!-- your key passphrase -->
  • No labels