Instructions on promoting a build:

Engineering finishes JSF2.0 code.

Ensure all tests pass via:
ant clean main test.with.container.refresh

Engineering verifies QL passes
checkout v3 workspace.
cd v3/tests/quicklook
mvn -Dglassfish.home=$GLASSFISH test

Do this first with a pristine Glassfish build, without the new jsf jars
added in.  If the quicklook tests pass, you may proceed.  If not, you
need to get this resolved before proceeding.

Once you have a successful quicklook test, add in the new jsf jars, and
re-run with the new jars in place.

Engineering updates updatecenter2/conf/jsf_proto.py to correct version #. (ex: 2.0.1-0,1)

If doing a new maven release, be sure to update the pom.xml files in each demo directory.

MAKE SURE TO BUILD WITH the minimum required Java SE version.  For JSF
2.0 and 2.1 this is Java SE 5.

Tag build.
Currently, we're using a tag format of
2.0.1-bXX - where "XX" is a monotonically increasing number, incremented with every build.
sample tagging command:
svn copy https://mojarra.dev.java.net/svn/mojarra/trunk \
         https://mojarra.dev.java.net/svn/mojarra/tags/2.0.1-b01 \
         -m "Tag 2.0.1 Build 01"

RE (Terena) promotes the build, with maven.deploy.promoted (ex: 2.0.1-b01)
Engineering needs to give RE the tag name, build.type, and build.number
RE changes variables found in common.xml (build.type, etc) via -D as part of build
    build.type will be set to a value such as BETA, RC, FCS, etc.
    build.number will be a monotonically increasing integer, incremented for each build (i.e., b01, b02)
After the push to maven, check (it can take a while to show up, up to 30 minutes)
http://download.java.net/maven/2/com/sun/faces/jsf-impl/
http://download.java.net/maven/2/com/sun/faces/jsf-api/


After testing, engineering integrates to v3 (including UC), see integration instructions.
The integration pushes the new build bits to repine.

QE runs qualification tests against repine (current GFv3), comfirms they pass.

QE gives go-ahead.

For a release, RE will then do a maven.deploy.release for a released build (ex: 2.0.1)

Engineering then needs to once again integrate v3.


RELEASING TO JAVA.NET
=========================================
NOTE: we currently don't push every promoted build to java.net.  These instructions
      are for pushing a release to the public.  The steps above are valid in
      all cases.

 - Copy the downloaded binary and source bundles promoted from RE to a local
   directory.  These bundles are what will be made available to the public.
   (You can download them by ftp from rindge.sfbay.sun.com, cd to the provided directory
   (currently /net/jws-sparc.sfbay/bld1/BUILD_AREA/jsf2.0/bundles/latest), and then
   mget * - it's also possible to get these bundles via http, by visiting a site such as:
   http://javaweb.sfbay/java/re/jsf/2.0.1/promoted/FCS/b02/archive/bundles/ )

 - Prepare release notes:
    + check out the website:  cvs -d :pserver:<j.net uid>@cvs.dev.java.net:/cvs co -P -d jsf-web javaserverfaces
    + if releasing a new patch release:
       * copy the directory structure of an existing version to the new version
         (e.g. rsync -r -C 1.2_12/* 1.2_13).  If this is another cut
       * replace the old version numbers with the new version numbers
       * update changelog.html with:
         - outline of new features (if any)
         - new context init parameters (if any - see older release notes for examples)
         - issues resolved
           + To get the list of issues, use the report tool to generate a report
             and gather a list of all issues resolved for this patch release
             (this may span several builds).  The table for the resolved
             issues should be two columns for the issue ID and description.
             Ensure the ID is a hyperlink.  I use a FireFox addon called
             Scrapbook to copy a selection of issues into a separate
             html document and then cut/paste into changelog.html.  Don't forget
             to update the row styles (again, see older changelogs for examples)
        * check in the new directory structure and files
     + if releasing an update to an existing version (i.e. 2.0.0 BETA1 to 2.0.0 BETA2)
       * update the version in the existing release notes
       * append the issues resolved between the two versions in changelog.xhtml
         (Use the 2.0.0 release notes for an example)
   - Upload the binary and source bundles to java.net.  The new directory
     should be placed under: Downloads->Release->Version
   - In the same directory, add a link that refers to the Release Notes (see
     previous versions for an example)
   - Update download.html:
     + If necessary move the version being replaced to Archived Releases
     + Add the new version using the existing format
   - Create a new download button for the new version using
     images/downloadbackground.png.  I use gimp to do the image manipulation.
     Add the new version to the template using Sans Bold font.  Adjust the
     font weight to fill the button.  Save the image as download<version>.png
     (e.g. download1212.png).  Check the image in to CVS.
   - Update index.html to reference the new download button.  Have the link
     the image refers to point to the folder containing the new build (should
     display the source, binary, and release notes).
   - Add a new announcement using the project's news facility.  Use existing
     announcements as a template.

SECTION: Notes from the last time Roger promoted a build:

From: Roger Kitain <roger.kitain@oracle.com>
To: Barbara Louis <barbara.louis@oracle.com>
CC: Ed Burns <edward.burns@oracle.com>, 
 Ryan Lubke <ryan.lubke@oracle.com>,
 "VARTAK,SHEETAL" <sheetal.vartak@oracle.com>, 
 Jill Sato <jill.sato@oracle.com>,
 dougd <Douglas.Donahue@oracle.COM>, 
 Roger Kitain <Roger.Kitain@Oracle.COM>
Subject: Re: Need To Do Another JSF Promotion
Date: Wed, 30 Jun 2010 21:25:50 -0400
Content-Type: text/plain; charset=ISO-8859-1; format=flowed
MIME-Version: 1.0

Ok Folks -

Looks like we are making progress...
It appears that I now have privileges to push artifacts to our java.net 
maven repository.
So here's what I've done:

1. Ryan recommended I create a new tag so I created:
      https://mojarra.dev.java.net/svn/mojarra/tags/2.0.3-b03
     from the previous tag (2.0.3-b02).

2. Built the new tag locally using the build.type and build.number 
parameters:
      ant -Dbuild.type=FCS -Dbuild.number=b03 clean main

3. Tests the new jars locally with my GlassFish v3.1 install:
      ant container.deploy
      fired up GlassFish and Admin console; checked logs to make sure 
the correct JSF build string was displayed:
          Initializing Mojarra 2.0.3 (FCS b03) ....

4. Tested the maven deploy targets locally (for jsf-api and jsf-ri):
     cd jsf-api;  ant mvn.deploy.promoted.local -Dbuild.number=b03
     cd jsf-ri; ant mvn.deploy.promoted.local -Dbuild.number=b03

5. Pushed the jars out to maven repo:
     cd jsf-api; ant mvn.deploy.promoted -Dbuild.number=b03
     cd jsf-ri; ant mvn.deploy.promoted.local -Dbuild.number=b03

Now I am integrating into GlassFish v3.1 locally (first)...

-roger

From: Roger Kitain <roger.kitain@oracle.com>
To: Barbara Louis <barbara.louis@oracle.com>
CC: Ed Burns <edward.burns@oracle.com>, 
 Ryan Lubke <ryan.lubke@oracle.com>,
 "VARTAK,SHEETAL" <sheetal.vartak@oracle.com>, 
 Roger Kitain <Roger.Kitain@Oracle.COM>,
 Jill Sato <jill.sato@oracle.com>
Subject: Re: Need To Do Another JSF Promotion
Date: Wed, 30 Jun 2010 11:42:28 -0400
Content-Type: text/plain; charset=ISO-8859-1; format=flowed
MIME-Version: 1.0

Folks -

Maybe it's just me - but I ran into some issues with the last JSF 
promotion (2.0.3-b02) when I was attempting to
do a test integration into my local GlassFish 3.1 install.  Jill helped 
me get the Mojarra artifacts out in the Maven repository.
Apparently, I missed (and misunderstood) this step in our Mojarra 
PROMOTING_A_BUILD.txt file:

"RE (Terena) promotes the build, with maven.deploy.promoted (ex: 2.0.1-b01)
Engineering needs to give RE the tag name, build.type, and build.number
RE changes variables found in common.xml (build.type, etc) via -D as 
part of build
     build.type will be set to a value such as BETA, RC, FCS, etc.
     build.number will be a monotonically increasing integer, 
incremented for each build (i.e., b01, b02)
After the push to maven, check (it can take a while to show up, up to 30 
minutes)
http://download.java.net/maven/2/com/sun/faces/jsf-impl/
http://download.java.net/maven/2/com/sun/faces/jsf-api/"

Terena is no longer with us, so Barbara suggested we have Ryan do a 
brief TOI for us so we can all synch up on
the correct process - as Ed, myself and Sheetal (working wth Jill) will 
be doing these frequently.
This may be a review for some, but I feel this is necessary to get 
everyone on the same page.
If possible I would like to do today (if not tomorrow) sometime.  Please 
let me know your
availability (I know Ed is traveling to Philadelphia today and will be 
available sometime later today).

Thanks, Roger.

From: Roger Kitain <roger.kitain@oracle.com>
To: jsfaces_core_us@oracle.com, Barbara Louis <Barbara.Louis@oracle.com>, 
 Ryan Lubke <ryan.lubke@oracle.com>
Subject: Need To Do Another JSF Promotion
Date: Wed, 30 Jun 2010 05:52:32 -0400
Content-Type: text/plain; charset=ISO-8859-1; format=flowed
MIME-Version: 1.0

In my attempts to do a test integration of JSF into GlassFish trunk 
(locally), I discovered
that the version of Mojarra displayed in the logs was:
Mojarra 2.0.3 (SNAPSHOT 20100618).

I asked Ryan about this and apparently a step was missed outlined in the
mojarra PROMOTING_A_BUILD.txt file.  In that file, we say:

"RE (Terena) promotes the build, with maven.deploy.promoted (ex: 2.0.1-b01)
Engineering needs to give RE the tag name, build.type, and build.number
RE changes variables found in common.xml (build.type, etc) via -D as 
part of build
     build.type will be set to a value such as BETA, RC, FCS, etc.
     build.number will be a monotonically increasing integer, 
incremented for each build (i.e., b01, b02)
After the push to maven, check (it can take a while to show up, up to 30 
minutes)
http://download.java.net/maven/2/com/sun/faces/jsf-impl/
http://download.java.net/maven/2/com/sun/faces/jsf-api/
"

Actually, Terena is no longer with us, so I was trying to work with Jill 
Saito.
Jill, was not familiar with the process Terena used for JSF.
After attempting to push the artifacts myself - (only to discover I did 
not have privileges),
I worked with Jill to get the artifacts pushed.
I also noticed that the pom artifacts out on the maven repo for the 
recently pushed
2.0.3-b02 promotion (under http://download.java.net/maven/2/com/sun/faces/)
do not have the copyright header.

Ryan suggested we cut a new tag (2.0.3-b03) and do another promotion.  I 
really would like
to get someone's undivided attention to nail down the process and update 
the
PROMOTING_A_BUILD.txt file if necessary before I do another promotion.
Perhaps Jill (or whoever has taken over for Terena needs to be involved 
as well).

-roger
