Go seems very cool, but after watching many tutorials, attending a Google workshop for students on Go, and reading the docs, I'm still confused by how one is supposed to manage a Go project in the simplest way.
Go can live peacefully with any other project.
The only way I can think of how to integrate versioning into Go's "one workspace" philosophy is to encode versions into package paths and then use import aliases to point to different versions of packages.
But that means you're spreading versioning information across all source files, and it only works if everyone decides to use this approach. So far no one does (I believe).