You are viewing an old version of this page. View the current version.

Compare with Current View Page History

« Previous Version 19 Next »

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 assembly/target/assembly/out)

 

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

 

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

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

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

Create a PGP key

1

Install cgywin, including utils/gpg

2

Generate a key with $ gpg --gen-key

3

Backup your cygwin home directory to another media

4

Add your key to people.apache.org/www.apache.org/dist/struts/KEYS

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 ~/.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

Resources

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.

  • No labels