Notes on the MyFaces Core 2.2.0 Release

Release manager: Leonardo Uribe

Timeline

  • Proposed release date: 2013-10-30

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.2.0 snapshots:

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

Note: Maven 2.2.0 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 ==
<<Anchor(diary)>>

      Follow the guide on http://www.apache.org/dev/publishing-maven-artifacts.html

1. Preparing shared 4.2.1

  * Change shared/core/pom.xml variable to mirror updated shared copy from core and run from shared root path
{{{
mvn clean install -Dsynch-shared=true
  • Try -DdryRun=true SUCCESS
mvn release:prepare -DtagBase=https://svn.apache.org/repos/asf/myfaces/shared/tags -DdryRun=true
  • Release it! FAIL
mvn release:prepare -DtagBase=https://svn.apache.org/repos/asf/myfaces/shared/tags -Dresume=false
mvn install
mvn release:rollback
mvn release:prepare -DtagBase=https://svn.apache.org/repos/asf/myfaces/shared/tags -Dresume=false

Note: Preparing the release will create the new tag in SVN, automatically checking in on your behalf.

Note: If you're located in Europe then release:prepare may fail with 'Unable to tag SCM' and 'svn: No such revision X'. Wait 10 seconds and run mvn release:prepare again.

mvn release:prepare -DtagBase=https://svn.apache.org/repos/asf/myfaces/shared/tags
  • Stage the release for a vote
mvn release:perform -DtagBase=https://svn.apache.org/repos/asf/myfaces/shared/tags

2. Preparing core 2.2.0

  • Try -DdryRun=true SUCCESS
mvn clean install
mvn install -Pgenerate-assembly -Papache-release
mvn release:prepare -DprepareRelease=true -DdryRun=true
  • Release it! FAIL
mvn release:prepare -DprepareRelease=true -Dresume=false
mvn install
mvn install -Pgenerate-assembly -Papache-release
mvn release:rollback -DprepareRelease=true 
mvn release:prepare -DprepareRelease=true -Dresume=false

Note: Preparing the release will create the new tag in SVN, automatically checking in on your behalf.

Note: If you're located in Europe then release:prepare may fail with 'Unable to tag SCM' and 'svn: No such revision X'. Wait 10 seconds and run mvn release:prepare again.

mvn release:prepare -DprepareRelease=true
  • Stage the release for a vote
mvn release:perform -DperformRelease=true
  • Checkout generated tag mvn install -DperformRelease=true

4. JIRA Release Management

  • Create 2.1.1 and 2.1.1-SNAPSHOT versions
  • Find resolved issues and close them
  • Unresolved issues moved to 2.1.1-SNAPSHOT
  • Issues fixed on both 2.1.1, 2.0.6 should be saved on a text file to add it later.

5. Next step is the TCK
TCK passed confirmed by Leonardo Uribe

6. Generate assembly

  • Try to do it automatically javadoc and other stuff SUCCESS. It generate myfaces-core-2.2.0-bin.tar.gz and zip,
mvn install -Pgenerate-assembly
cd assembly
mvn package

  • Create myfaces-core-2.2.0-src.tar.gz and zip manually and create .asc .md5 .sha1 for bin and src
openssl md5 myfaces-core-2.2.0-src.tar.gz > myfaces-core-2.2.0-src.tar.gz.md5
openssl md5 myfaces-core-2.2.0-src.zip > myfaces-core-2.2.0-src.zip.md5
openssl sha1 myfaces-core-2.2.0-src.tar.gz > myfaces-core-2.2.0-src.tar.gz.sha1
openssl sha1 myfaces-core-2.2.0-src.zip > myfaces-core-2.2.0-src.zip.sha1
gpg --armor --output myfaces-core-2.2.0-src.tar.gz.asc --detach-sig myfaces-core-2.2.0-src.tar.gz
gpg --armor --output myfaces-core-2.2.0-src.zip.asc --detach-sig myfaces-core-2.2.0-src.zip

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

  • Copy to private account on people.apache.org
scp -p -r myfaces-core-2.2.0-bin* lu4242@people.apache.org:/home/lu4242/public_html/myfaces220binsrc/binaries
scp -p -r myfaces-core-2.2.0-src* lu4242@people.apache.org:/home/lu4242/public_html/myfaces220binsrc/sources
  • ALTERNATIVE: get it from nexus maven repository:
cd /home/lu4242/public_html/myfaces220binsrc/binaries

wget --no-check-certificate https://repository.apache.org/content/repositories/orgapachemyfaces-018/org/apache/myfaces/core/myfaces-core-assembly/2.2.0/myfaces-core-assembly-2.2.0-bin.tar.gz
wget --no-check-certificate https://repository.apache.org/content/repositories/orgapachemyfaces-018/org/apache/myfaces/core/myfaces-core-assembly/2.2.0/myfaces-core-assembly-2.2.0-bin.tar.gz.asc
wget --no-check-certificate https://repository.apache.org/content/repositories/orgapachemyfaces-018/org/apache/myfaces/core/myfaces-core-assembly/2.2.0/myfaces-core-assembly-2.2.0-bin.tar.gz.md5
wget --no-check-certificate https://repository.apache.org/content/repositories/orgapachemyfaces-018/org/apache/myfaces/core/myfaces-core-assembly/2.2.0/myfaces-core-assembly-2.2.0-bin.tar.gz.sha1
wget --no-check-certificate https://repository.apache.org/content/repositories/orgapachemyfaces-018/org/apache/myfaces/core/myfaces-core-assembly/2.2.0/myfaces-core-assembly-2.2.0-bin.zip
wget --no-check-certificate https://repository.apache.org/content/repositories/orgapachemyfaces-018/org/apache/myfaces/core/myfaces-core-assembly/2.2.0/myfaces-core-assembly-2.2.0-bin.zip.asc
wget --no-check-certificate https://repository.apache.org/content/repositories/orgapachemyfaces-018/org/apache/myfaces/core/myfaces-core-assembly/2.2.0/myfaces-core-assembly-2.2.0-bin.zip.md5
wget --no-check-certificate https://repository.apache.org/content/repositories/orgapachemyfaces-018/org/apache/myfaces/core/myfaces-core-assembly/2.2.0/myfaces-core-assembly-2.2.0-bin.zip.sha1

cd /home/lu4242/public_html/myfaces220binsrc/sources

wget --no-check-certificate https://repository.apache.org/content/repositories/orgapachemyfaces-018/org/apache/myfaces/core/myfaces-core-assembly/2.2.0/myfaces-core-assembly-2.2.0-src.tar.gz
wget --no-check-certificate https://repository.apache.org/content/repositories/orgapachemyfaces-018/org/apache/myfaces/core/myfaces-core-assembly/2.2.0/myfaces-core-assembly-2.2.0-src.tar.gz.asc
wget --no-check-certificate https://repository.apache.org/content/repositories/orgapachemyfaces-018/org/apache/myfaces/core/myfaces-core-assembly/2.2.0/myfaces-core-assembly-2.2.0-src.tar.gz.md5
wget --no-check-certificate https://repository.apache.org/content/repositories/orgapachemyfaces-018/org/apache/myfaces/core/myfaces-core-assembly/2.2.0/myfaces-core-assembly-2.2.0-src.tar.gz.sha1
wget --no-check-certificate https://repository.apache.org/content/repositories/orgapachemyfaces-018/org/apache/myfaces/core/myfaces-core-assembly/2.2.0/myfaces-core-assembly-2.2.0-src.zip
wget --no-check-certificate https://repository.apache.org/content/repositories/orgapachemyfaces-018/org/apache/myfaces/core/myfaces-core-assembly/2.2.0/myfaces-core-assembly-2.2.0-src.zip.asc
wget --no-check-certificate https://repository.apache.org/content/repositories/orgapachemyfaces-018/org/apache/myfaces/core/myfaces-core-assembly/2.2.0/myfaces-core-assembly-2.2.0-src.zip.md5
wget --no-check-certificate https://repository.apache.org/content/repositories/orgapachemyfaces-018/org/apache/myfaces/core/myfaces-core-assembly/2.2.0/myfaces-core-assembly-2.2.0-src.zip.sha1

7. VOTE

Hi,

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

The artifacts passed the TCK test of Feb 2013 (jsftck-2.2_26-Feb-2013.zip).

Please note that this vote concerns all of the following parts:
 1. Maven artifact group "org.apache.myfaces.shared" v4.2.1  [1]
 2. Maven artifact group "org.apache.myfaces.core" v2.2.0  [1]

The artifacts were deployed on nexus repo [1] and to my private 
Apache account [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.2.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] https://repository.apache.org/content/repositories/orgapachemyfaces-018/org/apache/myfaces/
[2] http://www.apache.org/foundation/voting.html#ReleaseVotes
[3] http://people.apache.org/~lu4242/myfaces220binsrc
[4] https://issues.apache.org/jira/secure/ReleaseNote.jspa?projectId=10600&version=12316396

8. Clirr report to check binary incompatibilities success

9. Vote closed, starting distribution

  • copy on /www/www.apache.org/dist/myfaces/source and /www/www.apache.org/dist/myfaces/binaries
cd /home/lu4242/public_html/myfaces220binsrc/sources
cp * /www/www.apache.org/dist/myfaces/source
cd /home/lu4242/public_html/myfaces220binsrc/binaries
cp * /www/www.apache.org/dist/myfaces/binaries
  • copy shared on /www/people.apache.org/repo/m2-ibiblio-rsync-repository/org/apache/myfaces/shared and test SUCCESS
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=???

  • copy core on /www/people.apache.org/repo/m2-ibiblio-rsync-repository/org/apache/myfaces/core SUCCESS
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 

  • Site deploy for shared and core (mvn site:site and mvn site:deploy)

10. Announce

  • Sent announcement mail
    • To: announce@apache.org, announce@myfaces.apache.org
    • Cc: dev@myfaces.apache.org, users@myfaces.apache.org
  • Sent announcement to jcp-open@apache.org (Necessary for TCK certified releases)
Subject: [ANNOUNCE] MyFaces Core v2.2.0 Release

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

MyFaces Core is a JavaServer(tm) Faces 2.2 implementation as specified by JSR-344.

The artifacts passed the TCK test of Feb 2013 (jsftck-2.2_26-Feb-2013.zip).

MyFaces Core 2.2.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".

Bug

    [MYFACES-3820] - UIInput.setSubmittedValue() cause recursive call when calling getSubmittedValue() on Debug
    [MYFACES-3821] - Implement UIData.setDataModel(...)
    [MYFACES-3824] - @FlowScope with no defining documentId set cannot found active flow with explicit documentId
    [MYFACES-3829] - alwaysRecompile logged as wrong value for org.apache.myfaces.CACHE_EL_EXPRESSIONS on startup
    [MYFACES-3830] - Component created using @FacesComponent with createTag=true and @ResourceDependency makes initialization fail
    [MYFACES-3831] - CacheELFaceletCacheImpl is not storing the compiled template (only when "alwaysRecompile" is enabled)
    [MYFACES-3832] - disableClientWindow is not fully implemented
    [MYFACES-3834] - Restore org.apache.myfaces.config.impl.digester.elements.FacesConfig to avoid tomee integration to fail
    [MYFACES-3835] - ViewState gets truncated on chrome with richfaces fileupload component
    [MYFACES-3836] - f:ajax disabled=false in commandButton with onclick prevents form submission
    [MYFACES-3837] - ui:debug renders an &amp; but it should be & because the markup is inside a CDATA section
    [MYFACES-3838] - LegacyUserTagHandler should implement ComponentContainerHandler
    [MYFACES-3839] - Relative implicit link not found when it reference parent nodes.

Improvement

    [MYFACES-3804] - Use the same key in server side state saving for ajax requests
    [MYFACES-3806] - Destroy ViewScope beans when view is discarded from view state.
    [MYFACES-3815] - Lazy instantiation of Renderer classes
    [MYFACES-3819] - Allow override resource components using a tag handler
    [MYFACES-3823] - [perf] use a preinitialized table of unique ids for UIViewRoot.createUniqueId(...)
    [MYFACES-3825] - [perf] Cache EL expressions using an indirection for ui:param and user tag attributes
    [MYFACES-3828] - [perf] Do not store the namespace into state for dynamic components

New Feature

    [MYFACES-3664] - JSF View Pooling (going beyond JSF Stateless Mode)

Task

    [MYFACES-3647] - remove JspStateManagerImpl and other unused stuff in this area
    [MYFACES-3715] - Remove unnecessary parameters or features from earlier versions in MyFaces 2.2
    [MYFACES-3809] - Add http://java.sun.com/jstl/core as a valid namespace for "c" jstl library in facelets
    [MYFACES-3810] - Add compatibility mode for facelets 1.1.x behavior
    [MYFACES-3811] - Fix c:forEach behavior once for all
    [MYFACES-3812] - Cleanup Facelets Initialization Code and decouple facelets taglibrary config parsing
    [MYFACES-3813] - Cleanup org.apache.myfaces.config.impl.digester.elements package
    [MYFACES-3814] - Allow ServiceProviderFinder to be initialized at startup
    [MYFACES-3818] - Unify behavior of composite component renderer
    [MYFACES-3822] - General cleanup and remove unused web config params
    [MYFACES-3826] - Add junit test case for MyFaces and CDI
    [MYFACES-3827] - Replace .xsd with the ones from geronimo or written from scratch

regards,

Leonardo Uribe

  • No labels