Live data from Hacker News

Greenkeeper: Always up-to-date npm dependencies

greenkeeper.io

11–20 of 22 posts

Re: Greenkeeper: Always up-to-date npm dependencies

#11

Here's my 2 cents coming from experience with Rubygems (and my minimal experience with Node). You simply cannot auto upgrade dependencies. Period. On an application running in production with development spanning over a couple of months this will break a lot of stuff. For that to happen, all package developers have to follow semantic versioning and make sure they never break API with minor updates, but that's hard to…

Heya, you summed up the problem perfectly and we are not trying to be all clever solving this unsolvable riddle.

All Greenkeeper does is send you a Pull Request, which then runs your test. Only when you as the maintainer are satisfied this works, you get to merge the PR.

We have another project https://github.com/semantic-release/semantic-release that you can use to make sure your project leaves semver to computers and keeps humans out of the process, because they tend to screw this up.

With both Greenkeeper and semantic-release, we hope to get npm into shape that we, one day, can do more automated updates and it’s gonna be a long road, but we’ll have to start somewhere.

For now, Greenkeeper takes a lot of the chores out of the process you described to well in your comment.

Re: Greenkeeper: Always up-to-date npm dependencies

#12
post #7

This has been my primary annoyance working in node.js, dependencies automatically updating and breaking our code. So far everyone has convinced me away from committing node_modules to the repo or doing an npm shrinkwrap, but I would love seeing a future with more people pinning dependencies and using this to update.

You want this: npm install --save --save-exact

--save-exact doesnt deal with any nested dependencies, we do use it for top level deps though.

Re: Greenkeeper: Always up-to-date npm dependencies

#14
Question to the devs: you mentioned [0] that you eventually hope to auto-upgrade peoples' app code for package BC breaks. My initial thought was that this would be the logical conclusion for a service like this, but my next thought was realizing how much magic it would take.

But, apparently you are magical. ;-) What can you tell us about your planned approach to automating this? Seems like a massive undertaking.

[0] https://twitter.com/janl/status/647406012018872320

Re: Greenkeeper: Always up-to-date npm dependencies

#15
Great idea - I wish this existed for Ruby gems. Currently we use Gemnasium to keep track of our dependencies and have a manual process to:

- check Gemnasium

- bump the gem locally and push to branch to GitHub

- find the changelog for the change (or a diff link) and paste create a PR with that as the description

- merge and deploy if our test pass and the changelog looks OK

Everything except the final step should definitely be automated. I can totally see how doing the same across many repos and sharing aggregated information could make the final step a lot easier, too.

Psyched to see you guys expand.

Re: Greenkeeper: Always up-to-date npm dependencies

#16

Question to the devs: you mentioned [0] that you eventually hope to auto-upgrade peoples' app code for package BC breaks. My initial thought was that this would be the logical conclusion for a service like this, but my next thought was realizing how much magic it would take. But, apparently you are magical. ;-) What can you tell us about your planned approach to automating this? Seems like a massive undertaking. [0]…

No plans yet, just marvelling at the opportunities :)

Re: Greenkeeper: Always up-to-date npm dependencies

#18
Use next-updater - tested dependencies update for projects in bulk. Npm publish, github tag, push, etc. Flexible ranges (major, minor, patch), etc. You control everything. https://github.com/bahmutov/next-updater built on top of next-update https://github.com/bahmutov/next-update

Re: Greenkeeper: Always up-to-date npm dependencies

#19

Great idea - I wish this existed for Ruby gems. Currently we use Gemnasium to keep track of our dependencies and have a manual process to: - check Gemnasium - bump the gem locally and push to branch to GitHub - find the changelog for the change (or a diff link) and paste create a PR with that as the description - merge and deploy if our test pass and the changelog looks OK Everything except the final step should defi…

Actually, Gemnasium now has an auto update feature.
Post reply on HN