From 933e67a9ecac814839f514fb5c31c78f3d33e5fe Mon Sep 17 00:00:00 2001 From: moderation Date: Sun, 23 Aug 2020 16:14:38 -0700 Subject: [PATCH] Dependencies: build updates. (#12786) - Update language from Skylark to Starlark - Comment sorting of `bazel/repository_locations.bzl` - build dependency updates - formatting consistency Risk Level: Low Testing: `bazel --nohome_rc build @envoy_api//envoy/...`, `bazel --nohome_rc test //test/...` Docs Changes: none required Release Notes: none required Signed-off-by: Michael Payne --- bazel/envoy_library.bzl | 2 +- bazel/repository_locations.bzl | 32 +++++++++---------- source/extensions/extensions_build_config.bzl | 8 +++-- tools/code_format/check_format.py | 22 ++++++------- 4 files changed, 33 insertions(+), 31 deletions(-) diff --git a/bazel/envoy_library.bzl b/bazel/envoy_library.bzl index 25b4c6ba17d7..038efb29e225 100644 --- a/bazel/envoy_library.bzl +++ b/bazel/envoy_library.bzl @@ -21,7 +21,7 @@ def tcmalloc_external_deps(repository): # Envoy C++ library targets that need no transformations or additional dependencies before being # passed to cc_library should be specified with this function. Note: this exists to ensure that -# all envoy targets pass through an envoy-declared starlark function where they can be modified +# all envoy targets pass through an envoy-declared Starlark function where they can be modified # before being passed to a native bazel function. def envoy_basic_cc_library(name, deps = [], external_deps = [], **kargs): cc_library( diff --git a/bazel/repository_locations.bzl b/bazel/repository_locations.bzl index 8f6d636ee0aa..a63f13436127 100644 --- a/bazel/repository_locations.bzl +++ b/bazel/repository_locations.bzl @@ -21,24 +21,24 @@ DEPENDENCY_ANNOTATIONS = [ # NOTE: If a dependency use case is either dataplane or controlplane, the other uses are not needed # to be declared. USE_CATEGORIES = [ - # This dependency is used in build process. - "build", - # This dependency is used for unit tests. - "test", # This dependency is used in API protos. "api", - # This dependency is used in processing downstream or upstream requests. - "dataplane", + # This dependency is used in build process. + "build", # This dependency is used to process xDS requests. "controlplane", + # This dependency is used in processing downstream or upstream requests. + "dataplane", # This dependecy is used for logging, metrics or tracing. It may process unstrusted input. "observability", # This dependency does not handle untrusted data and is used for various utility purposes. "other", + # This dependency is used for unit tests. + "test", ] # Components with these use categories are not required to specify the 'cpe' annotation. -USE_CATEGORIES_WITH_CPE_OPTIONAL = ["build", "test", "other"] +USE_CATEGORIES_WITH_CPE_OPTIONAL = ["build", "other", "test"] DEPENDENCY_REPOSITORIES_SPEC = dict( bazel_compdb = dict( @@ -53,16 +53,16 @@ DEPENDENCY_REPOSITORIES_SPEC = dict( bazel_gazelle = dict( project_name = "Gazelle", project_url = "https://github.com/bazelbuild/bazel-gazelle", - version = "0.19.1", - sha256 = "86c6d481b3f7aedc1d60c1c211c6f76da282ae197c3b3160f54bd3a8f847896f", + version = "0.21.1", + sha256 = "cdb02a887a7187ea4d5a27452311a75ed8637379a1287d8eeb952138ea485f7d", urls = ["https://github.com/bazelbuild/bazel-gazelle/releases/download/v{version}/bazel-gazelle-v{version}.tar.gz"], use_category = ["build"], ), bazel_toolchains = dict( project_name = "bazel-toolchains", project_url = "https://github.com/bazelbuild/bazel-toolchains", - version = "3.4.0", - sha256 = "882fecfc88d3dc528f5c5681d95d730e213e39099abff2e637688a91a9619395", + version = "3.4.1", + sha256 = "7ebb200ed3ca3d1f7505659c7dfed01c4b5cb04c3a6f34140726fe22f5d35e86", strip_prefix = "bazel-toolchains-{version}", urls = [ "https://github.com/bazelbuild/bazel-toolchains/releases/download/{version}/bazel-toolchains-{version}.tar.gz", @@ -398,8 +398,8 @@ DEPENDENCY_REPOSITORIES_SPEC = dict( com_github_pallets_markupsafe = dict( project_name = "MarkupSafe", project_url = "https://github.com/pallets/markupsafe", - version = "1.1.1", - sha256 = "222a10e3237d92a9cd45ed5ea882626bc72bc5e0264d3ed0f2c9129fa69fc167", + version = "2.0.0a1", + sha256 = "2b0c5c2a067d9268813d55523bc513a12181cffb23b2f3d5618eb5d93776bad8", strip_prefix = "markupsafe-{version}/src", urls = ["https://github.com/pallets/markupsafe/archive/{version}.tar.gz"], use_category = ["build"], @@ -497,9 +497,9 @@ DEPENDENCY_REPOSITORIES_SPEC = dict( rules_foreign_cc = dict( project_name = "Rules for using foreign build systems in Bazel", project_url = "https://github.com/bazelbuild/rules_foreign_cc", - # 2020-06-09 - version = "f54b7ae56dcf1b81bcafed3a08d58fc08ac095a7", - sha256 = "7ca49ac5b0bc8f5a2c9a7e87b7f86aca604bda197259c9b96f8b7f0a4f38b57b", + # 2020-08-21 + version = "594bf4d7731e606a705f3ad787dd0a70c5a28b30", + sha256 = "2b1cf88de0b6e0195f6571cfde3a5bd406d11b42117d6adef2395c9525a1902e", strip_prefix = "rules_foreign_cc-{version}", urls = ["https://github.com/bazelbuild/rules_foreign_cc/archive/{version}.tar.gz"], use_category = ["build"], diff --git a/source/extensions/extensions_build_config.bzl b/source/extensions/extensions_build_config.bzl index c95f3b031ae1..e0dd5e66bf95 100644 --- a/source/extensions/extensions_build_config.bzl +++ b/source/extensions/extensions_build_config.bzl @@ -193,10 +193,12 @@ EXTENSIONS = { "envoy.internal_redirect_predicates.previous_routes": "//source/extensions/internal_redirect/previous_routes:config", "envoy.internal_redirect_predicates.safe_cross_scheme": "//source/extensions/internal_redirect/safe_cross_scheme:config", + # # Http Upstreams (excepting envoy.upstreams.http.generic which is hard-coded into the build so not registered here) - "envoy.upstreams.http.http": "//source/extensions/upstreams/http/http:config", - "envoy.upstreams.http.tcp": "//source/extensions/upstreams/http/tcp:config", + # + "envoy.upstreams.http.http": "//source/extensions/upstreams/http/http:config", + "envoy.upstreams.http.tcp": "//source/extensions/upstreams/http/tcp:config", } @@ -204,4 +206,4 @@ EXTENSIONS = { # (//:extension_config and //:extension_library in //BUILD) # if downstream Envoy builds need to directly reference envoy extensions. ADDITIONAL_VISIBILITY = [ - ] +] diff --git a/tools/code_format/check_format.py b/tools/code_format/check_format.py index 7e0fccd15a25..18c9e092ce0a 100755 --- a/tools/code_format/check_format.py +++ b/tools/code_format/check_format.py @@ -401,7 +401,7 @@ def isExternalBuildFile(file_path): file_path.startswith("./tools/clang_tools")) -def isSkylarkFile(file_path): +def isStarlarkFile(file_path): return file_path.endswith(".bzl") @@ -774,20 +774,20 @@ def checkSourceLine(line, file_path, reportError): def checkBuildLine(line, file_path, reportError): - if "@bazel_tools" in line and not (isSkylarkFile(file_path) or file_path.startswith("./bazel/") or - "python/runfiles" in line): + if "@bazel_tools" in line and not (isStarlarkFile(file_path) or + file_path.startswith("./bazel/") or "python/runfiles" in line): reportError("unexpected @bazel_tools reference, please indirect via a definition in //bazel") if not allowlistedForProtobufDeps(file_path) and '"protobuf"' in line: reportError("unexpected direct external dependency on protobuf, use " "//source/common/protobuf instead.") - if (envoy_build_rule_check and not isSkylarkFile(file_path) and not isWorkspaceFile(file_path) and - not isExternalBuildFile(file_path) and "@envoy//" in line): + if (envoy_build_rule_check and not isStarlarkFile(file_path) and + not isWorkspaceFile(file_path) and not isExternalBuildFile(file_path) and "@envoy//" in line): reportError("Superfluous '@envoy//' prefix") def fixBuildLine(file_path, line, line_number): - if (envoy_build_rule_check and not isSkylarkFile(file_path) and not isWorkspaceFile(file_path) and - not isExternalBuildFile(file_path)): + if (envoy_build_rule_check and not isStarlarkFile(file_path) and + not isWorkspaceFile(file_path) and not isExternalBuildFile(file_path)): line = line.replace("@envoy//", "//") return line @@ -798,7 +798,7 @@ def fixBuildPath(file_path): error_messages = [] # TODO(htuch): Add API specific BUILD fixer script. - if not isBuildFixerExcludedFile(file_path) and not isApiFile(file_path) and not isSkylarkFile( + if not isBuildFixerExcludedFile(file_path) and not isApiFile(file_path) and not isStarlarkFile( file_path) and not isWorkspaceFile(file_path): if os.system("%s %s %s" % (ENVOY_BUILD_FIXER_PATH, file_path, file_path)) != 0: error_messages += ["envoy_build_fixer rewrite failed for file: %s" % file_path] @@ -811,7 +811,7 @@ def fixBuildPath(file_path): def checkBuildPath(file_path): error_messages = [] - if not isBuildFixerExcludedFile(file_path) and not isApiFile(file_path) and not isSkylarkFile( + if not isBuildFixerExcludedFile(file_path) and not isApiFile(file_path) and not isStarlarkFile( file_path) and not isWorkspaceFile(file_path): command = "%s %s | diff %s -" % (ENVOY_BUILD_FIXER_PATH, file_path, file_path) error_messages += executeCommand(command, "envoy_build_fixer check failed", file_path) @@ -917,7 +917,7 @@ def checkFormat(file_path): # Apply fixes first, if asked, and then run checks. If we wind up attempting to fix # an issue, but there's still an error, that's a problem. try_to_fix = operation_type == "fix" - if isBuildFile(file_path) or isSkylarkFile(file_path) or isWorkspaceFile(file_path): + if isBuildFile(file_path) or isStarlarkFile(file_path) or isWorkspaceFile(file_path): if try_to_fix: error_messages += fixBuildPath(file_path) error_messages += checkBuildPath(file_path) @@ -999,7 +999,7 @@ def checkFormatVisitor(arg, dir_name, names): checkOwners(dir_name[len(source_prefix):], owned_directories, error_messages) for file_name in names: - if dir_name.startswith("./api") and isSkylarkFile(file_name): + if dir_name.startswith("./api") and isStarlarkFile(file_name): result = pool.apply_async(checkApiShadowStarlarkFiles, args=(api_shadow_root, dir_name + "/" + file_name, error_messages)) result_list.append(result)