From 5f8de55f5f9410d747fee8a20dfa875b1bc6022b Mon Sep 17 00:00:00 2001 From: Tony Aiuto Date: Fri, 18 Dec 2020 16:15:01 -0500 Subject: [PATCH 01/16] More progress on #12081. Create a capability to generate WORKSPACE files for tests at build time, based on the repository definitions in distdir_deps.bzl. This makes it possible for the versions of repositories used in tests to align with the versions used a Bazel build time without upddating files scattered throughout the source and test trees. Demonstrated with rules_cc. --- distdir_deps.bzl | 66 ++++++++++++++++++- .../devtools/build/lib/bazel/rules/cpp/BUILD | 17 ++++- .../bazel/rules/cpp/cc_configure.WORKSPACE | 17 ----- .../devtools/build/lib/bazel/rules/java/BUILD | 12 +++- .../{jdk.WORKSPACE => jdk.WORKSPACE.tmpl} | 11 +--- 5 files changed, 93 insertions(+), 30 deletions(-) delete mode 100644 src/main/java/com/google/devtools/build/lib/bazel/rules/cpp/cc_configure.WORKSPACE rename src/main/java/com/google/devtools/build/lib/bazel/rules/java/{jdk.WORKSPACE => jdk.WORKSPACE.tmpl} (95%) diff --git a/distdir_deps.bzl b/distdir_deps.bzl index c1a84f1f1bf48e..976ece1e40d2da 100644 --- a/distdir_deps.bzl +++ b/distdir_deps.bzl @@ -19,7 +19,7 @@ DIST_DEPS = { "rules_cc": { "archive": "b1c40e1de81913a3c40e5948f78719c28152486d.zip", "sha256": "d0c573b94a6ef20ef6ff20154a23d0efcb409fb0e1ff0979cec318dfe42f0cdd", - "strip_prefix": "rules_cc-b1c40e1de81913a3c40e5948f78719c28152486d", + "strip_prefix": "ules_cc-b1c40e1de81913a3c40e5948f78719c28152486d", "urls": [ "https://mirror.bazel.build/github.com/bazelbuild/rules_cc/archive/b1c40e1de81913a3c40e5948f78719c28152486d.zip", "https://github.com/bazelbuild/rules_cc/archive/b1c40e1de81913a3c40e5948f78719c28152486d.zip", @@ -35,3 +35,67 @@ DIST_DEPS = { ], }, } + +def _gen_workspace_stanza_impl(ctx): + if ctx.attr.template and (ctx.attr.preamble or ctx.attr.postamble): + fail("Can not use template with either preamble or postamble") + + repo_clause = """ +maybe( + http_archive, + "{repo}", + sha256 = "{sha256}", + strip_prefix = {strip_prefix}, + urls = "{urls}", +) +""" + repo_stanzas = {} + for repo in ctx.attr.repos: + info = DIST_DEPS[repo] + strip_prefix = info.get("strip_prefix") + if strip_prefix: + strip_prefix = "\"%s\"" % strip_prefix + else: + strip_prefix = "None" + + repo_stanzas["{%s}" % repo] = repo_clause.format( + repo = repo, + archive = info["archive"], + sha256 = str(info["sha256"]), + strip_prefix = strip_prefix, + urls = info["urls"], + ) + + if ctx.attr.template: + print(repo_stanzas) + ctx.actions.expand_template( + output = ctx.outputs.out, + template = ctx.file.template, + substitutions = repo_stanzas, + ) + else: + content = "\n".join([l.strip() for l in ctx.attr.preamble.strip().split("\n")]) + content += "\n" + content += "".join(repo_stanzas.values()) + content += "\n" + content += "\n".join([l.strip() for l in ctx.attr.postamble.strip().split("\n")]) + content += "\n" + ctx.actions.write(ctx.outputs.out, content) + + return [DefaultInfo(files = depset([ctx.outputs.out]))] + +gen_workspace_stanza = rule( + implementation = _gen_workspace_stanza_impl, + attrs = { + "repos": attr.string_list(doc = "Set of repos to inlcude"), + "out": attr.output(mandatory = True), + "preamble": attr.string(doc = "Preamble."), + "postamble": attr.string(doc = "setup rules to follow repos."), + "template": attr.label( + doc = "Template WORKSPACE file. May not be used with preable or postamble." + + "Repo stanzas can be include with the syntax '{repo name}'.", + allow_single_file = True, + mandatory = False, + ), + }, +) diff --git a/src/main/java/com/google/devtools/build/lib/bazel/rules/cpp/BUILD b/src/main/java/com/google/devtools/build/lib/bazel/rules/cpp/BUILD index c51f851b7ad0fc..cf2fff9d79f026 100644 --- a/src/main/java/com/google/devtools/build/lib/bazel/rules/cpp/BUILD +++ b/src/main/java/com/google/devtools/build/lib/bazel/rules/cpp/BUILD @@ -1,3 +1,4 @@ +load("//:distdir_deps.bzl", "gen_workspace_stanza") load("@rules_java//java:defs.bzl", "java_library") package( @@ -18,7 +19,7 @@ java_library( ["*.java"], exclude = ["BazelCppSemantics.java"], ), - resources = glob(["*.WORKSPACE"]), + resources = [":workspace_with_rules_cc"], deps = [ ":bazel_cpp_semantics", "//src/main/java/com/google/devtools/build/lib/actions:artifacts", @@ -52,3 +53,17 @@ java_library( "//third_party:guava", ], ) + +gen_workspace_stanza( + name = "workspace_with_rules_cc", + out = "cc_configure.WORKSPACE", + postamble = """ + cc_configure() + """, + preamble = """ + load("@bazel_tools//tools/build_defs/repo:http.bzl", "http_archive") + load("@bazel_tools//tools/build_defs/repo:utils.bzl", "maybe") + load("@bazel_tools//tools/cpp:cc_configure.bzl", "cc_configure") + """, + repos = ["rules_cc"], +) diff --git a/src/main/java/com/google/devtools/build/lib/bazel/rules/cpp/cc_configure.WORKSPACE b/src/main/java/com/google/devtools/build/lib/bazel/rules/cpp/cc_configure.WORKSPACE deleted file mode 100644 index 6257a4c104d919..00000000000000 --- a/src/main/java/com/google/devtools/build/lib/bazel/rules/cpp/cc_configure.WORKSPACE +++ /dev/null @@ -1,17 +0,0 @@ -load("@bazel_tools//tools/build_defs/repo:http.bzl", "http_archive") -load("@bazel_tools//tools/build_defs/repo:utils.bzl", "maybe") -load("@bazel_tools//tools/cpp:cc_configure.bzl", "cc_configure") - -# rules_cc is used in @bazel_tools//tools/cpp, so must be loaded here. -maybe( - http_archive, - "rules_cc", - sha256 = "d0c573b94a6ef20ef6ff20154a23d0efcb409fb0e1ff0979cec318dfe42f0cdd", - strip_prefix = "rules_cc-b1c40e1de81913a3c40e5948f78719c28152486d", - urls = [ - "https://mirror.bazel.build/github.com/bazelbuild/rules_cc/archive/b1c40e1de81913a3c40e5948f78719c28152486d.zip", - "https://github.com/bazelbuild/rules_cc/archive/b1c40e1de81913a3c40e5948f78719c28152486d.zip", - ], -) - -cc_configure() diff --git a/src/main/java/com/google/devtools/build/lib/bazel/rules/java/BUILD b/src/main/java/com/google/devtools/build/lib/bazel/rules/java/BUILD index 2532a4114ff842..a9b70ce828a815 100644 --- a/src/main/java/com/google/devtools/build/lib/bazel/rules/java/BUILD +++ b/src/main/java/com/google/devtools/build/lib/bazel/rules/java/BUILD @@ -1,4 +1,5 @@ load("@rules_java//java:defs.bzl", "java_library") +load("//:distdir_deps.bzl", "gen_workspace_stanza") package( default_visibility = ["//src:__subpackages__"], @@ -23,7 +24,9 @@ java_library( "*.txt", "*.WORKSPACE", ], - ), + ) + [ + ":jdk.WORKSPACE", + ], deps = [ ":bazel_java_semantics", "//src/main/java/com/google/devtools/build/lib/analysis:analysis_cluster", @@ -71,3 +74,10 @@ java_library( "//third_party:jsr305", ], ) + +gen_workspace_stanza( + name = "workspace_with_jdk", + out = "jdk.WORKSPACE", + repos = ["rules_cc"], + template = "jdk.WORKSPACE.tmpl", +) diff --git a/src/main/java/com/google/devtools/build/lib/bazel/rules/java/jdk.WORKSPACE b/src/main/java/com/google/devtools/build/lib/bazel/rules/java/jdk.WORKSPACE.tmpl similarity index 95% rename from src/main/java/com/google/devtools/build/lib/bazel/rules/java/jdk.WORKSPACE rename to src/main/java/com/google/devtools/build/lib/bazel/rules/java/jdk.WORKSPACE.tmpl index 727433f280011f..463a8e2d3c9e43 100644 --- a/src/main/java/com/google/devtools/build/lib/bazel/rules/java/jdk.WORKSPACE +++ b/src/main/java/com/google/devtools/build/lib/bazel/rules/java/jdk.WORKSPACE.tmpl @@ -266,16 +266,7 @@ maybe( ) # Needed only because of java_tools. -maybe( - http_archive, - "rules_cc", - sha256 = "d0c573b94a6ef20ef6ff20154a23d0efcb409fb0e1ff0979cec318dfe42f0cdd", - strip_prefix = "rules_cc-b1c40e1de81913a3c40e5948f78719c28152486d", - urls = [ - "https://mirror.bazel.build/github.com/bazelbuild/rules_cc/archive/b1c40e1de81913a3c40e5948f78719c28152486d.zip", - "https://github.com/bazelbuild/rules_cc/archive/b1c40e1de81913a3c40e5948f78719c28152486d.zip", - ], -) +{rules_cc} # Needed only because of java_tools. maybe( From a5837bf30973ed0a5cccaa6c62f6425c85e7a793 Mon Sep 17 00:00:00 2001 From: Tony Aiuto Date: Fri, 18 Dec 2020 16:21:00 -0500 Subject: [PATCH 02/16] x --- distdir_deps.bzl | 2 +- .../java/com/google/devtools/build/lib/bazel/rules/cpp/BUILD | 2 +- 2 files changed, 2 insertions(+), 2 deletions(-) diff --git a/distdir_deps.bzl b/distdir_deps.bzl index 976ece1e40d2da..59f262ba29d265 100644 --- a/distdir_deps.bzl +++ b/distdir_deps.bzl @@ -19,7 +19,7 @@ DIST_DEPS = { "rules_cc": { "archive": "b1c40e1de81913a3c40e5948f78719c28152486d.zip", "sha256": "d0c573b94a6ef20ef6ff20154a23d0efcb409fb0e1ff0979cec318dfe42f0cdd", - "strip_prefix": "ules_cc-b1c40e1de81913a3c40e5948f78719c28152486d", + "strip_prefix": "rules_cc-b1c40e1de81913a3c40e5948f78719c28152486d", "urls": [ "https://mirror.bazel.build/github.com/bazelbuild/rules_cc/archive/b1c40e1de81913a3c40e5948f78719c28152486d.zip", "https://github.com/bazelbuild/rules_cc/archive/b1c40e1de81913a3c40e5948f78719c28152486d.zip", diff --git a/src/main/java/com/google/devtools/build/lib/bazel/rules/cpp/BUILD b/src/main/java/com/google/devtools/build/lib/bazel/rules/cpp/BUILD index cf2fff9d79f026..38e8d8683635d4 100644 --- a/src/main/java/com/google/devtools/build/lib/bazel/rules/cpp/BUILD +++ b/src/main/java/com/google/devtools/build/lib/bazel/rules/cpp/BUILD @@ -19,7 +19,7 @@ java_library( ["*.java"], exclude = ["BazelCppSemantics.java"], ), - resources = [":workspace_with_rules_cc"], + resources = [":cc_configure.WORKSPACE"], deps = [ ":bazel_cpp_semantics", "//src/main/java/com/google/devtools/build/lib/actions:artifacts", From 9862b6eb6513683ac88140c5b9d31beb7c712ddf Mon Sep 17 00:00:00 2001 From: Tony Aiuto Date: Fri, 18 Dec 2020 16:32:24 -0500 Subject: [PATCH 03/16] move branch name --- distdir_deps.bzl | 1 - 1 file changed, 1 deletion(-) diff --git a/distdir_deps.bzl b/distdir_deps.bzl index 59f262ba29d265..1cb6bfff3f19a0 100644 --- a/distdir_deps.bzl +++ b/distdir_deps.bzl @@ -67,7 +67,6 @@ maybe( ) if ctx.attr.template: - print(repo_stanzas) ctx.actions.expand_template( output = ctx.outputs.out, template = ctx.file.template, From f625426d35dfb8699958aa0578d51737b1bb8667 Mon Sep 17 00:00:00 2001 From: Tony Aiuto Date: Fri, 18 Dec 2020 16:50:00 -0500 Subject: [PATCH 04/16] fix typo in url field --- distdir_deps.bzl | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/distdir_deps.bzl b/distdir_deps.bzl index 1cb6bfff3f19a0..9bb7150207e928 100644 --- a/distdir_deps.bzl +++ b/distdir_deps.bzl @@ -46,7 +46,7 @@ maybe( "{repo}", sha256 = "{sha256}", strip_prefix = {strip_prefix}, - urls = "{urls}", + urls = {urls}, ) """ repo_stanzas = {} From bc0f7f17c135531b1fafcc29581573f249bcd5dc Mon Sep 17 00:00:00 2001 From: Tony Aiuto Date: Mon, 21 Dec 2020 11:54:56 -0500 Subject: [PATCH 05/16] Include generated test workspace (e.g. jdk.WORKSPACE) files in bazel-srcs.tar This makes me think that the overall distfile build test is broken. You should be able to regenerate these files from the sources. --- .../java/com/google/devtools/build/lib/bazel/rules/cpp/BUILD | 1 + .../java/com/google/devtools/build/lib/bazel/rules/java/BUILD | 1 + 2 files changed, 2 insertions(+) diff --git a/src/main/java/com/google/devtools/build/lib/bazel/rules/cpp/BUILD b/src/main/java/com/google/devtools/build/lib/bazel/rules/cpp/BUILD index 38e8d8683635d4..f51d30fd4ae48f 100644 --- a/src/main/java/com/google/devtools/build/lib/bazel/rules/cpp/BUILD +++ b/src/main/java/com/google/devtools/build/lib/bazel/rules/cpp/BUILD @@ -8,6 +8,7 @@ package( filegroup( name = "srcs", srcs = glob(["*"]) + [ + ":cc_configure.WORKSPACE", "//src/main/java/com/google/devtools/build/lib/bazel/rules/cpp/proto:srcs", ], visibility = ["//src:__subpackages__"], diff --git a/src/main/java/com/google/devtools/build/lib/bazel/rules/java/BUILD b/src/main/java/com/google/devtools/build/lib/bazel/rules/java/BUILD index a9b70ce828a815..6d56e744dc0476 100644 --- a/src/main/java/com/google/devtools/build/lib/bazel/rules/java/BUILD +++ b/src/main/java/com/google/devtools/build/lib/bazel/rules/java/BUILD @@ -8,6 +8,7 @@ package( filegroup( name = "srcs", srcs = glob(["*"]) + [ + ":jdk.WORKSPACE", "//src/main/java/com/google/devtools/build/lib/bazel/rules/java/proto:srcs", ], visibility = ["//src:__subpackages__"], From 8dbb4fa63b8f7428b364594d25e0cf69a35c551c Mon Sep 17 00:00:00 2001 From: Tony Aiuto Date: Mon, 21 Dec 2020 12:12:29 -0500 Subject: [PATCH 06/16] fix my main to match upstream --- distdir_deps.bzl | 66 +------------------ .../devtools/build/lib/bazel/rules/cpp/BUILD | 17 +---- .../bazel/rules/cpp/cc_configure.WORKSPACE | 17 +++++ .../devtools/build/lib/bazel/rules/java/BUILD | 12 +--- .../{jdk.WORKSPACE.tmpl => jdk.WORKSPACE} | 11 +++- 5 files changed, 30 insertions(+), 93 deletions(-) create mode 100644 src/main/java/com/google/devtools/build/lib/bazel/rules/cpp/cc_configure.WORKSPACE rename src/main/java/com/google/devtools/build/lib/bazel/rules/java/{jdk.WORKSPACE.tmpl => jdk.WORKSPACE} (95%) diff --git a/distdir_deps.bzl b/distdir_deps.bzl index 976ece1e40d2da..c1a84f1f1bf48e 100644 --- a/distdir_deps.bzl +++ b/distdir_deps.bzl @@ -19,7 +19,7 @@ DIST_DEPS = { "rules_cc": { "archive": "b1c40e1de81913a3c40e5948f78719c28152486d.zip", "sha256": "d0c573b94a6ef20ef6ff20154a23d0efcb409fb0e1ff0979cec318dfe42f0cdd", - "strip_prefix": "ules_cc-b1c40e1de81913a3c40e5948f78719c28152486d", + "strip_prefix": "rules_cc-b1c40e1de81913a3c40e5948f78719c28152486d", "urls": [ "https://mirror.bazel.build/github.com/bazelbuild/rules_cc/archive/b1c40e1de81913a3c40e5948f78719c28152486d.zip", "https://github.com/bazelbuild/rules_cc/archive/b1c40e1de81913a3c40e5948f78719c28152486d.zip", @@ -35,67 +35,3 @@ DIST_DEPS = { ], }, } - -def _gen_workspace_stanza_impl(ctx): - if ctx.attr.template and (ctx.attr.preamble or ctx.attr.postamble): - fail("Can not use template with either preamble or postamble") - - repo_clause = """ -maybe( - http_archive, - "{repo}", - sha256 = "{sha256}", - strip_prefix = {strip_prefix}, - urls = "{urls}", -) -""" - repo_stanzas = {} - for repo in ctx.attr.repos: - info = DIST_DEPS[repo] - strip_prefix = info.get("strip_prefix") - if strip_prefix: - strip_prefix = "\"%s\"" % strip_prefix - else: - strip_prefix = "None" - - repo_stanzas["{%s}" % repo] = repo_clause.format( - repo = repo, - archive = info["archive"], - sha256 = str(info["sha256"]), - strip_prefix = strip_prefix, - urls = info["urls"], - ) - - if ctx.attr.template: - print(repo_stanzas) - ctx.actions.expand_template( - output = ctx.outputs.out, - template = ctx.file.template, - substitutions = repo_stanzas, - ) - else: - content = "\n".join([l.strip() for l in ctx.attr.preamble.strip().split("\n")]) - content += "\n" - content += "".join(repo_stanzas.values()) - content += "\n" - content += "\n".join([l.strip() for l in ctx.attr.postamble.strip().split("\n")]) - content += "\n" - ctx.actions.write(ctx.outputs.out, content) - - return [DefaultInfo(files = depset([ctx.outputs.out]))] - -gen_workspace_stanza = rule( - implementation = _gen_workspace_stanza_impl, - attrs = { - "repos": attr.string_list(doc = "Set of repos to inlcude"), - "out": attr.output(mandatory = True), - "preamble": attr.string(doc = "Preamble."), - "postamble": attr.string(doc = "setup rules to follow repos."), - "template": attr.label( - doc = "Template WORKSPACE file. May not be used with preable or postamble." + - "Repo stanzas can be include with the syntax '{repo name}'.", - allow_single_file = True, - mandatory = False, - ), - }, -) diff --git a/src/main/java/com/google/devtools/build/lib/bazel/rules/cpp/BUILD b/src/main/java/com/google/devtools/build/lib/bazel/rules/cpp/BUILD index cf2fff9d79f026..c51f851b7ad0fc 100644 --- a/src/main/java/com/google/devtools/build/lib/bazel/rules/cpp/BUILD +++ b/src/main/java/com/google/devtools/build/lib/bazel/rules/cpp/BUILD @@ -1,4 +1,3 @@ -load("//:distdir_deps.bzl", "gen_workspace_stanza") load("@rules_java//java:defs.bzl", "java_library") package( @@ -19,7 +18,7 @@ java_library( ["*.java"], exclude = ["BazelCppSemantics.java"], ), - resources = [":workspace_with_rules_cc"], + resources = glob(["*.WORKSPACE"]), deps = [ ":bazel_cpp_semantics", "//src/main/java/com/google/devtools/build/lib/actions:artifacts", @@ -53,17 +52,3 @@ java_library( "//third_party:guava", ], ) - -gen_workspace_stanza( - name = "workspace_with_rules_cc", - out = "cc_configure.WORKSPACE", - postamble = """ - cc_configure() - """, - preamble = """ - load("@bazel_tools//tools/build_defs/repo:http.bzl", "http_archive") - load("@bazel_tools//tools/build_defs/repo:utils.bzl", "maybe") - load("@bazel_tools//tools/cpp:cc_configure.bzl", "cc_configure") - """, - repos = ["rules_cc"], -) diff --git a/src/main/java/com/google/devtools/build/lib/bazel/rules/cpp/cc_configure.WORKSPACE b/src/main/java/com/google/devtools/build/lib/bazel/rules/cpp/cc_configure.WORKSPACE new file mode 100644 index 00000000000000..6257a4c104d919 --- /dev/null +++ b/src/main/java/com/google/devtools/build/lib/bazel/rules/cpp/cc_configure.WORKSPACE @@ -0,0 +1,17 @@ +load("@bazel_tools//tools/build_defs/repo:http.bzl", "http_archive") +load("@bazel_tools//tools/build_defs/repo:utils.bzl", "maybe") +load("@bazel_tools//tools/cpp:cc_configure.bzl", "cc_configure") + +# rules_cc is used in @bazel_tools//tools/cpp, so must be loaded here. +maybe( + http_archive, + "rules_cc", + sha256 = "d0c573b94a6ef20ef6ff20154a23d0efcb409fb0e1ff0979cec318dfe42f0cdd", + strip_prefix = "rules_cc-b1c40e1de81913a3c40e5948f78719c28152486d", + urls = [ + "https://mirror.bazel.build/github.com/bazelbuild/rules_cc/archive/b1c40e1de81913a3c40e5948f78719c28152486d.zip", + "https://github.com/bazelbuild/rules_cc/archive/b1c40e1de81913a3c40e5948f78719c28152486d.zip", + ], +) + +cc_configure() diff --git a/src/main/java/com/google/devtools/build/lib/bazel/rules/java/BUILD b/src/main/java/com/google/devtools/build/lib/bazel/rules/java/BUILD index a9b70ce828a815..2532a4114ff842 100644 --- a/src/main/java/com/google/devtools/build/lib/bazel/rules/java/BUILD +++ b/src/main/java/com/google/devtools/build/lib/bazel/rules/java/BUILD @@ -1,5 +1,4 @@ load("@rules_java//java:defs.bzl", "java_library") -load("//:distdir_deps.bzl", "gen_workspace_stanza") package( default_visibility = ["//src:__subpackages__"], @@ -24,9 +23,7 @@ java_library( "*.txt", "*.WORKSPACE", ], - ) + [ - ":jdk.WORKSPACE", - ], + ), deps = [ ":bazel_java_semantics", "//src/main/java/com/google/devtools/build/lib/analysis:analysis_cluster", @@ -74,10 +71,3 @@ java_library( "//third_party:jsr305", ], ) - -gen_workspace_stanza( - name = "workspace_with_jdk", - out = "jdk.WORKSPACE", - repos = ["rules_cc"], - template = "jdk.WORKSPACE.tmpl", -) diff --git a/src/main/java/com/google/devtools/build/lib/bazel/rules/java/jdk.WORKSPACE.tmpl b/src/main/java/com/google/devtools/build/lib/bazel/rules/java/jdk.WORKSPACE similarity index 95% rename from src/main/java/com/google/devtools/build/lib/bazel/rules/java/jdk.WORKSPACE.tmpl rename to src/main/java/com/google/devtools/build/lib/bazel/rules/java/jdk.WORKSPACE index 463a8e2d3c9e43..727433f280011f 100644 --- a/src/main/java/com/google/devtools/build/lib/bazel/rules/java/jdk.WORKSPACE.tmpl +++ b/src/main/java/com/google/devtools/build/lib/bazel/rules/java/jdk.WORKSPACE @@ -266,7 +266,16 @@ maybe( ) # Needed only because of java_tools. -{rules_cc} +maybe( + http_archive, + "rules_cc", + sha256 = "d0c573b94a6ef20ef6ff20154a23d0efcb409fb0e1ff0979cec318dfe42f0cdd", + strip_prefix = "rules_cc-b1c40e1de81913a3c40e5948f78719c28152486d", + urls = [ + "https://mirror.bazel.build/github.com/bazelbuild/rules_cc/archive/b1c40e1de81913a3c40e5948f78719c28152486d.zip", + "https://github.com/bazelbuild/rules_cc/archive/b1c40e1de81913a3c40e5948f78719c28152486d.zip", + ], +) # Needed only because of java_tools. maybe( From a539b0ee4ebbfedb43885afd7be5c6b52a2fd8f6 Mon Sep 17 00:00:00 2001 From: Tony Aiuto Date: Mon, 21 Dec 2020 14:21:54 -0500 Subject: [PATCH 07/16] undo adding the workspace --- .../java/com/google/devtools/build/lib/bazel/rules/cpp/BUILD | 2 +- .../java/com/google/devtools/build/lib/bazel/rules/java/BUILD | 3 +-- 2 files changed, 2 insertions(+), 3 deletions(-) diff --git a/src/main/java/com/google/devtools/build/lib/bazel/rules/cpp/BUILD b/src/main/java/com/google/devtools/build/lib/bazel/rules/cpp/BUILD index f51d30fd4ae48f..64d508f5b1f0d1 100644 --- a/src/main/java/com/google/devtools/build/lib/bazel/rules/cpp/BUILD +++ b/src/main/java/com/google/devtools/build/lib/bazel/rules/cpp/BUILD @@ -8,7 +8,7 @@ package( filegroup( name = "srcs", srcs = glob(["*"]) + [ - ":cc_configure.WORKSPACE", + # ":cc_configure.WORKSPACE", "//src/main/java/com/google/devtools/build/lib/bazel/rules/cpp/proto:srcs", ], visibility = ["//src:__subpackages__"], diff --git a/src/main/java/com/google/devtools/build/lib/bazel/rules/java/BUILD b/src/main/java/com/google/devtools/build/lib/bazel/rules/java/BUILD index 6d56e744dc0476..c5afb833459664 100644 --- a/src/main/java/com/google/devtools/build/lib/bazel/rules/java/BUILD +++ b/src/main/java/com/google/devtools/build/lib/bazel/rules/java/BUILD @@ -8,7 +8,7 @@ package( filegroup( name = "srcs", srcs = glob(["*"]) + [ - ":jdk.WORKSPACE", + # ":jdk.WORKSPACE", "//src/main/java/com/google/devtools/build/lib/bazel/rules/java/proto:srcs", ], visibility = ["//src:__subpackages__"], @@ -23,7 +23,6 @@ java_library( resources = glob( [ "*.txt", - "*.WORKSPACE", ], ) + [ ":jdk.WORKSPACE", From 09c7e3331c799f2d60e97688eeb1f6c7510ede46 Mon Sep 17 00:00:00 2001 From: Tony Aiuto Date: Mon, 21 Dec 2020 23:34:44 -0500 Subject: [PATCH 08/16] remove jdk.WORKSPACE from srcs --- .../java/com/google/devtools/build/lib/bazel/rules/java/BUILD | 1 - 1 file changed, 1 deletion(-) diff --git a/src/main/java/com/google/devtools/build/lib/bazel/rules/java/BUILD b/src/main/java/com/google/devtools/build/lib/bazel/rules/java/BUILD index c5afb833459664..1075f0c1e004f5 100644 --- a/src/main/java/com/google/devtools/build/lib/bazel/rules/java/BUILD +++ b/src/main/java/com/google/devtools/build/lib/bazel/rules/java/BUILD @@ -8,7 +8,6 @@ package( filegroup( name = "srcs", srcs = glob(["*"]) + [ - # ":jdk.WORKSPACE", "//src/main/java/com/google/devtools/build/lib/bazel/rules/java/proto:srcs", ], visibility = ["//src:__subpackages__"], From 8b77fb09127a1bc977da78df7afaf59fe0f75ce7 Mon Sep 17 00:00:00 2001 From: Tony Aiuto Date: Wed, 23 Dec 2020 12:54:52 -0500 Subject: [PATCH 09/16] generate jdk.WORKSPACE --- WORKSPACE | 27 +++---------------- distdir_deps.bzl | 11 ++++++++ .../devtools/build/lib/bazel/rules/cpp/BUILD | 5 ++-- .../devtools/build/lib/bazel/rules/java/BUILD | 21 +++++++++++++-- .../{jdk.WORKSPACE => jdk.WORKSPACE.tmpl} | 22 ++------------- 5 files changed, 37 insertions(+), 49 deletions(-) rename src/main/java/com/google/devtools/build/lib/bazel/rules/java/{jdk.WORKSPACE => jdk.WORKSPACE.tmpl} (91%) diff --git a/WORKSPACE b/WORKSPACE index a5f019caa2d7c6..3e069f0e11afd1 100644 --- a/WORKSPACE +++ b/WORKSPACE @@ -163,8 +163,6 @@ distdir_tar( "bazel-skylib-1.0.3.tar.gz", # bazelbuild/platforms "platforms-0.0.2.tar.gz", - # bazelbuild/rules_java - "7cf3cefd652008d0a64a419c34c13bdca6c8f178.zip", # bazelbuild/bazel-toolchains "bazel-toolchains-3.1.0.tar.gz", # bazelbuild/rules_proto @@ -202,8 +200,6 @@ distdir_tar( "bazel-skylib-1.0.3.tar.gz": "1c531376ac7e5a180e0237938a2536de0c54d93f5c278634818e0efc952dd56c", # bazelbuild/platforms "platforms-0.0.2.tar.gz": "48a2d8d343863989c232843e01afc8a986eb8738766bfd8611420a7db8f6f0c3", - # bazelbuild/rules_java - "7cf3cefd652008d0a64a419c34c13bdca6c8f178.zip": "bc81f1ba47ef5cc68ad32225c3d0e70b8c6f6077663835438da8d5733f917598", # bazelbuild/bazel-toolchains "bazel-toolchains-3.1.0.tar.gz": "726b5423e1c7a3866a3a6d68e7123b4a955e9fcbe912a51e0f737e6dab1d0af2", # bazelbuild/rules_proto @@ -266,11 +262,6 @@ distdir_tar( "https://mirror.bazel.build/github.com/bazelbuild/platforms/releases/download/0.0.2/platforms-0.0.2.tar.gz", "https://github.com/bazelbuild/platforms/releases/download/0.0.2/platforms-0.0.2.tar.gz", ], - # bazelbuild/rules_java - "7cf3cefd652008d0a64a419c34c13bdca6c8f178.zip": [ - "https://mirror.bazel.build/github.com/bazelbuild/rules_java/archive/7cf3cefd652008d0a64a419c34c13bdca6c8f178.zip", - "https://github.com/bazelbuild/rules_java/archive/7cf3cefd652008d0a64a419c34c13bdca6c8f178.zip", - ], # bazelbuild/bazel-toolchains "bazel-toolchains-3.1.0.tar.gz": [ "https://mirror.bazel.build/github.com/bazelbuild/bazel-toolchains/releases/download/3.1.0/bazel-toolchains-3.1.0.tar.gz", @@ -505,12 +496,9 @@ http_archive( name = "rules_java", patch_cmds = EXPORT_WORKSPACE_IN_BUILD_FILE, patch_cmds_win = EXPORT_WORKSPACE_IN_BUILD_FILE_WIN, - sha256 = "bc81f1ba47ef5cc68ad32225c3d0e70b8c6f6077663835438da8d5733f917598", - strip_prefix = "rules_java-7cf3cefd652008d0a64a419c34c13bdca6c8f178", - urls = [ - "https://mirror.bazel.build/github.com/bazelbuild/rules_java/archive/7cf3cefd652008d0a64a419c34c13bdca6c8f178.zip", - "https://github.com/bazelbuild/rules_java/archive/7cf3cefd652008d0a64a419c34c13bdca6c8f178.zip", - ], + sha256 = DIST_DEPS["rules_java"]["sha256"], + strip_prefix = DIST_DEPS["rules_java"]["strip_prefix"], + urls = DIST_DEPS["rules_java"]["urls"], ) http_archive( @@ -545,8 +533,6 @@ distdir_tar( "bazel-skylib-1.0.3.tar.gz", # bazelbuild/platforms "platforms-0.0.2.tar.gz", - # bazelbuild/rules_java - "7cf3cefd652008d0a64a419c34c13bdca6c8f178.zip", # bazelbuild/rules_proto "7e4afce6fe62dbff0a4a03450143146f9f2d7488.tar.gz", # protocolbuffers/protobuf @@ -579,8 +565,6 @@ distdir_tar( "bazel-skylib-1.0.3.tar.gz": "1c531376ac7e5a180e0237938a2536de0c54d93f5c278634818e0efc952dd56c", # bazelbuild/platforms "platforms-0.0.2.tar.gz": "48a2d8d343863989c232843e01afc8a986eb8738766bfd8611420a7db8f6f0c3", - # bazelbuild/rules_java - "7cf3cefd652008d0a64a419c34c13bdca6c8f178.zip": "bc81f1ba47ef5cc68ad32225c3d0e70b8c6f6077663835438da8d5733f917598", # bazelbuild/rules_proto "7e4afce6fe62dbff0a4a03450143146f9f2d7488.tar.gz": "8e7d59a5b12b233be5652e3d29f42fba01c7cbab09f6b3a8d0a57ed6d1e9a0da", # protocolbuffers/protobuf @@ -619,11 +603,6 @@ distdir_tar( "https://mirror.bazel.build/github.com/bazelbuild/platforms/releases/download/0.0.2/platforms-0.0.2.tar.gz", "https://github.com/bazelbuild/platforms/releases/download/0.0.2/platforms-0.0.2.tar.gz", ], - # bazelbuild/rules_java - "7cf3cefd652008d0a64a419c34c13bdca6c8f178.zip": [ - "https://mirror.bazel.build/github.com/bazelbuild/rules_java/archive/7cf3cefd652008d0a64a419c34c13bdca6c8f178.zip", - "https://github.com/bazelbuild/rules_java/archive/7cf3cefd652008d0a64a419c34c13bdca6c8f178.zip", - ], # bazelbuild/rules_proto "7e4afce6fe62dbff0a4a03450143146f9f2d7488.tar.gz": [ "https://mirror.bazel.build/github.com/bazelbuild/rules_proto/archive/7e4afce6fe62dbff0a4a03450143146f9f2d7488.tar.gz", diff --git a/distdir_deps.bzl b/distdir_deps.bzl index 9bb7150207e928..18d11b6aaed806 100644 --- a/distdir_deps.bzl +++ b/distdir_deps.bzl @@ -26,6 +26,17 @@ DIST_DEPS = { ], "need_in_test_WORKSPACE": True, }, + "rules_java": { + "archive": "7cf3cefd652008d0a64a419c34c13bdca6c8f178.zip", + "sha256": "bc81f1ba47ef5cc68ad32225c3d0e70b8c6f6077663835438da8d5733f917598", + "strip_prefix": "rules_java-7cf3cefd652008d0a64a419c34c13bdca6c8f178", + "urls": [ + "https://mirror.bazel.build/github.com/bazelbuild/rules_java/archive/7cf3cefd652008d0a64a419c34c13bdca6c8f178.zip", + "https://github.com/bazelbuild/rules_java/archive/7cf3cefd652008d0a64a419c34c13bdca6c8f178.zip", + ], + "need_in_test_WORKSPACE": True, + }, + "rules_pkg": { "archive": "rules_pkg-0.2.4.tar.gz", "sha256": "4ba8f4ab0ff85f2484287ab06c0d871dcb31cc54d439457d28fd4ae14b18450a", diff --git a/src/main/java/com/google/devtools/build/lib/bazel/rules/cpp/BUILD b/src/main/java/com/google/devtools/build/lib/bazel/rules/cpp/BUILD index 2a544b8694f09e..c51f851b7ad0fc 100644 --- a/src/main/java/com/google/devtools/build/lib/bazel/rules/cpp/BUILD +++ b/src/main/java/com/google/devtools/build/lib/bazel/rules/cpp/BUILD @@ -6,8 +6,7 @@ package( filegroup( name = "srcs", - srcs = glob(["*"], exclude=["cc_configure.WORKSPACE"]) + [ - ":cc_configure.WORKSPACE", + srcs = glob(["*"]) + [ "//src/main/java/com/google/devtools/build/lib/bazel/rules/cpp/proto:srcs", ], visibility = ["//src:__subpackages__"], @@ -19,7 +18,7 @@ java_library( ["*.java"], exclude = ["BazelCppSemantics.java"], ), - resources = [":cc_configure.WORKSPACE"], + resources = glob(["*.WORKSPACE"]), deps = [ ":bazel_cpp_semantics", "//src/main/java/com/google/devtools/build/lib/actions:artifacts", diff --git a/src/main/java/com/google/devtools/build/lib/bazel/rules/java/BUILD b/src/main/java/com/google/devtools/build/lib/bazel/rules/java/BUILD index 63fd0a2a1639be..2d6c730021e4a7 100644 --- a/src/main/java/com/google/devtools/build/lib/bazel/rules/java/BUILD +++ b/src/main/java/com/google/devtools/build/lib/bazel/rules/java/BUILD @@ -1,3 +1,4 @@ +load("//:distdir_deps.bzl", "gen_workspace_stanza") load("@rules_java//java:defs.bzl", "java_library") package( @@ -6,7 +7,11 @@ package( filegroup( name = "srcs", - srcs = glob(["*"]) + [ + srcs = glob( + ["*"], + exclude = ["jdk.WORKSPACE"], + ) + [ + ":jdk.WORKSPACE", "//src/main/java/com/google/devtools/build/lib/bazel/rules/java/proto:srcs", ], visibility = ["//src:__subpackages__"], @@ -22,7 +27,9 @@ java_library( [ "*.txt", ], - ), + ) + [ + ":jdk.WORKSPACE", + ], deps = [ ":bazel_java_semantics", "//src/main/java/com/google/devtools/build/lib/analysis:analysis_cluster", @@ -70,3 +77,13 @@ java_library( "//third_party:jsr305", ], ) + +gen_workspace_stanza( + name = "workspace_with_jdk", + out = "jdk.WORKSPACE", + repos = [ + "rules_cc", + "rules_java", + ], + template = "jdk.WORKSPACE.tmpl", +) diff --git a/src/main/java/com/google/devtools/build/lib/bazel/rules/java/jdk.WORKSPACE b/src/main/java/com/google/devtools/build/lib/bazel/rules/java/jdk.WORKSPACE.tmpl similarity index 91% rename from src/main/java/com/google/devtools/build/lib/bazel/rules/java/jdk.WORKSPACE rename to src/main/java/com/google/devtools/build/lib/bazel/rules/java/jdk.WORKSPACE.tmpl index 727433f280011f..5ca4c692e8e275 100644 --- a/src/main/java/com/google/devtools/build/lib/bazel/rules/java/jdk.WORKSPACE +++ b/src/main/java/com/google/devtools/build/lib/bazel/rules/java/jdk.WORKSPACE.tmpl @@ -254,28 +254,10 @@ maybe( ], ) -maybe( - http_archive, - "rules_java", - sha256 = "bc81f1ba47ef5cc68ad32225c3d0e70b8c6f6077663835438da8d5733f917598", - strip_prefix = "rules_java-7cf3cefd652008d0a64a419c34c13bdca6c8f178", - urls = [ - "https://mirror.bazel.build/github.com/bazelbuild/rules_java/archive/7cf3cefd652008d0a64a419c34c13bdca6c8f178.zip", - "https://github.com/bazelbuild/rules_java/archive/7cf3cefd652008d0a64a419c34c13bdca6c8f178.zip", - ], -) +{rules_java} # Needed only because of java_tools. -maybe( - http_archive, - "rules_cc", - sha256 = "d0c573b94a6ef20ef6ff20154a23d0efcb409fb0e1ff0979cec318dfe42f0cdd", - strip_prefix = "rules_cc-b1c40e1de81913a3c40e5948f78719c28152486d", - urls = [ - "https://mirror.bazel.build/github.com/bazelbuild/rules_cc/archive/b1c40e1de81913a3c40e5948f78719c28152486d.zip", - "https://github.com/bazelbuild/rules_cc/archive/b1c40e1de81913a3c40e5948f78719c28152486d.zip", - ], -) +{rules_cc} # Needed only because of java_tools. maybe( From 482f7dd1857c5428b84a1bf0525af218aa009ba6 Mon Sep 17 00:00:00 2001 From: Tony Aiuto Date: Tue, 5 Jan 2021 11:44:56 -0500 Subject: [PATCH 10/16] use.distdir --- WORKSPACE | 6 +----- 1 file changed, 1 insertion(+), 5 deletions(-) diff --git a/WORKSPACE b/WORKSPACE index 0baa0079ee08e0..7350831cc89670 100644 --- a/WORKSPACE +++ b/WORKSPACE @@ -465,7 +465,6 @@ http_archive( ) # This must be kept in sync with src/main/java/com/google/devtools/build/lib/bazel/rules/java/jdk.WORKSPACE. -# This must be kept in sync with src/main/java/com/google/devtools/build/lib/bazel/rules/cpp/cc_configure.WORKSPACE. http_archive( name = "rules_cc", patch_cmds = EXPORT_WORKSPACE_IN_BUILD_FILE, @@ -475,13 +474,10 @@ http_archive( urls = DIST_DEPS["rules_cc"]["urls"], ) -http_archive( +dist_http_archive( name = "rules_java", patch_cmds = EXPORT_WORKSPACE_IN_BUILD_FILE, patch_cmds_win = EXPORT_WORKSPACE_IN_BUILD_FILE_WIN, - sha256 = DIST_DEPS["rules_java"]["sha256"], - strip_prefix = DIST_DEPS["rules_java"]["strip_prefix"], - urls = DIST_DEPS["rules_java"]["urls"], ) http_archive( From 12acc246f5cd7fc3137f541383221c91993f9484 Mon Sep 17 00:00:00 2001 From: Tony Aiuto Date: Tue, 5 Jan 2021 23:48:03 -0500 Subject: [PATCH 11/16] update to the correct dist dir style --- BUILD | 5 ++++- .../com/google/devtools/build/lib/bazel/rules/java/BUILD | 7 ++----- 2 files changed, 6 insertions(+), 6 deletions(-) diff --git a/BUILD b/BUILD index c3867d50b3dd3b..6f673dddbee4ce 100644 --- a/BUILD +++ b/BUILD @@ -113,7 +113,10 @@ filegroup( # be included in //src:derived_java_sources). filegroup( name = "generated_resources", - srcs = ["//src/main/java/com/google/devtools/build/lib/bazel/rules:builtins_bzl.zip"], + srcs = [ + "//src/main/java/com/google/devtools/build/lib/bazel/rules:builtins_bzl.zip", + "//src/main/java/com/google/devtools/build/lib/bazel/rules/java:workspace_with_jdk", + ], ) pkg_tar( diff --git a/src/main/java/com/google/devtools/build/lib/bazel/rules/java/BUILD b/src/main/java/com/google/devtools/build/lib/bazel/rules/java/BUILD index 2d6c730021e4a7..6c60a76a27e959 100644 --- a/src/main/java/com/google/devtools/build/lib/bazel/rules/java/BUILD +++ b/src/main/java/com/google/devtools/build/lib/bazel/rules/java/BUILD @@ -7,11 +7,7 @@ package( filegroup( name = "srcs", - srcs = glob( - ["*"], - exclude = ["jdk.WORKSPACE"], - ) + [ - ":jdk.WORKSPACE", + srcs = glob(["*"]) + [ "//src/main/java/com/google/devtools/build/lib/bazel/rules/java/proto:srcs", ], visibility = ["//src:__subpackages__"], @@ -86,4 +82,5 @@ gen_workspace_stanza( "rules_java", ], template = "jdk.WORKSPACE.tmpl", + visibility = ["//:__pkg__"], ) From 64ec342e36023a4b8a249a746478576f52b3a3eb Mon Sep 17 00:00:00 2001 From: Tony Aiuto Date: Thu, 7 Jan 2021 10:46:57 -0500 Subject: [PATCH 12/16] use both styles for distdir used in --- distdir_deps.bzl | 4 ++++ 1 file changed, 4 insertions(+) diff --git a/distdir_deps.bzl b/distdir_deps.bzl index 2c7c172c593827..e1e394894741c0 100644 --- a/distdir_deps.bzl +++ b/distdir_deps.bzl @@ -41,6 +41,10 @@ DIST_DEPS = { "https://mirror.bazel.build/github.com/bazelbuild/rules_java/archive/7cf3cefd652008d0a64a419c34c13bdca6c8f178.zip", "https://github.com/bazelbuild/rules_java/archive/7cf3cefd652008d0a64a419c34c13bdca6c8f178.zip", ], + "used_in": [ + "additional_distfiles", + "test_WORKSPACE_files", + ], "need_in_test_WORKSPACE": True, }, From 8be766fabb9dba1a1b3772b5d9a2bf93f3be0d4a Mon Sep 17 00:00:00 2001 From: Tony Aiuto Date: Thu, 7 Jan 2021 15:24:09 -0500 Subject: [PATCH 13/16] checkpoing removing java test from testenv.sh --- src/test/shell/testenv.sh | 23 ++++++++++++----------- 1 file changed, 12 insertions(+), 11 deletions(-) diff --git a/src/test/shell/testenv.sh b/src/test/shell/testenv.sh index 4319af36a0ce7f..3305270d3b5f6b 100755 --- a/src/test/shell/testenv.sh +++ b/src/test/shell/testenv.sh @@ -540,17 +540,18 @@ EOF function add_rules_java_to_workspace() { cat >> "$1"< Date: Fri, 8 Jan 2021 00:02:19 -0500 Subject: [PATCH 14/16] generate java WORKSPACE code in for testenv.sh --- distdir_deps.bzl | 16 +++++++++++++++- .../devtools/build/lib/bazel/rules/java/BUILD | 1 + src/test/shell/BUILD | 19 +++++++++++++++---- .../shell/bazel/external_integration_test.sh | 2 +- src/test/shell/integration_test_setup.sh | 2 +- .../shell/{testenv.sh => testenv.sh.tmpl} | 15 +++------------ 6 files changed, 36 insertions(+), 19 deletions(-) rename src/test/shell/{testenv.sh => testenv.sh.tmpl} (97%) diff --git a/distdir_deps.bzl b/distdir_deps.bzl index e1e394894741c0..ac02b745f5a86b 100644 --- a/distdir_deps.bzl +++ b/distdir_deps.bzl @@ -86,7 +86,8 @@ def _gen_workspace_stanza_impl(ctx): if ctx.attr.template and (ctx.attr.preamble or ctx.attr.postamble): fail("Can not use template with either preamble or postamble") - repo_clause = """ + if ctx.attr.use_maybe: + repo_clause = """ maybe( http_archive, "{repo}", @@ -95,6 +96,16 @@ maybe( urls = {urls}, ) """ + else: + repo_clause = """ +http_archive( + name = "{repo}", + sha256 = "{sha256}", + strip_prefix = {strip_prefix}, + urls = {urls}, +) +""" + repo_stanzas = {} for repo in ctx.attr.repos: info = DIST_DEPS[repo] @@ -131,6 +142,8 @@ maybe( gen_workspace_stanza = rule( implementation = _gen_workspace_stanza_impl, + doc = "Use specifications from DIST_DEPS to generate WORKSPACE http_archive stanzas or to fill" + + "drop them into a template.", attrs = { "repos": attr.string_list(doc = "Set of repos to inlcude"), "out": attr.output(mandatory = True), @@ -142,5 +155,6 @@ gen_workspace_stanza = rule( allow_single_file = True, mandatory = False, ), + "use_maybe": attr.bool(doc = "Use maybe() invocation instead of http_archive"), }, ) diff --git a/src/main/java/com/google/devtools/build/lib/bazel/rules/java/BUILD b/src/main/java/com/google/devtools/build/lib/bazel/rules/java/BUILD index 6c60a76a27e959..f133b882389ad5 100644 --- a/src/main/java/com/google/devtools/build/lib/bazel/rules/java/BUILD +++ b/src/main/java/com/google/devtools/build/lib/bazel/rules/java/BUILD @@ -83,4 +83,5 @@ gen_workspace_stanza( ], template = "jdk.WORKSPACE.tmpl", visibility = ["//:__pkg__"], + use_maybe = True, ) diff --git a/src/test/shell/BUILD b/src/test/shell/BUILD index c6b2693d4d0939..61d890b16160a3 100644 --- a/src/test/shell/BUILD +++ b/src/test/shell/BUILD @@ -1,3 +1,4 @@ +load("//:distdir_deps.bzl", "gen_workspace_stanza") load("//tools/python:private/defs.bzl", "py_test") package(default_visibility = ["//visibility:private"]) @@ -6,7 +7,6 @@ exports_files([ "bin/bazel", "bin/bazel_jdk_minimal", "bin/bazel_nojdk", - "testenv.sh", "integration_test_setup.sh", "sandboxing_test_utils.sh", "unittest.bash", @@ -22,13 +22,24 @@ filegroup( visibility = ["//src:__pkg__"], ) +gen_workspace_stanza( + name = "testenv_sh", + out = "testenv.sh", + repos = [ + "rules_cc", + "rules_java", + ], + template = "testenv.sh.tmpl", + visibility = ["//visibility:public"], +) + sh_library( name = "bashunit", srcs = [ "unittest.bash", "unittest_utils.sh", ], - data = ["testenv.sh"], + data = [":testenv.sh"], visibility = ["//visibility:public"], ) @@ -59,7 +70,7 @@ sh_test( name = "shell_utils_test", srcs = ["shell_utils_test.sh"], data = [ - "testenv.sh", + ":testenv.sh", ":bashunit", ":shell_utils", "@bazel_tools//tools/bash/runfiles", @@ -70,7 +81,7 @@ sh_test( name = "shell_utils_symlinks_test", srcs = ["shell_utils_symlinks_test.sh"], data = [ - "testenv.sh", + ":testenv.sh", ":bashunit", ":shell_utils", "@bazel_tools//tools/bash/runfiles", diff --git a/src/test/shell/bazel/external_integration_test.sh b/src/test/shell/bazel/external_integration_test.sh index 341d413427bbe4..729921b3629ac7 100755 --- a/src/test/shell/bazel/external_integration_test.sh +++ b/src/test/shell/bazel/external_integration_test.sh @@ -2385,7 +2385,7 @@ EOF # Also verify that the repository class and its definition is reported, to # help finding out where the implict dependency comes from. expect_log "Repository data instantiated at:" - expect_log ".../WORKSPACE:47" + expect_log ".../WORKSPACE:[0-9]*" expect_log "Repository rule data_repo defined at:" expect_log ".../withimplicit.bzl:6" } diff --git a/src/test/shell/integration_test_setup.sh b/src/test/shell/integration_test_setup.sh index bbf862e837bdea..288f8c9223c508 100755 --- a/src/test/shell/integration_test_setup.sh +++ b/src/test/shell/integration_test_setup.sh @@ -33,7 +33,7 @@ else CURRENT_SCRIPT=${BASH_SOURCE[0]} # Go to the directory where the script is running - cd "$(dirname ${CURRENT_SCRIPT})" \ + c//src/test/shell/bazel:external_integration_test d "$(dirname ${CURRENT_SCRIPT})" \ || print_message_and_exit "Unable to access $(dirname ${CURRENT_SCRIPT})" DIR=$(pwd) diff --git a/src/test/shell/testenv.sh b/src/test/shell/testenv.sh.tmpl similarity index 97% rename from src/test/shell/testenv.sh rename to src/test/shell/testenv.sh.tmpl index 3305270d3b5f6b..ddc5ca4a568b71 100755 --- a/src/test/shell/testenv.sh +++ b/src/test/shell/testenv.sh.tmpl @@ -540,18 +540,9 @@ EOF function add_rules_java_to_workspace() { cat >> "$1"< Date: Fri, 8 Jan 2021 00:14:10 -0500 Subject: [PATCH 15/16] fix a botch and add rules_cc --- src/test/shell/integration_test_setup.sh | 2 +- src/test/shell/testenv.sh.tmpl | 10 +--------- 2 files changed, 2 insertions(+), 10 deletions(-) diff --git a/src/test/shell/integration_test_setup.sh b/src/test/shell/integration_test_setup.sh index 288f8c9223c508..bbf862e837bdea 100755 --- a/src/test/shell/integration_test_setup.sh +++ b/src/test/shell/integration_test_setup.sh @@ -33,7 +33,7 @@ else CURRENT_SCRIPT=${BASH_SOURCE[0]} # Go to the directory where the script is running - c//src/test/shell/bazel:external_integration_test d "$(dirname ${CURRENT_SCRIPT})" \ + cd "$(dirname ${CURRENT_SCRIPT})" \ || print_message_and_exit "Unable to access $(dirname ${CURRENT_SCRIPT})" DIR=$(pwd) diff --git a/src/test/shell/testenv.sh.tmpl b/src/test/shell/testenv.sh.tmpl index ddc5ca4a568b71..4a546ed9cd5a06 100755 --- a/src/test/shell/testenv.sh.tmpl +++ b/src/test/shell/testenv.sh.tmpl @@ -526,15 +526,7 @@ function add_rules_cc_to_workspace() { cat >> "$1"< Date: Fri, 8 Jan 2021 00:19:27 -0500 Subject: [PATCH 16/16] buildify --- src/test/shell/BUILD | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/src/test/shell/BUILD b/src/test/shell/BUILD index 61d890b16160a3..49155dfbf1b6a7 100644 --- a/src/test/shell/BUILD +++ b/src/test/shell/BUILD @@ -70,9 +70,9 @@ sh_test( name = "shell_utils_test", srcs = ["shell_utils_test.sh"], data = [ - ":testenv.sh", ":bashunit", ":shell_utils", + ":testenv.sh", "@bazel_tools//tools/bash/runfiles", ], ) @@ -81,9 +81,9 @@ sh_test( name = "shell_utils_symlinks_test", srcs = ["shell_utils_symlinks_test.sh"], data = [ - ":testenv.sh", ":bashunit", ":shell_utils", + ":testenv.sh", "@bazel_tools//tools/bash/runfiles", ], tags = [