Notes on the MyFaces Core 2.0.0 Release

Timeline

Issues

Testing

Here's how you can help us test the distribution.

Download a nightly build of the distribution assemblies:

Configure a <repository> for Maven 2:

        <repository>
           <id>apache.snapshots</id>
           <name>Apache Snapshot Repository</name>
           <url>http://people.apache.org/repo/m2-snapshot-repository</url>
        </repository>

And declare a dependency on the 2.0.0 snapshots:

        <dependency>
            <groupId>org.apache.myfaces.core</groupId>
            <artifactId>myfaces-api</artifactId>
            <version>2.0.0-SNAPSHOT</version>
        </dependency>
        <dependency>
            <groupId>org.apache.myfaces.core</groupId>
            <artifactId>myfaces-impl</artifactId>
            <version>2.0.0-SNAPSHOT</version>
        </dependency>

Note: Maven 2.0.4 will not download a new version if one is already present in your local repository. You will need to delete $M2_REPO/org/apache/myfaces/core to force Maven to download the new version. (Usually, $M2_REPO is <your home directory>/.m2/repository .)

Test your application, then, let us know the results (good or bad!) on dev -at- myfaces.apache.org. (You must be subscribed to post. See: http://myfaces.apache.org/mail-lists.html.)

Tasks

Proposed Release Announcement

Diary

1.1 Preparing test 1.0.0-beta-3

mvn release:prepare -DtagBase=https://svn.apache.org/repos/asf/myfaces/test/branches -Dusername=lu4242 -Dscm.password=??? -Dtag=1_0_0_beta_3 -DdryRun=true

mvn release:prepare -DtagBase=https://svn.apache.org/repos/asf/myfaces/test/branches -Dusername=lu4242 -Dscm.password=??? -Dtag=1_0_0_beta_3 -Dresume=false

mvn release:prepare -DtagBase=https://svn.apache.org/repos/asf/myfaces/test/branches -Dusername=lu4242 -Dscm.password=??? -Dtag=1_0_0_beta_3 -Dresume=false

1.2 Preparing shared 4.0.1

mvn release:prepare -DtagBase=https://svn.apache.org/repos/asf/myfaces/shared/branches -Dusername=lu4242 -Dscm.password=??? -Dtag=4_0_1 -DdryRun=true

mvn release:prepare -DtagBase=https://svn.apache.org/repos/asf/myfaces/shared/branches -Dusername=lu4242 -Dscm.password=??? -Dtag=4_0_1 -Dresume=false

mvn release:prepare -DtagBase=https://svn.apache.org/repos/asf/myfaces/shared/branches -Dusername=lu4242 -Dscm.password=??? -Dtag=4_0_1 -Dresume=false

2. Preparing core 2.0.0

mvn release:prepare -DtagBase=https://svn.apache.org/repos/asf/myfaces/core/branches -Dusername=lu4242 -Dscm.password=??? -Dtag=2_0_0 -DdryRun=true

mvn release:prepare -DtagBase=https://svn.apache.org/repos/asf/myfaces/core/branches -Dusername=lu4242 -Dscm.password=??? -Dtag=2_0_0 -Dresume=false

3. Deploy on local repo

mvn clean deploy -DperformRelease=true -DaltDeploymentRepository=myfaces-local-staging::default::scp://localhost/home/lu4242/stage/repo200 -Psign-artifacts -Dpassphrase=??? 

mvn clean deploy -DperformRelease=true -DaltDeploymentRepository=myfaces-local-staging::default::scp://localhost/home/lu4242/stage/repo200 -Psign-artifacts -Dpassphrase=??? -Pgenerate-assembly 

   cd home/lu4242/stage/repo200
   scp -p -r org lu4242@people.apache.org:/home/lu4242/public_html/myfaces200

4. JIRA Release Management

5. Next step is the TCK

6. Generate assembly

cd 2_0_0
mvn install -Pgenerate-assembly
cd assembly
mvn package

openssl md5 myfaces-core-2.0.0-src.tar.gz > myfaces-core-2.0.0-src.tar.gz.md5
openssl md5 myfaces-core-2.0.0-src.zip > myfaces-core-2.0.0-src.zip.md5
openssl sha1 myfaces-core-2.0.0-src.tar.gz > myfaces-core-2.0.0-src.tar.gz.sha1
openssl sha1 myfaces-core-2.0.0-src.zip > myfaces-core-2.0.0-src.zip.sha1
gpg --armor --output myfaces-core-2.0.0-src.tar.gz.asc --detach-sig myfaces-core-2.0.0-src.tar.gz
gpg --armor --output myfaces-core-2.0.0-src.zip.asc --detach-sig myfaces-core-2.0.0-src.zip

openssl md5 myfaces-core-2.0.0-bin.tar.gz > myfaces-core-2.0.0-bin.tar.gz.md5
openssl md5 myfaces-core-2.0.0-bin.zip > myfaces-core-2.0.0-bin.zip.md5
openssl sha1 myfaces-core-2.0.0-bin.tar.gz > myfaces-core-2.0.0-bin.tar.gz.sha1
openssl sha1 myfaces-core-2.0.0-bin.zip > myfaces-core-2.0.0-bin.zip.sha1
gpg --armor --output myfaces-core-2.0.0-bin.tar.gz.asc --detach-sig myfaces-core-2.0.0-bin.tar.gz
gpg --armor --output myfaces-core-2.0.0-bin.zip.asc --detach-sig myfaces-core-2.0.0-bin.zip

scp -p -r myfaces-core-2.0.0-bin* lu4242@people.apache.org:/home/lu4242/public_html/myfaces200binsrc/binaries
scp -p -r myfaces-core-2.0.0-src* lu4242@people.apache.org:/home/lu4242/public_html/myfaces200binsrc/sources

7. VOTE

Hi,

I was running the needed tasks to get the 2.0.0 release of Apache
MyFaces core out.

The artifacts passed all TCK tests.

Please note that this vote concerns all of the following parts:
 1. Maven artifact group "org.apache.myfaces.shared" v4.0.1  [1]
 2. Maven artifact group "org.apache.myfaces.core" v2.0.0  [1]
 3. Maven artifact group "org.apache.myfaces.test" v1.0.0-beta-3 [1]

The artifacts are deployed to my private Apache account ([1] and [3] for binary and source packages).

The release notes could be found at [4].

Also the clirr test does not show binary incompatibilities with myfaces-api.

Please take a look at the "2.0.0" artifacts and vote!

Please note: This vote is "majority approval" with a minimum of three
+1 votes (see [3]).

------------------------------------------------
[ ] +1 for community members who have reviewed the bits
[ ] +0
[ ] -1 for fatal flaws that should cause these bits not to be released,
 and why..............
------------------------------------------------

Thanks,
Leonardo Uribe

[1] http://people.apache.org/~lu4242/myfaces200
[2] http://www.apache.org/foundation/voting.html#ReleaseVotes
[3] http://people.apache.org/~lu4242/myfaces200binsrc
[4] https://issues.apache.org/jira/secure/ReleaseNote.jspa?projectId=10600&styleName=Html&version=12314890

8. Clirr report to check binary incompatibilities success

9. Vote closed, starting distribution

cd /home/lu4242/public_html/myfaces200binsrc/sources
cp * /www/www.apache.org/dist/myfaces/source
cd /home/lu4242/public_html/myfaces200binsrc/binaries
cp * /www/www.apache.org/dist/myfaces/binaries

Alternative for manual copy:

mvn clean deploy -DaltDeploymentRepository=myfaces-staging::default::scpexe://people.apache.org/www/people.apache.org/repo/m2-ibiblio-rsync-repository -Psign-artifacts -DperformRelease=true -Dpassphrase=???

Alternative for manual copy:

mvn clean deploy -DaltDeploymentRepository=myfaces-staging::default::scpexe://people.apache.org/www/people.apache.org/repo/m2-ibiblio-rsync-repository -Psign-artifacts -DperformRelease=true -Dpassphrase=??? -Pgenerate-assembly 

10. Announce

Subject: [ANNOUNCE] MyFaces Core v2.0.0 Release

The Apache MyFaces team is pleased to announce the release of MyFaces Core 2.0.0.

MyFaces Core is a JavaServer(tm) Faces 2.0 implementation as specified by JSR-314. MyFaces Core has passed Sun's JSR-314 TCK and is 100% compliant with the JSR-314 specification. 

MyFaces Core 2.0.0 is available in both binary and source distributions.

    * http://myfaces.apache.org/download.html

MyFaces Core is also available in the central Maven repository under Group ID "org.apache.myfaces.core".

Release Notes - MyFaces Core - Version 2.0.0

Bug

    * [MYFACES-2361] - Add missing component system event dispatches
    * [MYFACES-2554] - myfaces's facelettaglibrary XSD incomplete
    * [MYFACES-2615] - Conversion errors should add a FacesMessage instead of throwing a FacesException
    * [MYFACES-2621] - BeanValidation does not work with Unified EL 2.2
    * [MYFACES-2622] - BeanValidator has to handle CompositeComponentExpressionHolder when resolving the ValueExpression
    * [MYFACES-2623] - validation-api and el-api 2.2 should be optional dependencies with scope compile in myfaces-api
    * [MYFACES-2624] - Automatically add h:messages if ProjectStage is Development
    * [MYFACES-2625] - TagLibrary using custom namespace fails to load composite component
    * [MYFACES-2626] - Application.createResource does not trip extension from resource name when try to resolve composite component class automatically
    * [MYFACES-2630] - HtmlBody 'onload' attribute encoding issues
    * [MYFACES-2631] - javax.faces.Messages.zh lacks two properties.
    * [MYFACES-2633] - Cannot set properties on custom composite component class when are implemented on getter/setter
    * [MYFACES-2636] - Need to check for null ValueExpression in _BeanValidatorUELUtils.getUELValueReferenceWrapper()
    * [MYFACES-2637] - Serious Bug! ajax cant work using multiple forms.
    * [MYFACES-2639] - Make org.apache.myfaces.REFRESH_TRANSIENT_BUILD_ON_PSS param = auto the default
    * [MYFACES-2641] - Use the application's ViewHandler to create the view in FaceletViewMetadata
    * [MYFACES-2643] - Update Google App Engine APT Doc
    * [MYFACES-2645] - The view state is saved before encodeAll() is called on every UIViewParameter in an AJAX request
    * [MYFACES-2646] - Missing unit test for application.createComponent(FacesContext context, Resource componentResource)
    * [MYFACES-2647] - MyFacesContainerInitializer doesn't check for null class name
    * [MYFACES-2649] - Ajax chokes on script triggered onchange if input has onchange=""
    * [MYFACES-2650] - chaining ajax onchange with existing onchange creates syntax error
    * [MYFACES-2654] - Trinidad ajax-branch does not work with MyFaces2
    * [MYFACES-2656] - Use UINamingContainer.getSeparatorChar instead NamingContainer.SEPARATOR_CHAR
    * [MYFACES-2657] - Already escaped apostrophes are double-escaped while building the ClientBehavior JavaScript
    * [MYFACES-2659] - TagDecorator in IMPL and API ...
    * [MYFACES-2661] - h:link render conversationContext param multiple times

Improvement

    * [MYFACES-2546] - Conversion rules for obtaing renderable String from the "value" property of SelectItem
    * [MYFACES-2658] - Indicate a better error when using Facelet TAGs on JSP(X) pages

New Feature

    * [MYFACES-2116] - TODO 65: Partial View Lifecycle
    * [MYFACES-2644] - IDE Tutorials for Myfaces 2 Google App Engine support

Task

    * [MYFACES-2124] - Enforce new API on UIViewRoot
    * [MYFACES-2183] - Integrate Facelets
    * [MYFACES-2323] - Implement <f:ajax> tag handler
    * [MYFACES-2329] - Add Facelet taglib 2.0 schema
    * [MYFACES-2619] - FacesContext.validationFailed() must be called on validation errors in validate()
    * [MYFACES-2648] - AbstractMyFacesListener is not needed anymore
    * [MYFACES-2653] - Fix implee6 include on code and clean myfaces impl pom.xml
    * [MYFACES-2660] - Review Facelets api usage

regards

Leonardo Uribe