RE: is go's package management a feature or an oversight?

584 views
Skip to first unread message

S Ahmed

unread,
Apr 13, 2016, 3:58:18 PM4/13/16
to golan...@googlegroups.com
Hi,

Golang's package manager is confusing me a bit here, I'm newish to Go but still can't wrap my head around how the package management just pulls the latest version from the trunk of any given package?  Why doesn't it use versions?

I'm just weary of building an app and assuming the packages I am using will just "work".

Again I am new to Go so if I have missed to boat on this I would really appreciate someone clarifying this for me :)

Thanks!

Anmol Sethi

unread,
Apr 13, 2016, 4:05:16 PM4/13/16
to S Ahmed, golan...@googlegroups.com
https://golang.org/doc/faq#get_version
> --
> You received this message because you are subscribed to the Google Groups "golang-nuts" group.
> To unsubscribe from this group and stop receiving emails from it, send an email to golang-nuts...@googlegroups.com.
> For more options, visit https://groups.google.com/d/optout.

Konstantin Khomoutov

unread,
Apr 13, 2016, 4:08:06 PM4/13/16
to S Ahmed, golan...@googlegroups.com
Yes, you have missed the boat here: Go does not have any built-in
package manager, and `go get` is not one.

Please consult [1] for the list of 3rd-party tooling which are real
package managers.

You might also find digging through the archives of the sibling Google
Group, "go-pm", to be of interest.

1. https://github.com/golang/go/wiki/PackageManagementTools

Konstantin Khomoutov

unread,
Apr 14, 2016, 5:40:57 AM4/14/16
to S Ahmed, golan...@googlegroups.com
On Wed, 13 Apr 2016 15:57:38 -0400
S Ahmed <sahme...@gmail.com> wrote:

You might also consider reading [1] as a gentle introduction to Go
package management. It's quite outdated (the landscape of Go package
management has changed -- Go core tools now have minimal support for
vendoring, the `glide` and `gb` tools appear to attract much attention)
but it has core ideas behind why `go get` works the way it does quite
correctly.

See also: [2, 3, 4] and google in general.

1. https://nathany.com/go-packages/?2.0
2. http://technosophos.com/2015/08/20/managing-go-1-5-vendor-directories-with-glide.html
3. http://dave.cheney.net/2015/06/09/gb-a-project-based-build-tool-for-the-go-programming-language
4. https://www.reddit.com/r/golang/comments/3m6g0n/godep_or_gb/

eliq...@gmail.com

unread,
Apr 14, 2016, 8:09:11 PM4/14/16
to golang-nuts
Checkout govendor and godep. govendor is new and uses the Go 1.5 GO15VENDOREXPERIMENT env variable. However, I've used godep for many months without any issues. You need to include the dependencies into your repository for the best chance of success.
Reply all
Reply to author
Forward
0 new messages