Updat release notes to discuss non-breaking changes and the JavaScript 
abstraction layer


Project: http://git-wip-us.apache.org/repos/asf/tapestry-5/repo
Commit: http://git-wip-us.apache.org/repos/asf/tapestry-5/commit/3071d357
Tree: http://git-wip-us.apache.org/repos/asf/tapestry-5/tree/3071d357
Diff: http://git-wip-us.apache.org/repos/asf/tapestry-5/diff/3071d357

Branch: refs/heads/5.4-js-rewrite
Commit: 3071d357e989210d06e6779c43ff5d4dc243bbdf
Parents: 2285c7e
Author: Howard M. Lewis Ship <[email protected]>
Authored: Mon Aug 13 11:05:52 2012 -0700
Committer: Howard M. Lewis Ship <[email protected]>
Committed: Mon Aug 13 11:05:52 2012 -0700

----------------------------------------------------------------------
 54_RELEASE_NOTES.txt |   35 ++++++++++++++++++++++++++++++++++-
 1 files changed, 34 insertions(+), 1 deletions(-)
----------------------------------------------------------------------


http://git-wip-us.apache.org/repos/asf/tapestry-5/blob/3071d357/54_RELEASE_NOTES.txt
----------------------------------------------------------------------
diff --git a/54_RELEASE_NOTES.txt b/54_RELEASE_NOTES.txt
index fa71ea1..fc36c29 100644
--- a/54_RELEASE_NOTES.txt
+++ b/54_RELEASE_NOTES.txt
@@ -1,6 +1,39 @@
 Scratch pad for changes destined for the 5.4 release notes page.
 
-Breaking Features:
+Non-Breaking Changes:
+
+A new DeprecationWarning service exists to write runtime-warnings about 
deprecated component parameters.
+
+There have been sweeping changes to the client-side support in JavaScript, 
including the long-awaited abstraction layer.
+Tapestry is moving to the use of asynchronously-loaded modules, using the 
RequireJS module. Much of Tapestry's existing
+JavaScript libraries are being recoded as JavaScript modules; in 5.5, the 
remaining JavaScript libraries will be removed.
+
+All of the clients-side objects available inside the T5 or Tapestry objects 
(in Tapestry 5.3) are considered deprecated
+in Tapestry 5.4.  Where possible, the implementations of such objects have 
been reworked to use the new support provided
+by the modules. In many cases, logic that was previously supplied using 
client-side objects and the T5.initializers
+object is now provided using the event handlers.
+
+The abstraction layer is a set of wrappers that encapsulate most of the 
differences between Prototype and jQuery (or
+other, more modern JavaScript foundation libraries). By coding the the 
abstraction layer, it will be possible to swap
+out Prototype support for jQuery.  Prototype will no longer be bundled with 
Tapestry starting in Tapestry 5.5.
+
+Prior releases of Tapestry would require several moving parts to initialize 
client behavior:
+
+* A unique id, generated on the server, on a client-side element
+* A JavaScript library that extended T5.initializers with a initialization 
function
+* Creating a _spec_ to describe behavior, including URLs and the unique client 
element id
+* Many similar client-side event handlers on specific elements (created by the 
initialization function)
+
+Although this was well-structured, it had pain points for developers, as well 
as some client-side performance issues.
+For example, it means that components that occur many times on the page will 
include many similar event handler
+functions.
+
+Tapestry 5.4 represents a shift to a more modern, lighter approach. Behavior 
of components is encoded into
+`data-` attributes on the element, and logic shifts to a module that provides 
top-level event handlers on the
+body object. This is an overall win: it reduces the number of event handlers, 
solves some timing issues related
+to running initialization functions, deals with DOM updates better, and is 
overall more performant.
+
+Breaking Changes:
 
 The definition of the symbol 'tapestry.asset-path-prefix' has changed; it no 
longer includes the leading and trailing
 slashes. The default in 5.3 was "/assets/", in 5.4 it is simply "assets".

Reply via email to