Making an OpenJPA Release
These instructions guide through the steps of making an official OpenJPA release.
Prerequisites
- You should have read the Apache Guide To Release Management During Incubation
- You must have shell access to people.apache.org
- You must have the following utilities installed on your local machine and available in your path:
Tasks that need to be performed for each release
In the examples below, it is assumed that the current committed version of OpenJPA is 0.9.6-incubating-SNAPSHOT, and the version of the official release will be 0.9.6-incubating
1 |
Make sure the #One time setup steps have been performed |
---|---|
2 |
Update the POMs to remove "-SNAPSHOT" from the version. If you have perl installed, you can easily do it with a single command: |
|
perl -pi -e 's;<version>0.9.6-incubating-SNAPSHOT</version>;<version>0.9.6-incubating</version>;g' pom.xml */pom.xml |
3 |
Commit the POM changes |
|
svn commit -m "Updated to version 0.9.6-incubating" |
4 |
Perform the build with documentation and install it in the local repository (this step is required because there is a bug in Maven's javadoc generation aggregated between multiple modules): |
|
mvn clean install -Pdocbook-profile,sign-release |
|
This operation will also sign the release files with the gpg utility using the <username>@apache.org key. If your code signing key is under a different address, specify it by appending the following argument to the command above: -Dopenjpa.release.keyAlias=mysigningalias@somedomain.org |
5 |
Verify the signatures: |
|
gpg --multifile --verify openjpa-project/target/assembly/*.asc |
6 |
Now actually build the javadocs and perform the deploy upload: |
|
mvn verify deploy -Pjavadoc-profile,sign-release |
7 |
Tag the view with the release number: |
|
svn copy -m "OpenJPA Release 0.9.6-incubating" https://svn.apache.org/repos/asf/incubator/openjpa/trunk https://svn.apache.org/repos/asf/incubator/openjpa/tags/0.9.6-incubating |
8 |
Update the pom.xml files to the subsequent version with the -SNAPSHOT suffix: |
|
perl -pi -e "s;<version>0.9.6-incubating</version>;<version>0.9.7-incubating-SNAPSHOT</version>;g" pom.xml */pom.xml |
9 |
Commit the POM changes |
|
svn commit -m "Updated to version 0.9.7-incubating-SNAPSHOT" |
One time setup
These setup steps only need to be performed on a particular machine once.
Developers using Linux workstations can skip over the references to PuTTY and Cygwin
Create and install a SSH key
1 |
Install PuTTY |
---|---|
2 |
Use PuttyGen to create a SSH key (see Putty help for details) |
3 |
Use PuTTY to ssh to people.apache.org |
4 |
Create a ~/.ssh folder |
5 |
|
6 |
ssh to p.a.o |
7 |
Create a |
8 |
Configure putty to use your private key and save the session |
Create a PGP key
1 |
Install cgywin, including utils/gpg |
---|---|
2 |
Generate a key with |
3 |
Backup your cygwin home directory to another media |
4 |
Add your key to {{ https://svn.apache.org/repos/asf/incubator/openjpa/site/docs/KEYS}} |
Update Maven settings for our servers
1 |
Create a settings.xml under .m2 (in your Document and Settings folder in Windows) |
---|---|
|
<settings xmlns="http://maven.apache.org/POM/4.0.0" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xsi:schemaLocation="http://maven.apache.org/POM/4.0.0 http://maven.apache.org/xsd/settings-1.0.0.xsd"> <servers> <server> <id>people.apache.org</id> <username>$USERNAME</username> <privateKey>$PATH_TO_PRIVATE_KEY</privateKey> <directoryPermissions>775</directoryPermissions> <filePermissions>644</filePermissions> </server> </servers> </settings> |
Expose a copy of known hosts to Maven
1 |
From cygwin, ssh to people.apache.org, save the public key if prompted, and exit |
---|---|
|
cygwin will save the known hosts to your |
2 |
From cygwin (not Windows) create another |
3 |
Copy the |
Resources
- Apache Guide To Release Management During Incubation
- Signing Releases
- Wendy's notes on Release Signing
- Apache Mirroring Guidelines
- Struts Release Instructions (upon which these instructions are based)