Apache Struts 2 Documentation > Home > Guides > Contributors Guide > Creating and Signing a Release |
![]() | Developers using Linux workstations can skip over the references to PuTTY and Cygwin |
(There are also one-time setup instructions)
1 | 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 r447072 as Struts #.#.#
|
2 | Update the POMs to remove "-SNAPSHOT" from the version |
---|
3 | Assemble the release |
---|---|
mvn install site -P apps,core,extras,xwork,itest,pre-assembly cd assembly mvn assembly:assembly |
4 | Sign the release artifacts (in assembly/target/assembly/out) |
---|---|
gpg --armor --detach-sig struts-#.#.#-all.zip --output struts-#.#.#-all.zip.asc openssl md5 < struts-#.#.#-all.zip > struts-#.#.#-all.zip.mdr |
5 | pscp the artifacts and signatures to people.apache.org:/www/builds/struts/#.#.# |
---|
6 | Deploy the artifacts to our Maven repository |
---|---|
mvn deploy -P pre-assembly |
|
If automatic deployment does not work for any reason, you can also deploy the Maven artifacts by hand![]() |
7 | Update the POMs to add "-SNAPSHOT" for the next release version |
---|
8 | Commit the POM changes |
---|
9 | Add the next version to our issue tracker for scheduling new features and fixes |
---|
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 | pscp your SSH public key to ~/authorized_keys |
6 | ssh to p.a.o |
7 | Create a ~\.ssh folder and move authorized_keys there |
8 | Configure putty to use your private key and save the session |
1 | Install cgywin, including utils/gpg |
---|---|
2 | Generate a key with $ gpg --gen-key |
3 | Backup your home directory to another media |
4 | Add your key to people.apache.org/www.apache.org/dist/struts/KEYS |
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> </server> <server> <username>$USERNAME</username> <privateKey>$PATH_TO_PRIVATE_KEY</privateKey> </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> |
1 | from cygwin, ssh to people.apache.org, save the public key if prompted, and exit |
---|---|
2 | cygwin will save the known hosts to your ~/.ssh folder, but the script cannot access it there (from Windows) |
3 | from cygwin (not Windows) create another .ssh folder at ![]() |
4 | copy the known_hosts file to the new .ssh folder |