cmd/go: add local module proxy to make tests faster

Because "go get" with modules enabled allows use of a proxy,
we can run a proxy in the test and serve modules from local files,
which makes the tests not depend on remote network servers
and run significantly faster, speeding development.

The proxy serves modules from the testdata/mod directory,
which holds one txtar archive per module. See testdata/mod/README.

Reduces time for 'go test -run=^TestMod' from 115s to 11.9s.
Still longer than I would like but significantly better.

Change-Id: I1b8367b208a02549a44e91e4ea5c5fb9003123ae
Reviewed-on: https://go-review.googlesource.com/123361
Reviewed-by: Bryan C. Mills <bcmills@google.com>
75 files changed
tree: b675192aa14fe3246358b810122e1371d3303504
  1. vendor/
  2. AUTHORS
  3. codereview.cfg
  4. CONTRIBUTING.md
  5. CONTRIBUTORS
  6. LICENSE
  7. main.go
  8. PATENTS
  9. README.md
README.md

Versioned Go Prototype (vgo)

This repository holds a prototype of what the go command might look like with integrated support for package versioning.

See research.swtch.com/vgo for documents about the design.

Download/Install

Use go get -u golang.org/x/vgo.

You can also manually git clone the repository to $GOPATH/src/golang.org/x/vgo.

Report Issues / Send Patches

See CONTRIBUTING.md.

This is still a very early prototype. You are likely to run into bugs. Please file bugs in the main Go issue tracker, golang.org/issue, and put the prefix x/vgo: in the issue title.

Thank you.