By Alan Shaw
A service that helps you keep your project dependencies up to date.
A Node module, CLI tool and website.
You can get:
For each dependency, david tells you:
var david = require("david");
var manifest = {/* Your package.json */};
david.getUpdatedDependencies(manifest, {dev: false, stable: true}, function(err, deps) {
console.log('dependencies with newer STABLE versions for', manifest.name);
console.log(deps);
});
// Example output:
// dependencies with newer STABLE versions for aaa
// {
// foo: {required: "~0.3.4", stable: "0.4.0", latest: "0.5.0-pre"},
// bar: {required: "~1.0.0", stable: "1.2.0", latest: "1.2.0"}
// }
Install david globally npm install david -g
Uses expressjs, built using grunt, nodeunit for tests. Help from d3 for data visualisations.
semver is the version standard.
NPM uses semver. NPM allows you to specify version ranges. This is fantastic!
~1.0.2
This is shorthand for >= 1.0.2 < 1.1.0
http://semver.org
https://npmjs.org/doc/json.html#Tilde-Version-Ranges
...what?
Absolute versions, repositories or tags.
*
latest
>= 0.0.0
Where can we take this tool?
Where can we take this tool?
https://david-dm.org
http://davidiswatching.tumblr.com
https://github.com/alanshaw/david
https://github.com/alanshaw/david-www
https://github.com/alanshaw/david-presentation
https://twitter.com/_alanshaw
https://github.com/alanshaw