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

Compare with Current View Page History

« Previous Version 12 Next »

How to perform an Apache release.

Settings

First, configure your ~/.m2/settings.xml file to include your credentials.

<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 (encrypted) --> </password>
    </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 (encrypted) --> </password>
    </server>
   ...
  </servers>
</settings>

To encrypt your password, use Maven's password encryption capabilities.

Step-by-step guide

To run on the clean master branch. Create a branch for the release candidate. Set it to track a release branch on the apache remote.

git co -b releases/X.Y.Z-incubating-RC0
git push -u apache

Test your settings:

mvn clean install -Papache-release -Pall -DcreateChecksum=true -DskipTests -Dmaven.javadoc.skip=true -Dgpg.passphrase=********

This will create the release artifacts, sign them, and put them in ~/.m2/repository/org/apache/samoa. Check that everything is alright before proceeding to the next step.

Perform the release:

mvn release:prepare -Papache-release -Pall -DautoVersionSubmodules=true -DdevelopmentVersion=X.Y.Z-incubating-SNAPSHOT -Darguments="-DcreateChecksum=true  -DskipTests -Dmaven.javadoc.skip=true -Dgpg.passphrase=********" 
mvn release:perform -Papache-release -Pall -Darguments="-DcreateChecksum=true -DskipTests -Dmaven.javadoc.skip=true -Dgpg.passphrase=********"

Go to https://repository.apache.org to close the staging repository.

Publish artifacts on svn:

svn co https://dist.apache.org/repos/dist/dev/incubator/samoa samoa-apache-dist
cd samoa-apache-dist
cp -r ~/.m2/repository/org/apache/samoa/samoa/X.Y.Z-incubating .
mv X.Y.Z-incubating X.Y.Z-incubating-rcW
svn add X.Y.Z-incubating-rcW

A X.Y.Z-incubating-rcW
A (bin) X.Y.Z-incubating-rcW/samoa-X.Y.Z-incubating-source-release.zip
A X.Y.Z-incubating-rcW/samoa-X.Y.Z-incubating.pom.md5
A X.Y.Z-incubating-rcW/samoa-X.Y.Z-incubating.pom.asc
A X.Y.Z-incubating-rcW/samoa-X.Y.Z-incubating-source-release.zip.md5
A X.Y.Z-incubating-rcW/samoa-X.Y.Z-incubating-source-release.zip.asc
A X.Y.Z-incubating-rcW/samoa-X.Y.Z-incubating.pom.sha1
A X.Y.Z-incubating-rcW/samoa-X.Y.Z-incubating-source-release.zip.sha1
A X.Y.Z-incubating-rcW/samoa-X.Y.Z-incubating.pom

svn commit

Check that only the sources, pom, checksums (md5, sha1), and signatures (asc) are added.

Log the commit with the release number "X.Y.Z-incubating-RCW" (substitute X.Y.Z and W for valid version and RC numbers).

Vote:

First, start a vote on the dev@ mailing list.

Once the vote has passed, forward the results of the vote to the general@incubator mailing list.

Once this second vote has also passed, you can promote the RC to a release.

Upload the artifacts to https://dist.apache.org/repos/dist/release/incubator/ via svn (note the difference: the release goes under the /release branch, the RC artifacts under the /dev branch).

Optionally deploy commodity binary packages via https://repository.apache.org

 

References

http://www.apache.org/dev/publishing-maven-artifacts.html

http://www.apache.org/dev/release-signing.html

http://incubator.apache.org/guides/release.html

http://vincent.demeester.fr/posts/2012-07-23-maven-release-gitflow/

https://github.com/apache/incubator-tinkerpop/blob/master/README.asciidoc

  • No labels