Developers using Linux workstations can skip over the references to PuTTY and Cygwin
Each time
(There are also one-time setup instructions)
1 |
Update the POMs to remove "-SNAPSHOT" from the version |
---|---|
2 |
Commit the POM changes |
3 |
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 #.#.#" |
4 |
Assemble the release (see notes) |
|
mvn clean install site -P all,pre-assembly cd assembly mvn clean assembly:assembly
|
5 |
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 |
|
Under CygWin, use the |
6 |
|
7 |
Deploy the artifacts to the staging repository |
|
Make sure the staging repository at {{ http://people.apache.org/builds/struts/m2-staging-repository![]() }} is empty, then: mvn deploy -P apps,plugins,pre-assembly |
8 |
Update the POMs to next version number and add the "-SNAPSHOT" suffix |
9 |
Commit the POM changes |
10 |
Deploy the new snapshot |
|
mvn -N install |
11 |
Add the next version to our issue tracker for scheduling new features and fixes |
12 |
If the distribution is being mirrored, copy the ZIPs to |
One time
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 |
Update Maven settings for our servers
1 |
Create a settings.xml under .m2 (in your Document and Settings folder) |
---|---|
|
<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"> <!-- Uncomment this when the 'central' repo on ibiblio is down See: http://maven.apache.org/guides/mini/guide-mirror-settings.html --> <!-- mirrors> <mirror> <id>ggi-project.org</id> <url>http://ftp.ggi-project.org/pub/packages/maven2</url> <mirrorOf>central</mirrorOf> </mirror> </mirrors --> <servers> <server> <id>apache.snapshots</id> <username>$USERNAME</username> <privateKey>$PATH_TO_PRIVATE_KEY</privateKey> <directoryPermissions>775</directoryPermissions> <filePermissions>644</filePermissions> </server> <server> <id>apache.releases</id> <username>$USERNAME</username> <privateKey>$PATH_TO_PRIVATE_KEY</privateKey> <directoryPermissions>775</directoryPermissions> <filePermissions>644</filePermissions> </server> </servers> <profiles> <profile> <id>struts-staging</id> <repositories> <repository> <id>struts-staging</id> <url>http://people.apache.org/builds/struts/m2-staging-repository</url> <snapshots><enabled>false</enabled></snapshots> <releases><enabled>true</enabled></releases> </repository> </repositories> </profile> <profile> <id>cargo-config</id> <properties> <cargo.tomcat5x.home>$PATH_TO_TOMCAT_5</cargo.tomcat5x.home> </properties> </profile> </profiles> <activeProfiles> <activeProfile>cargo-config</activeProfile> </activeProfiles> </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 Struts Release Guidelines
- Struts Maintenance Guide for Maven
- Signing Releases
- Wendy's notes on Release Signing
- Apache Mirroring Guidelines
Interim Notes on Cobbling a Distribution
Assembling a Struts 2 distribution is not fully automatic. For the time being, there are a few extra steps.
- Extract assembly to a root drive (\struts-2.0.x)
- Download the WW documentation archive from http://struts.apache.org/2.x/docs.zip
- To get the latest version, run the 2.x/docs-zip.sh script and transfer the zip by pscp.
- Extract archive under the
docs
folder, creating docs/docs
Create updated archives for
- struts-2.0.x-docs.zip
- struts-2.0.x-all.zip
To update the Java 4 distribution, we need to
- Copy (export) the "backport" folder that is under SVN to struts-2.0.x/j4
- If needed, update the translator JARs and translate batch file
- If needed, update the translate batch file as to the Struts version
- run the translate batch file
- create struts-2.0.x-j4.zip archive
Obviously, we'd prefer that the entire build process was automatic, as it has been before. But this is how things stand right now.