From eb4865fbe5e1b3ff987790d1d05fe2168e07b427 Mon Sep 17 00:00:00 2001 From: Davanum Srinivas Date: Sun, 24 Feb 2019 22:37:56 -0500 Subject: [PATCH] Hack to ignore stale packages in godep Change-Id: Ibf0877521310d6f2baad605bf1216940e95cb9cd --- hack/godep-save.sh | 18 ++++++++++++++++-- third_party/forked/godep/pkg.go | 13 +++++++++++++ third_party/forked/godep/save.go | 2 ++ 3 files changed, 31 insertions(+), 2 deletions(-) diff --git a/hack/godep-save.sh b/hack/godep-save.sh index 452b102dd75..9eaa59e570b 100755 --- a/hack/godep-save.sh +++ b/hack/godep-save.sh @@ -52,9 +52,23 @@ if [[ -d Godeps ]]; then mv Godeps "${BACKUP}/Godeps" fi +## Workaround "httplex" was dropped from golang.org/x/net repo and the code +## was moved to the "golang.org/x/net/http/httpguts" directory, we do not use +## this directly, however many packages we vendor are still using the older +## golang.org/x/net and we need to keep this until all those dependencies +## are switched to newer golang.org/x/net. +IGNORED_PACKAGES=( + "golang.org/x/net/lex/httplex" +) +REQUIRED_BINS=( + "golang.org/x/net/internal/nettest" + "golang.org/x/net/internal/socks" + "golang.org/x/net/internal/sockstest" +) + # Some things we want in godeps aren't code dependencies, so ./... # won't pick them up. -REQUIRED_BINS=( +REQUIRED_BINS+=( "github.com/bazelbuild/bazel-gazelle/cmd/gazelle" "github.com/bazelbuild/buildtools/buildozer" "github.com/cespare/prettybench" @@ -74,7 +88,7 @@ kube::log::status "Running godep save - this might take a while" # This uses $(pwd) rather than ${KUBE_ROOT} because KUBE_ROOT will be # realpath'ed, and godep barfs ("... is not using a known version control # system") on our staging dirs. -GOPATH="${GOPATH}:$(pwd)/staging" ${KUBE_GODEP:?} save "${REQUIRED_BINS[@]}" +GOPATH="${GOPATH}:$(pwd)/staging" ${KUBE_GODEP:?} save -i $(IFS=,; echo "${IGNORED_PACKAGES[*]}") "${REQUIRED_BINS[@]}" # create a symlink in vendor directory pointing to the staging client. This # let other packages use the staging client as if it were vendored. diff --git a/third_party/forked/godep/pkg.go b/third_party/forked/godep/pkg.go index b19d5f9b0ab..775f384867f 100644 --- a/third_party/forked/godep/pkg.go +++ b/third_party/forked/godep/pkg.go @@ -1,8 +1,11 @@ package main import ( + "fmt" "go/build" + "os" "regexp" + "sort" "strings" ) @@ -42,9 +45,19 @@ func LoadPackages(names ...string) (a []*Package, err error) { if len(names) == 0 { return nil, nil } + + pkgs := strings.Split(ignorePackages, ",") + sort.Strings(pkgs) for _, i := range importPaths(names) { p, err := listPackage(i) if err != nil { + if len(pkgs) > 0 { + idx := sort.SearchStrings(pkgs, i) + if idx < len(pkgs) && pkgs[idx] == i { + fmt.Fprintf(os.Stderr, "warning: ignoring package %q \n", i) + continue + } + } return nil, err } a = append(a, p) diff --git a/third_party/forked/godep/save.go b/third_party/forked/godep/save.go index da8873fa919..c00e9e5116b 100644 --- a/third_party/forked/godep/save.go +++ b/third_party/forked/godep/save.go @@ -64,11 +64,13 @@ For more about specifying packages, see 'go help packages'. var ( saveR, saveT bool + ignorePackages string ) func init() { cmdSave.Flag.BoolVar(&saveR, "r", false, "rewrite import paths") cmdSave.Flag.BoolVar(&saveT, "t", false, "save test files") + cmdSave.Flag.StringVar(&ignorePackages, "i", "", "list of packages to ignore separated by commas") } func runSave(cmd *Command, args []string) {