Skip to content

x/build/coordinator: make oauth2 build green, support GitHub / non-Go dependencies #14594

Closed
@adg

Description

@adg

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:

  1. 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).
  2. 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.
  3. 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.
  4. 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.

My instinct points to options 3 or 2.

cc @bradfitz @rakyll

Metadata

Metadata

Assignees

No one assigned

    Labels

    Type

    No type

    Projects

    No projects

    Milestone

    Relationships

    None yet

    Development

    No branches or pull requests

    Issue actions