Git, the D package manager
Jacob Carlborg via Digitalmars-d
digitalmars-d at puremagic.com
Sat Feb 7 06:43:31 PST 2015
On 2015-02-04 23:00, Mike Parker wrote:
> Then you specify a specific version of the library as a dependency,
> rather than a version range.
No, this is not enough. The tool need to automatically track and lock
the whole dependency graph. Example:
Project A:
"dependencies": {
"b": "1.0.0"
}
Project B:
"dependencies": {
"c": ">=1.0.0"
}
Even though you have locked your direct dependencies to a specific
version doesn't mean that the dependencies have done so. Meaning, you
can get arbitrary versions of indirect dependencies. You can start
adding the indirect dependencies as direct dependencies but that defeats
the point of a package manager.
I have explained this so many times in the Dub forum, why not locking
the whole graph is a really, really bad idea.
I've experienced this myself many times with Ruby before it got Bundler
which fixes this.
--
/Jacob Carlborg
More information about the Digitalmars-d
mailing list