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 |
4 |
Tag the release by making a SVN copy of the head or designated revision |
|
svn copy -r ###### https://svn.apache.org/repos/asf/struts/struts2/trunk https://svn.apache.org/repos/asf/struts/struts2/tags/STRUTS_#_#_# -m "Tag r###### as Struts #.#.#" |
5 |
Assemble the release |
|
mvn clean install site -P xwork,plugins,apps,all,pre-assembly cd assembly mvn assembly:assembly |
6 |
Sign the release artifacts (in |
|
gpg --armor --output struts-#.#.#-all.zip.asc --detach-sig struts-#.#.#-all.zip openssl md5 < struts-#.#.#-all.zip > struts-#.#.#-all.zip.mdr |
7 |
|
8 |
Deploy the artifacts to our Maven repository |
|
mvn deploy -P apps,plugins,pre-assembly |
|
Prune any obsolete snapshots from |
9 |
Update the POMs to next version number and add the "-SNAPSHOT" suffix. For example: |
|
perl -pi -e 's;<version>0.9.6-incubating</version>;<version>0.9.7-incubating-SNAPSHOT</version>;g' pom.xml */pom.xml |
10 |
Commit the POM changes |
11 |
Deploy the new snapshot |
|
mvn -N install |
12 |
Add the next version to our issue tracker for scheduling new features and fixes |
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)