From 93b9b82cae60049b6d8782b982e9f260722629d7 Mon Sep 17 00:00:00 2001 From: fisherxu Date: Fri, 26 Jan 2018 18:54:30 +0800 Subject: [PATCH] fix boilerplate checker of kubernetes/kubernetes update bazel and remove passing golint packages --- hack/.golint_failures | 7 --- hack/boilerplate/boilerplate.py | 43 +++++++++++++++---- .../client/informers/externalversions/BUILD | 1 + .../externalversions/internalinterfaces/BUILD | 1 + .../k8s.io/apimachinery/pkg/util/sets/BUILD | 4 +- 5 files changed, 38 insertions(+), 18 deletions(-) diff --git a/hack/.golint_failures b/hack/.golint_failures index 95a0b7fb99b..d4e4dffea05 100644 --- a/hack/.golint_failures +++ b/hack/.golint_failures @@ -449,12 +449,6 @@ staging/src/k8s.io/api/storage/v1alpha1 staging/src/k8s.io/api/storage/v1beta1 staging/src/k8s.io/apiextensions-apiserver/examples/client-go/pkg/apis/cr staging/src/k8s.io/apiextensions-apiserver/examples/client-go/pkg/apis/cr/v1 -staging/src/k8s.io/apiextensions-apiserver/examples/client-go/pkg/client/clientset/versioned -staging/src/k8s.io/apiextensions-apiserver/examples/client-go/pkg/client/clientset/versioned/fake -staging/src/k8s.io/apiextensions-apiserver/examples/client-go/pkg/client/clientset/versioned/scheme -staging/src/k8s.io/apiextensions-apiserver/examples/client-go/pkg/client/clientset/versioned/typed/cr/v1 -staging/src/k8s.io/apiextensions-apiserver/examples/client-go/pkg/client/clientset/versioned/typed/cr/v1/fake -staging/src/k8s.io/apiextensions-apiserver/examples/client-go/pkg/client/informers/externalversions/internalinterfaces staging/src/k8s.io/apiextensions-apiserver/pkg/apis/apiextensions staging/src/k8s.io/apiextensions-apiserver/pkg/apis/apiextensions/v1beta1 staging/src/k8s.io/apiextensions-apiserver/pkg/apiserver @@ -505,7 +499,6 @@ staging/src/k8s.io/apimachinery/pkg/util/proxy staging/src/k8s.io/apimachinery/pkg/util/rand staging/src/k8s.io/apimachinery/pkg/util/remotecommand staging/src/k8s.io/apimachinery/pkg/util/runtime -staging/src/k8s.io/apimachinery/pkg/util/sets staging/src/k8s.io/apimachinery/pkg/util/sets/types staging/src/k8s.io/apimachinery/pkg/util/strategicpatch staging/src/k8s.io/apimachinery/pkg/util/uuid diff --git a/hack/boilerplate/boilerplate.py b/hack/boilerplate/boilerplate.py index 9ff1d776da3..81a080e9599 100755 --- a/hack/boilerplate/boilerplate.py +++ b/hack/boilerplate/boilerplate.py @@ -62,6 +62,14 @@ def get_refs(): return refs +def is_generated_file(filename, data, regexs): + for d in skipped_ungenerated_files: + if d in filename: + return False + + p = regexs["generated"] + return p.search(data) + def file_passes(filename, refs, regexs): try: f = open(filename, 'r') @@ -72,15 +80,22 @@ def file_passes(filename, refs, regexs): data = f.read() f.close() + # determine if the file is automatically generated + generated = is_generated_file(filename, data, regexs) + basename = os.path.basename(filename) - extension = file_extension(filename) + if generated: + extension = "generatego" + else: + extension = file_extension(filename) + if extension != "": ref = refs[extension] else: ref = refs[basename] # remove build tags from the top of Go files - if extension == "go": + if extension == "go" or extension =="generatego": p = regexs["go_build_constraints"] (data, found) = p.subn("", data, 1) @@ -104,15 +119,19 @@ def file_passes(filename, refs, regexs): p = regexs["year"] for d in data: if p.search(d): - print('File %s is missing the year' % filename, file=verbose_out) + if generated: + print('File %s has the YEAR field, but it should not be in generated file' % filename, file=verbose_out) + else: + print('File %s has the YEAR field, but missing the year of date' % filename, file=verbose_out) return False - # Replace all occurrences of the regex "2014|2015|2016|2017|2018" with "YEAR" - p = regexs["date"] - for i, d in enumerate(data): - (data[i], found) = p.subn('YEAR', d) - if found != 0: - break + if not generated: + # Replace all occurrences of the regex "2014|2015|2016|2017|2018" with "YEAR" + p = regexs["date"] + for i, d in enumerate(data): + (data[i], found) = p.subn('YEAR', d) + if found != 0: + break # if we don't match the reference at this point, fail if ref != data: @@ -133,6 +152,10 @@ skipped_dirs = ['Godeps', 'third_party', '_gopath', '_output', '.git', 'cluster/ "vendor", "test/e2e/generated/bindata.go", "hack/boilerplate/test", "pkg/generated/bindata.go"] +# list all the files contain 'DO NOT EDIT', but are not generated +skipped_ungenerated_files = ['hack/build-ui.sh', 'hack/lib/swagger.sh', + 'hack/boilerplate/boilerplate.py'] + def normalize_files(files): newfiles = [] for pathname in files: @@ -181,6 +204,8 @@ def get_regexs(): regexs["go_build_constraints"] = re.compile(r"^(// \+build.*\n)+\n", re.MULTILINE) # strip #!.* from shell scripts regexs["shebang"] = re.compile(r"^(#!.*\n)\n*", re.MULTILINE) + # Search for generated files + regexs["generated"] = re.compile( 'DO NOT EDIT' ) return regexs def main(): diff --git a/staging/src/k8s.io/apiextensions-apiserver/examples/client-go/pkg/client/informers/externalversions/BUILD b/staging/src/k8s.io/apiextensions-apiserver/examples/client-go/pkg/client/informers/externalversions/BUILD index cd892cb0716..4a89d124811 100644 --- a/staging/src/k8s.io/apiextensions-apiserver/examples/client-go/pkg/client/informers/externalversions/BUILD +++ b/staging/src/k8s.io/apiextensions-apiserver/examples/client-go/pkg/client/informers/externalversions/BUILD @@ -13,6 +13,7 @@ go_library( "//vendor/k8s.io/apiextensions-apiserver/examples/client-go/pkg/client/clientset/versioned:go_default_library", "//vendor/k8s.io/apiextensions-apiserver/examples/client-go/pkg/client/informers/externalversions/cr:go_default_library", "//vendor/k8s.io/apiextensions-apiserver/examples/client-go/pkg/client/informers/externalversions/internalinterfaces:go_default_library", + "//vendor/k8s.io/apimachinery/pkg/apis/meta/v1:go_default_library", "//vendor/k8s.io/apimachinery/pkg/runtime:go_default_library", "//vendor/k8s.io/apimachinery/pkg/runtime/schema:go_default_library", "//vendor/k8s.io/client-go/tools/cache:go_default_library", diff --git a/staging/src/k8s.io/apiextensions-apiserver/examples/client-go/pkg/client/informers/externalversions/internalinterfaces/BUILD b/staging/src/k8s.io/apiextensions-apiserver/examples/client-go/pkg/client/informers/externalversions/internalinterfaces/BUILD index 20b8782997a..e57a5a05a8e 100644 --- a/staging/src/k8s.io/apiextensions-apiserver/examples/client-go/pkg/client/informers/externalversions/internalinterfaces/BUILD +++ b/staging/src/k8s.io/apiextensions-apiserver/examples/client-go/pkg/client/informers/externalversions/internalinterfaces/BUILD @@ -7,6 +7,7 @@ go_library( visibility = ["//visibility:public"], deps = [ "//vendor/k8s.io/apiextensions-apiserver/examples/client-go/pkg/client/clientset/versioned:go_default_library", + "//vendor/k8s.io/apimachinery/pkg/apis/meta/v1:go_default_library", "//vendor/k8s.io/apimachinery/pkg/runtime:go_default_library", "//vendor/k8s.io/client-go/tools/cache:go_default_library", ], diff --git a/staging/src/k8s.io/apimachinery/pkg/util/sets/BUILD b/staging/src/k8s.io/apimachinery/pkg/util/sets/BUILD index ec2f2347667..aaccd789b48 100644 --- a/staging/src/k8s.io/apimachinery/pkg/util/sets/BUILD +++ b/staging/src/k8s.io/apimachinery/pkg/util/sets/BUILD @@ -23,7 +23,7 @@ go_library( go_genrule( name = "set-gen", srcs = [ - "//hack/boilerplate:boilerplate.go.txt", + "//hack/boilerplate:boilerplate.generatego.txt", ], outs = [ "byte.go", @@ -37,7 +37,7 @@ go_genrule( $(location //vendor/k8s.io/code-generator/cmd/set-gen) \ --input-dirs ./vendor/k8s.io/apimachinery/pkg/util/sets/types \ --output-base $$(dirname $$(dirname $(location :byte.go))) \ - --go-header-file $(location //hack/boilerplate:boilerplate.go.txt) \ + --go-header-file $(location //hack/boilerplate:boilerplate.generatego.txt) \ --output-package sets """, go_deps = [