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.