* This only works with Git. It doesn't look it'd be much work to make it work for all 4.
* This only pins deps you've declared; that set may or may not contain transitive deps. If it's not complete, the transitive deps will be frozen, forever, until you blow them out of your GOPATH.
Thanks! it was pretty fun to get it working, I'm glad you like it.
* Yeah, we use git internally, but we should definitely add support for other vcs when we can squeeze the time for it.
* True, I purposely kept this as simple as possible and forcing people to keep a complete Godeps file didn't sound like a terrible tradeoff (I actually like that it makes it that explicit).
* Issue #3 will have me scratching my head for quite some time, but I'll find a way!
I'm a sometimes-coder at VividCortex. Yeah, there are endless potential issues with this that make it a non-general solution. I mean, it works for us -- so far -- but it's easy to find cases where it won't. What if package X wants version 1.0 of package Y, and package Z wants a different version? Oops.
Comments
First off: cool!
A few thoughts:
* This only works with Git. It doesn't look it'd be much work to make it work for all 4.
* This only pins deps you've declared; that set may or may not contain transitive deps. If it's not complete, the transitive deps will be frozen, forever, until you blow them out of your GOPATH.
* Issue #3 looks fun.
Thanks! it was pretty fun to get it working, I'm glad you like it.
* Yeah, we use git internally, but we should definitely add support for other vcs when we can squeeze the time for it.
* True, I purposely kept this as simple as possible and forcing people to keep a complete Godeps file didn't sound like a terrible tradeoff (I actually like that it makes it that explicit).
* Issue #3 will have me scratching my head for quite some time, but I'll find a way!
Thanks so much for the feedback!
I'm a sometimes-coder at VividCortex. Yeah, there are endless potential issues with this that make it a non-general solution. I mean, it works for us -- so far -- but it's easy to find cases where it won't. What if package X wants version 1.0 of package Y, and package Z wants a different version? Oops.
On first glance this looks similar to a pubspec.yaml file in Dart. Maybe you could borrow ideas from there.
It seems like for a business you'd also want to download your dependencies and check them in, in case the original repo isn't available.