WordPress.org

Make WordPress Core

Opened 5 years ago

Closed 5 years ago

#34177 closed task (blessed) (fixed)

Update package.json devDependencies for WordPress 4.4

Reported by: jorbin Owned by: jorbin
Milestone: 4.4 Priority: normal
Severity: normal Version:
Component: Build/Test Tools Keywords:
Focuses: Cc:

Description (last modified by netweb)

New versions of some of the devDependencies have been released. Let's test and upgrade!

"autoprefixer-core" can be updated from ~5.2.1 to ~6.0.1 (Installed: 5.2.1, Latest: 6.0.1)
"grunt-contrib-cssmin" can be updated from ~0.12.3 to ~0.14.0 (Installed: 0.12.3, Latest: 0.14.0)
"grunt-postcss" can be updated from ~0.5.4 to ~0.6.0 (Installed: 0.5.4, Latest: 0.6.0)
"grunt-sass" can be updated from ~1.0.0 to ~1.1.0-beta (Installed: 1.0.0, Latest: 1.1.0-beta)
"matchdep" can be updated from ~0.3.0 to ~1.0.0 (Installed: 0.3.0, Latest: 1.0.0)

Attachments (5)

34177-autoprefixer-postcss.diff (1.1 KB) - added by netweb 5 years ago.
34177-matchdep.diff (324 bytes) - added by netweb 5 years ago.
34177-grunt-contrib-cssmin.diff (489 bytes) - added by netweb 5 years ago.
34177-grunt-sass.diff (367 bytes) - added by netweb 5 years ago.
34177-grunt-contrib-uglify.diff (476 bytes) - added by netweb 5 years ago.

Download all attachments as: .zip

Change History (32)

#1 @netweb
5 years ago

Currently testing autoprefixer, grunt-postcss and grunt-sass

#2 @netweb
5 years ago

  • Description modified (diff)

Browserify was just bumped to 4.0.0 via r34888

Build Tools: upgrade grunt-browserify to ~4.0.0 and remove the watch task for browserify, which has its own internal watcher. Run npm install to update.
Props iseulde.
Fixes #31911.

#3 @netweb
5 years ago

  • Description modified (diff)

To clarify more on the semantic versioning of NodeJS packages:

The following dependencies are satisfied by their declared version range, but the installed versions are behind. You can install the latest versions without modifying your package.json by using npm update.

 grunt-browserify       ~4.0.0  →   ~4.0.1 
 grunt-contrib-copy     ~0.8.0  →   ~0.8.1 
 grunt-contrib-jshint  ~0.11.2  →  ~0.11.3 

Example, because we use the tilde ~ character e.g. "grunt-browserify": "~4.0.0", then version 4.0.1 will be installed via either a fresh checkout of the develop repo follwed by npm install or updated without a change to package.json via npm update

See http://semver.npmjs.com/ for further details.

Example: From a fresh SVN checkout of the devleop.svn.wordpress.org/trunk repo and npm install:

$ npm list --depth=0
WordPress@4.4.0 /Users/netweb/dev/weatherbot/wp/trunk
├── autoprefixer-core@5.2.1
├── grunt@0.4.5
├── grunt-browserify@4.0.1
├── grunt-contrib-clean@0.6.0
├── grunt-contrib-compress@0.13.0
├── grunt-contrib-concat@0.5.1
├── grunt-contrib-copy@0.8.1
├── grunt-contrib-cssmin@0.12.3
├── grunt-contrib-imagemin@0.9.4
├── grunt-contrib-jshint@0.11.3
├── grunt-contrib-qunit@0.7.0
├── grunt-contrib-uglify@0.9.2
├── grunt-contrib-watch@0.6.1
├── grunt-includes@0.5.1
├── grunt-jsvalidate@0.2.2
├── grunt-legacy-util@0.2.0
├── grunt-patch-wordpress@0.3.0
├── grunt-postcss@0.5.5
├── grunt-rtlcss@1.6.0
├── grunt-sass@1.0.0
└── matchdep@0.3.0

Per the above I'm removing the following from the original list of dependancies to update in this ticket: grunt-browserify, grunt-contrib-copy, and grunt-contrib-jshint.

If one of these dependancies are broken then we already have a problem without updating our package.json file as minor versions should not break anything per the semantic versioning of NodeJS package specifications. As such we no longer need to update minor versions of dependancies as long as we continue to use ~ to allow minor version updates in package.json.

If we want to use explicit versions then we should revisit using npm shrinkwrap to achieve this.

#4 follow-up: @jorbin
5 years ago

@netweb - Please don't make substantive modifications to the description. They are hard to follow and can create confusion. Also, if you want to switch to shrinkwraping, #30787 is open for that.

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

Patch 34177-autoprefixer-postcss.diff contains the Autoprefixer and PostCSS updates:

  • Autoprefixer Core 5.2.1 -> Autoprefixer 6.0.3 https://github.com/postcss/autoprefixer/releases/tag/6.0.0
    • Package autoprefixer-core is deprecated in favour of autoprefixer as part of the 6.0.0 release:
    • Packages autoprefixer and autoprefixer-core were merged in 6.0 release.
    • Autoprefixer 6.0.0 requires PostCSS 5.0.10 or greater

Testing: this Update/change results in "no changes" after running grunt precommit to our /build folder output.

Replying to jorbin:

@netweb - Please don't make substantive modifications to the description. They are hard to follow and can create confusion.

My bad, sorry

#6 @jorbin
5 years ago

In 35332:

Replace Autoprefixer Core with Autoprefixer

Autoprefixer Core 5.2.1 -> Autoprefixer 6.0.3 https://github.com/postcss/autoprefixer/releases/tag/6.0.0
Package autoprefixer-core is deprecated in favour of autoprefixer as part of the 6.0.0 release:
Packages autoprefixer and autoprefixer-core were merged in 6.0 release.
Autoprefixer 6.0.0 requires PostCSS 5.0.10 or greater
PostCSS 0.5.4 -> 0.6.0 https://github.com/nDmitry/grunt-postcss/compare/v0.5.4...v0.6.0

You will need to update your dev dependencies after this change.

Props netweb
See #34177

#8 @netweb
5 years ago

Patch 34177-matchdep.diff contains matchdep update from 0.3.0 to 1.0.0

Notes: Very minor changes despite the major semver bump

#9 follow-up: @netweb
5 years ago

With grunt-sass the difference between v1.0.0 and v1.1.0-beta is using the upstream dependancy node-sass v3.4.0-beta vs current v3.0.0 (which has subsequently been replaced by node-sass v3.4.0-beta2) which are both beta testing the LibSass 3.3.0 beta1 and beta2 library respectively.

I suggest we pass on making this change as there are no current issues that affect us and we can update this once upstream "beta" testing is complete and LibSass 3.3.0 has been released.

#10 @netweb
5 years ago

Patch 34177-grunt-contrib-cssmin.diff updates grunt-contrib-cssmin from v0.12.3 to v0.14.0

Notes: No changes to minified files in the /build folder

#11 @netweb
5 years ago

A new version of grunt-postcss was released a overnight also from v0.6.0 to v0.7.0.

There's an issue with the new failOnErroroption added in this release that causes grunt to exit with an error on detecting a warning or error that will be nice to have once resolved

Once resolved upstream I'll add a patch

#12 @jorbin
5 years ago

In 35363:

Bump grunt-contrib-jshint to 0.11.3

This bumps the included jshint to 2.8.0 from 2.6.0

See #34177

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


5 years ago

#14 @jorbin
5 years ago

In 35513:

Bump matchdep from 0.3.0 to 1.0.0

This drops support for node 0.8.0 so if you still using that, it's time to upgrade your node.

See #34177

#15 @jorbin
5 years ago

In 35520:

Bump grunt-postcss

See #34177

#16 @jorbin
5 years ago

In 35521:

Bump grunt-contrib-compress

Upsteam changelog: change to verbose output dependency updates Archiver 0.16

See #34177

#17 in reply to: ↑ 9 @netweb
5 years ago

Replying to netweb:

With grunt-sass the difference between v1.0.0 and v1.1.0-beta is using the upstream dependancy node-sass v3.4.0-beta vs current v3.0.0 (which has subsequently been replaced by node-sass v3.4.0-beta2) which are both beta testing the LibSass 3.3.0 beta1 and beta2 library respectively.

I suggest we pass on making this change as there are no current issues that affect us and we can update this once upstream "beta" testing is complete and LibSass 3.3.0 has been released.

This has now been updated with the release of LibSass 3.30

Patch 34177-grunt-sass.diff updates grunt-sass to v1.1.0

Notes: There are no resulting changes to CSS files in the /build folder after running Grunt tasks grunt build etc

#18 @netweb
5 years ago

Patch 34177-grunt-contrib-uglify.diff contains grunt-contrib-uglify update from v0.9.2 to v.0.10.0

There is an issue with comments being included in the minified files with the uglify:jqueryui sub task, comments beginning with // are being included in the minified files where previously in v0.9.2 they were not, I've created an upstream issue to track this here:

#19 @jorbin
5 years ago

In 35538:

Bump grunt-contrib-uglify to 0.10.0

This includes an update to the underlying version of uglify which causes all of the JS to be modified.

See #34177

#20 @jorbin
5 years ago

In 35539:

Bump grunt-sass to 1.1.0

This bumps the underlying version of node-sass to 3.4.0 and libsass to 3.3.0. It causes no difference in the current sass output.

Props netweb.
See #34177.

#21 @jorbin
5 years ago

In 35540:

Bump grunt-contrib-copy to 0.8.2

updates an underlying dependency and fixes an issue with multiple copies

see #34177

#22 @jorbin
5 years ago

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

In 35541:

Bump grunt-contrib-cssmin to 0.14.0

This updates the underlying version of cssmin

Fixes #34177

#23 @jorbin
5 years ago

All dev dependencies are updated. If anyone finds an issue caused by these updates, please reopen with details. Outside of a major issue, these are the versions we will use for 4.4. In 4.5, a new ticket will be opened to once again keep our dev dependencies updated.

#24 @netweb
5 years ago

  • Resolution fixed deleted
  • Status changed from closed to reopened

@jorbin Did you not see 34177#comment:18?

Here is the full diff of the mininied jQuery UI files from the /build folder after grunt uglify:jqueryui is ran:

#25 @ocean90
5 years ago

In 35562:

Build Tools: Update grunt-postcss to 0.7.1.

Change: https://github.com/nDmitry/grunt-postcss/commit/6e18c7d5

See #34177.

#26 @ocean90
5 years ago

In 35563:

Build Tools: Update autoprefixer to 0.6.1.

Release Post: https://github.com/postcss/autoprefixer/releases/tag/6.1.0

Includes changes to CSS files after grunt precommit because of the new transition support and a new parser for gradients (see [34637]).

See #34177.

#27 @ocean90
5 years ago

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

In 35564:

Build Tools: Update the preserveComments option for uglify:jqueryui.

Uglify2 doesn't support the value "some" anymore. Replace it with the /^!/ regex which produces the same output as before.

See https://build.trac.wordpress.org/changeset/35502 and https://build.trac.wordpress.org/changeset/35528.
Fixes #34177.

Note: See TracTickets for help on using tickets.