Versions Compared

Key

  • This line was added.
  • This line was removed.
  • Formatting was changed.

...

  1. You should have read the Apache Guide To Release Management During Incubation
  2. You must have shell access to people.apache.org
  3. You must have the following utilities installed on your local machine and available in your path:

Tasks that need to be performed for each release

1

Make sure the #One time setup steps have been performed

2

Update the POMs to remove "-SNAPSHOT" from the version

3

Commit the POM changes

4

Tag the release by making a SVN copy of the head or designated revision

 

Code Block
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 #.#.#" 

5

Assemble the release

 

Code Block
mvn clean install site -P xwork,plugins,apps,all,pre-assembly
cd assembly 
mvn assembly:assembly

6

Sign the release artifacts (in assembly/target/assembly/out)

 

Code Block

gpg --armor --output struts-#.#.#-all.zip.asc --detach-sig struts-#.#.#-all.zip 
openssl md5 < struts-#.#.#-all.zip > struts-#.#.#-all.zip.mdr

7

pscp the artifacts and signatures to people.apache.org:/www/builds/struts/#.#.#

8

Deploy the artifacts to our Maven repository

 

Code Block
mvn deploy -P apps,plugins,pre-assembly 

 

Prune any obsolete snapshots from p.a.o://www/people.apache.org/repos

9

Update the POMs to next version number and add the "-SNAPSHOT" suffix

10

Commit the POM changes

11

Deploy the new snapshot

 

Code Block
mvn -N install

12

Add the next version to our issue tracker for scheduling new features and fixes

One time setup

These setup steps only need to be performed on a particular machine once.

Tip

Developers using Linux workstations can skip over the references to PuTTY and Cygwin

...

1

Create a settings.xml under .m2 (in your Document and Settings folder in Windows)

 

Code Block
<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>people.apache.org</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 ~/.ssh folder, but the script cannot access it there (from Windows)

2

From cygwin (not Windows) create another .ssh folder at (question)

3

Copy the known_hosts file to the new .ssh folder

Tasks that need to be performed for each release

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

 

Code Block
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

 

Code Block
mvn clean install site -P xwork,plugins,apps,all,pre-assembly
cd assembly 
mvn assembly:assembly

5

Sign the release artifacts (in assembly/target/assembly/out)

 

Code Block

gpg --armor --output struts-#.#.#-all.zip.asc --detach-sig struts-#.#.#-all.zip 
openssl md5 < struts-#.#.#-all.zip > struts-#.#.#-all.zip.mdr

6

pscp the artifacts and signatures to people.apache.org:/www/builds/struts/#.#.#

7

Deploy the artifacts to our Maven repository

 

Code Block
mvn deploy -P apps,plugins,pre-assembly 

 

Prune any obsolete snapshots from p.a.o://www/people.apache.org/repos

8

Update the POMs to next version number and add the "-SNAPSHOT" suffix

9

Commit the POM changes

10

Deploy the new snapshot

 

Code Block
mvn -N install

11

Add the next version to our issue tracker for scheduling new features and fixes

Resources