# Release Notes for Fluid Infusion 2.0.0 # [Fluid Project](http://fluidproject.org) [Infusion Documentation](https://github.com/fluid-project/infusion-docs) ## What's New in 2.0.0? ## See [API Changes from 1.5 to 2.0](http://docs.fluidproject.org/infusion/development/APIChangesFrom1_5To2_0.html) and [Deprecations in 1.5](http://docs.fluidproject.org/infusion/development/DeprecationsIn1_5.html) on the [Infusion Documentation](https://github.com/fluid-project/infusion-docs) site. For a complete list of Fixes and Improvements see the [Version 2.0](https://issues.fluidproject.org/projects/FLUID/versions/10041) summary in the [JIRA](https://issues.fluidproject.org) issue tracker. **Note:** Infusion 1.9 was not officially released, but is available as an official branch. It is is available on GitHub at [Infusion 1.9.x](https://github.com/fluid-project/infusion/tree/1.9.x). For a complete list of Fixes and Improvements see the [Version 1.9](https://issues.fluidproject.org/projects/FLUID/versions/10520) summary in the [JIRA](https://issues.fluidproject.org) issue tracker. ### New Features ### * Constraint-based priorities, supported by `listeners`, `modelListeners`, `modelRelay`, `distributeOptions`, `contextAwareness`, and `components`. This allows the specific order of those items to be configured. (See: [Priorities](http://docs.fluidproject.org/infusion/development/Priorities.html)) * Context Awareness - and things it relies on: * Global Instantiator * Every Infusion component, regardless of how it is instantiated, ends up in a single-rooted tree of components * This enables use of modern IoC features such as model relay and declarative event binding * Enables use of the root distributeOptions context "/" * Enables the removal of "demands blocks" * Useful debugging tip: Watch `fluid.globalInstantiator` in your JS debugging tools to see the structure of your application and its tree. * `fluid.notImplemented` function for implementing abstract grades * [Lazy loading for UI Options](http://docs.fluidproject.org/infusion/development/UserInterfaceOptionsAPI.html#lazyload) and instructions for how to use the Preferences Framework with a [zero initial load time](http://docs.fluidproject.org/infusion/development/tutorial-prefsFrameworkMinimalFootprint/MinimalFootprint.html). * This should assist in improving performance when using the Preferences Framework, particularly for resource intensive sites and applications * Much faster invokers and boiled listeners (c. 60x faster) * Support for using Infusion with npm for both Node.js and web-based projects. * Provides a variety of prebuilt versions of Infusion in the module's `dist` directory. * Source Maps are generated for the concatenated JavaScript files * View oriented IoC debugging tools * Including FluidViewDebugging.js on the page of any Infusion application gives you access to the _IoC View Inspector_. Click on the small cogwheel icon at the bottom right of the page to open a panel which shows the details of the view components and their grades, that are attached to DOM nodes in the browser pane. This interface works similarly to the _DOM Inspector_ familiar from modern web browsers, but is an experimental implementation with an engineer-level UI. ### Removal of Deprecated Features ### * Manual lifecycle points finalInit, postInit, etc. * Obsolete syntax for arguments, options, etc. * `"autoInit"` grade * Static and dynamic environments, replaced by Global Instantiator * The old model component hierarchy and "old ChangeApplier" implementation * `fluid.demands` * No more distinction between fast and dynamic invokers * Model Relay specific component grades have been removed, model relay now works with any model grade. ## Obtaining Infusion ## * [Fork on GitHub](https://github.com/fluid-project/infusion) * [Download a Build](https://github.com/fluid-project/infusion/releases) * [NPM](https://www.npmjs.com/package/infusion) You can create your own custom build of Infusion using the [grunt build script](README.md#how-do-i-create-an-infusion-package). ## Demos ## Infusion ships with demos of all of the components in action. You can find them in the _**demos**_ folder in the release bundle or on our [build site](http://build.fluidproject.org/). When running the demos on your local machine, a web server is recommended. Several of the demos make use of AJAX calls; which typically are not allowed by the browser when run from the local file system. ## License ## Fluid Infusion is licensed under both the ECL 2.0 and new BSD licenses. More information is available in our [wiki](http://wiki.fluidproject.org/display/fluid/Fluid+Licensing). ## Third Party Software in Infusion ## This is a list of publicly available software that is redistributed with Fluid Infusion, categorized by license: ### Apache 2.0 ### * [`fluid.load.scripts` is based on Jake Archibald's script loading example](http://www.html5rocks.com/en/tutorials/speed/script-loading/#toc-dom-rescue) * [Open Sans Light font](http://www.google.com/fonts/specimen/Open+Sans) ### MIT License ### * [Buzz v1.1.0](http://buzz.jaysalvat.com) * [Foundation v6.2.3](http://foundation.zurb.com/index.html) * [HTML5 Boilerplate v4.3](http://html5boilerplate.com/) * [html5shiv v3.7.2](https://code.google.com/p/html5shiv/) * [jQuery v3.1.0](http://jquery.com/) * [jQuery Mockjax v2.2.1](https://github.com/jakerella/jquery-mockjax) * [jQuery QUnit v1.12.0](http://qunitjs.com) * [jQuery QUnit Composite v1.0.1](https://github.com/jquery/qunit-composite) * [jQuery scrollTo v1.4.2](http://flesler.blogspot.com/2007/10/jqueryscrollto.html) * [jQuery Touch Punch v0.2.2](http://touchpunch.furf.com/) * [jQuery UI (Core; Interactions: draggable, resizable; Widgets: button, checkboxradio, controlgroup, dialog, mouse, slider, tabs, and tooltip) v1.12.1](http://ui.jquery.com/) * [jquery.selectbox v0.5 (forked)](https://github.com/fluid-project/jquery.selectbox) * [jquery.simulate](https://github.com/eduardolundgren/jquery-simulate) * [Micro Clearfix](http://nicolasgallagher.com/micro-clearfix-hack/) * [Normalize v4.1.1](https://necolas.github.io/normalize.css/) ### zlib/libpng License ### * [fastXmlPull is based on XML for Script's Fast Pull Parser v3.1](http://wiki.fluidproject.org/display/fluid/Licensing+for+fastXmlPull.js) ## Documentation ## Documentation and tutorials can found on the [Infusion Documentation](http://docs.fluidproject.org/infusion/development/) site. ## Supported Browsers ## Infusion 2.0 was tested with the following browsers: * Chrome current (version 54) * Firefox current (versions 49-50) * Internet Explorer (version 11) * Microsoft Edge (version 38) * Safari (version 10) Additional testing for mobile devices was performed with the following: * Chrome (Android 6.0.1) * Safari (iOS 10.1.1) For more information see the [Fluid Infusion browser support](https://wiki.fluidproject.org/display/fluid/Prior+Browser+Support) wiki page. ### Testing Configurations ####
Testing Task | Desktop Browser | Mobile Browser | |||||
---|---|---|---|---|---|---|---|
Chrome | Firefox | IE 11 | MS Edge | Safari | Chrome for Android | Safari iOS | |
Run All Unit Tests | Chrome 54 (macOS 10.12) | Firefox 49 (macOS 10.12) | IE 11 (Win 10) | MS Edge 38 (Win 10) | Safari 10 (macOS 10.12) | Chrome 54 (Android 6.0.1 & 7.0.0) | Safari (iOS 10.1.1) |
Smoke Tests - All Manual Tests | Chrome 54 (macOS 10.11.6) | Firefox 50 (macOS 10.12.1) | IE 11 (Win 8.1) | MS Edge 38 (Win 10) | Safari 10 (macOS 10.12.1) | Chrome 54 (Android 6.0.1) | Safari (iOS 10.1.1) |
Smoke Tests - All Demos | Chrome 54 (macOS 10.12.1) | Firefox 50 (macOS 10.12.1) | IE 11 (Win 8.1) | MS Edge 38 (Win 10) | Safari 10 (macOS 10.12.1) | Chrome 54 (Android 6.0.1) | Safari (iOS 10.1.1) |
Smoke Tests - All Examples | Chrome 54 (macOS 10.12.1) | Firefox 50 (macOS 10.12.1) | IE 11 (Win 8.1) | MS Edge 38 (Win 10) | Safari 10 (macOS 10.12.1) | Chrome 54 (Android 6.0.1) | Safari (iOS 10.1.1) |
Inline Edit QA Test Plan - Simple Text | Chrome 54 (macOS 10.10) | Firefox 49 (openSUSE Linux 42.1) | IE 11 (Win 8.1) | MS Edge 38 (Win 10) | Safari 10 (macOS 10.12) | N/A | N/A |
Keyboard Accessibility QA Test Plan | Chrome 54 (Win 10) | Firefox 49.0.2 (macOS 10.12) | IE 11 (Win 8.1) | MS Edge 38 (Win 10) | Safari 10 (macOS 10.12) | N/A | N/A |
Pager QA Test Plan | Chrome 54 (Win 10) | Firefox 49.0.2 (macOS 10.12) | IE 11 (Win 7) | MS Edge 38 (Win 10) | Safari 10 (macOS 10.12) | N/A | N/A |
Progress QA Test Plan | Chrome 54 (macOS 10.11.6) | Firefox 49.0.2 (macOS 10.12) | IE 11 (Win 7) | MS Edge 38 (Win 10) | Safari 10 (macOS 10.12) | N/A | N/A |
Reorderer QA Test Plan - Image Reorderer | Chrome 54 (Win 10) | Firefox 49.0.2 (macOS 10.12) | IE 11 (Win 7) | MS Edge 38 (Win 10) | Safari 10 (macOS 10.12) | N/A | N/A |
Reorderer QA Test Plan - Layout Reorderer | Chrome 54 (macOS 10.11.6) | Firefox 49.0.2 (macOS 10.12) | IE 11 (Win 7) | MS Edge 38 (Win 10) | Safari 10 (macOS 10.12) | N/A | N/A |
Reorderer QA Test Plan - List Reorderer | Chrome 54 (macOS 10.11.6) | Firefox 49.0.2 (macOS 10.12) | IE 11 (Win 7) | MS Edge 38 (Win 10) | Safari 10 (macOS 10.12) | N/A | N/A |
Reorderer QA Test Plan - Grid Reorderer | Chrome 54 (macOS 10.11.6) | Firefox 49.0.2 (macOS 10.12) | IE 11 (Win 7) | MS Edge 38 (Win 10) | Safari 10 (macOS 10.12) | N/A | N/A |
Preferences Framework QA Test Plan | Chrome 54 (Win 10) | Firefox 49.0.2 (macOS 10.12) | IE 11 (Win 7) | MS Edge 38 (Win 10) | Safari 10 (macOS 10.12) | N/A | N/A |
UI Options QA Test Plan - Separated Panel | Chrome 54 (Win 10) | Firefox 49.0.2 (Win 10) | IE 11 (Win 7) | MS Edge 38 (Win 10) | Safari 10 (macOS 10.12) | N/A | N/A |
Uploader QA Test Plan | Chrome 54 (macOS 10.12.1) | Firefox 49.0.2 (macOS 10.12.1) | IE 11 (Win 10) | MS Edge 38 (Win 10) | Safari 10 (macOS 10.12.1) | N/A | N/A |