...
- Download and install the Gnu Privacy Guard (GPG) from http://www.gnupg.org. Read the documentation on that site and create a key. Have the key signed and verified by others. Submit your public key to http://pgp.mit.edu/. This is a one time process.
- Be sure that you have your
~/.m2/settings.xml
updated as specified above in Releasing A Geronimo Project - Copy (or move as per situation, for eg specs) the trunk/branch to the new branch using the following command.
No Format svn mv SRC-URL DEST-URL -m "Reason for this commit".
- Checkout or update this branches tree on your machine.
- Update the <scm> urls in the
pom.xml
to point to the final url in tags. Eg:Code Block <scm> <connection>scm:svn:http://svn.apache.org/repos/asf/geronimo/specs/tags/geronimo-servlet_2.5_spec-1.1</connection> <developerConnection>scm:svn:https://svn.apache.org/repos/asf/geronimo/repos/asf/geronimo/specs/tags/geronimo-servlet_2.5_spec-1.1</developerConnection> <url>http://svn.apache.org/viewvc/geronimo/repos/asf/geronimo/specs/tags/geronimo-servlet_2.5_spec-1.1</url> </scm>
- Add the following release profile to the root pom.xml (Note: This is a subset of the profile included in the maven release process above). This will utilize the maven gpg plugin to sign the artifacts produced and the maven deploy plugin to stage the release to your people.apache staging location but will not utilize the maven release plugin to create the tag, rename versions, etc...
Code Block <profile> <id>release</id> <build> <plugins> <!-- We want to sign the artifact, the POM, and all attached artifacts --> <plugin> <groupId>org.apache.maven.plugins</groupId> <artifactId>maven-gpg-plugin</artifactId> <inherited>true</inherited> <configuration> <passphrase>${gpg.passphrase}</passphrase> </configuration> <executions> <execution> <goals> <goal>sign</goal> </goals> </execution> </executions> </plugin> <!-- We want to deploy the artifact to a staging location for perusal --> <plugin> <groupId>org.apache.maven.plugins</groupId> <artifactId>maven-deploy-plugin</artifactId> <inherited>true</inherited> <configuration> <altDeploymentRepository>${deploy.altRepository}</altDeploymentRepository> <updateReleaseInfo>true</updateReleaseInfo> </configuration> </plugin> </plugins> </build> </profile>
- Build the new branches tree as you normally would to ensure that it is correct.
- Stage the release for a vote.
When you are ready to create a release candidate, build the new branches tree that will soon be released using the following command.No Format mvn -Prelease,default deploy
- Export and tar/zip the source to be voted on for the release using the following commands:
No Format svn export https://svn.apache.org/repos/asf/geronimo/server/branches/2.1.1 geronimo-2.1.1-src tar -zcvf geronimo-2.1.1-src.tar.gz geronimo-2.1.1-src
- Copy the tar ball to a publicly accessible location. Put it for a vote along with the staging release you created earlier. In the vote notice, please include the precise names and versions being voted on (e.g. geronimo-javamail_1.4_spec-1.1) and the svn urls to the current source and where the tag will be created.
- Copy from the staging repo to the production repo.
Once the release is deemed fit for public consumption it can be transfered to a production repository where it will be available to all users. Note: Current version of the stage plugin is 1.0-alpha-1.
Here is an example on how to use the stage plugin:No Format mvn stage:copy -Dsource="http://people.apache.org/<your apache id>/staging-repo/<siteId>" \ -Dtarget="scp://people.apache.org/www/people.apache.org/repo/m2-ibiblio-rsync-repository" \ -Dversion=2.3 \ -DtargetRepositoryId=apache.releases
Note The version parameter is currently ignored but specify the correct version anyway. The entire staging repository is synced, not just the given version or the current project.
Info Ensure that the files you copy to the rsync directory have
0775
dir permission and a0664
file permission set on them. - Move the branches to tags using the following command.
No Format svn mv SRC-URL DEST-URL -m "Reason for this commit".
...