Wouldn't it make sense to be able to test your code in advance of updating a dependency to see the how's and why's of its failures?
Wouldn't it make sense to be able to test your code in advance of updating a dependency to see the how's and why's of its failures?
Godep isn't "canon". There lies the problem. There should be no need for godep,the library dependecy issue should be solved once and for all by the go team so everybody uses the same library dependency manager. Vendoring dependencies solves nothing. Should I bundle these dependencies If I put my libs on github? and what if a dep has a bug? how do I know what version was used if I want to fix the lib myself? All that stuff stinks. I like Go but these are serious issues that will backfire, because other plateforms have been there and done that...
Java uses Maven or Gradle: third party
Python uses pip: third party
Ruby uses gems: third party
Node.js uses npm: third party
I'm sure I'm missing some, but this seems to be the norm. Go just hasn't been around long enough for a single third-party solution to become the de facto standard.
Rust + Cargo.
* Thinks that dependency management of third party libraries is an important problem in their project.
* Demands that there be one centralized repo and method for that. No alternatives!
Maybe it shows that I am a C fan, but I kind of skew on the opposite of this spectrum. Really the most important part of your project is how you import a library? Really? Even out of chaos, like a language with no native support for it, it's a small chore and you get over it quickly. But I am not one of the types that agonizes over it, as I guess go people are.
FWIW pip is now bundled with Python unless specifically unbundled (e.g. by linux distros)
But this requires source control systems that can store the files for many projects at a time. (See today's other discussion about git.) [1]
[1] http://bitquabit.com/post/unorthodocs-abandon-your-dvcs-and-...
Since there's no real difference, it doesn't really matter if you check in deps or have specific versions in a config file, either solution solves the underlying problem of having non-precise dependencies (i.e. just a github repo, or a version selector like >= 2.6)