As a prelude to the Go 1.4 release, the Go sub-repositories (go.tools, go.net
, go.crypto, and so on) will be made available using custom import paths. See golang.org/s/go14subrepo
This list shows the current base import paths, and their new equivalents.
The "x" in the path serves to disambiguate these external packages from the standard library.
If your code imports packages from these repositories, please prepare changes to update the import paths, and commit those changes either before or shortly after the official repositories are renamed. (These new import paths work today, but the code in those repositories has not yet been updated to use them.)
The change will be made on Sunday, November 9, 2014.
On Linux, OS X, and other Unix systems, this command updates all Go source files in the current directory and all subdirectories, so running it in your GOPATH workspace root should suffice to update all your source code:
$(find . -name '*.go')
After the change, code that uses the old import paths will not break. Instead, two copies of a given repository may be created inside your workspace.
If your code imports the ssa package using its old path, when the import paths are changed the dependency graph will look like this:
If you run "go get", it will check out two copies of the go.tools repository: one under the old path, and one under the new path. If your program also contains references to "code.google.com/p/go.tools/go/types
", you will end up with both copies of the go/types package (with different import paths) in the same executable.
To fix this, update the import statements in your code to use the new paths and then delete the old "src/code.google.com/p/go.*
" directories from your workspace.