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)
0 | Delete the struts2 items in your local Maven2 repository and obtain a fresh checkout.
| ||
---|---|---|---|
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 | Under CygWin or Linux, sign the Maven artifacts (in | ||
|
| ||
6 | Deploy the Maven 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:
| ||
7 | Sign the Maven artifacts (in | ||
| Under CygWin, use the | ||
|
| ||
8 | | ||
9 | Update your usual working copy, change the POMs to next version number, add the "-SNAPSHOT" suffix | ||
10 | Commit the POM changes | ||
11 | Deploy the new snapshot | ||
|
| ||
12 | Add the next version to our issue tracker for scheduling new features and fixes | ||
13 | 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
Retagging
If a tagged build needs to be retagged, be sure to delete the old tag first.
Code Block |
---|
svn delete https://svn.apache.org/repos/asf/struts/struts2/tags/STRUTS_#_#_# -m "WW-### Removing first try at 2.#.#." |
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
- Also create a struts-2.0.x-docs.zip archive
- Update struts-2.0.x-all.zip archive