How to prepare a normal release ?
- create a Version Notes page and start adding important changes to it
- create a filter in JIRA with Fix Version pointing to the release version you want to prepare
- review JIRA issues and re-organise them, move the Fix Version to the next release or Future, mark what should be solved in the release you're working on
- update the Draft Docs page - build project locally, upload struts2-assembly-docs.zip to people.a.o and move the content to /www/struts.apache.org/2.x/docs/
- or you can use the script below to update the Draft Docs after login to people.a.o:
No Format #!/bin/sh wget -erobots=off -nH -nv -E -L --directory-prefix=cwiki --no-check-certificate -r https://cwiki.apache.org/WW/ rm -r /www/struts.apache.org/2.x/docs/* mv cwiki/WW/* /www/struts.apache.org/2.x/docs/ chmod -R g+w /www/struts.apache.org/2.x/docs/ chown -R :struts /www/struts.apache.org/2.x/docs/ rm -r cwiki
How to prepare a fast track release ?
- keep all the informations confidential as possible, communicate throughout security@struts.a.o group
- restrict access to all the related pages created in Confluence to struts-committers group only, they can be made public available after fix or workaround was released
What do you want to build ?
Depends on what you want to achieve, please select topic from the list below:
- One time steps - before you start preparing a distribution
- Sample announcements - announcements used to communicate the achievement
- Building Struts Master - how to release Struts Master
- Building Struts Annotations - when you want to prepare a new distribution of Struts Annotations (if something changed)
- Building Struts 2 - Normal release - the most common used path
- Building Struts 2 - Fast track release - how to prepare a fast track release with important security patch
Tip |
---|
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 and note the revision number | ||
3 | Tag the release by making a SVN copy of the head or designated revision | ||
|
| ||
4 | Assemble the release (see notes) | ||
|
| ||
5 | Sign the release artifacts (in | ||
|
| ||
| 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 absent or empty, then:
| ||
8 | Update the POMs to next version number and add the "-SNAPSHOT" suffix | ||
9 | Commit the POM changes | ||
10 | Deploy the new snapshot | ||
|
| ||
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) | ||
---|---|---|---|
|
|
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
To update the Java 4 distribution
Before tagging
- If needed, update the translator JARs and translate batch file under "backport"
- If needed, update the translate batch file as to the Struts version under "backport"
After assembly, before signing
- Extract assembly to a root drive (
\struts-2.0.x
) - Copy (export) the "backport" folder that is under SVN to
\struts-2.0.x\j4
- run the translate batch file
- create struts-2.0.x-j4.zip archive
- update struts-2.0.x-all.zip archive