Closed
Description
The oauth2
repo is currently broken on the build dashboard because the coordinator doesn't know how to fetch dependencies external to the Go sub-repos.
../../gopath/src/golang.org/x/oauth2/google/default.go:20:2: cannot find package "google.golang.org/cloud/compute/metadata" in any of:
/tmp/workdir/go/src/google.golang.org/cloud/compute/metadata (from $GOROOT)
/tmp/workdir/gopath/src/google.golang.org/cloud/compute/metadata (from $GOPATH)
Options:
- Teach the coordinator how to fetch packages from repos other than the Go sub-repos.
- I'm not in favor of this approach due to the complete lack of versioning (that already exists, but could be perceived as "worse" when we're talking about repos outside our control).
- Use a build tag to exclude packages from continuous build. Something like "gobuildfarm". Then packages that shouldn't be tested can specify
// +build !gobuildfarm
in their source files.- I feel somewhat ambivalent about this approach. It sets an odd precedent. It can be used to make the build green when it's actually not. That seems bad.
- Skip packages that have dependencies outside the Go project.
- This seems promising. We already know which packages these are. The question is, how do we keep an eye on the packages we're skipping? We don't want to silently lose test coverage by adding an external dependency.
- Remove oauth2 from the build dashboard as it'll likely never be able to build using only the sub-repos.
- This has some appeal, because there was no solid reason to make oauth2 a
golang.org/x/
repo in the first place. Maybe it doesn't belong on the build dashboard.
- This has some appeal, because there was no solid reason to make oauth2 a
My instinct points to options 3 or 2.