Release Notes
January 18, 2015 ยท View on GitHub
Development
v5.0.0 - January 18th, 2015
Compatibility notes:
- Handlebars, Stylus, Cofeescript, etc dependencies are now peer dependencies. Implementors must now pick the versions that they will integrate with.
v4.0.2 - November 25th, 2014
- #122 - bower Source-Files (@DatenMetzgerX)
v4.0.1 - June 9th, 2014
- Remap base module when using localPath module map - 5ecab63
v4.0.0 - June 9th, 2014
- Include loadPrefix with Lumbar.moduleMap output - a91b944
- Expose stripPrefix from module map plugin - ce12685
- Flatten module map for projects without platform - 4ae6bb2
Compatibility notes:
- Lumbar.moduleMap output has changed to have both dynamic depth and optional path handling via the
localPathflag. Consumers should now iterate the structure looking forisMapand pass the desiredlocalPathflag for their needs.
v3.2.0 - May 17th, 2014
v3.1.5 - May 17th, 2014
- Provide better default for background attribute - 97ab1e0
v3.1.4 - May 12th, 2014
- Pin cheerio to 0.15.x to avoid cheerio#460 - d1b7315
v3.1.3 - April 12th, 2014
- Do not minimized server builds - 92ee4ad
- Remove unused imports - db0bcdb
v3.1.2 - April 8th, 2014
- Fix update externals under latest cheerio - e2b56e4
- minor typo - 2065220
v3.1.1 - April 1st, 2014
- #121 path separator on windows in handlebar templates with libraries (@DatenMetzgerX)
- Only insert 1 loaderPrefix script - 1e971ec
v3.1.0 - February 10th, 2014
- Allow specific route callbacks in module map - 41e9e60
- Add serverRender flag to moduleMap output - 5e4ba01
- Allow mixin of handlebars server options - ba2da0c
v3.0.0 - February 10th, 2014
Compatibility notes:
- Handlebars has been updated to use the 2.x codeline
v2.6.2 - December 31st, 2013
- Fix externals handling under Cheerio 0.13.0 - c2c727a
v2.6.1 - December 24th, 2013
- Use lumbar exit code in grunt task finalizer - aefe633
- Inherit IO for lumbar exec - 19588a9
- Fix lumbar grunt task parameter handling - ac3c35b
v2.6.0 - December 17th, 2013
v2.5.2 - December 13th, 2013
v2.5.1 - December 13th, 2013
-
#110 - Fix lumbar:watch command for win32 environment. (@redrathnure)
-
Handle missing keys on clone - 2fa471c
v2.5.0 - December 5th, 2013
- #114 - Extend and improve grunt task (@patrickkettner)
- #113 - nib -> ~1.0.1, stylus -> 0.41.0 (@Candid)
- #111 - Update grunt example documentation (@patrickkettner)
- Update Handlebars to 1.1 versions
- Update other npm dependencies
v2.4.1 - November 6th, 2013
- Fix server script filtering when disabled - e006531
v2.4.0 - November 6th, 2013
- Always load server-scripts plugin - a030c0e
Compatibility notes:
- The server-scripts plugin is now loaded by default. Any plugins that might have used the
serverkey on resources will want to migrate to alternatives or instruct their users to disable this plugin.
v2.3.4 - October 20th, 2013
- Fixup server script errors - f59aa40
- fix bad link for thorax seed/example repo - 6e4b301
- fix several minor spelling typos - 990002f
v2.3.3 - September 11th, 2013
-
Remove path.relative fork - ad98c29
-
Cleanup loadResource error message - a3e4ad2
-
Fix callback on missing static file - 12eb8e5
-
Always define a module name - 6b7dcd2
-
Include additional info for scope order error - cce73f2
2.3.2 - Aug 8th 2013
- Fixed map error under node 0.10
2.3.1 - Aug 8th 2013
- Fixed stylus includes when overriding files in nested mixins
2.3.0 - Aug 7th 2013
-
Update stylus to 0.36.1
-
Fixed root handling when overriding files in nested mixins
-
Fixed naming of overriden handlebars templates
-
Removed
Library.resolvePath.Library.mapFileshould be used instead
2.2.7 - Aug 5th 2013
- Fix mixin attribute propagation
2.2.6 - July 26th 2013
- Ensure that all mixins are iterated over when adding to module
- Update uglify to 2.3
2.2.5 - July 15th 2013
-
configmethod has been removedThis has been replaced with the
config(config)event which is emitted on the lumbar event instance after any changes to the config. -
Fixed error seen when mixins with child mixins where incorrectly included multiple times.
-
Refactor state machine and utils
2.2.4 - June 14th 2013
- Fix error with ./ mixin in stylus
2.2.3 - June 14th 2013
- Remove duplicate library declarations
2.2.2 - June 13th 2013
- Allow library loading on CLI via
--library=name - Allow CLI output named build or watch without requiring path components
- Allow library specification in template lookup
Compatibility Notes:
- If multiple watch or build commands are specified on the CLI the action will no longer be the last action specified. This could lead to unexpected behavior for improperly formed CLI commands.
2.2.1 - June 11th 2013
- Hack around bower config issue when passing config files on CLI
2.2.0 - June 11th 2013
-
Add bower namespace support through the
bowerresource attribute.Resources can no reference specific bower packages by name without needing to know where the bower path is.
-
Automatically load lumbar libraries that are in the bower components directory.
-
Use global config for template auto include
-
Update to Handlebars 1.0.12 / 1.0.0
-
Update minimum node version to 0.8
2.1.1 - June 4th 2013
- Update stylus-images dependency
2.1.0 - May 14th 2013
-
Lock down code generating library versions
-
#77 - Fix watch tracking if initial build fails
-
Allow server mode handlebars options
-
#88 - Implement global workers limit
-
Allow mixins to specify handlebars known helpers.
This moves the known helpers declaration from
templates.precompile.knownHelperstotemplate.knownHelpers. The older path is still available but does not support mixins.
2.0.0 - May 8th 2013
-
Fix template linking for library modules
-
Output templates prior to their referencing file
-
Use
libraryrather thancontainerfor fully qualified mixin lookup -
Allow plugins in Grunt task (@stehag)
-
Add verbose logging options
-
Rename root mixins to libraries.
Library import declarations have been changed from
mixinstolibrariesand are otherwise identical. Likewise, resource library references have been changed frommixintolibrary.
2.0.0 Beta 21 - Apr 3rd 2013
- Allow uglify config via
uglifyproject config option.
2.0.0 Beta 20 - Mar 22nd 2013
- Implement server-scripts plugin
2.0.0 Beta 19 - Mar 12th 2013
- Fix stylus execution outside of the lumbar directory
- Add overrides false flag to prevent output of particular resources from mixins
2.0.0 Beta 17 - Feb 21st 2013
- Added
lumbargrunt task
2.0.0 Beta 15 - Feb 5th 2013
Changes:
-
Break stylus execution into worker processes
This change dropped build times across the board, with a large build that was taking 20 seconds dropping to 7 seconds. This breaks existing stylus plugins who must now be defined in worker files which may then be required into the worker process. Ex:
resource.plugins.push({
plugin: __dirname + '/stylus-config-worker',
data: config
});
- Support source map output to alternate locations
2.0.0 Beta 14 - Jan 9th 2013
Changes:
- Fix bug while watching template files.
2.0.0 Beta 13 - Jan 8th 2013
Changes:
- Cleanup override handling in stylus templates
- Allow template hash references to pull from specific mixins
- Fix stylus mixin compilation under combined compile
- Allow for nested mixin definition
2.0.0 Beta 12 - Jan 7th 2013
Changes:
-
Add
dependsfield to module map for lumbar loader module dependencies -
Fix source map comment output
-
Source map parsing performance improvements
-
Run uglify in parallel worker process(es)
Dramatically decreased processing time for large projects on multi-core machines.
2.0.0 Beta 10 - Jan 2nd 2013
Changes:
- Fix handling of styleRoot in mixins.
2.0.0 Beta 10 - Dec 26th 2012
Changes:
-
Added support for source maps
-
Update mixin handling for namespaces
This allows different mixins to define mixins with the same name. Consumers can differentiate between the mixins via the
libraryattribute on the mixin reference. i.e."mixins": [ {"name": "test", "library": "phoenix-build"} ]All mixin projects must now define a name field so they may be referenced in this manner.
-
Fix incorrect configuration load when using watch mode.
-
Fix watch cleanup on file removal.
2.0.0 Beta 9 - Dec 21st 2012
Changes:
-
Filter duplicate files in the same module
This behavior may be disabled on the resource level via the
"duplicate": trueattribute or at the application level with the"filterDuplicates": falsetop level attribute. -
Files added through pattern mapping and auto-includes no longer require a config change to watch for changes.
-
Allow for disabling of all alliases with
"aliases": false -
Fix CoffeeScript plugin (@jasonwebster)
2.0.0 Beta 8 - Dec 16th 2012
Changes:
-
Implement source warning framework
-
Update to Uglify 2.2
NPM will refuse to install this under 0.8 and lower due to an upstream dependency so this is now optional.
-
Fix filtering of generated resources
2.0.0 Beta 7 - Dec 11th 2012
Changes:
-
Add support for mixin file references via. mixin resource attribute.
{"src": "lumbar-loader-backbone.js", "mixin": "lumbar-loader"},
Mixins must define a name value in the mixin config file to utilize this feature.
-
Fix template auto-include in mixin contexts
-
Fix execution error in coffeescript plugin (needs unit tests)
2.0.0 Beta 6 - Dec 4th 2012
Changes:
-
Add
template.rootproperty for template prefix stripping. -
Removed precompiled template template.
Moving forward template templates should use
{{handlebarsCall}}to differentiate between precompiled and client compiled mode.
2.0.0 Beta 5 - Nov 25th 2012
Changes:
-
Watch support for mixin config. Changes to mixin config files will now rebuild the project when in watch mode.
-
Allow file config independent rebuilds
Adds isPrimary flag to the file config. When true this will rebuild all configs for a given mode. When false will ignore changes to the inputs when undefined will continue the default behavior of separate rebuilds.
-
Optimize stylus builds when using multiple pixel densities.
This saves about 50% of the developer build time for mobile.walmart.com.
-
stylus-config plugin for sharing variables between stylus and javascript
-
Allow lumbar plugins to interact with the stylus compiler at runtime
Allows plugins to register callbacks on the stylus generator using the
pluginsfield. This mechanism allows additional plugins and source modifications on stylus compilation steps. The stylus-config plugin provides an example of this API's usage. -
Optimize plugin execution loop
The plugin executor now enforces async execution of async callbacks. This may break plugins that incorrectly took advantage of non-contract synchronous behavior in the app.
-
Switch to cheerio for update-externals parsing
-
Improve various error messages
-
Watch package config files for changes
-
CLI: Allow multiple --module parameters
2.0.0 Beta 4 - Nov 5th 2012
Changes:
- Allow specific modules to disable particular aliases.
2.0.0 Beta 3 - Oct 25th 2012
Changes:
-
Improves EMFILE error handling.
-
Watch unit test library updates
2.0.0 Beta 2 - Oct 23rd 2012
Changes:
-
Separated handlebars processing from template includes
Handlebar templates may now be included in script array or the template lookup field. Templates in the lookup field are no longer required to be handlebars templates.
-
Template plugin now supports pattern matching includes.
Example mapping for thorax template structure:
"templates": { "auto-include": { "js/views/(.*)\\.(?:js|coffee)": [ "templates/\$1.handlebars", "templates/\$1-item.handlebars", "templates/\$1-empty.handlebars" ] } } -
Local module reference support
Module variables are now aliased internally meaning that a module with a top level name
Applicationcan access it's exported members by accessing theApplicationobject at any point in time. Previously initialization logic was only able to access this through theexportsormodule.exportsreferences.Note that for top level objects this is an alias so assigning to this variable will not update the external reference. The default template is configured to warn in the event that it detects this situation.
-
Scope aliases
It's now possible to define aliases globally via the scope.alias config object and locally by defining the alias object on specific modules. These alias will create local variable references to any javascript statement, allowing for minimization of frequently used references.
Example global aliases:
"scope": { "aliases": { "View": "Application.View", "Application": "Application" } } -
Allow filtering of resources via not structures, i.e.
"platform": {"not": "web"}and"packages": {"not": ["foo", "bar"]}. -
Allow filtering of resources based on combined module or not via the
combinedattribute. Undefined for all modes, true for combined mode only, false for non-combined only. -
Significant rework of tests to focus more on unit testing with better edge case coverage
-
Fixed mixin modules implementation. Properly links to mixin files. Mixin modules may now be applied as mixins to other modules, have their own mixins, and be suppressed via false module value.
2.0.0 Beta 1 - Oct 9th 2012
Changes:
-
Mixin support
-
Stylus useNib flag
UPDATE: As of beta 2 this is no longer a breaking change. Includes referencing nib directly will have this flag applied.
Updates nib include in stylus to utilize a named attribute. This was necessary to support mixins of the nib plugin. Update path for nib users is to remove the
nibentry from the styles includes list and to add auseNibattribute to the styles object set to true.Old:
"styles": { "includes": ["nib"] }New:
"styles: { "useNib": true } -
Scope
- Possible to define both a scope and template value.
-
API Changes
-
config.readConfig utility method
Helper method that strips out comments and other comments that causes the JSON parse to blow up. It's recommended that all interaction with lumbar config files use this helper method.
-
config.create factor method
Method used for creating a config object from a javascript key-value object rather than directly from a file.
-
Moved config.fileList and config.filterResource to static lumbar.build object
-
Created new loadMixin and loadConfig plugin points. Plugins that need to perform mixin-specific behavior should implement these methods.
-