]> Cypherpunks repositories - gostls13.git/commitdiff
cmd/go: remove GO15VENDOREXPERIMENT variable
authorRuss Cox <rsc@golang.org>
Fri, 29 Jan 2016 03:51:50 +0000 (22:51 -0500)
committerRuss Cox <rsc@golang.org>
Fri, 19 Feb 2016 01:35:53 +0000 (01:35 +0000)
The Go 1.6 release notes say that Go 1.7 will remove support
for the GO15VENDOREXPERIMENT environment variable,
making vendoring always on. Do that.

Change-Id: Iba8b79532455828869c1a8076a82edce84259468
Reviewed-on: https://go-review.googlesource.com/19615
Reviewed-by: Ian Lance Taylor <iant@golang.org>
doc/go1.7.txt
src/cmd/go/alldocs.go
src/cmd/go/env.go
src/cmd/go/help.go
src/cmd/go/pkg.go
src/cmd/go/vcs.go
src/cmd/go/vendor_test.go

index b2573bef83e89aa572428f1dddab6ca4bce41da8..15efa287ce9aa4718a308d3514b9e22a1117e977 100644 (file)
@@ -1,6 +1,7 @@
 Tools:
 
-cmd/link: "-X name value" form gone (CL XXX)
+cmd/go: GO15VENDOREXPERIMENT gone, assumed on (CL 19615)
+cmd/link: "-X name value" form gone (CL 19614)
 
 Ports:
 
index c81bd40864a3c74bc36a8f40f00893bc9dd9b74b..bbad8d40e921816f7b0fcd901ddddc5a310a4c25 100644 (file)
@@ -1022,12 +1022,6 @@ Vendor directories do not affect the placement of new repositories
 being checked out for the first time by 'go get': those are always
 placed in the main GOPATH, never in a vendor subtree.
 
-In Go 1.5, as an experiment, setting the environment variable
-GO15VENDOREXPERIMENT=1 enabled these features.
-As of Go 1.6 they are on by default. To turn them off, set
-GO15VENDOREXPERIMENT=0. In Go 1.7, the environment
-variable will stop having any effect.
-
 See https://golang.org/s/go15vendor for details.
 
 
@@ -1094,8 +1088,6 @@ Special-purpose environment variables:
                installed in a location other than where it is built.
                File names in stack traces are rewritten from GOROOT to
                GOROOT_FINAL.
-       GO15VENDOREXPERIMENT
-               Set to 0 to disable vendoring semantics.
        GO_EXTLINK_ENABLED
                Whether the linker should use external linking mode
                when using -linkmode=auto with code that uses cgo.
index 24f612756b64e02ab828f10004a10dabbad9c784..8d427b37c2f2465b6492dffe92e3540d418255e8 100644 (file)
@@ -33,11 +33,6 @@ func mkEnv() []envVar {
        var b builder
        b.init()
 
-       vendorExpValue := "0"
-       if go15VendorExperiment {
-               vendorExpValue = "1"
-       }
-
        env := []envVar{
                {"GOARCH", goarch},
                {"GOBIN", gobin},
@@ -49,7 +44,6 @@ func mkEnv() []envVar {
                {"GORACE", os.Getenv("GORACE")},
                {"GOROOT", goroot},
                {"GOTOOLDIR", toolDir},
-               {"GO15VENDOREXPERIMENT", vendorExpValue},
 
                // disable escape codes in clang errors
                {"TERM", "dumb"},
index d8e7efedb3750b67e51d130a77c6a28195816546..de5e5ddeab1b8bd600adf4892332d3b9be9d2e04 100644 (file)
@@ -421,12 +421,6 @@ Vendor directories do not affect the placement of new repositories
 being checked out for the first time by 'go get': those are always
 placed in the main GOPATH, never in a vendor subtree.
 
-In Go 1.5, as an experiment, setting the environment variable
-GO15VENDOREXPERIMENT=1 enabled these features.
-As of Go 1.6 they are on by default. To turn them off, set
-GO15VENDOREXPERIMENT=0. In Go 1.7, the environment
-variable will stop having any effect.
-
 See https://golang.org/s/go15vendor for details.
        `,
 }
@@ -497,8 +491,6 @@ Special-purpose environment variables:
                installed in a location other than where it is built.
                File names in stack traces are rewritten from GOROOT to
                GOROOT_FINAL.
-       GO15VENDOREXPERIMENT
-               Set to 0 to disable vendoring semantics.
        GO_EXTLINK_ENABLED
                Whether the linker should use external linking mode
                when using -linkmode=auto with code that uses cgo.
index 0c0cf07e71f5c9c28a1f6c0851a54490cd19e126..6b5ead2b8c9a5a354df39d20b0ca3a074434ee31 100644 (file)
@@ -263,15 +263,6 @@ func reloadPackage(arg string, stk *importStack) *Package {
        return loadPackage(arg, stk)
 }
 
-// The Go 1.5 vendoring experiment was enabled by setting GO15VENDOREXPERIMENT=1.
-// In Go 1.6 this is on by default and is disabled by setting GO15VENDOREXPERIMENT=0.
-// In Go 1.7 the variable will stop having any effect.
-// The variable is obnoxiously long so that years from now when people find it in
-// their profiles and wonder what it does, there is some chance that a web search
-// might answer the question.
-// There is a copy of this variable in src/go/build/build.go. Delete that one when this one goes away.
-var go15VendorExperiment = os.Getenv("GO15VENDOREXPERIMENT") != "0"
-
 // dirToImportPath returns the pseudo-import path we use for a package
 // outside the Go path.  It begins with _/ and then contains the full path
 // to the directory.  If the package lives in c:\home\gopher\my\pkg then
@@ -361,7 +352,7 @@ func loadImport(path, srcDir string, parent *Package, stk *importStack, importPo
        // TODO: After Go 1, decide when to pass build.AllowBinary here.
        // See issue 3268 for mistakes to avoid.
        buildMode := build.ImportComment
-       if !go15VendorExperiment || mode&useVendor == 0 || path != origPath {
+       if mode&useVendor == 0 || path != origPath {
                // Not vendoring, or we already found the vendored path.
                buildMode |= build.IgnoreVendor
        }
@@ -371,7 +362,7 @@ func loadImport(path, srcDir string, parent *Package, stk *importStack, importPo
                bp.BinDir = gobin
        }
        if err == nil && !isLocal && bp.ImportComment != "" && bp.ImportComment != path &&
-               (!go15VendorExperiment || (!strings.Contains(path, "/vendor/") && !strings.HasPrefix(path, "vendor/"))) {
+               !strings.Contains(path, "/vendor/") && !strings.HasPrefix(path, "vendor/") {
                err = fmt.Errorf("code in directory %s expects import %q", bp.Dir, bp.ImportComment)
        }
        p.load(stk, bp, err)
@@ -412,7 +403,7 @@ func isDir(path string) bool {
 // x/vendor/path, vendor/path, or else stay path if none of those exist.
 // vendoredImportPath returns the expanded path or, if no expansion is found, the original.
 func vendoredImportPath(parent *Package, path string) (found string) {
-       if parent == nil || parent.Root == "" || !go15VendorExperiment {
+       if parent == nil || parent.Root == "" {
                return path
        }
 
@@ -580,10 +571,6 @@ func findInternal(path string) (index int, ok bool) {
 // If the import is allowed, disallowVendor returns the original package p.
 // If not, it returns a new package containing just an appropriate error.
 func disallowVendor(srcDir, path string, p *Package, stk *importStack) *Package {
-       if !go15VendorExperiment {
-               return p
-       }
-
        // The stack includes p.ImportPath.
        // If that's the only thing on the stack, we started
        // with a name given on the command line, not an
index 342edee50d9c8688dc52cd37d1e30c95af8b3b19..797d91fb96e5e6ab8f1562a41cf1762bdf8b7201 100644 (file)
@@ -383,7 +383,7 @@ func (v *vcsCmd) ping(scheme, repo string) error {
 // The parent of dir must exist; dir must not.
 func (v *vcsCmd) create(dir, repo string) error {
        for _, cmd := range v.createCmd {
-               if !go15VendorExperiment && strings.Contains(cmd, "submodule") {
+               if strings.Contains(cmd, "submodule") {
                        continue
                }
                if err := v.run(".", cmd, "dir", dir, "repo", repo); err != nil {
@@ -396,7 +396,7 @@ func (v *vcsCmd) create(dir, repo string) error {
 // download downloads any new changes for the repo in dir.
 func (v *vcsCmd) download(dir string) error {
        for _, cmd := range v.downloadCmd {
-               if !go15VendorExperiment && strings.Contains(cmd, "submodule") {
+               if strings.Contains(cmd, "submodule") {
                        continue
                }
                if err := v.run(dir, cmd); err != nil {
@@ -445,7 +445,7 @@ func (v *vcsCmd) tagSync(dir, tag string) error {
 
        if tag == "" && v.tagSyncDefault != nil {
                for _, cmd := range v.tagSyncDefault {
-                       if !go15VendorExperiment && strings.Contains(cmd, "submodule") {
+                       if strings.Contains(cmd, "submodule") {
                                continue
                        }
                        if err := v.run(dir, cmd); err != nil {
@@ -456,7 +456,7 @@ func (v *vcsCmd) tagSync(dir, tag string) error {
        }
 
        for _, cmd := range v.tagSyncCmd {
-               if !go15VendorExperiment && strings.Contains(cmd, "submodule") {
+               if strings.Contains(cmd, "submodule") {
                        continue
                }
                if err := v.run(dir, cmd, "tag", tag); err != nil {
index 006a8c9d3f4324ed32836049ad37001c255bee30..40fe309b6d8973076b12cc1c6f169b65c6987522 100644 (file)
@@ -20,7 +20,6 @@ func TestVendorImports(t *testing.T) {
        tg := testgo(t)
        defer tg.cleanup()
        tg.setenv("GOPATH", filepath.Join(tg.pwd(), "testdata"))
-       tg.setenv("GO15VENDOREXPERIMENT", "1")
        tg.run("list", "-f", "{{.ImportPath}} {{.Imports}}", "vend/...")
        want := `
                vend [vend/vendor/p r]
@@ -51,7 +50,6 @@ func TestVendorBuild(t *testing.T) {
        tg := testgo(t)
        defer tg.cleanup()
        tg.setenv("GOPATH", filepath.Join(tg.pwd(), "testdata"))
-       tg.setenv("GO15VENDOREXPERIMENT", "1")
        tg.run("build", "vend/x")
 }
 
@@ -59,7 +57,6 @@ func TestVendorRun(t *testing.T) {
        tg := testgo(t)
        defer tg.cleanup()
        tg.setenv("GOPATH", filepath.Join(tg.pwd(), "testdata"))
-       tg.setenv("GO15VENDOREXPERIMENT", "1")
        tg.cd(filepath.Join(tg.pwd(), "testdata/src/vend/hello"))
        tg.run("run", "hello.go")
        tg.grepStdout("hello, world", "missing hello world output")
@@ -74,7 +71,6 @@ func TestVendorGOPATH(t *testing.T) {
        }
        gopath := changeVolume(filepath.Join(tg.pwd(), "testdata"), strings.ToLower)
        tg.setenv("GOPATH", gopath)
-       tg.setenv("GO15VENDOREXPERIMENT", "1")
        cd := changeVolume(filepath.Join(tg.pwd(), "testdata/src/vend/hello"), strings.ToUpper)
        tg.cd(cd)
        tg.run("run", "hello.go")
@@ -85,7 +81,6 @@ func TestVendorTest(t *testing.T) {
        tg := testgo(t)
        defer tg.cleanup()
        tg.setenv("GOPATH", filepath.Join(tg.pwd(), "testdata"))
-       tg.setenv("GO15VENDOREXPERIMENT", "1")
        tg.cd(filepath.Join(tg.pwd(), "testdata/src/vend/hello"))
        tg.run("test", "-v")
        tg.grepStdout("TestMsgInternal", "missing use in internal test")
@@ -96,7 +91,6 @@ func TestVendorInvalid(t *testing.T) {
        tg := testgo(t)
        defer tg.cleanup()
        tg.setenv("GOPATH", filepath.Join(tg.pwd(), "testdata"))
-       tg.setenv("GO15VENDOREXPERIMENT", "1")
 
        tg.runFail("build", "vend/x/invalid")
        tg.grepStderr("must be imported as foo", "missing vendor import error")
@@ -106,7 +100,6 @@ func TestVendorImportError(t *testing.T) {
        tg := testgo(t)
        defer tg.cleanup()
        tg.setenv("GOPATH", filepath.Join(tg.pwd(), "testdata"))
-       tg.setenv("GO15VENDOREXPERIMENT", "1")
 
        tg.runFail("build", "vend/x/vendor/p/p")
 
@@ -173,7 +166,6 @@ func TestVendorGet(t *testing.T) {
                package p
                const C = 1`)
        tg.setenv("GOPATH", tg.path("."))
-       tg.setenv("GO15VENDOREXPERIMENT", "1")
        tg.cd(tg.path("src/v"))
        tg.run("run", "m.go")
        tg.run("test")
@@ -192,7 +184,6 @@ func TestVendorGetUpdate(t *testing.T) {
        defer tg.cleanup()
        tg.makeTempdir()
        tg.setenv("GOPATH", tg.path("."))
-       tg.setenv("GO15VENDOREXPERIMENT", "1")
        tg.run("get", "github.com/rsc/go-get-issue-11864")
        tg.run("get", "-u", "github.com/rsc/go-get-issue-11864")
 }
@@ -204,7 +195,6 @@ func TestGetSubmodules(t *testing.T) {
        defer tg.cleanup()
        tg.makeTempdir()
        tg.setenv("GOPATH", tg.path("."))
-       tg.setenv("GO15VENDOREXPERIMENT", "1")
        tg.run("get", "-d", "github.com/rsc/go-get-issue-12612")
        tg.run("get", "-u", "-d", "github.com/rsc/go-get-issue-12612")
 }
@@ -213,7 +203,6 @@ func TestVendorCache(t *testing.T) {
        tg := testgo(t)
        defer tg.cleanup()
        tg.setenv("GOPATH", filepath.Join(tg.pwd(), "testdata/testvendor"))
-       tg.setenv("GO15VENDOREXPERIMENT", "1")
        tg.runFail("build", "p")
        tg.grepStderr("must be imported as x", "did not fail to build p")
 }
@@ -225,7 +214,6 @@ func TestVendorTest2(t *testing.T) {
        defer tg.cleanup()
        tg.makeTempdir()
        tg.setenv("GOPATH", tg.path("."))
-       tg.setenv("GO15VENDOREXPERIMENT", "1")
        tg.run("get", "github.com/rsc/go-get-issue-11864")
 
        // build -i should work
@@ -251,7 +239,6 @@ func TestVendorList(t *testing.T) {
        defer tg.cleanup()
        tg.makeTempdir()
        tg.setenv("GOPATH", tg.path("."))
-       tg.setenv("GO15VENDOREXPERIMENT", "1")
        tg.run("get", "github.com/rsc/go-get-issue-11864")
 
        tg.run("list", "-f", `{{join .TestImports "\n"}}`, "github.com/rsc/go-get-issue-11864/t")
@@ -272,7 +259,6 @@ func TestVendor12156(t *testing.T) {
        tg := testgo(t)
        defer tg.cleanup()
        tg.setenv("GOPATH", filepath.Join(tg.pwd(), "testdata/testvendor2"))
-       tg.setenv("GO15VENDOREXPERIMENT", "1")
        tg.cd(filepath.Join(tg.pwd(), "testdata/testvendor2/src/p"))
        tg.runFail("build", "p.go")
        tg.grepStderrNot("panic", "panicked")