Vlad Filippov

Vlad Filippov

software engineer / web dev / open source hacker

Grunt 1.0.0 released

Originally posted at gruntjs.com/blog/2016-04-04-grunt-1.0.0-released

With still increasing download popularity of Grunt JS it was important to create a 1.0.0 release that updates some of the dependencies and addresses important bugs. I’ve been part of the open source Grunt JS team for a while now and it was exciting to work with @shama on this release. Please visit the Grunt JS blog or read the following 1.0.0 changes below:

The Grunt team is pleased to announce the release of Grunt 1.0.0.

 

This release is made possible by @shama, @vladikoff, @jkaussieskater, @dmethvin.

Also thanks to contributions by @XhmikosR, @AurelioDeRosa, @Arkni, @arithmetric, @ascripcaru.

Be advised Grunt 1.0.0 will no longer support Node.js v0.8.

We ask you to test this release and report any issues you are experiencing.

Update to Grunt 1.0.0 today using:

npm install grunt@1.0.0 --save-dev

Please read the RC1 blog post for more details about changes to Grunt with version 1.0.

Peer Dependencies

If you have a Grunt plugin that includes grunt in the peerDependencies section of your package.json, we recommend tagging with "grunt": ">=0.4.0". Otherwise for npm@2 users grunt@1.0.0 will receive a hard error when trying to install your plugin and npm@3 users will get a warning. We have sent over two thousand pull requests to existing plugins to make this change.

We ask you to send pull requests to your favourite plugins and ask them to update thepeerDependencies section of their package.json.

Changes in 1.0.0

  • Prevent async callback from being called multiple times. Pull #1464.
  • Update copyright to jQuery Foundation and remove redundant headers. Fixes #1478.
  • Update glob to 7.0.x. Fixes #1467.
  • Removing duplicate BOM strip code. Pull #1482.
  • Updated to latest cli ~1.2.0
  • Ensure a grunt bin gets created upon install.

Changes in RC1

  • coffee-script is upgraded to ~1.10.0 which could incur breaking changes when using the language with plugins and Gruntfiles.
  • nopt is upgraded to ~3.0.6 which has fixed many issues, including passing multiple arguments and dealing with numbers as options. Be aware previously --foo bar used to pass the value 'bar' to the option foo. It will now set the option foo to true and run the task bar.
  • glob is upgraded to ~6.0.4 and minimatch is upgraded to ~3.0.0. Results are now sorted by default with grunt.file.expandMapping(). Pass the nosort: true option if you don’t want the results to be sorted.
  • lodash was upgraded to ~4.3.0. Many changes have occurred. Some of which that directly effect Grunt are grunt.util._.template() returns a compile function and grunt.util._.flatten no longer flattens deeply. grunt.util._ is deprecated and we highly encourage you to npm install lodashand var _ = require('lodash') to use lodash. Please see the lodash changelog for a full list of changes: https://github.com/lodash/lodash/wiki/Changelog
  • iconv-lite is upgraded to ~0.4.13 and strips the BOM by default.
  • js-yaml is upgraded to ~3.5.2 and may affect grunt.file.readYAML. We encourage you to pleasenpm install js-yaml and use var YAML = require('js-yaml') directly in case of future deprecations.
  • A file mode option can be passed into grunt.file.write().
  • Done, without errors. was changed to Done. to avoid failing by mistake on the word errors.

As we mentioned before, we are also looking for contributors to all Grunt repositories and are willing to mentor you to get more experience with open source.