The following document summarise the list of compatibility issues found on [3.0](https://github .com/troopjs/troopjs/releases/tag/3.0.0-pr.2%2Bfa7fcdb) compare with the last [2.x](https://github .com/troopjs/troopjs/releases/tag/2.0.5%2B01ab95d) build:
generally we have done moved many internal/api-level modules in this version, the following map (non-exclusive) reflects changes that have been made from 2.x to 3.x:
{
'troopjs-core/net': 'troopjs-contrib-browser/net',
'troopjs-core/logger': 'troopjs-contrib-browser/logger',
'troopjs-browser/mvc/controller': 'troopjs-contrib-browser/mvc/controller',
'troopjs-utils/unique': 'troopjs-util/unique',
'troopjs-core/component/factory': 'troopjs-compose/mixin/factory',
'troopjs-utils/merge': 'troopjs-util/merge',
'troopjs-core/logger/console': 'troopjs-contrib-browser/logger/console',
'troopjs-browser/loom/config': 'troopjs-dom/loom/config',
'troopjs-utils/getargs': 'troopjs-util/getargs',
'troopjs-browser/loom/unweave': 'troopjs-dom/loom/unweave',
'troopjs-utils/defer': 'troopjs-util/defer',
'troopjs-browser/route/uri': 'troopjs-contrib-browser/net/uri',
'troopjs-browser/loom/weave': 'troopjs-dom/loom/weave',
'troopjs-browser/loom/woven': 'troopjs-dom/loom/woven',
'troopjs-browser/loom/plugin': 'troopjs-dom/loom/plugin',
'troopjs-browser/component/widget': 'troopjs-dom/component/widget',
'troopjs-browser/application/widget': 'troopjs-dom/application/widget',
'troopjs-browser/hash/widget': 'troopjs-dom/hash/widget',
'troopjs-data/store/component': 'troopjs-opt/store/component',
'troopjs-data/component/widget': 'troopjs-dom/component/widget'
'troopjs-requirejs/template': 'mu-template/plugin'
}
Since troopjs-core/logger/pubsub
is now gone, and is now replaced with the corresponding component-level methods, a
compact module is needed for component that consume it, e.g. troopjs-ef/component/ef
Since components are now self-registering, the way how troopjs-core/component/registry
has changed, all usages of
that have to be reviewed, e.g. troopjs-ef/service/registry
.
Memorized event methods troopjs-core/component/gadget#republish
and troopjs-core/component/gadget#remit
are
now removed, compact methods have to be provided and marked as deprecated, suggesting the developer to use
troopjs-core/component/gadget#peek
instead.
Restart a component by troopjs-core/component/gadget#start
which is already started, now doesn't fail as before,
developer shall be warned for potentially error prune occurrence, same case applies for the #stop
method.
Widget constructor of troopjs-dom/component/widget
now requires a mandatory $element
first argument, which is
optional in 2.x versions, this makes all "fake widget" - widgets that are used as gadget, fails loudly.
Due to the underneath DOM event handlers delegation implementation has changed, not all CSS3 selectors are supported for matching, developers using unsupported CSS3 selector usage shall throw errors upon event registration.
Jquery plugins of loom are not anymore loaded as default, explicitly require this module is required to have
$.fn.weave
and $.fn.unweave
on jQuery objects.
Method troopjs-dom/component/widget#unweave
has now changed to only unweave the children, rather than
including the element itself, as it was before, developer shall be warned if this method is called a living widget.
The MVC controller widget, troopjs-browser/mvc/controller/widget
, other than the module relocation, has the following
API breaking changes:
hub/controller/request
->controller/widget#request
for requesting a new dispatch, which put constraints on only the controller component itself shall issue route requests rather than every other widgets on the page, developer are free to create their only hub events for requesting route changes.request
-> eventon/request
for receiving new requestsupdate
-> eventon/update
for receiving new updatesresult
-> eventon/result
for get notified of final results
You shall receive no breaking change from poly when upgrading to 3.0.
As we have upgraded to when.js#^3.0, breaking changes are exclusively documented on the [when.js migration guide] (https://github.com/cujojs/when/blob/master/docs/api.md#upgrading-to-30-from-2x)