You are viewing a plain text version of this content. The canonical link for it is here.
Posted to dev@tapestry.apache.org by hl...@apache.org on 2012/08/13 20:47:04 UTC

[2/9] git commit: Updat release notes to discuss non-breaking changes and the JavaScript abstraction layer

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 <hl...@apache.org>
Authored: Mon Aug 13 11:05:52 2012 -0700
Committer: Howard M. Lewis Ship <hl...@apache.org>
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".