here is the simplest way to handle it: Just make your whole source code folder(or even your home folder) which contains all your projects to be gopath, and forget about it.
Go can live peacefully with any other project.
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).