regarding the "diamond" dependency problem (see bionode/bionode#9 (comment)), you can use multiple versions of the same package in go (with a flat file-tree):
$GOPATH/pkg/X@0.1
$GOPATH/pkg/X@0.2
$GOPATH/pkg/Y@0.1 // import "X@0.1"
$GOPATH/pkg/Z@0.1 // import "X@0.2"
though go get
will not enforce it, also the community arround go does not seem to embrace versioning.