Metadata
- Source
- FLUID-224
- Type
- New Feature
- Priority
- Blocker
- Status
- Closed
- Resolution
- Fixed
- Assignee
- Laurel Williams
- Reporter
- Jonathan Hung
- Created
2008-02-08T11:29:59.000-0500 - Updated
2011-02-22T16:27:59.547-0500 - Versions
-
- 0.1
- 0.3
- 0.4beta1
- 0.4
- 0.5beta1
- 0.5
- 0.6beta1
- 0.6
- 0.7
- 0.8
- Fixed Versions
-
- 1.0
- Component
-
- Infrastructure
Description
The Ant build system we've got now should be updated to allow for more modular builds:
1. The ability to choose if jQuery and jQuery UI get rolled into Fluid-all.js or not.
2. The ability to build a <Component>-all.js, which includes all of the component's dependencies
3. The ability to build a MyFluid.js which allows the user to choose which components are included.
Attachments
Comments
-
Colin Clark commented
2008-07-31T16:28:31.000-0400 infusion-06-wishlist
-
Colin Clark commented
2008-09-16T12:54:20.000-0400 Simon, are you interested in taking this task on?
-
Colin Clark commented
2008-09-16T12:54:37.000-0400 dev-iteration43
-
Simon Simon commented
2008-09-16T13:23:42.000-0400 Colin, yes I will start working on this.
-
Simon Simon commented
2008-12-11T17:26:20.000-0500 To make the build configuration more flexible, a few recommendations to the Fluid files and directories:
1. The basic Fluid files reside under the respective js/fluid, css, html, and images directories.
2. Each Fluid component has its own directories, under the respective js/fluid, css, html, and images directories, and all the files associated with one component reside in these directories.
3. Any JavaScript not depended on by all Fluid components is in a separate file.
4. A Fluid component has all its component dependent files in its own directories. In case of one file is shared by two component, then each of the two components need to have this file in their own directory.
5. CSS files are organized in basic and component way. -
Colin Clark commented
2009-03-19T21:18:31.000-0400 After a great delay, this issue is coming back alive again. I'll help to get this code into the Infusion 1.0 release.
Simon, thanks so much for your patch. I've taken a look at it, and it looks good. A couple of comments:
- I like your directory structure suggestions above. I don't think we'll be able to go with a solution where copies of files are located throughout the repository. Unfortunately SVN doesn't give us any good way of linking to the same file in different locations, and I fear a real maintenance headache if we have multiple copies of the same code scattered through the repo. I think we'll have to go with a fairly fine-grained set of modules with hard-baked dependency declarations
- I'm trying to think through some strategies for removing the big if block, checking for each component. I'm wondering if we can perhaps create a lookup table or set of named properties, allowing us to concatenate a block of dependencies automatically, without having to add each new component to the switch statement in the Ant script. If you have any ideas, let me know. I'll play around with it tomorrow and see where I get with it.
Thanks again for this patch; it's a really good seed for this much-needed functionality for Infusion 1.0. Apologies for the delay in getting to this, but we'll definitely get it into the repository.
-
Justin Obara commented
2009-03-25T11:34:29.000-0400 Clean Up Parade 1.0
-
Colin Clark commented
2009-03-30T22:00:31.000-0400 Here's the latest draft version of the JavaScript-based dependency resolution code for the Infusion build. A couple of issues still to resolve:
1. We're pushing the specified module name on the list of dependencies first, when in fact it should be added at the end. So for example, here's the list of module dependencies for UI options after resolution:
uiOptions,jQuery,jQueryUICore,framework,renderer,jQueryUIWidgets,tableOfContents,json
Clearly uiOptions should come at the end.
2. getAllRequiredFiles() is failing because concat() doesn't seem to be working in Rhino. What's going on here?
There's definitely more renaming and refactoring to do, but this is a good start.
-
Colin Clark commented
2009-03-31T09:08:21.000-0400 Here's another version of Build.js that has been modified in two ways:
1. We now add the current module to the list of dependencies after recursing through all its own dependencies, not before.
2. To temporarily work around this issue of array types in Rhino, I wrote concatArray()This now appears to be working correctly. Next up: create a FileSet from this list of files.
-
Colin Clark commented
2009-03-31T10:01:16.000-0400 Third version of Build.js, this time with support for generating full paths for files. Getting closer.
-
Michelle D'Souza commented
2009-04-08T09:55:32.000-0400 The build scripts can now build custom builds. The remaining tasks can be handled for 1.1
-
Colin Clark commented
2010-02-23T16:42:29.000-0500 This issue was resolved back at Infusion 1.0
-
Michelle D'Souza commented
2011-02-22T16:27:59.544-0500 Closing issues that were resolved for 1.0 and earlier releases.