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 |
|
mvn clean install site -P xwork,plugins,apps,all,pre-assembly cd assembly mvn 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 |
6 |
|
7 |
Deploy the artifacts to our Maven repository |
|
mvn deploy -P apps,plugins,pre-assembly |
|
Prune any obsolete snapshots from |
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 |
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>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
---------- Forwarded message ---------- From: Ted Husted <husted@apache.org> Date: Sep 17, 2006 5:33 PM Subject: Re: Struts 2.0.0 - STATUS To: Struts Developers List <dev@struts.apache.org> I've updated the Struts 2.0.0 snapshot distribution based on revision r447072 (thanks Toby!). I would have tagged it, but I still don't understand everything that's involved in signing and deploying the distribution once it is tagged, and I didn't have time to review it all again today. As it stands, the docs part of the distribution requires surgery before we can post it. There are three complications 1) We don't have a s2 site subproject, and the struts-current subproject is doing double duty. 2) The documentation is not under subversion but being autoexported to HTML from a wiki 3) We need to translate the JARs for Java 4. As to 1, I promoted the struts-core to be the root docs subdirectory and moved over the various apidocs. That involves something like * Extract assembly to a root drive (\struts-2.0.0) * rename docs as temp * create a new docs folder * move temp/struts-api/apidocs to docs/api-apidoc * move temp/struts-core/apidocs to docs/core-apidocs * move temp/struts-extra/apidocs to docs/extras-apidocs * move xwork-apidocs from temp to docs * move temp/struts-core/ to docs/ * delete temp To obtain the documention, the simplest solution I have found is to use the FireFox Spiderzilla plugin to create a local copy of the website and include that in the distribution * Use SpiderZilla, httrack, or equivalent to create a copy of the website at /struts-2.0.0/docs/WW starting from http://cwiki.apache.org/WW/home.html * Using TextEdit or equivalent, search and replace any references in any HTML files under docs to http://cwiki.apache.org/WW/home.html to the local equivalent (WW\cwiki.apache.org\WW) Another approach would be to setup a cron job on brutus to ZIP up the autoexport files. Then a script could download and extract the archive. Unfortunatley, right now, old copies of autoexported pages are not being removed from the export after they are deleted or renamed. I believe the plugin is suppose to clear the target directory if we force an export, but that that is not happening right now. As to the Java 4 translation, nothing in the assembly is building it right now. To update it, we need to * Copy the "backport" folder that is under SVN. * 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 Then, to mop up, we need to create new or updated archives for * struts-2.0.0-all.zip * struts-2.0.0-docs.zip * struts-2.0.0-j4.zip Obviously, we'd prefer that the entire build process was automatic, as it has been before. But this is how things stand right now. -Ted.