Are you checking your dependencies into your repository (we do this, it works very well).
If not, are you pinning specific commit hashes? Is that even possible in Glide?
AFAIK those are the only two ways to get even close to reproducible builds.
It's just a tad absurd when you're used to mature package managers in other languages.
Bundler is lovely.
In other cases, 'npm update <package>' doesn't work and I have to do uninstall/install. Very common with typescript, for example.
I have better things to do with my time than watching the same crates being compiled multiple times.
In any case, I appreciate that Go at least supports binary packages, but Go isn't a language for me, given the type system decisions.
Repo removal, renaming, or whatever, are still problems, for sure.
Today, dep populates vendor/ with dependencies, and works equally well whether you decide to commit them or not.
it work if you are working on a project, it does not if you are library author who rely on other dependencies.
I have all my stuff in $PROJECT/src/$PROJECT, and all the dependencies are git submodules in $PROJECT/src/, and it all Just Works. Perfectly. git submodule is a bit of an annoyance, but it works. Anyone fetching my project just checks everything out, and it all Just Works™.
It's a lot better than using a dependency-management tool and shared GOPATH, at least in my experience.
because that's not how go works. You need extra work to make it work. That's not up to debate anymore anyway, dep will be the official package manager and will be merged with the rest of the official ecosystem.
> You need extra work to make it work.
What extra work? I set GOPATH, and everything just works. What more is there?
> That's not up to debate anymore anyway
Neither were type aliases, until they were, except they aren't.
I have no idea what dep adds that using the standard GOPATH doesn't do: I've read the background and the docs, and I'm familiar with using the vendor directory in the past; frankly, now that I've switched to using GOPATH all of those things look like a mistake. It all reads like tha Javafication of Go.
The main problem with Glide is that it's buggy. It also lacks some important features. You still can't do "glide update" on a single dependency, for example. It's all or nothing.
I have been having a fantastic time with Go... Up until the point I have to add a new package to my projects and go through CI and deployment.
Glide works mostly OK, but it's not the final solution, that's for sure. Even big packages on github fail to produce releases, so you have to depend on master branches... One day your builds just decide to break. It's a nightmare.