WordPress.org

Make WordPress Core

Opened 6 years ago

Closed 5 years ago

Last modified 5 years ago

#27340 closed enhancement (fixed)

Update Grunt devDependencies in package.json

Reported by: mjbanks Owned by:
Milestone: 4.0 Priority: normal
Severity: normal Version:
Component: Build/Test Tools Keywords: has-patch
Focuses: Cc:
PR Number:

Description

Update a number of grunt modules to latest stable versions in package.json.

"grunt" updated from ~0.4.2 to ~0.4.3
"grunt-contrib-cssmin" updated from ~0.7.0 to ~0.9.0
"grunt-contrib-uglify" updated from ~0.3.0 to ~0.4.0
"grunt-contrib-compress" updated from ~0.6.0 to ~0.7.0
"grunt-sass" updated from ~0.10.0 to ~0.11.0
"grunt-autoprefixer" updated from ~0.7.1 to ~0.7.2
"grunt-contrib-imagemin" updated from ~0.4.1 to ~0.5.0

Attachments (5)

27340.diff (1.1 KB) - added by mjbanks 6 years ago.
27340.2.diff (1.1 KB) - added by netweb 6 years ago.
27340.3.diff (1.2 KB) - added by jorbin 6 years ago.
27340.4.diff (1.3 KB) - added by netweb 6 years ago.
27340.5.diff (1.3 KB) - added by netweb 5 years ago.

Download all attachments as: .zip

Change History (25)

@mjbanks
6 years ago

#1 @mjbanks
6 years ago

  • Keywords has-patch added

#2 @TobiasBg
6 years ago

#27342 was marked as a duplicate.

#3 @TobiasBg
6 years ago

#27342 has some details on the changes in grunt 0.4.3.
#27343 is also related, dealing with the phpunit task.

@netweb
6 years ago

#4 @netweb
6 years ago

In 27340.2.diff​
Update the following packages:

  • "grunt-contrib-cssmin": "~0.7.0" -> "~0.9.0"
  • "grunt-contrib-uglify": "~0.3.0" -> "~0.4.0"
  • "grunt-contrib-watch": "~0.5.3" -> "~0.6.1"
  • "grunt-contrib-compress": "~0.6.0" -> "~0.7.0"
  • "grunt-contrib-jshint": "~0.8.0" -> "~0.9.2"
  • "grunt-sass": "~0.10.0" -> "~0.12.0"
  • "grunt-autoprefixer": "~0.7.1" -> "~0.7.2"
  • "grunt-patch-wordpress" : "~0.2.0" -> "~0.2.1"

Using the above with WordPress Revision: r27810 and npm install the following tests work as expected:

  • grunt/grunt build
    • (clean:all, copy:all, cssmin:core, colors, rtl, cssmin:rtl, cssmin:colors, uglify:core, concat:tinymce, compress:tinymce, clean:tinymce, jsvalidate:build)
  • grunt precommit
    • (autoprefixer:core, imagemin:core, jshint, qunit:compiled)
  • grunt test
    • (qunit:compiled, phpunit)
  • grunt patch
  • grunt watch

(I am pretty sure all of the above grunt tasks include all available grunt tasks)


Detailed Changelog:

https://www.npmjs.org/package/grunt-contrib-cssmin

  • grunt-contrib-cssmin v0.7.0 -> v0.8.0
    • update clean-css v2.1.0
  • grunt-contrib-cssmin v0.8.0 -> v0.9.0
    • refactor. remove grunt-lib-contrib dependency. backwards-compatibly remove false choice from report.

https://www.npmjs.org/package/grunt-contrib-uglify

  • grunt-contrib-uglify v0.3.0 -> v0.3.1
    • fix relative path issue in sourcemaps
  • grunt-contrib-uglify v0.3.1 -> v0.3.2
    • fix handling of sourceMapIncludeSources option.
  • grunt-contrib-uglify v0.3.2 -> v0.3.3
    • remove unnecessary calls to grunt.template.process
  • grunt-contrib-uglify v0.3.3 -> v0.4.0
    • remove grunt-lib-contrib dependency and add more colors

https://www.npmjs.org/package/grunt-contrib-compress

  • grunt-contrib-compress v0.6.0 -> v0.7.0
    • Update archiver to v0.6.0

https://www.npmjs.org/package/grunt-contrib-watch

  • grunt-contrib-watch v0.5.3 -> v0.6.0
    • Clear changed files after triggering live reload to ensure they're only triggered once.
    • cwd option now accepts separate settings for files and spawn.
    • Fix to make interrupt work more than once.
    • Enable live reload over HTTPS.
    • Print newline after initial 'Waiting...'
    • Remove deprecated grunt.util libs
    • Add reload option to specify files other than Gruntfile files to reload.
    • Update to gaze@0.5.1
    • Use fork of tiny-lr (which has quiter operation, support for HTTPS and windows path fixes)
    • Add livereloadOnError, which if set to false will not trigger live reload if there is an error.
  • grunt-contrib-watch v0.6.0 -> v0.6.1
    • Fix for watch targets named "default"

https://www.npmjs.org/package/grunt-contrib-jshint

  • grunt-contrib-jshint v0.8.0 -> v0.9.0
    • Replace deprecated grunt.util._.clone with Object.create()
    • Replace deprecated grunt.util.hooker with hooker lib
    • Enhancing the readability of the output.
    • Reporter output is relative to the output file.
    • Pass jshint options to the external reporter.
  • grunt-contrib-jshint v0.9.0 -> v0.9.1
    • Don't pass reporterOutput option to jshint.
  • grunt-contrib-jshint v0.9.1 -> v0.9.2
    • Fixes a bug where reporterOutput was still passed to jshint.

https://www.npmjs.org/package/grunt-sass (No changelog, based on GitHub repo commits)

  • grunt-sass v0.10.0 -> v0.11.0
    • add sourcemap option set up logic.
    • use each-asyn
  • grunt-sass v0.11.0 -> v0.12.0
    • Updating source map testing.
    • add imagePath option
    • various tweaks

https://www.npmjs.org/package/grunt-autoprefixer (No changelog, based on GitHub repo commits)

  • grunt-autoprefixer v0.7.1 -> v0.7.2
    • Use chalk module to colorize terminal output
    • Log source map and patch files

https://www.npmjs.org/package/grunt-patch-wordpress

  • grunt-patch-wordpress v0.2.0 -> v0.2.1
    • Add a new function for if we are in an a/b patch and adjust the patch level accordingly.

#5 follow-up: @netweb
6 years ago

The last part of my 27340.2.diff​ update are the current BLOCKERS related only in terms of packages that cannot yet be upgraded are NOT included in 27340.2.diff​

http://gruntjs.com/

  • When devving Grunt, do "npm install && npm uninstall grunt" (isaacs/npm#3958)
  • Grunt is now tested on Node.js 0.11
  • Extracted internal "util" lib to "grunt-legacy-util" lib
  • task.normalizeMultiTaskFiles now flattens nested "files" arrays. Closes gh-1034.
  • Better error in renameTask if task doesn't exist. Closes gh-1058.
  • Update rimraf to latest version. Closes gh-1043.
  • Empty string "ext" should strip extension. Closes gh-1087.
  • Add expandMapping .extDot option. Can be 'first' or 'last' but defaults to 'first'. Closes gh-979.
  • Add default array for util.spawn optional args. Closes gh-1064.
  • util.spawn "grunt" option now uses proper Node, passes Node exec options. Closes gh-980, gh-981, gh-877.
  • Make all tasks asynchronous to reduce call stack. Closes gh-1026.
  • Fix <%= grunt.task.current.target %> in Multitask files. Closes gh-994.
  • Generalize cli tests, see gh-983, gh-991.
  • --debug option can optionally be Boolean. Closes Gh-983, gh-991.

https://www.npmjs.org/package/grunt-contrib-imagemin (No changelog, based on GitHub repo commits)

  • grunt-contrib-imagemin v0.4.1 -> v0.5.0
    • BLOCKER grunt imagemin and grunt precommit tasks fail to complete
    • Related #25169#comment:17
  • Extract the logic into an external lib [image-min](https://github.com/kevva/image-min).
  • Note: The latest official release is v0.5.0 though npmjs.org has no updated v0.4.1 -> v0.5.0 changelog
  • Note: v0.6.0-pre is available on GitHub and not npmjs.org
Last edited 6 years ago by netweb (previous) (diff)

@jorbin
6 years ago

#6 follow-up: @jorbin
6 years ago

  • Keywords commit added
  • Milestone changed from Awaiting Review to 4.0

I've updated the patch. imagemin remains the only one that we can't update.

#7 follow-up: @bpetty
6 years ago

  • Keywords commit removed

Forgetting about the #27343 blocker?

#8 in reply to: ↑ 7 @netweb
6 years ago

Replying to bpetty:

Forgetting about the #27343 blocker?

Correct, Grunt cannot be updated to 0.4.4 until #27343 is fixed.

#9 in reply to: ↑ 6 @netweb
6 years ago

Replying to jorbin:

I've updated the patch. imagemin remains the only one that we can't update.

I just tried grunt-contrib-imagemin v0.7.0 released 29th April and the task still fails:

Warning: Command failed:  Used --force, continuing.
Fatal error: Cannot read property 'contents' of undefined

Reported and commented upstream at https://github.com/gruntjs/grunt-contrib-imagemin/issues/208

@netweb
6 years ago

#10 @netweb
6 years ago

In 27340.4.diff, differences from 27340.3.diff

#27343 now has a patch and works for me (this patch also includes alphabetised NPM packages in package.json)

#11 @netweb
6 years ago

@jorbin or @bpetty Could one of you please take a look at the grunt-contrib-imagemin issue upstream, starting around the following comment grunt-contrib-imagemin/issues/208#issuecomment-42826802 it is truly beyond my skillset now and I am just hacking away at things I do not understand and have hit a wall where I can't even do that ;)

This ticket was mentioned in IRC in #wordpress-dev by jorbin. View the logs.


6 years ago

@netweb
5 years ago

#13 in reply to: ↑ 5 @netweb
5 years ago

Refreshed patch and update of comment:4, in 27340.5.diff​ update the following packages:

  • "grunt": "~0.4.2" -> "~0.4.5"
  • "grunt-autoprefixer": "~0.7.1" -> "~0.7.6"
  • "grunt-contrib-compress": "~0.6.0" -> "~0.9.1"
  • "grunt-contrib-concat": "~0.3.0" -> "~0.4.0"
  • "grunt-contrib-cssmin": "~0.7.0" -> "~0.10.0"
  • "grunt-contrib-jshint": "~0.8.0" -> "~0.10.0"
  • "grunt-contrib-qunit": "~0.4.0" -> "~0.5.1"
  • "grunt-contrib-uglify": "~0.3.0" -> "~0.5.0"
  • "grunt-contrib-watch": "~0.5.3" -> "~0.6.1"
  • "grunt-sass": "~0.10.0" -> "~0.14.0"

Outstanding grunt-contrib-imagemin See comment:5 and comment:11


Using the above with WordPress Revision: r28802 and npm install the following tests work as expected:

  • jshint:plugins is included in grunt precommit and grunt travis:js See #28464
  • grunt/grunt build
    • (clean:all, copy:all, cssmin:core, colors, rtl, cssmin:rtl, cssmin:colors, uglify:core, concat:tinymce, compress:tinymce, clean:tinymce, jsvalidate:build)
  • grunt precommit
    • (autoprefixer:core, imagemin:core, jshint, qunit:compiled)
  • grunt test
    • (qunit:compiled, phpunit)
  • grunt patch
  • grunt watch

Detailed Changelog:

http://gruntjs.com/

  • grunt v0.4.2 -> v0.4.3
    • https://github.com/gruntjs/grunt/blob/v0.4.3/CHANGELOG
    • When devving Grunt, do "npm install && npm uninstall grunt" (isaacs/npm#3958)
    • Grunt is now tested on Node.js 0.11
    • Extracted internal "util" lib to "grunt-legacy-util" lib
    • task.normalizeMultiTaskFiles now flattens nested "files" arrays. Closes gh-1034.
    • Better error in renameTask if task doesn't exist. Closes gh-1058.
    • Update rimraf to latest version. Closes gh-1043.
    • Empty string "ext" should strip extension. Closes gh-1087.
    • Add expandMapping .extDot option. Can be 'first' or 'last' but defaults to 'first'. Closes gh-979.
    • Add default array for util.spawn optional args. Closes gh-1064.
    • util.spawn "grunt" option now uses proper Node, passes Node exec options. Closes gh-980, gh-981, gh-877.
    • Make all tasks asynchronous to reduce call stack. Closes gh-1026.
    • Fix <%= grunt.task.current.target %> in Multitask files. Closes gh-994.
    • Generalize cli tests, see gh-983, gh-991.
    • --debug option can optionally be Boolean. Closes Gh-983, gh-991.
  • grunt v0.4.3 -> v0.4.4
  • grunt v0.4.4 -> v0.4.5
    • https://github.com/gruntjs/grunt/blob/v0.4.5/CHANGELOG
    • Updated rimraf to 2.2.8. Closes gh-1134.
    • Moved grunt.log into separate grunt-legacy-log module.
    • Updated grunt-legacy-util to 0.2.0. Closes gh-971, gh-1129, gh-1118.
    • Added grunt.task.exists method to check if a task exists. Closes gh-1131.
    • Added grunt.config.merge method to deep merge config data. See gh-1039.
    • Fixed symlink issues with 'file.isPathCwd' and 'file.doesPathContain'. Closes gh-1112.
    • Config and util.recurse no longer mangle Buffer instances. See gh-971.
    • Config and util.recurse now enumerate inherited object properties. See gh-1129.
    • Config and util.recurse now throw useful circular reference error. See gh-1118.
    • Warn instead of error when no new tasks found via '.loadTasks' method. Closes gh-1059.
    • Added Windows CI testing. Closes gh-1110.
    • Removed "CONTRIBUTING.md" from .npmignore. Closes gh-1093.

https://www.npmjs.org/package/grunt-autoprefixer

  • grunt-autoprefixer v0.7.1 -> v0.7.2
    • cascade option support.
  • grunt-autoprefixer v0.7.2 -> v0.7.3
    • A warning message if no sources are found.
  • grunt-autoprefixer v0.7.3 -> v0.7.4
    • Let users have both grunt-autoprefixer and autoprefixer NPM packages installed.
  • grunt-autoprefixer v0.7.4 -> v0.7.5
    • Autoprefixer 1.2.
  • grunt-autoprefixer v0.7.5 -> v0.7.6
    • Autoprefixer 1.3.

https://www.npmjs.org/package/grunt-contrib-compress

  • grunt-contrib-compress v0.6.0 -> v0.7.0
    • Update archiver to v0.6.0
  • grunt-contrib-compress v0.7.0 -> v0.8.0
    • Update archiver to v0.8.0
    • grunt-contrib-compress v0.8.0 -> v0.9.0
    • Update archiver to v0.9.0
    • grunt-contrib-compress v0.9.0 -> v0.9.1
    • allow directories to pass-through to archiver via filter

https://www.npmjs.org/package/grunt-contrib-concat

  • grunt-contrib-concat v0.3.0 -> v0.4.0
    • Output updates.

https://www.npmjs.org/package/grunt-contrib-cssmin

  • grunt-contrib-cssmin v0.7.0 -> v0.8.0
    • update clean-css v2.1.0
  • grunt-contrib-cssmin v0.8.0 -> v0.9.0
    • refactor. remove grunt-lib-contrib dependency. backwards-compatibly remove false choice from report.
  • grunt-contrib-cssmin v0.9.0 -> v0.10.0
    • update clean-css v2.2.0

https://www.npmjs.org/package/grunt-contrib-jshint

  • grunt-contrib-jshint v0.8.0 -> v0.9.0
    • Replace deprecated grunt.util._.clone with Object.create()
    • Replace deprecated grunt.util.hooker with hooker lib
    • Enhancing the readability of the output.
    • Reporter output is relative to the output file.
    • Pass jshint options to the external reporter.
  • grunt-contrib-jshint v0.9.0 -> v0.9.1
    • Don't pass reporterOutput option to jshint.
  • grunt-contrib-jshint v0.9.1 -> v0.9.2
    • Fixes a bug where reporterOutput was still passed to jshint.
  • grunt-contrib-jshint v0.9.2 -> v0.10.0
    • Update to JSHint 2.5.0

https://www.npmjs.org/package/grunt-contrib-qunit

  • grunt-contrib-qunit v0.4.0 -> v0.5.0
    • Add ability to hide PhantomJS console output.
    • Add option for binding phantomjs console to grunt output.
    • Add httpBase option.
    • Only call jsDump.parse() if a test failed.
  • grunt-contrib-qunit v0.5.0 -> v0.5.1
    • Updates grunt-lib-phantomjs.

https://www.npmjs.org/package/grunt-contrib-uglify

  • grunt-contrib-uglify v0.3.0 -> v0.3.1
    • fix relative path issue in sourcemaps
  • grunt-contrib-uglify v0.3.1 -> v0.3.2
    • fix handling of sourceMapIncludeSources option.
  • grunt-contrib-uglify v0.3.2 -> v0.3.3
    • remove unnecessary calls to grunt.template.process
  • grunt-contrib-uglify v0.3.3 -> v0.4.0
    • remove grunt-lib-contrib dependency and add more colors
  • grunt-contrib-uglify v0.4.0 -> v0.5.0
    • added option "expression" to uglify json and single functions. Removes unnecessary source map function. Simplify default source map naming function. Normalizes header and footer linefeeds. Source map names follow specs. Updates sourcemapin fixture.

https://www.npmjs.org/package/grunt-contrib-watch

  • grunt-contrib-watch v0.5.3 -> v0.6.0
    • Clear changed files after triggering live reload to ensure they're only triggered once.
    • cwd option now accepts separate settings for files and spawn.
    • Fix to make interrupt work more than once.
    • Enable live reload over HTTPS.
    • Print newline after initial 'Waiting...'
    • Remove deprecated grunt.util libs
    • Add reload option to specify files other than Gruntfile files to reload.
    • Update to gaze@0.5.1
    • Use fork of tiny-lr (which has quiter operation, support for HTTPS and windows path fixes)
    • Add livereloadOnError, which if set to false will not trigger live reload if there is an error.
  • grunt-contrib-watch v0.6.0 -> v0.6.1
    • Fix for watch targets named "default"

https://www.npmjs.org/package/grunt-sass (No changelog, based on GitHub repo commits)

  • grunt-sass v0.10.0 -> v0.11.0
    • add sourcemap option set up logic.
    • use each-asyn
  • grunt-sass v0.11.0 -> v0.12.0
    • Updating source map testing.
    • add imagePath option
    • various tweaks
  • grunt-sass v0.12.0 -> v0.12.1
    • Updating source map testing.
    • add imagePath option
    • various tweaks
  • grunt-sass v0.12.1 -> v0.13.0
    • rewrite task and bump node-sass
  • grunt-sass v0.13.0 -> v0.13.1
    • don't modify the options object
  • grunt-sass v0.13.1 -> v0.14.0
    • add precision option

#14 follow-up: @wonderboymusic
5 years ago

what needs to happen here? are there smaller bits that can be committed while others wait?

#15 in reply to: ↑ 14 @netweb
5 years ago

Replying to wonderboymusic:

what needs to happen here? are there smaller bits that can be committed while others wait?

27340.5.diff​ can be committed, all my tests of the tasks associated with the updates in this patch work as expected.

After 27340.5.diff is committed that leaves the only package grunt-contrib-imagemin out of date, this cannot be updated until fixes upstream per comment:11

#16 @ocean90
5 years ago

$ npm-check-updates
"grunt" can be updated from ~0.4.2 to ~0.4.5 (Installed: 0.4.5, Latest: 0.4.5)
"grunt-autoprefixer" can be updated from ~0.7.1 to ~0.8.2 (Installed: 0.7.6, Latest: 0.8.2)
"grunt-contrib-compress" can be updated from ~0.6.0 to ~0.10.0 (Installed: 0.6.1, Latest: 0.10.0)
"grunt-contrib-concat" can be updated from ~0.3.0 to ~0.5.0 (Installed: 0.3.0, Latest: 0.5.0)
"grunt-contrib-cssmin" can be updated from ~0.7.0 to ~0.10.0 (Installed: 0.7.0, Latest: 0.10.0)
"grunt-contrib-imagemin" can be updated from ~0.4.1 to ~0.7.1 (Installed: 0.4.1, Latest: 0.7.1)
"grunt-contrib-jshint" can be updated from ~0.8.0 to ~0.10.0 (Installed: 0.8.0, Latest: 0.10.0)
"grunt-contrib-qunit" can be updated from ~0.4.0 to ~0.5.2 (Installed: 0.4.0, Latest: 0.5.2)
"grunt-contrib-uglify" can be updated from ~0.3.0 to ~0.5.0 (Installed: 0.3.3, Latest: 0.5.0)
"grunt-contrib-watch" can be updated from ~0.5.3 to ~0.6.1 (Installed: 0.5.3, Latest: 0.6.1)
"grunt-sass" can be updated from ~0.10.0 to ~0.14.0 (Installed: 0.10.0, Latest: 0.14.0)

#17 @ocean90
5 years ago

In 29270:

Update the versions of several devDependencies in package.json.
Run npm update in the project root to receive updates.

props mjbanks, jorbin, netweb.
see #27340.

#18 follow-up: @ocean90
5 years ago

  • Resolution set to fixed
  • Status changed from new to closed

I have ignored grunt-contrib-imagemin in [29270], since netweb has some issues and I got a failed test for pngquant.

Closing as fixed for now.

#19 in reply to: ↑ 18 @netweb
5 years ago

Replying to ocean90:

I have ignored grunt-contrib-imagemin in [29270], since netweb has some issues and I got a failed test for pngquant.

Closing as fixed for now.

Cool and thanks, per comment:11, once the grunt-contrib-imagemin issue is fixed upstream we can create a new ticket/patch for that.

This ticket was mentioned in Slack in #core by netweb. View the logs.


5 years ago

Note: See TracTickets for help on using tickets.