- support windows paths in require.js - include path.win32.js?
- npm tests
- better handling of analysis elements from npm domain
- 0.6 compat fixed properly
- forgot to use latest logule
- maintenance release to support 0.8 properly
- testability using tap rather than expresso, dependency cleanups and slight code cleaning
- type testing bit moved into the
typrmodule - In hindsight, this should have been
0.16.1, should not break anything - sorry
- logging now uses one interface for server side logging and one for client side logging
- set('logging', level) now ignores level set as info or warn, only error and debug work (->docs)
- set('logging') controls client side logging for debug only, whereas .logger() controls server logging fully (->docs)
- all crashes now produce prettified output to easier identify what went wrong if something did during compilation
- New slim API docs!
- Modularity doc updated to include some domain vs npm ideas
- Error messages are stylized to highlight the actual problem instead of just throwing
- Factor tree printing code out to a separate module and use that: topiary
- Allow node modules to not include extensions on package.json's main
- 0.15.2 got lost to an accidental ctrl-c mid publish
- Better output formatting
- Fixed hickup in resolver code which failed to resolve properly nested npm modules to inject suppressed logule sub to control server output
- require parsing is now done with substack's caching layer around detective: deputy - NB: greatly speeds up analysis on large code bases
- proper npm module support (see new npm docs)
- separate libs file is now also recompiled on deletion
- analysis().hide('domainName') now works [regression]
- Coffee-Script has to be registered [only works programmatically and not via CLI]
- plugin usage via CLI is deprecated - was a bad and clunky way of doing things
- Various refactoring and test improvements (travis build now succeeds from blank install on both 0.4 and 0.6)
- Use logule@0.5.3 to reduce dependency graph a little
- Fix failing CommonJS guards checking for module.exports when we used to expect it to be set if singular export.
- If module.exports has own properties, or is no longer an object at the end a file, then everything attached to exports will be discarded.
- Use logule@0.5.2's verify functionality to ensure correctly passed in logule instance
- Updated to newer logule
- Optionally pass down a logule sub (or something else with compatible API) as an optional way of defining log output
- npm test in npm 1.0.106 works from scratch, 1.1.0 alphas need to manually clone test dependencies for now
- Simple example syntax error fixed
- Logger moved out of modul8 to clux/logule
- Persistance logic moved to its own file
- Persister stores the states in a config file in configurable directory rather than one file per output in the states directory
- Bug in CLI caused libs not to be compiled when going via stdout
- data API for strings now only take code strings (pre-serialized values)
- tests now pass with node 0.6.1 using
npm test - tests (when npm installed) now include vital file
- Plugin::name can be a simple key (cleaner Plugin API)
- CLI allows concatenating on libraries like the main API (but without the separate libraries().target() option available)
- Existing CLI API modified to be consistent with itself: Delimiters are querystring style.
- CLI test module included in test/
- Fixed bug causing collision testing to not be strict enough
- Fixed bug causing arbiters with globals different to its name to not resolve on the client
- Bundled require code passes through JSLint
- Domains can be required with simply
require('dom::')if an index file is present on the domain - If compile target is deleted, forceUpdate output regardless of cached states
- Plugin API more semantic, name, data, domain methods all returning singles rather than pairs and triples.
- Deprecates m8-templation <0.2.0 and m8-mongoose <0.2.0 (newer versions released simultaneously - and plugin API expected to freeze soon)
- Tests for Plugin interface
- Better package.json future proofing of build breaking updates from dependencies
- functions passed to
.data()will self-execute on the client (the fn.toString representation) - to be used with caution - strings passed in to
.data()will no longer assumed to be code strings, they will be strings - strings passed in to
.data().add()when third parameter is set to true, it will be assumed to be a code string - Ditto for plugin API (docs updated)
- functions passed to
.data()will be serialized using fn.toString() - to be used with caution - Plugin documentation tweaks
- More sensibly, the logging option on the CLI can set the level, so that the unset default corresponds to the API default.
- Data functions are executed in the interface rather than in the last step
- Plugin interface via
.use() - Documentation of Plugins + two quick plugins introduced
.data()no longer uses pull functions but expects the data directly - it will serialize itself if needed - can take objects,arrays,numbers or serialized JavaScript- Server side logging now includes a socket.io style logger class
- Better documentation of logging
- node v0.6.0 shown to work (although some tests segfaults)
- Big documentation improvements
- Intelligent whitespace added to output code when not minified to make it more readible
- Logging level defaults to ERROR (CLI still has to do -l for this)
- External extensions bug in 0.9.<2
- Logging bug fixed
- Logging now has levels - defaults to false, -l flag in CLI sets to ERROR level
- Fixed a bug causing global install not to resolve all dependencies for CLI
- Write the client side code manually in JavaScript for client side readibility
- No longer passing data in to the require closure from outside - simply inject it with RegExps
- Relative requires a little more flexible (../ prefix allowed vs old ./../)
.domains()call no longer required - application domain inferred from entrypoint- entry point must be specified to modul8(entry) WITH a path (relative or absolute) - as opposed to just specifying filename and inferring its path from the main domain
- Fixed a bug in 0.7.0 where app would not recompile even if app files had been modified
- Command Line Interface - documented under CLI
- recompiling now happens if settings were changed as well (bug)
- move underscore copied snippets out of src - require underscore instead
- domloader API simplified to work with CLI, also now defaults to anonymous fn rather than jQuery domloader
.compile()will not recompile the file if no changes have been made to previously included files- modified test suite included to ensure above works
- arbiter test suite included
.analysis.hide(domain)was not working correctly- server side resolver was ignoring resource names on other domains when clashing with arbiters
.arbiters()allows an object to be inserted at once- Biggish documentation improvements
require('folder')will look for afolderfile then anindexfile underfolder/require('folder/')will look for anindexfile underfolder/require()collision priority updated- collision test suite included
.compile()will throw error if multiple files with same unique identifier (extensionless dom::filename) are attempted included - but helpfully after.analysis().register('.ext', extCompiler)will allow bundling of other altJs languages
.data()and.domains()now both can take objects directly instead of adding.libraries()can be specified without all the 3 sub-calls, just specify all htree parameters direcly on this instead.analysis().ignore(domain)can be used to supress certain domains from printed depedency tree (perhaps good to hideexternalorM8)
- Better documentation + examples bundled
- Fixed a collision bug causing same folder structure to be ignored by the bundler in one branch
- Fixed a bug in the circular checker not correctly matching + no longer hanging on cirtain curculars
- Loggability of requires on the client works as in the documentation
M8.domains()now returns a list of strings instead of console.logging it- 'M8.data()' and 'M8.external()' does not return
- Configured a basic test environment using zombiejs
- Safed up API against subclass calls against on superclass.
- Full documentation
arbiters()added
- Fix a define and a require bug
- Initial commit on the new name
- Style bundling factored out to a separate module
- Initial commit on brownie