From 347c3612c96fa6e34890d206e163e7b95386f53f Mon Sep 17 00:00:00 2001 From: Jeff Grafton Date: Thu, 7 Jun 2018 18:55:54 -0700 Subject: [PATCH] Set gazelle:importmap_prefix for everything under staging/src --- pkg/generated/openapi/def.bzl | 14 ++++++++++---- pkg/version/def.bzl | 3 +-- staging/src/BUILD | 1 + .../src/k8s.io/apimachinery/pkg/util/sets/BUILD | 3 ++- 4 files changed, 14 insertions(+), 7 deletions(-) diff --git a/pkg/generated/openapi/def.bzl b/pkg/generated/openapi/def.bzl index 7acab157aab..07dda762808 100644 --- a/pkg/generated/openapi/def.bzl +++ b/pkg/generated/openapi/def.bzl @@ -31,15 +31,21 @@ def openapi_library(name, tags, srcs, go_prefix, vendor_prefix = "", openapi_tar name = "zz_generated.openapi", srcs = ["//" + vendor_prefix + "hack/boilerplate:boilerplate.go.txt"], outs = ["zz_generated.openapi.go"], + # In order for vendored dependencies to be imported correctly, + # the generator must run from the repo root inside the generated GOPATH. + # All of bazel's $(location)s are relative to the original working directory, however, + # so we must save it first. cmd = " ".join([ - "$(location //vendor/k8s.io/code-generator/cmd/openapi-gen)", + "ORIG_WD=$$(pwd);", + "cd $$GOPATH/src/" + go_prefix + ";", + "$$ORIG_WD/$(location //vendor/k8s.io/code-generator/cmd/openapi-gen)", "--v 1", "--logtostderr", - "--go-header-file $(location //" + vendor_prefix + "hack/boilerplate:boilerplate.go.txt)", + "--go-header-file $$ORIG_WD/$(location //" + vendor_prefix + "hack/boilerplate:boilerplate.go.txt)", "--output-file-base zz_generated.openapi", "--output-package " + go_prefix + "pkg/generated/openapi", - "--input-dirs " + ",".join([go_prefix + target for target in openapi_targets] + vendor_targets), - "&& cp $$GOPATH/src/" + go_prefix + "pkg/generated/openapi/zz_generated.openapi.go $(location :zz_generated.openapi.go)", + "--input-dirs " + ",".join([go_prefix + target for target in openapi_targets] + [go_prefix + "vendor/" + target for target in vendor_targets]), + "&& cp $$GOPATH/src/" + go_prefix + "pkg/generated/openapi/zz_generated.openapi.go $$ORIG_WD/$(location :zz_generated.openapi.go)", ]), go_deps = deps, tools = ["//vendor/k8s.io/code-generator/cmd/openapi-gen"], diff --git a/pkg/version/def.bzl b/pkg/version/def.bzl index 40fb271c78a..302893b1b88 100644 --- a/pkg/version/def.bzl +++ b/pkg/version/def.bzl @@ -17,8 +17,7 @@ def version_x_defs(): # This should match the list of packages in kube::version::ldflag stamp_pkgs = [ "k8s.io/kubernetes/pkg/version", - # In hack/lib/version.sh, this has a vendor/ prefix. That isn't needed here? - "k8s.io/client-go/pkg/version", + "k8s.io/kubernetes/vendor/k8s.io/client-go/pkg/version", ] # This should match the list of vars in kube::version::ldflags diff --git a/staging/src/BUILD b/staging/src/BUILD index 1bc4df5a1bf..539aaef61f0 100644 --- a/staging/src/BUILD +++ b/staging/src/BUILD @@ -2,6 +2,7 @@ # "k8s.io/kubernetes/staging/src" to the importpath. # Using this directive ensures that it sets the correct importpath. # gazelle:prefix +# gazelle:importmap_prefix k8s.io/kubernetes/vendor filegroup( name = "package-srcs", diff --git a/staging/src/k8s.io/apimachinery/pkg/util/sets/BUILD b/staging/src/k8s.io/apimachinery/pkg/util/sets/BUILD index 2c03d83471f..240a705fc52 100644 --- a/staging/src/k8s.io/apimachinery/pkg/util/sets/BUILD +++ b/staging/src/k8s.io/apimachinery/pkg/util/sets/BUILD @@ -20,6 +20,7 @@ go_library( importpath = "k8s.io/apimachinery/pkg/util/sets", ) +# This rule makes all sorts of terrible assumptions that it's running inside k8s.io/kubernetes, even though it's part of k8s.io/apimachinery. :\ go_genrule( name = "set-gen", srcs = [ @@ -35,7 +36,7 @@ go_genrule( ], cmd = """ $(location //vendor/k8s.io/code-generator/cmd/set-gen) \ - --input-dirs k8s.io/apimachinery/pkg/util/sets/types \ + --input-dirs k8s.io/kubernetes/vendor/k8s.io/apimachinery/pkg/util/sets/types \ --output-base $$(dirname $$(dirname $(location :byte.go))) \ --go-header-file $(location //hack/boilerplate:boilerplate.generatego.txt) \ --output-package sets