5 ms·
> Go hasn't had mature dependency management since its inception and this constant thrash is really starting to make things difficult. What constant thrash? In
by schmichael 9y ago
> Go hasn't had mature dependency management since its inception and this constant thrash is really starting to make things difficult.
What constant thrash? In the 6 years since Go 1.0 the only dependency management related change I'm aware of is the addition of `vendor/`.
Update: sounds like "thrash" refers to the variety of community vendoring tools. I guess of the few I've used they all felt fairly similar/interchangeable, so it didn't feel like thrashing changes.
- notheguyouthink 9y agoThere have been many packages for dependency management, which is not "official" thrash, but thrash nonetheless. Granted, mostly it's been thrash over the last few years. Especially bad since `go dep` was hailed as the king, and then recently abandoned entirely.
- TheDong 9y agoThe blog post mentions some of this. It claims " For a long time, we believed that the problem of package versioning would be best solved by an add-on tool, and we encouraged people to create one. The Go community created many tools with different approaches" These many tools were the thrash, including godep, gb, glide, dep, and more. Each of these expressed versions with different manifests, many of them could import other format's, but not all. All-in-all it has been a mess. Sure, the go team has not officially done much, but that's because their stance has been borderline negligent on the topic.
- benesch 9y agoThe constant thrash caused by the lack of a standard package management tool—even a de facto standard. Just look at the various package managers that have come and gone over the years: 1. https://github.com/tools/godep https://github.com/tools/godep 2. https://github.com/kardianos/govendor https://github.com/kardianos/govendor 3. https://github.com/robfig/glock https://github.com/robfig/glock 4. https://github.com/rogpeppe/govers https://github.com/rogpeppe/govers 5. https://github.com/Masterminds/glide https://github.com/Masterminds/glide 6. https://github.com/golang/dep https://github.com/golang/dep I'm sure I'm forgetting a few. And just when it seemed the Go team might be ready to standardize around Dep (6), they threw this wrench in the works. I'm of two minds about vgo. I think it has some interesting ideas, but Dep works today, is widely adopted, and has nearly all the features you'd expect from a modern package manager.
- randomdata 9y ago> The constant thrash caused by the lack of a standard package management tool There is a standard, and has been one from the early days. The catch is that the standard is not loved by all, so others have created competing package management systems to fit their own needs.
- kasey_junk 9y agoWhat is it?
- lox 9y agogo get.
- kasey_junk 9y agoDoes that finally work with private repos?
- sethammons 9y agoIt always has. You have to edit your gitconfig. On mobile, so I can't paste mine. A Google search should get you there. It did for me like 5 years ago.
- kasey_junk 9y agoSo having to reset my git config, either globally impacting everything I do, or manually for every project I use go get in... Got it.
- lobster_johnson 9y agoBetween "go get", Godep, Govendor, Glide, gb, Dep, and this — and I'm actually omitting a bunch of other, less popular utilities [1] — there's certainly been churn. There's definitely a feeling among Go developers that this problem should have been solved much earlier, and that the Go team's years-long refusal to address it caused the proliferation of mediocre tools (looking at you, Glide) that in many ways made the whole situation worse. When Dep came along, a lot of people breathed a sigh a of relief, because we finally have something okay, and we can go back to being productive instead of fighting dependency management problems all day. [1] https://github.com/golang/go/wiki/PackageManagementTools https://github.com/golang/go/wiki/PackageManagementTools
- majewsky 9y ago> In the 6 years since Go 1.0 the only dependency management related change I'm aware of is the addition of `vendor/`. This. Sure, new tools have appeared, but there's literally nothing wrong if you decide to just stick with godep or whatever you happen to be using.