- Fix UnicodeDecodeError during installation using pip 1.5.*.
Add public directive to mark the asset as public:
It can be used as an alternative to Environment‘s public_assets param.
require directive supports globbing now. If several assets are found, all are required in alphabetical order. If nothing found matching pattern, FileNotFound exception is raised.
Thus, require_directory app and require_tree app can be replaced with require app/* and require app/** respectively.
depend_on directive also supports globbing.
Add params directive to set asset parameters. Asset parameters can be used to change behavior of plugins for the current asset. For example, this can be used to disable top-level function wrapper in gears-coffeescript compiler:
//= params coffeescript=bare
Allow Gears plugins to inject themselves to the environment. See register_entry_points() docs.
Fix Python 3 compatibility (thanks to Yaoda Liu).
- Add ability to disable asset fingerprinting. This can be useful, if you want to compile assets for humans.
- Add gzip support.
- Add support for cache busting. This is done through fingerprinting public assets.
- Fix unknown extensions handling. Thanks @xobb1t for the report.
- Fix cssmin and slimit compressors.
- Fix saving handled assets.
- Python 3.3 is also supported.
Support for Python 3.2 was added (Thanks to Artem Gluvchynsky).
Public assets storage was simplified. There is no registry for them anymore. They are set using public_assets param of Environment now.
Also, public assets handling was slightly improved. public_assets must be a list or tuple of callables or regexps now. Default value:
DEFAULT_PUBLIC_ASSETS = ( lambda path: not any(path.endswith(ext) for ext in ('.css', '.js')), r'^css/style\.css$', r'^js/script\.js$', )
css/style.css, js/script.js and all assets that aren’t compiled to .css or .js are public by default.
Added require_tree directive. It works like require_directory, but also collects assets from subdirectories recursively.
Node.js-dependent compilers (CoffeeScript, Handlebars, Stylus and LESS) and compressors (UglifyJS and clean-css) have been moved into separate packages (gears-coffeescript, gears-handlebars, gears-stylus, gears-less, gears-uglifyjs, gears-clean-css), as they required some additional work to make them work (install some node.js modules, point your app to them, etc.). Now all these packages already include all required node.js modules, so you don’t need to worry about installing them yourself.
SASS and SCSS compilers have been removed since they did nothing to really support SASS and SCSS compilation.
Support for Python 2.5 was dropped.
- Added depend_on directive. It is useful when you need to specify files that affect an asset, but not to include them into bundled asset or to include them using compilers. E.g., if you use @import functionality in some CSS pre-processors (Less or Stylus).
- Main extensions (.js or .css) can be omitted now in asset file names. E.g., you can rename application.js.coffee asset to application.coffee.
- Added file-based cache.
- Environment cache is pluggable now.
- Fixed cache usage in assets.
- Fix require_directory directive, so it handles removed/renamed/added assets correctly. Now it adds required directory to asset’s dependencies set.
- Added asset dependencies. They are not included to asset’s bundled source, but if dependency is expired, then asset is expired. Any file of directory can be a dependency.
- Cache is now asset agnostic, so other parts of Gears are able to use it.
- Added support for cssmin as CSS compressor.
- Refactored compressors, compilers and processors. They are all subclasses of BaseAssetHandler now.
- Added config for Travis CI.
- Added some docs.
- Added more tests.
- Added missing files to MANIFEST.in
First public release.