4 ms·
By all reports ("cabal hell"), Cabal is unpredictable, and Go's dependency management problems prompted countless external tools until the recent vendoring work
by dbaupp 10y ago
By all reports ("cabal hell"), Cabal is unpredictable, and Go's dependency management problems prompted countless external tools until the recent vendoring work: with the default `go get`, there is no guarantee that a build will be the same from day to day, as the best one can do is point at a given branch of a repository (a moving target), not tags or commits.
(I have no idea on CL's dependency management situation, maybe it is even better than Rust's, in which case it would be amazing.)
- f2f 10y agominor factual adjustment: "go get" doesn't update a package once it's been downloaded. you need to force it. "there is no guarantee that a build will be the same from day to day" is simply not true.
- dbaupp 10y agoOh, indeed. I must've got mixed up: it doesn't guarantee that builds will the same from machine to machine (unless you run go get at the exact same instant).
- dschiptsov 10y agoSo, in Golang there is no concept of package version? For them different location (to import from) for an incompatible version is good-enough.
- f2f 10y agogo get is just a mechanism, not the tool. there are other tools build on top of go get that ensure proper versioning.