FLUID-1078: Provide a means for linking against multiple versions of the Infusion framework and components.

Metadata

Source
FLUID-1078
Type
New Feature
Priority
Major
Status
Closed
Resolution
Fixed
Assignee
Colin Clark
Reporter
Colin Clark
Created
2008-07-31T17:02:29.000-0400
Updated
2011-02-22T16:27:51.154-0500
Versions
N/A
Fixed Versions
  1. 0.5
Component
  1. Framework

Description

At the moment, you can only link against a single version of Fluid. Given that we work in a highly portalized world, we should add some means for handling more than one version at a time. Here's a sketch of the idea so far:

http://wiki.fluidproject.org/display/fluid/Versioning+the+Fluid+Framework

Comments

  • Colin Clark commented 2008-07-31T17:02:40.000-0400

    infusion-05-wishlist

  • Michelle D'Souza commented 2008-08-22T15:33:12.000-0400

    One issue with this strategy is the fact that we depend on jQuery and there is no way to have multiple versions of jQuery at a single time. So once this issue is addressed we would support multiple versions of fluid as long as all the versions depend on the same version of jQuery.

  • Michelle D'Souza commented 2008-08-22T15:35:02.000-0400

    It seems that YUI has a way of knowing whether there are multiple versions of the library loaded but doesn't actually support the different versions working.
    http://developer.yahoo.com/yui/docs/YAHOO.env.html#getVersion

  • Michelle D'Souza commented 2008-08-22T15:42:11.000-0400

    Dojo does allow for multiple versions at the same time.
    http://dojotoolkit.org/book/book-dojo/part-3-javascript-programming-dojo-and-dijit/multiple-versions-dojo-page

  • Michelle D'Souza commented 2008-08-25T11:07:52.000-0400

    As a convenience to users, I am going to assign 'fluid' to the versioned fluid namespace in Fluid.js. So for example, a user could do either "fluid.reorderList" or "fluid_0_5.reorderList".

    The result is that the last version of Fluid.js to load will set the 'fluid' namespace to its version. All the other files will defer to the already set version of fluid.

  • Colin Clark commented 2008-09-18T15:25:17.000-0400

    The biggest challenge we have with this versioning scheme is our use of invokeGlobalFunction(), which allows us to leak out of the current scope where fluid is defined. We'll have to modify invokeGlobalFunction so that it takes the current fluid instance as an argument.

  • Colin Clark commented 2008-09-20T11:20:56.000-0400

    This feature is now implemented for Infusion 0.5. For backwards compatibility with the unversioned "fluid" namespace, we've implemented a polite "last wins" policy. As a result, versions of Infusion prior to 0.5 must be included in the document first.

  • Michelle D'Souza commented 2011-02-22T16:27:51.153-0500

    Closing issues that were resolved for 1.0 and earlier releases.