From Fri Jan 13 13:37:26 2012 Return-Path: X-Original-To: Delivered-To: Received: from ( []) by (Postfix) with SMTP id 2931B9749 for ; Fri, 13 Jan 2012 13:37:26 +0000 (UTC) Received: (qmail 89413 invoked by uid 500); 13 Jan 2012 13:37:25 -0000 Delivered-To: Received: (qmail 89356 invoked by uid 500); 13 Jan 2012 13:37:25 -0000 Mailing-List: contact; run by ezmlm Precedence: bulk List-Help: List-Unsubscribe: List-Post: List-Id: Reply-To: Delivered-To: mailing list Received: (qmail 89349 invoked by uid 99); 13 Jan 2012 13:37:25 -0000 Received: from (HELO ( by (qpsmtpd/0.29) with ESMTP; Fri, 13 Jan 2012 13:37:25 +0000 X-ASF-Spam-Status: No, hits=-1994.3 required=5.0 tests=ALL_TRUSTED,HTML_MESSAGE,MIME_HTML_ONLY X-Spam-Check-By: Received: from [] (HELO ( by (qpsmtpd/0.29) with ESMTP; Fri, 13 Jan 2012 13:37:21 +0000 Received: from thor (localhost []) by (8.13.8+Sun/8.13.8) with ESMTP id q0DDb0gB000874 for ; Fri, 13 Jan 2012 13:37:00 GMT Date: Fri, 13 Jan 2012 08:37:00 -0500 (EST) From: To: Message-ID: <31165156.39349.1326461820022.JavaMail.confluence@thor> Subject: [CONF] Apache Directory Development > Releasing Studio MIME-Version: 1.0 Content-Type: text/html; charset=UTF-8 Content-Transfer-Encoding: quoted-printable Auto-Submitted: auto-generated X-Virus-Checked: Checked by ClamAV on

Releasing Studio

Page edited by Pierre-Arnaud Marcelot

Changes (1)

=20 =20
=20 =20

Move the distribution pa= ckages to
<= /td>

{warning:title=3DO= utdated}{warning}

For these examples we'll presume a release o= n trunk of studio. For releases on the tags or branches change the svn chec= kout line to accomodate.

$ svn co https://svn.apach= studio
$ cd studio
$ mvn -Pr= elease -DdryRun=3Dtrue release:prepare # Dry-run first.
.= .. Make sure the change made by the release plugin is correct!
= $ mvn release:clean # Clean up the temporary files created by the dry-= run.
$ mvn -Prelease release:prepare # Copy to tags directory.
$= mvn -Prelease release:perform # Upload the released artifacts to the ma= ven repository.
... Make sure the jars/poms and their signatur= e files are properly deployed to the m2-ibiblio-sync
... repository on= before running the clean goal or else you cannot rollbac= k the
... release.
$ mvn release:clean # Clean up the = temporary files.

{warning:Answering Questions}
= During the prepare goal's execution you'll be asked a number of que= stions. Please pay close attention to each question instead of hitting ret= urn everytime. In particular there is a question about what you want to ca= ll the tag. If you do not specify the correct tag which should be the rele= ase number 1.3.0 in this case, maven will use parent-1.3.0 instead without = the *parent-* prefix. We don't want that so pay attention. Look here = if you have any questions regarding what release tags should be for the stu= dio subproject: s

These commands will build, tag, sign, and deploy s= tudio artifacts and their signature files to the repository. Check the foll= owing URLs during different stages of the process to see Maven at work:
|after release:prepare| vc/directory/studio/tags |
|during release:perform| http://people.apach= |
<= /td>

Full Content

Since we are using Nexus for releases the release process is as = follows (see also http://=

0. Verify You= r Maven Settings

Several things need to be correctly configured in your 'settings.xml= ' file located at '~/.m2/settings.xml'.

Here's a sample file:

    <!-- To publish a snapshot -->
      <username>[Your Apache ID]</username>
      <password>[Your Apache Password]</password>
    <!-- To stage a release -->
      <username>[Your Apache ID]</username>
      <password>[Your Apache Password]</password>
        <!-- To sign a release -->
        <gpg.keyname>[Your Code Signing Key ID]</gpg.keyname>
        <gpg.passphrase>[Your Code Signing Key Password]</gpg.pass=

1. Test the Project
$ mvn release:prepare -DdryRun=3Dtrue

Be aware that this phase will ask you about the release version of Studi= o modules.
We use a release number scheme that combines a version number and the date = of the release:

[Version using 'X.Y.Z' format].v[Date using 'YYYYMMDD' format]

An example of this release number scheme is '2.0.0.v20120111' (= notice the '.v' string between the version and the date).

2. Deploy a Snapshot<= /h3>
$ mvn deploy

This is useful to verify your settings in ~/.m2/settings.xml (Nexus pass= word and GPG key)

3. Prepare the Rele= ase

First, clean the previous test release attempt with:

$ mvn release:clean

Next, edit the root 'pom.xml' file to comment the 'reposito= ry' and 'application' profiles, as we don't want these module= s (and their sub-modules) to be released in the Maven repository.

Also, edit the 'pom.xml' file of the 'Apache Directory Stud= io Libraries Plugins' module and remove the code related to skipping t= he deployment of 3rd party plugins:

       <!-- Skip deployment of 3rd party plugins. This causes problems w=
            deploying snapshots because the 3rd party plugins don't have a=
            snapshot version. -->

Then, prepare the release with:

$ mvn release:prepare

This creates a tag here: http://svn.apache= .org/viewvc/directory/studio/tags/

4. Stage the Release<= /h3>
$ mvn release:perform

This deploys the release to a staging repository. Go to sitories and close the staging repository.

5. Deploy the Site

$ cd target/checkout
$ mvn site-deploy

This creates and deploys the site via ssh to

Edit the x.html file and add the deployed site to the list.

6. Ge= nerate the distribution packages

Move into the 'application' sub-module:

$ cd application

Edit the 'pom.xml' files of this sub-modules and all other (sub= -)sub-modules to fix the parent version which still refers to the old versi= on number (it was not modified during the release process because the '= application' profile was commented):

$ text-editor-command pom.xml */pom.xml

Run the following command to generate all the distribution packages:

$ mvn clean install -Prelease

Now, you have all the distribution packages available at '../target/= release':

$ ls -l ../target/release

7. Publis= h Distribution Packages

$ cd ../target/release
$ scp apache-ldap-api-<version>-*

8. Vote

Start a 72h vote at the dev mailing list.

9. Release

If the vote succeeds Studio project can be released.

Go to https://repository.apache.o= rg/index.html#stagingRepositories and release the staging repository so= all artifacts are published to Maven central.

Move the distribution packages to ist/directory/studio.