Permalink
Browse files

No ticket. Update npm devDependencies.

  • Loading branch information...
1 parent 35b2b94 commit 95d1192d5378926e750d0494818323ff17be821e @mgol mgol committed Oct 25, 2013
Showing with 3 additions and 3 deletions.
  1. +3 −3 package.json
View
@@ -28,14 +28,14 @@
],
"dependencies": {},
"devDependencies": {
- "archiver": "~0.4.9",
+ "archiver": "~0.4.10",
@markelog
markelog Oct 27, 2013 Member

@mzgol Why did you update these dependencies? They have ~ so we would not do so

@mgol
mgol Oct 27, 2013 Member

@markelog Why not? I was updating 'grunt-contrib-json' so I've changed other entries as well in the same commit.

@markelog
markelog Oct 27, 2013 Member

It's unnecessary noise and somewhat confusing. Only real change here is a minor version bump for grunt-contrib-jshint. Which was noticed by the @sindresorhus and now he did not get credit for it. I'm sure @sindresorhus is cool with it, but if it was someone else, he could get upset. So i would suggest to not mix up this kind of changes whenever they are in same plane or not.

@mgol
mgol Oct 27, 2013 Member

@markelog Ok, I get the noise argument. As for giving credit... Come on, if anyone gets upset because of not being credited for a minor version bump, I'd say they have a problem with themselves.

OTH, sth like #1405 or #1407 definitely deserves credit.

@markelog
markelog Oct 27, 2013 Member
I'd say they have a problem with themselves.

Agreed, but we love all people, even the ones that have problems :-). Besides, i was talking in a general sense.

@FagnerMartinsBrack
FagnerMartinsBrack Oct 27, 2013

I am curious for why the use ~ if you are updating the versions manually.
~ already updates the minor version by default when there is one available.

@mgol
mgol Oct 27, 2013 Member

@markelog :)

@FagnerMartinsBrack I've already replied to @markelog that that's true. ;) grunt-contrib-jshint had to be updated as the minor version, not the patch version changed.

@mgol
mgol Oct 31, 2013 Member

@markelog I've just checked and packages specified with ~ don't auto-update themselves. What is done is if you're missing a package it will install the latest matching one but if you already have one, npm install won't update it. IMO it means that updating dependencies manually makes sense as new patch versions usually fix bugs.

@scottgonzalez
scottgonzalez Oct 31, 2013 Member

Can we please just switch to specific version numbers? We've already been bitten multiple times in jQuery projects from using version ranges.

@mgol
mgol Oct 31, 2013 Member

@scottgonzalez +1. I'm willing to update dependencies manually from time to time myself.

On the other hand, providing specific version numbers is not a universal remedy. Those packages have their own dependencies and they are often provided in a non-strict way so we'll still be left with non-consistent package versions and there's no way around that. If node_modules was a small directory we could as well commit it to the repo but it's not, it's huge so it won't happen.

Unfortunately, npm doesn't have an analogue of gem's Gemfile.lock that provides the whole tree of mappings package -> version number. I consider it one of npm's major faults.

@dmethvin
dmethvin Oct 31, 2013 Member

I would vote for exact versions as well. Non-specific versioning has caused a lot of trouble, especially when Grunt moved from 0.3 to 0.4.

Something like bundledDependencies or npm-shrinkwrap seems like overkill, our dependencies haven't caused that much trouble.

@scottgonzalez
scottgonzalez Oct 31, 2013 Member

@mzgol npm does have shrinkwrap, but I agree with @dmethvin that it's overkill for our needs.

While Grunt 0.3 -> 0.4 is a good example of the code breaking on us, we wouldn't have that specific problem with the ranges currently listed, since ~0.3.0 wouldn't match an 0.4 release.

But we've been bitten by bugs introduced in patch versions of our dependencies. We all know software isn't perfect, and bugs introduced through version ranges are often tricky to track down.

@dmethvin
dmethvin Oct 31, 2013 Member

The Grunt API breaking change came on a 0.4RC so ~ wouldn't have worked there either. We had a repo and SHA in the dependencies for about a month.

@scottgonzalez
scottgonzalez Oct 31, 2013 Member

Oh yeah. I forgot about the whole 0.4RC fiasco. So Grunt actually is a great example :-)

@markelog
markelog Oct 31, 2013 Member
IMO it means that updating dependencies manually makes sense as new patch versions usually fix bugs.

No, it does not. If you already has installed npm packages and you want to update them, you should use npm update not npm install. Hence the name.

I'm willing to update dependencies manually from time to time myself.

Then what's the point of tilde removal? If you just gonna do it manually? I say let's remove tilde and use specific versions, update patch version of the package if we noticed some bugs with it, but only if update would help, or if it has new minor or major versions, we could even automate it through build task and irc bot.

@dmethvin
dmethvin Oct 31, 2013 Member

I don't mind doing these kind of dependency updates manually when they're needed, to fix bugs that affect us. Doing it automatically just leads back to the same headaches we are trying to avoid by using imprecise dependency specs like ~ or >=.

@markelog
markelog Oct 31, 2013 Member

@dmethvin I meant notify us through irc if some package is outdated.

"grunt": "~0.4.1",
"grunt-compare-size": "~0.4.0",
- "grunt-contrib-jshint": "~0.6.4",
+ "grunt-contrib-jshint": "~0.7.0",
"grunt-contrib-uglify": "~0.2.4",
"grunt-contrib-watch": "~0.5.3",
"grunt-git-authors": "~1.2.0",
- "grunt-jsonlint": "~1.0.0",
+ "grunt-jsonlint": "~1.0.1",
"gzip-js": "0.3.2",
"testswarm": "~1.1.0",
"requirejs": "~2.1.9",

0 comments on commit 95d1192

Please sign in to comment.