From c33d143ce042db246d8620d7b8917828e797a64a Mon Sep 17 00:00:00 2001 From: Jamie Wilkinson Date: Wed, 7 Feb 2024 22:02:55 +1100 Subject: [PATCH 01/15] build: Add coverage support to the dejagnu test rule. A lot of hair-tearing, and then eventually finding the right keyword to search for. Thanks again phst: https://github.com/phst/rules_elisp/blob/f9664cf0e5c86653bffd1a02b7c0cccb4d27e979/elisp/defs.bzl#L214 Also thanks https://github.com/c-mita/bazel_issues/blob/d217e2b7e7dc71088b7e02ddaa25a8f6b0f7d880/coverage_common/README.md?plain=1#L47 The magic is documented with the comment, copied from phst. We need to provide the hidden coverage collection binaries and test environment pointing to them. We also must return the instrumented files provider listing the attribbutes that contain its sources. Now a bazel coverage ... generaets a report! --- MODULE.bazel.lock | 21 +++++++++++++++++++ testsuite/dejagnu.bzl | 48 +++++++++++++++++++++++++++++++++++++++++++ 2 files changed, 69 insertions(+) diff --git a/MODULE.bazel.lock b/MODULE.bazel.lock index 3755165..2fe4065 100644 --- a/MODULE.bazel.lock +++ b/MODULE.bazel.lock @@ -864,6 +864,27 @@ "recordedRepoMappingEntries": [] } }, + "@@bazel_tools//tools/test:extensions.bzl%remote_coverage_tools_extension": { + "general": { + "bzlTransitiveDigest": "y48q5zUu2oMiYv7yUyi7rFB0wt14eqiF/RQcWT6vP7I=", + "accumulatedFileDigests": {}, + "envVariables": {}, + "generatedRepoSpecs": { + "remote_coverage_tools": { + "bzlFile": "@@bazel_tools//tools/build_defs/repo:http.bzl", + "ruleClassName": "http_archive", + "attributes": { + "name": "bazel_tools~remote_coverage_tools_extension~remote_coverage_tools", + "sha256": "7006375f6756819b7013ca875eab70a541cf7d89142d9c511ed78ea4fefa38af", + "urls": [ + "https://mirror.bazel.build/bazel_coverage_output_generator/releases/coverage_output_generator-v2.6.zip" + ] + } + } + }, + "recordedRepoMappingEntries": [] + } + }, "@@rules_bison~0.2.2//bison/internal:default_toolchain_ext.bzl%default_toolchain_ext": { "general": { "bzlTransitiveDigest": "JVWcUny48LFS9D+xz4b9u/94awfBOIGXV5iu8iY/nRc=", diff --git a/testsuite/dejagnu.bzl b/testsuite/dejagnu.bzl index 69b1831..a9f3b7c 100644 --- a/testsuite/dejagnu.bzl +++ b/testsuite/dejagnu.bzl @@ -17,11 +17,45 @@ def _dejagnu_test_impl(ctx): # gather runfiles runfiles = ctx.runfiles(files = ctx.files.srcs + ctx.files.data + ctx.files.tool_exec + ctx.files.deps) + test_env = {} + if ctx.configuration.coverage_enabled: + # Bazel’s coverage runner + # (https://github.com/bazelbuild/bazel/blob/6.4.0/tools/test/collect_coverage.sh) + # needs a binary called “lcov_merge.” Its location is passed in the + # LCOV_MERGER environmental variable. For builtin rules, this variable + # is set automatically based on a magic “$lcov_merger” or + # “:lcov_merger” attribute, but it’s not possible to create such + # attributes in Starlark. Therefore we specify the variable ourselves. + # Note that the coverage runner runs in the runfiles root instead of + # the execution root, therefore we use “path” instead of “short_path.” + runfiles = runfiles.merge( + ctx.attr._lcov_merger[DefaultInfo].default_runfiles, + ) + test_env["LCOV_MERGER"] = ctx.executable._lcov_merger.path + + # C/C++ coverage instrumentation needs another binary that wraps gcov; + # see + # https://github.com/bazelbuild/bazel/blob/6.4.0/tools/test/collect_coverage.sh#L183. + # This is normally set from a hidden “$collect_cc_coverage” attribute; + # see + # https://github.com/bazelbuild/bazel/blob/6.4.0/src/main/java/com/google/devtools/build/lib/analysis/test/TestActionBuilder.java#L256-L261. + # We also need to inject its location here, like above. + runfiles = runfiles.merge( + ctx.attr._collect_cc_coverage[DefaultInfo].default_runfiles, + ) + test_env["CC_CODE_COVERAGE_SCRIPT"] = ctx.executable._collect_cc_coverage.path + return [ DefaultInfo( runfiles = runfiles, executable = executable, ), + testing.TestEnvironment(test_env), + coverage_common.instrumented_files_info( + ctx, + source_attributes = ["srcs"], + dependency_attributes = ["deps", "data", "tool_exec"], + ), ] dejagnu_test = rule( @@ -36,6 +70,20 @@ dejagnu_test = rule( allow_files = True, ), "tool_exec": attr.label(), + # Magic coverage attributes. This is only partially documented + # (https://bazel.build/rules/lib/coverage#output_generator), but we can + # take over the values from + # https://github.com/bazelbuild/bazel/blob/7.0.0-pre.20231018.3/src/main/starlark/builtins_bzl/common/python/py_test_bazel.bzl. + "_lcov_merger": attr.label( + default = configuration_field("coverage", "output_generator"), + executable = True, + cfg = "exec", + ), + "_collect_cc_coverage": attr.label( + default = Label("@bazel_tools//tools/test:collect_cc_coverage"), + executable = True, + cfg = "exec", + ), }, test = True, ) From b38e92b6f7056ef47739404464eff2b90093e739 Mon Sep 17 00:00:00 2001 From: Jamie Wilkinson Date: Wed, 7 Feb 2024 22:24:30 +1100 Subject: [PATCH 02/15] ci: Add coverage run to the CI and attempt to upload to Codecov. --- .github/workflows/ci.yml | 16 ++++++++++++---- testsuite/dejagnu.bzl | 2 ++ 2 files changed, 14 insertions(+), 4 deletions(-) diff --git a/.github/workflows/ci.yml b/.github/workflows/ci.yml index b450422..dbda226 100644 --- a/.github/workflows/ci.yml +++ b/.github/workflows/ci.yml @@ -64,14 +64,22 @@ jobs: - name: install dependencies run: | sudo apt-get install -y \ - dejagnu - - run: bazel test --test_output=errors //... + dejagnu \ + gcc \ + llvm + dpkg -S llvm-cov + - name: bazel test + run: bazel coverage --explain=explain.out -s --test_env=VERBOSE_COVERAGE=1 --test_env=DISPLAY_LCOV_CMD=1 --test_output=all --combined_report=lcov --instrument_test_targets --nocache_test_results --instrumentation_filter="^//" //... - name: copy test results into workspace if: always() run: cp -Lpr $(bazel info bazel-testlogs)/ test-results - - name: publish test results - uses: EnricoMi/publish-unit-test-result-action@v2 + - run: cat explain.out + if: always() + - uses: EnricoMi/publish-unit-test-result-action@v2 if: always() with: files: | test-results/**/test.xml + - uses: codecov/codecov-action@v4 + with: + file: bazel-out/_coverage/_coverage_report.dat diff --git a/testsuite/dejagnu.bzl b/testsuite/dejagnu.bzl index a9f3b7c..ebd7aeb 100644 --- a/testsuite/dejagnu.bzl +++ b/testsuite/dejagnu.bzl @@ -100,6 +100,8 @@ if ! [ -x /bin/runtest ]; then exit 127 fi +/bin/runtest --version + cleanup () {{ mv $TEST_UNDECLARED_OUTPUTS_DIR/{tool}.xml $XML_OUTPUT_FILE }} From 36330c66803179278d40771b402c20c71b0273b0 Mon Sep 17 00:00:00 2001 From: Jamie Wilkinson Date: Sat, 10 Feb 2024 10:18:47 +1100 Subject: [PATCH 03/15] build: Require that `tool_exec` is an executable target. --- testsuite/dejagnu.bzl | 10 +++++++--- 1 file changed, 7 insertions(+), 3 deletions(-) diff --git a/testsuite/dejagnu.bzl b/testsuite/dejagnu.bzl index ebd7aeb..945ac95 100644 --- a/testsuite/dejagnu.bzl +++ b/testsuite/dejagnu.bzl @@ -55,7 +55,7 @@ def _dejagnu_test_impl(ctx): ctx, source_attributes = ["srcs"], dependency_attributes = ["deps", "data", "tool_exec"], - ), + ), ] dejagnu_test = rule( @@ -69,8 +69,12 @@ dejagnu_test = rule( "data": attr.label_list( allow_files = True, ), - "tool_exec": attr.label(), - # Magic coverage attributes. This is only partially documented + "tool_exec": attr.label( + executable = True, + doc = "Binary target under test.", + cfg = "exec", + ), + # Magic coverage attributes. This is only partially documented # (https://bazel.build/rules/lib/coverage#output_generator), but we can # take over the values from # https://github.com/bazelbuild/bazel/blob/7.0.0-pre.20231018.3/src/main/starlark/builtins_bzl/common/python/py_test_bazel.bzl. From ef54e128661911c52741e05400554bb50122ddfa Mon Sep 17 00:00:00 2001 From: Jamie Wilkinson Date: Sun, 11 Feb 2024 16:39:43 +1100 Subject: [PATCH 04/15] refactor: Move the runtest wrapper into a separate template. Turn the wrapper generator into a new action using `expand_template`. --- testsuite/BUILD | 3 ++ testsuite/dejagnu.bzl | 40 ++++++++------------------- testsuite/dejagnu_runtest_wrapper.tpl | 18 ++++++++++++ 3 files changed, 32 insertions(+), 29 deletions(-) create mode 100644 testsuite/dejagnu_runtest_wrapper.tpl diff --git a/testsuite/BUILD b/testsuite/BUILD index e69de29..afef16a 100644 --- a/testsuite/BUILD +++ b/testsuite/BUILD @@ -0,0 +1,3 @@ +exports_files([ + "dejagnu_runtest_wrapper.tpl", +]) diff --git a/testsuite/dejagnu.bzl b/testsuite/dejagnu.bzl index 945ac95..39be14f 100644 --- a/testsuite/dejagnu.bzl +++ b/testsuite/dejagnu.bzl @@ -5,13 +5,14 @@ def _dejagnu_test_impl(ctx): executable_path = "{name}_/{name}".format(name = ctx.label.name) executable = ctx.actions.declare_file(executable_path) - tool = ctx.label.name - srcdir = ctx.files.srcs[0].dirname - - content = _runtest(tool = tool, srcdir = srcdir) - ctx.actions.write( + ctx.actions.expand_template( + template = ctx.file._runtest_template, output = executable, - content = content, + substitutions = { + "{tool}": ctx.label.name, + "{srcdir}": ctx.files.srcs[0].dirname, + }, + is_executable = True, ) # gather runfiles @@ -74,6 +75,10 @@ dejagnu_test = rule( doc = "Binary target under test.", cfg = "exec", ), + "_runtest_template": attr.label( + default = ":dejagnu_runtest_wrapper.tpl", + allow_single_file = True, + ), # Magic coverage attributes. This is only partially documented # (https://bazel.build/rules/lib/coverage#output_generator), but we can # take over the values from @@ -91,26 +96,3 @@ dejagnu_test = rule( }, test = True, ) - -def _runtest(tool, srcdir): - """Generates the runtest wrapper script.""" - return DEJAGNU_TEST_RUNNER_TEMPLATE.format(tool = tool, srcdir = srcdir) - -DEJAGNU_TEST_RUNNER_TEMPLATE = """ -set -o errexit - -if ! [ -x /bin/runtest ]; then - echo "/bin/runtest not found, install dejagnu" | tee -a $TEST_INFRASTRUCTURE_FAILURE_FILE - exit 127 -fi - -/bin/runtest --version - -cleanup () {{ - mv $TEST_UNDECLARED_OUTPUTS_DIR/{tool}.xml $XML_OUTPUT_FILE -}} - -trap cleanup EXIT - -/bin/runtest --xml --status -all --debug -v -v --tool {tool} --srcdir {srcdir} --outdir $TEST_UNDECLARED_OUTPUTS_DIR -""" diff --git a/testsuite/dejagnu_runtest_wrapper.tpl b/testsuite/dejagnu_runtest_wrapper.tpl new file mode 100644 index 0000000..c0bb76f --- /dev/null +++ b/testsuite/dejagnu_runtest_wrapper.tpl @@ -0,0 +1,18 @@ +#/bin/sh + +set -e + +if ! [ -x /bin/runtest ]; then + echo "/bin/runtest not found, install dejagnu" | tee -a $TEST_INFRASTRUCTURE_FAILURE_FILE + exit 127 +fi + +/bin/runtest --version + +cleanup () { + mv $TEST_UNDECLARED_OUTPUTS_DIR/{tool}.xml $XML_OUTPUT_FILE +} + +trap cleanup EXIT + +/bin/runtest --xml --status --all --debug -v -v --tool {tool} --srcdir {srcdir} --outdir $TEST_UNDECLARED_OUTPUTS_DIR From bf51080b318c0b6c58bee06e84e36046bd8b9de2 Mon Sep 17 00:00:00 2001 From: Jamie Wilkinson Date: Sun, 11 Feb 2024 17:16:37 +1100 Subject: [PATCH 05/15] Set 'exit on error' after the runtest wrapper setup is done. --- testsuite/dejagnu_runtest_wrapper.tpl | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/testsuite/dejagnu_runtest_wrapper.tpl b/testsuite/dejagnu_runtest_wrapper.tpl index c0bb76f..451fc26 100644 --- a/testsuite/dejagnu_runtest_wrapper.tpl +++ b/testsuite/dejagnu_runtest_wrapper.tpl @@ -1,7 +1,5 @@ #/bin/sh -set -e - if ! [ -x /bin/runtest ]; then echo "/bin/runtest not found, install dejagnu" | tee -a $TEST_INFRASTRUCTURE_FAILURE_FILE exit 127 @@ -15,4 +13,6 @@ cleanup () { trap cleanup EXIT +set -e + /bin/runtest --xml --status --all --debug -v -v --tool {tool} --srcdir {srcdir} --outdir $TEST_UNDECLARED_OUTPUTS_DIR From 31bc5de6deb4934d21385801ecc97568ade0d1cf Mon Sep 17 00:00:00 2001 From: Jamie Wilkinson Date: Tue, 13 Feb 2024 16:36:11 +1100 Subject: [PATCH 06/15] hack: Add pwd to runner wrapper. --- testsuite/dejagnu_runtest_wrapper.tpl | 2 ++ 1 file changed, 2 insertions(+) diff --git a/testsuite/dejagnu_runtest_wrapper.tpl b/testsuite/dejagnu_runtest_wrapper.tpl index 451fc26..b0fbf6f 100644 --- a/testsuite/dejagnu_runtest_wrapper.tpl +++ b/testsuite/dejagnu_runtest_wrapper.tpl @@ -5,6 +5,8 @@ if ! [ -x /bin/runtest ]; then exit 127 fi +echo -n "pwd: " +pwd /bin/runtest --version cleanup () { From cb2c5560af24005e6bd0647f55a777812e1f0a6b Mon Sep 17 00:00:00 2001 From: Jamie Wilkinson Date: Tue, 13 Feb 2024 16:43:50 +1100 Subject: [PATCH 07/15] hack: set -x --- testsuite/dejagnu_runtest_wrapper.tpl | 2 ++ 1 file changed, 2 insertions(+) diff --git a/testsuite/dejagnu_runtest_wrapper.tpl b/testsuite/dejagnu_runtest_wrapper.tpl index b0fbf6f..1af9e97 100644 --- a/testsuite/dejagnu_runtest_wrapper.tpl +++ b/testsuite/dejagnu_runtest_wrapper.tpl @@ -1,5 +1,7 @@ #/bin/sh +set -x + if ! [ -x /bin/runtest ]; then echo "/bin/runtest not found, install dejagnu" | tee -a $TEST_INFRASTRUCTURE_FAILURE_FILE exit 127 From ba2dc1acd272d1631f1903d3ee11bbd48812501c Mon Sep 17 00:00:00 2001 From: Jamie Wilkinson Date: Tue, 13 Feb 2024 16:45:39 +1100 Subject: [PATCH 08/15] hack: ls --- testsuite/dejagnu_runtest_wrapper.tpl | 2 ++ 1 file changed, 2 insertions(+) diff --git a/testsuite/dejagnu_runtest_wrapper.tpl b/testsuite/dejagnu_runtest_wrapper.tpl index 1af9e97..de39cbe 100644 --- a/testsuite/dejagnu_runtest_wrapper.tpl +++ b/testsuite/dejagnu_runtest_wrapper.tpl @@ -11,6 +11,8 @@ echo -n "pwd: " pwd /bin/runtest --version +ls -laLR + cleanup () { mv $TEST_UNDECLARED_OUTPUTS_DIR/{tool}.xml $XML_OUTPUT_FILE } From 3f1d823dbc9d6d20547077c0f31287e5b2e1b43c Mon Sep 17 00:00:00 2001 From: Jamie Wilkinson Date: Tue, 13 Feb 2024 17:03:10 +1100 Subject: [PATCH 09/15] test: Create a `site.exp` for runtest to find. --- testsuite/dejagnu_runtest_wrapper.tpl | 6 ++++++ 1 file changed, 6 insertions(+) diff --git a/testsuite/dejagnu_runtest_wrapper.tpl b/testsuite/dejagnu_runtest_wrapper.tpl index de39cbe..dbf8f26 100644 --- a/testsuite/dejagnu_runtest_wrapper.tpl +++ b/testsuite/dejagnu_runtest_wrapper.tpl @@ -21,4 +21,10 @@ trap cleanup EXIT set -e +cat >site.exp < Date: Wed, 14 Feb 2024 11:46:07 +1100 Subject: [PATCH 10/15] build: Download DejaGnu 1.6.3 and use that for running tests. Github Actions have 1.6.2 which seems to have quite different behaviour than 1.6.3. --- MODULE.bazel | 12 + MODULE.bazel.lock | 1102 +++++++++++++++++++++---- testsuite/dejagnu.BUILD | 23 + testsuite/dejagnu.bzl | 18 +- testsuite/dejagnu_runtest_wrapper.tpl | 13 +- 5 files changed, 1017 insertions(+), 151 deletions(-) create mode 100644 testsuite/dejagnu.BUILD diff --git a/MODULE.bazel b/MODULE.bazel index 91ac92e..e271bfa 100644 --- a/MODULE.bazel +++ b/MODULE.bazel @@ -7,3 +7,15 @@ bazel_dep(name = "rules_bison", version = "0.2.2") bazel_dep(name = "rules_flex", version = "0.2.1") + +http_archive = use_repo_rule("@bazel_tools//tools/build_defs/repo:http.bzl", "http_archive") + +http_archive( + name = "org_gnu_dejagnu", + url = "https://ftp.gnu.org/gnu/dejagnu/dejagnu-1.6.3.tar.gz", + build_file = "testsuite/dejagnu.BUILD", + integrity = "sha256-h9rvrNeVi0pp+IxoVtvRY0JhljxBQHnQw3H1ic1mouM=", + strip_prefix = "dejagnu-1.6.3", +) + +bazel_dep(name = "rules_foreign_cc", version = "0.10.1") diff --git a/MODULE.bazel.lock b/MODULE.bazel.lock index 2fe4065..9326d0d 100644 --- a/MODULE.bazel.lock +++ b/MODULE.bazel.lock @@ -1,6 +1,6 @@ { "lockFileVersion": 3, - "moduleFileHash": "f8a469cff8aa20e61f649548b60f9190a17ddd26f56322b415fbd1bef1b26474", + "moduleFileHash": "5175c2d156a77e0def2dd2751d75fdb247cbb1bc7608c5241e17f16755c09724", "flags": { "cmdRegistries": [ "https://bcr.bazel.build/" @@ -23,10 +23,46 @@ "repoName": "", "executionPlatformsToRegister": [], "toolchainsToRegister": [], - "extensionUsages": [], + "extensionUsages": [ + { + "extensionBzlFile": "//:MODULE.bazel", + "extensionName": "_repo_rules", + "usingModule": "", + "location": { + "file": "@@//:MODULE.bazel", + "line": 0, + "column": 0 + }, + "imports": { + "org_gnu_dejagnu": "org_gnu_dejagnu" + }, + "devImports": [], + "tags": [ + { + "tagName": "@bazel_tools//tools/build_defs/repo:http.bzl%http_archive", + "attributeValues": { + "url": "https://ftp.gnu.org/gnu/dejagnu/dejagnu-1.6.3.tar.gz", + "build_file": "testsuite/dejagnu.BUILD", + "integrity": "sha256-h9rvrNeVi0pp+IxoVtvRY0JhljxBQHnQw3H1ic1mouM=", + "strip_prefix": "dejagnu-1.6.3", + "name": "org_gnu_dejagnu" + }, + "devDependency": false, + "location": { + "file": "@@//:MODULE.bazel", + "line": 13, + "column": 13 + } + } + ], + "hasDevUseExtension": false, + "hasNonDevUseExtension": true + } + ], "deps": { "rules_bison": "rules_bison@0.2.2", "rules_flex": "rules_flex@0.2.1", + "rules_foreign_cc": "rules_foreign_cc@0.10.1", "bazel_tools": "bazel_tools@_", "local_config_platform": "local_config_platform@_" } @@ -129,6 +165,74 @@ } } }, + "rules_foreign_cc@0.10.1": { + "name": "rules_foreign_cc", + "version": "0.10.1", + "key": "rules_foreign_cc@0.10.1", + "repoName": "rules_foreign_cc", + "executionPlatformsToRegister": [], + "toolchainsToRegister": [ + "@rules_foreign_cc_framework_toolchains//:all", + "@rules_foreign_cc//toolchains:built_make_toolchain", + "@rules_foreign_cc//toolchains:built_meson_toolchain", + "@rules_foreign_cc//toolchains:built_pkgconfig_toolchain", + "@rules_foreign_cc//toolchains:preinstalled_autoconf_toolchain", + "@rules_foreign_cc//toolchains:preinstalled_automake_toolchain", + "@rules_foreign_cc//toolchains:preinstalled_m4_toolchain", + "@rules_foreign_cc//toolchains:preinstalled_pkgconfig_toolchain", + "@cmake_3.23.2_toolchains//:all", + "@ninja_1.11.1_toolchains//:all" + ], + "extensionUsages": [ + { + "extensionBzlFile": "@rules_foreign_cc//foreign_cc:extensions.bzl", + "extensionName": "tools", + "usingModule": "rules_foreign_cc@0.10.1", + "location": { + "file": "https://bcr.bazel.build/modules/rules_foreign_cc/0.10.1/MODULE.bazel", + "line": 14, + "column": 22 + }, + "imports": { + "cmake_3.23.2_toolchains": "cmake_3.23.2_toolchains", + "cmake_src": "cmake_src", + "gnumake_src": "gnumake_src", + "meson_src": "meson_src", + "ninja_1.11.1_toolchains": "ninja_1.11.1_toolchains", + "ninja_build_src": "ninja_build_src", + "pkgconfig_src": "pkgconfig_src", + "rules_foreign_cc_framework_toolchains": "rules_foreign_cc_framework_toolchains" + }, + "devImports": [], + "tags": [], + "hasDevUseExtension": false, + "hasNonDevUseExtension": true + } + ], + "deps": { + "bazel_skylib": "bazel_skylib@1.3.0", + "platforms": "platforms@0.0.7", + "rules_python": "rules_python@0.20.0", + "bazel_tools": "bazel_tools@_", + "local_config_platform": "local_config_platform@_" + }, + "repoSpec": { + "bzlFile": "@bazel_tools//tools/build_defs/repo:http.bzl", + "ruleClassName": "http_archive", + "attributes": { + "name": "rules_foreign_cc~0.10.1", + "urls": [ + "https://github.com/bazelbuild/rules_foreign_cc/releases/download/0.10.1/rules_foreign_cc-0.10.1.tar.gz" + ], + "integrity": "sha256-R2MDvQ8bBMwxH8JY8XCKX274LTCR5T/Rl3+iA4NCWmo=", + "strip_prefix": "rules_foreign_cc-0.10.1", + "remote_patches": { + "https://bcr.bazel.build/modules/rules_foreign_cc/0.10.1/patches/module_dot_bazel.patch": "sha256-hDvLi+Nx91lvhEd2qRrPfPu0RjiG5w3a/c4N4AiJb3U=" + }, + "remote_patch_strip": 0 + } + } + }, "bazel_tools@_": { "name": "bazel_tools", "version": "", @@ -254,10 +358,10 @@ "rules_cc": "rules_cc@0.0.9", "rules_java": "rules_java@7.1.0", "rules_license": "rules_license@0.0.7", - "rules_proto": "rules_proto@4.0.0", - "rules_python": "rules_python@0.4.0", + "rules_proto": "rules_proto@5.3.0-21.7", + "rules_python": "rules_python@0.20.0", "platforms": "platforms@0.0.7", - "com_google_protobuf": "protobuf@3.19.6", + "com_google_protobuf": "protobuf@21.7", "zlib": "zlib@1.3", "build_bazel_apple_support": "apple_support@1.5.0", "local_config_platform": "local_config_platform@_" @@ -323,6 +427,155 @@ } } }, + "bazel_skylib@1.3.0": { + "name": "bazel_skylib", + "version": "1.3.0", + "key": "bazel_skylib@1.3.0", + "repoName": "bazel_skylib", + "executionPlatformsToRegister": [], + "toolchainsToRegister": [ + "//toolchains/unittest:cmd_toolchain", + "//toolchains/unittest:bash_toolchain" + ], + "extensionUsages": [], + "deps": { + "platforms": "platforms@0.0.7", + "bazel_tools": "bazel_tools@_", + "local_config_platform": "local_config_platform@_" + }, + "repoSpec": { + "bzlFile": "@bazel_tools//tools/build_defs/repo:http.bzl", + "ruleClassName": "http_archive", + "attributes": { + "name": "bazel_skylib~1.3.0", + "urls": [ + "https://github.com/bazelbuild/bazel-skylib/releases/download/1.3.0/bazel-skylib-1.3.0.tar.gz" + ], + "integrity": "sha256-dNVE2W9KW7Yw1GXKi7z+Ix41lOWq5X4e2/F6brPKJQY=", + "strip_prefix": "", + "remote_patches": {}, + "remote_patch_strip": 0 + } + } + }, + "platforms@0.0.7": { + "name": "platforms", + "version": "0.0.7", + "key": "platforms@0.0.7", + "repoName": "platforms", + "executionPlatformsToRegister": [], + "toolchainsToRegister": [], + "extensionUsages": [], + "deps": { + "rules_license": "rules_license@0.0.7", + "bazel_tools": "bazel_tools@_", + "local_config_platform": "local_config_platform@_" + }, + "repoSpec": { + "bzlFile": "@bazel_tools//tools/build_defs/repo:http.bzl", + "ruleClassName": "http_archive", + "attributes": { + "name": "platforms", + "urls": [ + "https://github.com/bazelbuild/platforms/releases/download/0.0.7/platforms-0.0.7.tar.gz" + ], + "integrity": "sha256-OlYcmee9vpFzqmU/1Xn+hJ8djWc5V4CrR3Cx84FDHVE=", + "strip_prefix": "", + "remote_patches": {}, + "remote_patch_strip": 0 + } + } + }, + "rules_python@0.20.0": { + "name": "rules_python", + "version": "0.20.0", + "key": "rules_python@0.20.0", + "repoName": "rules_python", + "executionPlatformsToRegister": [], + "toolchainsToRegister": [], + "extensionUsages": [ + { + "extensionBzlFile": "@rules_python//python:extensions.bzl", + "extensionName": "internal_deps", + "usingModule": "rules_python@0.20.0", + "location": { + "file": "https://bcr.bazel.build/modules/rules_python/0.20.0/MODULE.bazel", + "line": 14, + "column": 30 + }, + "imports": { + "pypi__build": "pypi__build", + "pypi__click": "pypi__click", + "pypi__colorama": "pypi__colorama", + "pypi__importlib_metadata": "pypi__importlib_metadata", + "pypi__installer": "pypi__installer", + "pypi__more_itertools": "pypi__more_itertools", + "pypi__packaging": "pypi__packaging", + "pypi__pep517": "pypi__pep517", + "pypi__pip": "pypi__pip", + "pypi__pip_tools": "pypi__pip_tools", + "pypi__setuptools": "pypi__setuptools", + "pypi__tomli": "pypi__tomli", + "pypi__wheel": "pypi__wheel", + "pypi__zipp": "pypi__zipp", + "pypi__coverage_cp310_aarch64-apple-darwin": "pypi__coverage_cp310_aarch64-apple-darwin", + "pypi__coverage_cp310_aarch64-unknown-linux-gnu": "pypi__coverage_cp310_aarch64-unknown-linux-gnu", + "pypi__coverage_cp310_x86_64-apple-darwin": "pypi__coverage_cp310_x86_64-apple-darwin", + "pypi__coverage_cp310_x86_64-unknown-linux-gnu": "pypi__coverage_cp310_x86_64-unknown-linux-gnu", + "pypi__coverage_cp311_aarch64-unknown-linux-gnu": "pypi__coverage_cp311_aarch64-unknown-linux-gnu", + "pypi__coverage_cp311_x86_64-apple-darwin": "pypi__coverage_cp311_x86_64-apple-darwin", + "pypi__coverage_cp311_x86_64-unknown-linux-gnu": "pypi__coverage_cp311_x86_64-unknown-linux-gnu", + "pypi__coverage_cp38_aarch64-apple-darwin": "pypi__coverage_cp38_aarch64-apple-darwin", + "pypi__coverage_cp38_aarch64-unknown-linux-gnu": "pypi__coverage_cp38_aarch64-unknown-linux-gnu", + "pypi__coverage_cp38_x86_64-apple-darwin": "pypi__coverage_cp38_x86_64-apple-darwin", + "pypi__coverage_cp38_x86_64-unknown-linux-gnu": "pypi__coverage_cp38_x86_64-unknown-linux-gnu", + "pypi__coverage_cp39_aarch64-apple-darwin": "pypi__coverage_cp39_aarch64-apple-darwin", + "pypi__coverage_cp39_aarch64-unknown-linux-gnu": "pypi__coverage_cp39_aarch64-unknown-linux-gnu", + "pypi__coverage_cp39_x86_64-apple-darwin": "pypi__coverage_cp39_x86_64-apple-darwin", + "pypi__coverage_cp39_x86_64-unknown-linux-gnu": "pypi__coverage_cp39_x86_64-unknown-linux-gnu" + }, + "devImports": [], + "tags": [ + { + "tagName": "install", + "attributeValues": {}, + "devDependency": false, + "location": { + "file": "https://bcr.bazel.build/modules/rules_python/0.20.0/MODULE.bazel", + "line": 15, + "column": 22 + } + } + ], + "hasDevUseExtension": false, + "hasNonDevUseExtension": true + } + ], + "deps": { + "platforms": "platforms@0.0.7", + "bazel_skylib": "bazel_skylib@1.3.0", + "rules_proto": "rules_proto@5.3.0-21.7", + "com_google_protobuf": "protobuf@21.7", + "bazel_tools": "bazel_tools@_", + "local_config_platform": "local_config_platform@_" + }, + "repoSpec": { + "bzlFile": "@bazel_tools//tools/build_defs/repo:http.bzl", + "ruleClassName": "http_archive", + "attributes": { + "name": "rules_python~0.20.0", + "urls": [ + "https://github.com/bazelbuild/rules_python/releases/download/0.20.0/rules_python-0.20.0.tar.gz" + ], + "integrity": "sha256-pkTalptoJMyH+P57GBAaimxX2l2znKplZuxhCfN9IUE=", + "strip_prefix": "rules_python-0.20.0", + "remote_patches": { + "https://bcr.bazel.build/modules/rules_python/0.20.0/patches/module_dot_bazel_version.patch": "sha256-LICe/Q+KxbOIQCbb59g0QHBg2KTof3wHiISxAZsoHx4=" + }, + "remote_patch_strip": 0 + } + } + }, "rules_cc@0.0.9": { "name": "rules_cc", "version": "0.0.9", @@ -454,7 +707,7 @@ "platforms": "platforms@0.0.7", "rules_cc": "rules_cc@0.0.9", "bazel_skylib": "bazel_skylib@1.3.0", - "rules_proto": "rules_proto@4.0.0", + "rules_proto": "rules_proto@5.3.0-21.7", "rules_license": "rules_license@0.0.7", "bazel_tools": "bazel_tools@_", "local_config_platform": "local_config_platform@_" @@ -501,16 +754,17 @@ } } }, - "rules_proto@4.0.0": { + "rules_proto@5.3.0-21.7": { "name": "rules_proto", - "version": "4.0.0", - "key": "rules_proto@4.0.0", + "version": "5.3.0-21.7", + "key": "rules_proto@5.3.0-21.7", "repoName": "rules_proto", "executionPlatformsToRegister": [], "toolchainsToRegister": [], "extensionUsages": [], "deps": { "bazel_skylib": "bazel_skylib@1.3.0", + "com_google_protobuf": "protobuf@21.7", "rules_cc": "rules_cc@0.0.9", "bazel_tools": "bazel_tools@_", "local_config_platform": "local_config_platform@_" @@ -519,117 +773,79 @@ "bzlFile": "@bazel_tools//tools/build_defs/repo:http.bzl", "ruleClassName": "http_archive", "attributes": { - "name": "rules_proto~4.0.0", + "name": "rules_proto~5.3.0-21.7", "urls": [ - "https://github.com/bazelbuild/rules_proto/archive/refs/tags/4.0.0.zip" + "https://github.com/bazelbuild/rules_proto/archive/refs/tags/5.3.0-21.7.tar.gz" ], - "integrity": "sha256-Lr5z6xyuRA19pNtRYMGjKaynwQpck4H/lwYyVjyhoq4=", - "strip_prefix": "rules_proto-4.0.0", - "remote_patches": { - "https://bcr.bazel.build/modules/rules_proto/4.0.0/patches/module_dot_bazel.patch": "sha256-MclJO7tIAM2ElDAmscNId9pKTpOuDGHgVlW/9VBOIp0=" - }, + "integrity": "sha256-3D+yBqLLNEG0heseQjFlsjEjWh6psDG0Qzz3vB+kYN0=", + "strip_prefix": "rules_proto-5.3.0-21.7", + "remote_patches": {}, "remote_patch_strip": 0 } } }, - "rules_python@0.4.0": { - "name": "rules_python", - "version": "0.4.0", - "key": "rules_python@0.4.0", - "repoName": "rules_python", + "protobuf@21.7": { + "name": "protobuf", + "version": "21.7", + "key": "protobuf@21.7", + "repoName": "protobuf", "executionPlatformsToRegister": [], - "toolchainsToRegister": [ - "@bazel_tools//tools/python:autodetecting_toolchain" - ], + "toolchainsToRegister": [], "extensionUsages": [ { - "extensionBzlFile": "@rules_python//bzlmod:extensions.bzl", - "extensionName": "pip_install", - "usingModule": "rules_python@0.4.0", + "extensionBzlFile": "@rules_jvm_external//:extensions.bzl", + "extensionName": "maven", + "usingModule": "protobuf@21.7", "location": { - "file": "https://bcr.bazel.build/modules/rules_python/0.4.0/MODULE.bazel", - "line": 7, - "column": 28 + "file": "https://bcr.bazel.build/modules/protobuf/21.7/MODULE.bazel", + "line": 22, + "column": 22 }, "imports": { - "pypi__click": "pypi__click", - "pypi__pip": "pypi__pip", - "pypi__pip_tools": "pypi__pip_tools", - "pypi__pkginfo": "pypi__pkginfo", - "pypi__setuptools": "pypi__setuptools", - "pypi__wheel": "pypi__wheel" + "maven": "maven" }, "devImports": [], - "tags": [], + "tags": [ + { + "tagName": "install", + "attributeValues": { + "name": "maven", + "artifacts": [ + "com.google.code.findbugs:jsr305:3.0.2", + "com.google.code.gson:gson:2.8.9", + "com.google.errorprone:error_prone_annotations:2.3.2", + "com.google.j2objc:j2objc-annotations:1.3", + "com.google.guava:guava:31.1-jre", + "com.google.guava:guava-testlib:31.1-jre", + "com.google.truth:truth:1.1.2", + "junit:junit:4.13.2", + "org.mockito:mockito-core:4.3.1" + ] + }, + "devDependency": false, + "location": { + "file": "https://bcr.bazel.build/modules/protobuf/21.7/MODULE.bazel", + "line": 24, + "column": 14 + } + } + ], "hasDevUseExtension": false, "hasNonDevUseExtension": true } ], - "deps": { - "bazel_tools": "bazel_tools@_", - "local_config_platform": "local_config_platform@_" - }, - "repoSpec": { - "bzlFile": "@bazel_tools//tools/build_defs/repo:http.bzl", - "ruleClassName": "http_archive", - "attributes": { - "name": "rules_python~0.4.0", - "urls": [ - "https://github.com/bazelbuild/rules_python/releases/download/0.4.0/rules_python-0.4.0.tar.gz" - ], - "integrity": "sha256-lUqom0kb5KCDMEosuDgBnIuMNyCnq7nEy4GseiQjDOo=", - "strip_prefix": "", - "remote_patches": { - "https://bcr.bazel.build/modules/rules_python/0.4.0/patches/propagate_pip_install_dependencies.patch": "sha256-v7S/dem/mixg63MF4KoRGDA4KEol9ab/tIVp+6Xq0D0=", - "https://bcr.bazel.build/modules/rules_python/0.4.0/patches/module_dot_bazel.patch": "sha256-kG4VIfWxQazzTuh50mvsx6pmyoRVA4lfH5rkto/Oq+Y=" - }, - "remote_patch_strip": 1 - } - } - }, - "platforms@0.0.7": { - "name": "platforms", - "version": "0.0.7", - "key": "platforms@0.0.7", - "repoName": "platforms", - "executionPlatformsToRegister": [], - "toolchainsToRegister": [], - "extensionUsages": [], - "deps": { - "rules_license": "rules_license@0.0.7", - "bazel_tools": "bazel_tools@_", - "local_config_platform": "local_config_platform@_" - }, - "repoSpec": { - "bzlFile": "@bazel_tools//tools/build_defs/repo:http.bzl", - "ruleClassName": "http_archive", - "attributes": { - "name": "platforms", - "urls": [ - "https://github.com/bazelbuild/platforms/releases/download/0.0.7/platforms-0.0.7.tar.gz" - ], - "integrity": "sha256-OlYcmee9vpFzqmU/1Xn+hJ8djWc5V4CrR3Cx84FDHVE=", - "strip_prefix": "", - "remote_patches": {}, - "remote_patch_strip": 0 - } - } - }, - "protobuf@3.19.6": { - "name": "protobuf", - "version": "3.19.6", - "key": "protobuf@3.19.6", - "repoName": "protobuf", - "executionPlatformsToRegister": [], - "toolchainsToRegister": [], - "extensionUsages": [], "deps": { "bazel_skylib": "bazel_skylib@1.3.0", - "zlib": "zlib@1.3", - "rules_python": "rules_python@0.4.0", + "rules_python": "rules_python@0.20.0", "rules_cc": "rules_cc@0.0.9", - "rules_proto": "rules_proto@4.0.0", + "rules_proto": "rules_proto@5.3.0-21.7", "rules_java": "rules_java@7.1.0", + "rules_pkg": "rules_pkg@0.7.0", + "com_google_abseil": "abseil-cpp@20211102.0", + "zlib": "zlib@1.3", + "upb": "upb@0.0.0-20220923-a547704", + "rules_jvm_external": "rules_jvm_external@4.4.2", + "com_google_googletest": "googletest@1.11.0", "bazel_tools": "bazel_tools@_", "local_config_platform": "local_config_platform@_" }, @@ -637,17 +853,17 @@ "bzlFile": "@bazel_tools//tools/build_defs/repo:http.bzl", "ruleClassName": "http_archive", "attributes": { - "name": "protobuf~3.19.6", + "name": "protobuf~21.7", "urls": [ - "https://github.com/protocolbuffers/protobuf/archive/refs/tags/v3.19.6.zip" + "https://github.com/protocolbuffers/protobuf/releases/download/v21.7/protobuf-all-21.7.zip" ], - "integrity": "sha256-OH4sVZuyx8G8N5jE5s/wFTgaebJ1hpavy/johzC0c4k=", - "strip_prefix": "protobuf-3.19.6", + "integrity": "sha256-VJOiH17T/FAuZv7GuUScBqVRztYwAvpIkDxA36jeeko=", + "strip_prefix": "protobuf-21.7", "remote_patches": { - "https://bcr.bazel.build/modules/protobuf/3.19.6/patches/relative_repo_names.patch": "sha256-w/5gw/zGv8NFId+669hcdw1Uus2lxgYpulATHIwIByI=", - "https://bcr.bazel.build/modules/protobuf/3.19.6/patches/remove_dependency_on_rules_jvm_external.patch": "sha256-THUTnVgEBmjA0W7fKzIyZOVG58DnW9HQTkr4D2zKUUc=", - "https://bcr.bazel.build/modules/protobuf/3.19.6/patches/add_module_dot_bazel_for_examples.patch": "sha256-s/b1gi3baK3LsXefI2rQilhmkb2R5jVJdnT6zEcdfHY=", - "https://bcr.bazel.build/modules/protobuf/3.19.6/patches/module_dot_bazel.patch": "sha256-S0DEni8zgx7rHscW3z/rCEubQnYec0XhNet640cw0h4=" + "https://bcr.bazel.build/modules/protobuf/21.7/patches/add_module_dot_bazel.patch": "sha256-q3V2+eq0v2XF0z8z+V+QF4cynD6JvHI1y3kI/+rzl5s=", + "https://bcr.bazel.build/modules/protobuf/21.7/patches/add_module_dot_bazel_for_examples.patch": "sha256-O7YP6s3lo/1opUiO0jqXYORNHdZ/2q3hjz1QGy8QdIU=", + "https://bcr.bazel.build/modules/protobuf/21.7/patches/relative_repo_names.patch": "sha256-RK9RjW8T5UJNG7flIrnFiNE9vKwWB+8uWWtJqXYT0w4=", + "https://bcr.bazel.build/modules/protobuf/21.7/patches/add_missing_files.patch": "sha256-Hyne4DG2u5bXcWHNxNMirA2QFAe/2Cl8oMm1XJdkQIY=" }, "remote_patch_strip": 1 } @@ -735,19 +951,18 @@ } } }, - "bazel_skylib@1.3.0": { - "name": "bazel_skylib", - "version": "1.3.0", - "key": "bazel_skylib@1.3.0", - "repoName": "bazel_skylib", + "rules_pkg@0.7.0": { + "name": "rules_pkg", + "version": "0.7.0", + "key": "rules_pkg@0.7.0", + "repoName": "rules_pkg", "executionPlatformsToRegister": [], - "toolchainsToRegister": [ - "//toolchains/unittest:cmd_toolchain", - "//toolchains/unittest:bash_toolchain" - ], + "toolchainsToRegister": [], "extensionUsages": [], "deps": { - "platforms": "platforms@0.0.7", + "rules_python": "rules_python@0.20.0", + "bazel_skylib": "bazel_skylib@1.3.0", + "rules_license": "rules_license@0.0.7", "bazel_tools": "bazel_tools@_", "local_config_platform": "local_config_platform@_" }, @@ -755,39 +970,275 @@ "bzlFile": "@bazel_tools//tools/build_defs/repo:http.bzl", "ruleClassName": "http_archive", "attributes": { - "name": "bazel_skylib~1.3.0", + "name": "rules_pkg~0.7.0", "urls": [ - "https://github.com/bazelbuild/bazel-skylib/releases/download/1.3.0/bazel-skylib-1.3.0.tar.gz" + "https://github.com/bazelbuild/rules_pkg/releases/download/0.7.0/rules_pkg-0.7.0.tar.gz" ], - "integrity": "sha256-dNVE2W9KW7Yw1GXKi7z+Ix41lOWq5X4e2/F6brPKJQY=", + "integrity": "sha256-iimOgydi7aGDBZfWT+fbWBeKqEzVkm121bdE1lWJQcI=", "strip_prefix": "", - "remote_patches": {}, + "remote_patches": { + "https://bcr.bazel.build/modules/rules_pkg/0.7.0/patches/module_dot_bazel.patch": "sha256-4OaEPZwYF6iC71ZTDg6MJ7LLqX7ZA0/kK4mT+4xKqiE=" + }, "remote_patch_strip": 0 } } - } - }, - "moduleExtensions": { - "@@apple_support~1.5.0//crosstool:setup.bzl%apple_cc_configure_extension": { - "general": { - "bzlTransitiveDigest": "pMLFCYaRPkgXPQ8vtuNkMfiHfPmRBy6QJfnid4sWfv0=", - "accumulatedFileDigests": {}, - "envVariables": {}, - "generatedRepoSpecs": { - "local_config_apple_cc": { - "bzlFile": "@@apple_support~1.5.0//crosstool:setup.bzl", - "ruleClassName": "_apple_cc_autoconf", - "attributes": { - "name": "apple_support~1.5.0~apple_cc_configure_extension~local_config_apple_cc" - } - }, - "local_config_apple_cc_toolchains": { - "bzlFile": "@@apple_support~1.5.0//crosstool:setup.bzl", - "ruleClassName": "_apple_cc_autoconf_toolchains", - "attributes": { - "name": "apple_support~1.5.0~apple_cc_configure_extension~local_config_apple_cc_toolchains" - } - } + }, + "abseil-cpp@20211102.0": { + "name": "abseil-cpp", + "version": "20211102.0", + "key": "abseil-cpp@20211102.0", + "repoName": "abseil-cpp", + "executionPlatformsToRegister": [], + "toolchainsToRegister": [], + "extensionUsages": [], + "deps": { + "rules_cc": "rules_cc@0.0.9", + "platforms": "platforms@0.0.7", + "bazel_tools": "bazel_tools@_", + "local_config_platform": "local_config_platform@_" + }, + "repoSpec": { + "bzlFile": "@bazel_tools//tools/build_defs/repo:http.bzl", + "ruleClassName": "http_archive", + "attributes": { + "name": "abseil-cpp~20211102.0", + "urls": [ + "https://github.com/abseil/abseil-cpp/archive/refs/tags/20211102.0.tar.gz" + ], + "integrity": "sha256-3PcbnLqNwMqZQMSzFqDHlr6Pq0KwcLtrfKtitI8OZsQ=", + "strip_prefix": "abseil-cpp-20211102.0", + "remote_patches": { + "https://bcr.bazel.build/modules/abseil-cpp/20211102.0/patches/module_dot_bazel.patch": "sha256-4izqopgGCey4jVZzl/w3M2GVPNohjh2B5TmbThZNvPY=" + }, + "remote_patch_strip": 0 + } + } + }, + "upb@0.0.0-20220923-a547704": { + "name": "upb", + "version": "0.0.0-20220923-a547704", + "key": "upb@0.0.0-20220923-a547704", + "repoName": "upb", + "executionPlatformsToRegister": [], + "toolchainsToRegister": [], + "extensionUsages": [], + "deps": { + "bazel_skylib": "bazel_skylib@1.3.0", + "rules_proto": "rules_proto@5.3.0-21.7", + "com_google_protobuf": "protobuf@21.7", + "com_google_absl": "abseil-cpp@20211102.0", + "platforms": "platforms@0.0.7", + "bazel_tools": "bazel_tools@_", + "local_config_platform": "local_config_platform@_" + }, + "repoSpec": { + "bzlFile": "@bazel_tools//tools/build_defs/repo:http.bzl", + "ruleClassName": "http_archive", + "attributes": { + "name": "upb~0.0.0-20220923-a547704", + "urls": [ + "https://github.com/protocolbuffers/upb/archive/a5477045acaa34586420942098f5fecd3570f577.tar.gz" + ], + "integrity": "sha256-z39x6v+QskwaKLSWRan/A6mmwecTQpHOcJActj5zZLU=", + "strip_prefix": "upb-a5477045acaa34586420942098f5fecd3570f577", + "remote_patches": { + "https://bcr.bazel.build/modules/upb/0.0.0-20220923-a547704/patches/module_dot_bazel.patch": "sha256-wH4mNS6ZYy+8uC0HoAft/c7SDsq2Kxf+J8dUakXhaB0=" + }, + "remote_patch_strip": 0 + } + } + }, + "rules_jvm_external@4.4.2": { + "name": "rules_jvm_external", + "version": "4.4.2", + "key": "rules_jvm_external@4.4.2", + "repoName": "rules_jvm_external", + "executionPlatformsToRegister": [], + "toolchainsToRegister": [], + "extensionUsages": [ + { + "extensionBzlFile": "@rules_jvm_external//:non-module-deps.bzl", + "extensionName": "non_module_deps", + "usingModule": "rules_jvm_external@4.4.2", + "location": { + "file": "https://bcr.bazel.build/modules/rules_jvm_external/4.4.2/MODULE.bazel", + "line": 9, + "column": 32 + }, + "imports": { + "io_bazel_rules_kotlin": "io_bazel_rules_kotlin" + }, + "devImports": [], + "tags": [], + "hasDevUseExtension": false, + "hasNonDevUseExtension": true + }, + { + "extensionBzlFile": ":extensions.bzl", + "extensionName": "maven", + "usingModule": "rules_jvm_external@4.4.2", + "location": { + "file": "https://bcr.bazel.build/modules/rules_jvm_external/4.4.2/MODULE.bazel", + "line": 16, + "column": 22 + }, + "imports": { + "rules_jvm_external_deps": "rules_jvm_external_deps" + }, + "devImports": [], + "tags": [ + { + "tagName": "install", + "attributeValues": { + "name": "rules_jvm_external_deps", + "artifacts": [ + "com.google.cloud:google-cloud-core:1.93.10", + "com.google.cloud:google-cloud-storage:1.113.4", + "com.google.code.gson:gson:2.9.0", + "org.apache.maven:maven-artifact:3.8.6", + "software.amazon.awssdk:s3:2.17.183" + ], + "lock_file": "@rules_jvm_external//:rules_jvm_external_deps_install.json" + }, + "devDependency": false, + "location": { + "file": "https://bcr.bazel.build/modules/rules_jvm_external/4.4.2/MODULE.bazel", + "line": 18, + "column": 14 + } + } + ], + "hasDevUseExtension": false, + "hasNonDevUseExtension": true + } + ], + "deps": { + "bazel_skylib": "bazel_skylib@1.3.0", + "io_bazel_stardoc": "stardoc@0.5.1", + "bazel_tools": "bazel_tools@_", + "local_config_platform": "local_config_platform@_" + }, + "repoSpec": { + "bzlFile": "@bazel_tools//tools/build_defs/repo:http.bzl", + "ruleClassName": "http_archive", + "attributes": { + "name": "rules_jvm_external~4.4.2", + "urls": [ + "https://github.com/bazelbuild/rules_jvm_external/archive/refs/tags/4.4.2.zip" + ], + "integrity": "sha256-c1YC9QgT6y6pPKP15DsZWb2AshO4NqB6YqKddXZwt3s=", + "strip_prefix": "rules_jvm_external-4.4.2", + "remote_patches": {}, + "remote_patch_strip": 0 + } + } + }, + "googletest@1.11.0": { + "name": "googletest", + "version": "1.11.0", + "key": "googletest@1.11.0", + "repoName": "googletest", + "executionPlatformsToRegister": [], + "toolchainsToRegister": [], + "extensionUsages": [], + "deps": { + "com_google_absl": "abseil-cpp@20211102.0", + "platforms": "platforms@0.0.7", + "rules_cc": "rules_cc@0.0.9", + "bazel_tools": "bazel_tools@_", + "local_config_platform": "local_config_platform@_" + }, + "repoSpec": { + "bzlFile": "@bazel_tools//tools/build_defs/repo:http.bzl", + "ruleClassName": "http_archive", + "attributes": { + "name": "googletest~1.11.0", + "urls": [ + "https://github.com/google/googletest/archive/refs/tags/release-1.11.0.tar.gz" + ], + "integrity": "sha256-tIcL8SH/d5W6INILzdhie44Ijy0dqymaAxwQNO3ck9U=", + "strip_prefix": "googletest-release-1.11.0", + "remote_patches": { + "https://bcr.bazel.build/modules/googletest/1.11.0/patches/module_dot_bazel.patch": "sha256-HuahEdI/n8KCI071sN3CEziX+7qP/Ec77IWayYunLP0=" + }, + "remote_patch_strip": 0 + } + } + }, + "stardoc@0.5.1": { + "name": "stardoc", + "version": "0.5.1", + "key": "stardoc@0.5.1", + "repoName": "stardoc", + "executionPlatformsToRegister": [], + "toolchainsToRegister": [], + "extensionUsages": [], + "deps": { + "bazel_skylib": "bazel_skylib@1.3.0", + "rules_java": "rules_java@7.1.0", + "bazel_tools": "bazel_tools@_", + "local_config_platform": "local_config_platform@_" + }, + "repoSpec": { + "bzlFile": "@bazel_tools//tools/build_defs/repo:http.bzl", + "ruleClassName": "http_archive", + "attributes": { + "name": "stardoc~0.5.1", + "urls": [ + "https://github.com/bazelbuild/stardoc/releases/download/0.5.1/stardoc-0.5.1.tar.gz" + ], + "integrity": "sha256-qoFNrgrEALurLoiB+ZFcb0fElmS/CHxAmhX5BDjSwj4=", + "strip_prefix": "", + "remote_patches": { + "https://bcr.bazel.build/modules/stardoc/0.5.1/patches/module_dot_bazel.patch": "sha256-UAULCuTpJE7SG0YrR9XLjMfxMRmbP+za3uW9ONZ5rjI=" + }, + "remote_patch_strip": 0 + } + } + } + }, + "moduleExtensions": { + "//:MODULE.bazel%_repo_rules": { + "general": { + "bzlTransitiveDigest": "nSp+oEsTv5DYy1r8s+aEwKWUHoJDhXelRNB5mFkZmdU=", + "accumulatedFileDigests": {}, + "envVariables": {}, + "generatedRepoSpecs": { + "org_gnu_dejagnu": { + "bzlFile": "@@bazel_tools//tools/build_defs/repo:http.bzl", + "ruleClassName": "http_archive", + "attributes": { + "url": "https://ftp.gnu.org/gnu/dejagnu/dejagnu-1.6.3.tar.gz", + "build_file": "@@//:testsuite/dejagnu.BUILD", + "integrity": "sha256-h9rvrNeVi0pp+IxoVtvRY0JhljxBQHnQw3H1ic1mouM=", + "strip_prefix": "dejagnu-1.6.3", + "name": "_main~_repo_rules~org_gnu_dejagnu" + } + } + }, + "recordedRepoMappingEntries": [] + } + }, + "@@apple_support~1.5.0//crosstool:setup.bzl%apple_cc_configure_extension": { + "general": { + "bzlTransitiveDigest": "pMLFCYaRPkgXPQ8vtuNkMfiHfPmRBy6QJfnid4sWfv0=", + "accumulatedFileDigests": {}, + "envVariables": {}, + "generatedRepoSpecs": { + "local_config_apple_cc": { + "bzlFile": "@@apple_support~1.5.0//crosstool:setup.bzl", + "ruleClassName": "_apple_cc_autoconf", + "attributes": { + "name": "apple_support~1.5.0~apple_cc_configure_extension~local_config_apple_cc" + } + }, + "local_config_apple_cc_toolchains": { + "bzlFile": "@@apple_support~1.5.0//crosstool:setup.bzl", + "ruleClassName": "_apple_cc_autoconf_toolchains", + "attributes": { + "name": "apple_support~1.5.0~apple_cc_configure_extension~local_config_apple_cc_toolchains" + } + } }, "recordedRepoMappingEntries": [ [ @@ -951,6 +1402,371 @@ "recordedRepoMappingEntries": [] } }, + "@@rules_foreign_cc~0.10.1//foreign_cc:extensions.bzl%tools": { + "general": { + "bzlTransitiveDigest": "jvAsWV4VxU5lCkkz2c1t9UggMY0fpg+S5hPM4JPsKYk=", + "accumulatedFileDigests": {}, + "envVariables": {}, + "generatedRepoSpecs": { + "cmake-3.23.2-linux-aarch64": { + "bzlFile": "@@bazel_tools//tools/build_defs/repo:http.bzl", + "ruleClassName": "http_archive", + "attributes": { + "name": "rules_foreign_cc~0.10.1~tools~cmake-3.23.2-linux-aarch64", + "urls": [ + "https://github.com/Kitware/CMake/releases/download/v3.23.2/cmake-3.23.2-linux-aarch64.tar.gz" + ], + "sha256": "f2654bf780b53f170bbbec44d8ac67d401d24788e590faa53036a89476efa91e", + "strip_prefix": "cmake-3.23.2-linux-aarch64", + "build_file_content": "load(\"@rules_foreign_cc//toolchains/native_tools:native_tools_toolchain.bzl\", \"native_tool_toolchain\")\n\npackage(default_visibility = [\"//visibility:public\"])\n\nfilegroup(\n name = \"cmake_data\",\n srcs = glob(\n [\n \"**\",\n ],\n exclude = [\n \"WORKSPACE\",\n \"WORKSPACE.bazel\",\n \"BUILD\",\n \"BUILD.bazel\",\n ],\n ),\n)\n\nnative_tool_toolchain(\n name = \"cmake_tool\",\n path = \"bin/cmake\",\n target = \":cmake_data\",\n)\n" + } + }, + "rules_foreign_cc_framework_toolchain_macos": { + "bzlFile": "@@rules_foreign_cc~0.10.1//foreign_cc/private/framework:toolchain.bzl", + "ruleClassName": "framework_toolchain_repository", + "attributes": { + "name": "rules_foreign_cc~0.10.1~tools~rules_foreign_cc_framework_toolchain_macos", + "commands_src": "@rules_foreign_cc//foreign_cc/private/framework/toolchains:macos_commands.bzl", + "exec_compatible_with": [ + "@platforms//os:macos" + ] + } + }, + "gnumake_src": { + "bzlFile": "@@bazel_tools//tools/build_defs/repo:http.bzl", + "ruleClassName": "http_archive", + "attributes": { + "name": "rules_foreign_cc~0.10.1~tools~gnumake_src", + "build_file_content": "filegroup(\n name = \"all_srcs\",\n srcs = glob([\"**\"]),\n visibility = [\"//visibility:public\"],\n)\n", + "sha256": "581f4d4e872da74b3941c874215898a7d35802f03732bdccee1d4a7979105d18", + "strip_prefix": "make-4.4", + "urls": [ + "https://mirror.bazel.build/ftpmirror.gnu.org/gnu/make/make-4.4.tar.gz", + "http://ftpmirror.gnu.org/gnu/make/make-4.4.tar.gz" + ] + } + }, + "gettext_runtime": { + "bzlFile": "@@bazel_tools//tools/build_defs/repo:http.bzl", + "ruleClassName": "http_archive", + "attributes": { + "name": "rules_foreign_cc~0.10.1~tools~gettext_runtime", + "build_file_content": "\ncc_import(\n name = \"gettext_runtime\",\n shared_library = \"bin/libintl-8.dll\",\n visibility = [\"//visibility:public\"],\n)\n ", + "sha256": "1f4269c0e021076d60a54e98da6f978a3195013f6de21674ba0edbc339c5b079", + "urls": [ + "https://download.gnome.org/binaries/win64/dependencies/gettext-runtime_0.18.1.1-2_win64.zip" + ] + } + }, + "cmake_src": { + "bzlFile": "@@bazel_tools//tools/build_defs/repo:http.bzl", + "ruleClassName": "http_archive", + "attributes": { + "name": "rules_foreign_cc~0.10.1~tools~cmake_src", + "build_file_content": "filegroup(\n name = \"all_srcs\",\n srcs = glob([\"**\"]),\n visibility = [\"//visibility:public\"],\n)\n", + "sha256": "f316b40053466f9a416adf981efda41b160ca859e97f6a484b447ea299ff26aa", + "strip_prefix": "cmake-3.23.2", + "urls": [ + "https://github.com/Kitware/CMake/releases/download/v3.23.2/cmake-3.23.2.tar.gz" + ] + } + }, + "bazel_skylib": { + "bzlFile": "@@bazel_tools//tools/build_defs/repo:http.bzl", + "ruleClassName": "http_archive", + "attributes": { + "name": "rules_foreign_cc~0.10.1~tools~bazel_skylib", + "urls": [ + "https://mirror.bazel.build/github.com/bazelbuild/bazel-skylib/releases/download/1.2.1/bazel-skylib-1.2.1.tar.gz", + "https://github.com/bazelbuild/bazel-skylib/releases/download/1.2.1/bazel-skylib-1.2.1.tar.gz" + ], + "sha256": "f7be3474d42aae265405a592bb7da8e171919d74c16f082a5457840f06054728" + } + }, + "cmake-3.23.2-macos-universal": { + "bzlFile": "@@bazel_tools//tools/build_defs/repo:http.bzl", + "ruleClassName": "http_archive", + "attributes": { + "name": "rules_foreign_cc~0.10.1~tools~cmake-3.23.2-macos-universal", + "urls": [ + "https://github.com/Kitware/CMake/releases/download/v3.23.2/cmake-3.23.2-macos-universal.tar.gz" + ], + "sha256": "853a0f9af148c5ef47282ffffee06c4c9f257be2635936755f39ca13c3286c88", + "strip_prefix": "cmake-3.23.2-macos-universal/CMake.app/Contents", + "build_file_content": "load(\"@rules_foreign_cc//toolchains/native_tools:native_tools_toolchain.bzl\", \"native_tool_toolchain\")\n\npackage(default_visibility = [\"//visibility:public\"])\n\nfilegroup(\n name = \"cmake_data\",\n srcs = glob(\n [\n \"**\",\n ],\n exclude = [\n \"WORKSPACE\",\n \"WORKSPACE.bazel\",\n \"BUILD\",\n \"BUILD.bazel\",\n ],\n ),\n)\n\nnative_tool_toolchain(\n name = \"cmake_tool\",\n path = \"bin/cmake\",\n target = \":cmake_data\",\n)\n" + } + }, + "meson_src": { + "bzlFile": "@@bazel_tools//tools/build_defs/repo:http.bzl", + "ruleClassName": "http_archive", + "attributes": { + "name": "rules_foreign_cc~0.10.1~tools~meson_src", + "build_file_content": "exports_files([\"meson.py\"])\n\nfilegroup(\n name = \"runtime\",\n srcs = glob([\"mesonbuild/**\"]),\n visibility = [\"//visibility:public\"],\n)\n", + "strip_prefix": "meson-1.1.1", + "url": "https://github.com/mesonbuild/meson/releases/download/1.1.1/meson-1.1.1.tar.gz" + } + }, + "rules_foreign_cc_framework_toolchain_freebsd": { + "bzlFile": "@@rules_foreign_cc~0.10.1//foreign_cc/private/framework:toolchain.bzl", + "ruleClassName": "framework_toolchain_repository", + "attributes": { + "name": "rules_foreign_cc~0.10.1~tools~rules_foreign_cc_framework_toolchain_freebsd", + "commands_src": "@rules_foreign_cc//foreign_cc/private/framework/toolchains:freebsd_commands.bzl", + "exec_compatible_with": [ + "@platforms//os:freebsd" + ] + } + }, + "rules_foreign_cc_framework_toolchain_linux": { + "bzlFile": "@@rules_foreign_cc~0.10.1//foreign_cc/private/framework:toolchain.bzl", + "ruleClassName": "framework_toolchain_repository", + "attributes": { + "name": "rules_foreign_cc~0.10.1~tools~rules_foreign_cc_framework_toolchain_linux", + "commands_src": "@rules_foreign_cc//foreign_cc/private/framework/toolchains:linux_commands.bzl", + "exec_compatible_with": [ + "@platforms//os:linux" + ] + } + }, + "rules_python": { + "bzlFile": "@@bazel_tools//tools/build_defs/repo:http.bzl", + "ruleClassName": "http_archive", + "attributes": { + "name": "rules_foreign_cc~0.10.1~tools~rules_python", + "sha256": "84aec9e21cc56fbc7f1335035a71c850d1b9b5cc6ff497306f84cced9a769841", + "strip_prefix": "rules_python-0.23.1", + "url": "https://github.com/bazelbuild/rules_python/archive/refs/tags/0.23.1.tar.gz" + } + }, + "pkgconfig_src": { + "bzlFile": "@@bazel_tools//tools/build_defs/repo:http.bzl", + "ruleClassName": "http_archive", + "attributes": { + "name": "rules_foreign_cc~0.10.1~tools~pkgconfig_src", + "build_file_content": "filegroup(\n name = \"all_srcs\",\n srcs = glob([\"**\"]),\n visibility = [\"//visibility:public\"],\n)\n", + "sha256": "6fc69c01688c9458a57eb9a1664c9aba372ccda420a02bf4429fe610e7e7d591", + "strip_prefix": "pkg-config-0.29.2", + "patches": [ + "@@rules_foreign_cc~0.10.1//toolchains:pkgconfig-detectenv.patch", + "@@rules_foreign_cc~0.10.1//toolchains:pkgconfig-makefile-vc.patch" + ], + "urls": [ + "https://pkgconfig.freedesktop.org/releases/pkg-config-0.29.2.tar.gz" + ] + } + }, + "ninja_build_src": { + "bzlFile": "@@bazel_tools//tools/build_defs/repo:http.bzl", + "ruleClassName": "http_archive", + "attributes": { + "name": "rules_foreign_cc~0.10.1~tools~ninja_build_src", + "build_file_content": "filegroup(\n name = \"all_srcs\",\n srcs = glob([\"**\"]),\n visibility = [\"//visibility:public\"],\n)\n", + "sha256": "31747ae633213f1eda3842686f83c2aa1412e0f5691d1c14dbbcc67fe7400cea", + "strip_prefix": "ninja-1.11.1", + "urls": [ + "https://github.com/ninja-build/ninja/archive/v1.11.1.tar.gz" + ] + } + }, + "ninja_1.11.1_linux": { + "bzlFile": "@@bazel_tools//tools/build_defs/repo:http.bzl", + "ruleClassName": "http_archive", + "attributes": { + "name": "rules_foreign_cc~0.10.1~tools~ninja_1.11.1_linux", + "urls": [ + "https://github.com/ninja-build/ninja/releases/download/v1.11.1/ninja-linux.zip" + ], + "sha256": "b901ba96e486dce377f9a070ed4ef3f79deb45f4ffe2938f8e7ddc69cfb3df77", + "strip_prefix": "", + "build_file_content": "load(\"@rules_foreign_cc//toolchains/native_tools:native_tools_toolchain.bzl\", \"native_tool_toolchain\")\n\npackage(default_visibility = [\"//visibility:public\"])\n\nfilegroup(\n name = \"ninja_bin\",\n srcs = [\"ninja\"],\n)\n\nnative_tool_toolchain(\n name = \"ninja_tool\",\n env = {\"NINJA\": \"$(execpath :ninja_bin)\"},\n path = \"$(execpath :ninja_bin)\",\n target = \":ninja_bin\",\n)\n" + } + }, + "glib_src": { + "bzlFile": "@@bazel_tools//tools/build_defs/repo:http.bzl", + "ruleClassName": "http_archive", + "attributes": { + "name": "rules_foreign_cc~0.10.1~tools~glib_src", + "build_file_content": "\ncc_import(\n name = \"msvc_hdr\",\n hdrs = [\"msvc_recommended_pragmas.h\"],\n visibility = [\"//visibility:public\"],\n)\n ", + "sha256": "bc96f63112823b7d6c9f06572d2ad626ddac7eb452c04d762592197f6e07898e", + "strip_prefix": "glib-2.26.1", + "urls": [ + "https://download.gnome.org/sources/glib/2.26/glib-2.26.1.tar.gz" + ] + } + }, + "cmake-3.23.2-windows-x86_64": { + "bzlFile": "@@bazel_tools//tools/build_defs/repo:http.bzl", + "ruleClassName": "http_archive", + "attributes": { + "name": "rules_foreign_cc~0.10.1~tools~cmake-3.23.2-windows-x86_64", + "urls": [ + "https://github.com/Kitware/CMake/releases/download/v3.23.2/cmake-3.23.2-windows-x86_64.zip" + ], + "sha256": "2329387f3166b84c25091c86389fb891193967740c9bcf01e7f6d3306f7ffda0", + "strip_prefix": "cmake-3.23.2-windows-x86_64", + "build_file_content": "load(\"@rules_foreign_cc//toolchains/native_tools:native_tools_toolchain.bzl\", \"native_tool_toolchain\")\n\npackage(default_visibility = [\"//visibility:public\"])\n\nfilegroup(\n name = \"cmake_data\",\n srcs = glob(\n [\n \"**\",\n ],\n exclude = [\n \"WORKSPACE\",\n \"WORKSPACE.bazel\",\n \"BUILD\",\n \"BUILD.bazel\",\n ],\n ),\n)\n\nnative_tool_toolchain(\n name = \"cmake_tool\",\n path = \"bin/cmake.exe\",\n target = \":cmake_data\",\n)\n" + } + }, + "glib_runtime": { + "bzlFile": "@@bazel_tools//tools/build_defs/repo:http.bzl", + "ruleClassName": "http_archive", + "attributes": { + "name": "rules_foreign_cc~0.10.1~tools~glib_runtime", + "build_file_content": "\nexports_files(\n [\n \"bin/libgio-2.0-0.dll\",\n \"bin/libglib-2.0-0.dll\",\n \"bin/libgmodule-2.0-0.dll\",\n \"bin/libgobject-2.0-0.dll\",\n \"bin/libgthread-2.0-0.dll\",\n ],\n visibility = [\"//visibility:public\"],\n)\n ", + "sha256": "88d857087e86f16a9be651ee7021880b3f7ba050d34a1ed9f06113b8799cb973", + "urls": [ + "https://download.gnome.org/binaries/win64/glib/2.26/glib_2.26.1-1_win64.zip" + ] + } + }, + "rules_foreign_cc_framework_toolchains": { + "bzlFile": "@@rules_foreign_cc~0.10.1//foreign_cc/private/framework:toolchain.bzl", + "ruleClassName": "framework_toolchain_repository_hub", + "attributes": { + "name": "rules_foreign_cc~0.10.1~tools~rules_foreign_cc_framework_toolchains" + } + }, + "glib_dev": { + "bzlFile": "@@bazel_tools//tools/build_defs/repo:http.bzl", + "ruleClassName": "http_archive", + "attributes": { + "name": "rules_foreign_cc~0.10.1~tools~glib_dev", + "build_file_content": "\nload(\"@rules_cc//cc:defs.bzl\", \"cc_library\")\n\ncc_import(\n name = \"glib_dev\",\n hdrs = glob([\"include/**\"]),\n shared_library = \"@glib_runtime//:bin/libglib-2.0-0.dll\",\n visibility = [\"//visibility:public\"],\n)\n ", + "sha256": "bdf18506df304d38be98a4b3f18055b8b8cca81beabecad0eece6ce95319c369", + "urls": [ + "https://download.gnome.org/binaries/win64/glib/2.26/glib-dev_2.26.1-1_win64.zip" + ] + } + }, + "ninja_1.11.1_mac": { + "bzlFile": "@@bazel_tools//tools/build_defs/repo:http.bzl", + "ruleClassName": "http_archive", + "attributes": { + "name": "rules_foreign_cc~0.10.1~tools~ninja_1.11.1_mac", + "urls": [ + "https://github.com/ninja-build/ninja/releases/download/v1.11.1/ninja-mac.zip" + ], + "sha256": "482ecb23c59ae3d4f158029112de172dd96bb0e97549c4b1ca32d8fad11f873e", + "strip_prefix": "", + "build_file_content": "load(\"@rules_foreign_cc//toolchains/native_tools:native_tools_toolchain.bzl\", \"native_tool_toolchain\")\n\npackage(default_visibility = [\"//visibility:public\"])\n\nfilegroup(\n name = \"ninja_bin\",\n srcs = [\"ninja\"],\n)\n\nnative_tool_toolchain(\n name = \"ninja_tool\",\n env = {\"NINJA\": \"$(execpath :ninja_bin)\"},\n path = \"$(execpath :ninja_bin)\",\n target = \":ninja_bin\",\n)\n" + } + }, + "cmake_3.23.2_toolchains": { + "bzlFile": "@@rules_foreign_cc~0.10.1//toolchains:prebuilt_toolchains_repository.bzl", + "ruleClassName": "prebuilt_toolchains_repository", + "attributes": { + "name": "rules_foreign_cc~0.10.1~tools~cmake_3.23.2_toolchains", + "repos": { + "cmake-3.23.2-linux-aarch64": [ + "@platforms//cpu:aarch64", + "@platforms//os:linux" + ], + "cmake-3.23.2-linux-x86_64": [ + "@platforms//cpu:x86_64", + "@platforms//os:linux" + ], + "cmake-3.23.2-macos-universal": [ + "@platforms//os:macos" + ], + "cmake-3.23.2-windows-i386": [ + "@platforms//cpu:x86_32", + "@platforms//os:windows" + ], + "cmake-3.23.2-windows-x86_64": [ + "@platforms//cpu:x86_64", + "@platforms//os:windows" + ] + }, + "tool": "cmake" + } + }, + "ninja_1.11.1_toolchains": { + "bzlFile": "@@rules_foreign_cc~0.10.1//toolchains:prebuilt_toolchains_repository.bzl", + "ruleClassName": "prebuilt_toolchains_repository", + "attributes": { + "name": "rules_foreign_cc~0.10.1~tools~ninja_1.11.1_toolchains", + "repos": { + "ninja_1.11.1_linux": [ + "@platforms//cpu:x86_64", + "@platforms//os:linux" + ], + "ninja_1.11.1_mac": [ + "@platforms//cpu:x86_64", + "@platforms//os:macos" + ], + "ninja_1.11.1_win": [ + "@platforms//cpu:x86_64", + "@platforms//os:windows" + ] + }, + "tool": "ninja" + } + }, + "ninja_1.11.1_win": { + "bzlFile": "@@bazel_tools//tools/build_defs/repo:http.bzl", + "ruleClassName": "http_archive", + "attributes": { + "name": "rules_foreign_cc~0.10.1~tools~ninja_1.11.1_win", + "urls": [ + "https://github.com/ninja-build/ninja/releases/download/v1.11.1/ninja-win.zip" + ], + "sha256": "524b344a1a9a55005eaf868d991e090ab8ce07fa109f1820d40e74642e289abc", + "strip_prefix": "", + "build_file_content": "load(\"@rules_foreign_cc//toolchains/native_tools:native_tools_toolchain.bzl\", \"native_tool_toolchain\")\n\npackage(default_visibility = [\"//visibility:public\"])\n\nfilegroup(\n name = \"ninja_bin\",\n srcs = [\"ninja.exe\"],\n)\n\nnative_tool_toolchain(\n name = \"ninja_tool\",\n env = {\"NINJA\": \"$(execpath :ninja_bin)\"},\n path = \"$(execpath :ninja_bin)\",\n target = \":ninja_bin\",\n)\n" + } + }, + "cmake-3.23.2-windows-i386": { + "bzlFile": "@@bazel_tools//tools/build_defs/repo:http.bzl", + "ruleClassName": "http_archive", + "attributes": { + "name": "rules_foreign_cc~0.10.1~tools~cmake-3.23.2-windows-i386", + "urls": [ + "https://github.com/Kitware/CMake/releases/download/v3.23.2/cmake-3.23.2-windows-i386.zip" + ], + "sha256": "6a4fcd6a2315b93cb23c93507efccacc30c449c2bf98f14d6032bb226c582e07", + "strip_prefix": "cmake-3.23.2-windows-i386", + "build_file_content": "load(\"@rules_foreign_cc//toolchains/native_tools:native_tools_toolchain.bzl\", \"native_tool_toolchain\")\n\npackage(default_visibility = [\"//visibility:public\"])\n\nfilegroup(\n name = \"cmake_data\",\n srcs = glob(\n [\n \"**\",\n ],\n exclude = [\n \"WORKSPACE\",\n \"WORKSPACE.bazel\",\n \"BUILD\",\n \"BUILD.bazel\",\n ],\n ),\n)\n\nnative_tool_toolchain(\n name = \"cmake_tool\",\n path = \"bin/cmake.exe\",\n target = \":cmake_data\",\n)\n" + } + }, + "cmake-3.23.2-linux-x86_64": { + "bzlFile": "@@bazel_tools//tools/build_defs/repo:http.bzl", + "ruleClassName": "http_archive", + "attributes": { + "name": "rules_foreign_cc~0.10.1~tools~cmake-3.23.2-linux-x86_64", + "urls": [ + "https://github.com/Kitware/CMake/releases/download/v3.23.2/cmake-3.23.2-linux-x86_64.tar.gz" + ], + "sha256": "aaced6f745b86ce853661a595bdac6c5314a60f8181b6912a0a4920acfa32708", + "strip_prefix": "cmake-3.23.2-linux-x86_64", + "build_file_content": "load(\"@rules_foreign_cc//toolchains/native_tools:native_tools_toolchain.bzl\", \"native_tool_toolchain\")\n\npackage(default_visibility = [\"//visibility:public\"])\n\nfilegroup(\n name = \"cmake_data\",\n srcs = glob(\n [\n \"**\",\n ],\n exclude = [\n \"WORKSPACE\",\n \"WORKSPACE.bazel\",\n \"BUILD\",\n \"BUILD.bazel\",\n ],\n ),\n)\n\nnative_tool_toolchain(\n name = \"cmake_tool\",\n path = \"bin/cmake\",\n target = \":cmake_data\",\n)\n" + } + }, + "rules_foreign_cc_framework_toolchain_windows": { + "bzlFile": "@@rules_foreign_cc~0.10.1//foreign_cc/private/framework:toolchain.bzl", + "ruleClassName": "framework_toolchain_repository", + "attributes": { + "name": "rules_foreign_cc~0.10.1~tools~rules_foreign_cc_framework_toolchain_windows", + "commands_src": "@rules_foreign_cc//foreign_cc/private/framework/toolchains:windows_commands.bzl", + "exec_compatible_with": [ + "@platforms//os:windows" + ] + } + } + }, + "recordedRepoMappingEntries": [ + [ + "rules_foreign_cc~0.10.1", + "bazel_tools", + "bazel_tools" + ], + [ + "rules_foreign_cc~0.10.1", + "rules_foreign_cc", + "rules_foreign_cc~0.10.1" + ] + ] + } + }, "@@rules_java~7.1.0//java:extensions.bzl%toolchains": { "general": { "bzlTransitiveDigest": "D02GmifxnV/IhYgspsJMDZ/aE8HxAjXgek5gi6FSto4=", diff --git a/testsuite/dejagnu.BUILD b/testsuite/dejagnu.BUILD new file mode 100644 index 0000000..2eca11c --- /dev/null +++ b/testsuite/dejagnu.BUILD @@ -0,0 +1,23 @@ +load("@rules_foreign_cc//foreign_cc:defs.bzl", "configure_make", "runnable_binary") + +package(default_visibility = ["//visibility:public"]) + +filegroup( + name = "all_srcs", + srcs = glob(["**"]), +) + +configure_make( + name = "dejagnu_configure", + lib_source = ":all_srcs", + out_binaries = ["runtest"], + out_data_dirs = [ + "share", + ], + visibility = ["//visibility:public"], +) + +# filegroup(name = "dejagnu_runtest", +# srcs = [":dejagnu_configure"], + +# output_group = "runtest") diff --git a/testsuite/dejagnu.bzl b/testsuite/dejagnu.bzl index 39be14f..5f5e5bd 100644 --- a/testsuite/dejagnu.bzl +++ b/testsuite/dejagnu.bzl @@ -11,12 +11,19 @@ def _dejagnu_test_impl(ctx): substitutions = { "{tool}": ctx.label.name, "{srcdir}": ctx.files.srcs[0].dirname, + "{runtest}": ctx.executable._runtest.path, + "{libdir}": ctx.executable._runtest.dirname + "/dejagnu_configure/share/dejagnu", }, is_executable = True, ) # gather runfiles - runfiles = ctx.runfiles(files = ctx.files.srcs + ctx.files.data + ctx.files.tool_exec + ctx.files.deps) + runfiles = ctx.runfiles(files = ctx.files._runtest + + ctx.files._runtest_libs + + ctx.files.srcs + + ctx.files.data + + ctx.files.tool_exec + + ctx.files.deps) test_env = {} if ctx.configuration.coverage_enabled: @@ -75,6 +82,15 @@ dejagnu_test = rule( doc = "Binary target under test.", cfg = "exec", ), + "_runtest": attr.label( + default = "@org_gnu_dejagnu//:runtest", + executable = True, + allow_single_file = True, + cfg = "exec", + ), + "_runtest_libs": attr.label( + default = "@org_gnu_dejagnu//:dejagnu_configure", + ), "_runtest_template": attr.label( default = ":dejagnu_runtest_wrapper.tpl", allow_single_file = True, diff --git a/testsuite/dejagnu_runtest_wrapper.tpl b/testsuite/dejagnu_runtest_wrapper.tpl index dbf8f26..164f826 100644 --- a/testsuite/dejagnu_runtest_wrapper.tpl +++ b/testsuite/dejagnu_runtest_wrapper.tpl @@ -2,14 +2,9 @@ set -x -if ! [ -x /bin/runtest ]; then - echo "/bin/runtest not found, install dejagnu" | tee -a $TEST_INFRASTRUCTURE_FAILURE_FILE - exit 127 -fi - echo -n "pwd: " pwd -/bin/runtest --version +{runtest} --version ls -laLR @@ -27,4 +22,8 @@ set srcdir {srcdir} set objdir `pwd` EOF -/bin/runtest --xml --status --all --debug -v -v --tool {tool} --srcdir {srcdir} --outdir $TEST_UNDECLARED_OUTPUTS_DIR +cat site.exp + +export DEJAGNULIBS="{libdir}" + +{runtest} --global_init site.exp --xml --status --all --debug -v -v --tool {tool} --srcdir {srcdir} --outdir $TEST_UNDECLARED_OUTPUTS_DIR From 37bfb81c8bf4f3734012f19edbf30906b83b5d2f Mon Sep 17 00:00:00 2001 From: Jamie Wilkinson Date: Wed, 14 Feb 2024 11:56:05 +1100 Subject: [PATCH 11/15] ci: Add `CODECOV_TOKEN` to coverage action. --- .github/workflows/ci.yml | 4 ++++ 1 file changed, 4 insertions(+) diff --git a/.github/workflows/ci.yml b/.github/workflows/ci.yml index dbda226..762370e 100644 --- a/.github/workflows/ci.yml +++ b/.github/workflows/ci.yml @@ -41,6 +41,8 @@ jobs: - uses: codecov/codecov-action@v4 with: file: coverage.info + env: + CODECOV_TOKEN: ${{ secrets.CODECOV_TOKEN }} - name: distcheck run: scons distcheck env: @@ -83,3 +85,5 @@ jobs: - uses: codecov/codecov-action@v4 with: file: bazel-out/_coverage/_coverage_report.dat + env: + CODECOV_TOKEN: ${{ secrets.CODECOV_TOKEN }} From 15b1f35dc4b55252991c89add05591c6690837de Mon Sep 17 00:00:00 2001 From: Jamie Wilkinson Date: Wed, 14 Feb 2024 12:21:43 +1100 Subject: [PATCH 12/15] ci: Copy out coverage report before uploading. --- .github/workflows/ci.yml | 8 ++++---- 1 file changed, 4 insertions(+), 4 deletions(-) diff --git a/.github/workflows/ci.yml b/.github/workflows/ci.yml index 762370e..c12f53a 100644 --- a/.github/workflows/ci.yml +++ b/.github/workflows/ci.yml @@ -74,9 +74,9 @@ jobs: run: bazel coverage --explain=explain.out -s --test_env=VERBOSE_COVERAGE=1 --test_env=DISPLAY_LCOV_CMD=1 --test_output=all --combined_report=lcov --instrument_test_targets --nocache_test_results --instrumentation_filter="^//" //... - name: copy test results into workspace if: always() - run: cp -Lpr $(bazel info bazel-testlogs)/ test-results - - run: cat explain.out - if: always() + run: | + cp -Lpr $(bazel info bazel-testlogs)/ test-results + cp -Lpr $(bazel info output_path)/_coverage/_coverage_report.dat coverage_report.dat - uses: EnricoMi/publish-unit-test-result-action@v2 if: always() with: @@ -84,6 +84,6 @@ jobs: test-results/**/test.xml - uses: codecov/codecov-action@v4 with: - file: bazel-out/_coverage/_coverage_report.dat + file: coverage_report.dat env: CODECOV_TOKEN: ${{ secrets.CODECOV_TOKEN }} From 71056b1143baf1ae71c8afdda0e5193b72a63845 Mon Sep 17 00:00:00 2001 From: Jamie Wilkinson Date: Wed, 14 Feb 2024 13:06:55 +1100 Subject: [PATCH 13/15] build: Fix dependencies for the `filtergen` test suite. --- examples/BUILD | 3 +++ testsuite/filtergen/BUILD | 6 ++---- 2 files changed, 5 insertions(+), 4 deletions(-) create mode 100644 examples/BUILD diff --git a/examples/BUILD b/examples/BUILD new file mode 100644 index 0000000..af77396 --- /dev/null +++ b/examples/BUILD @@ -0,0 +1,3 @@ +filegroup(name = "examples", + srcs = glob(["*.filter"]), + visibility=["//testsuite/filtergen:__pkg__"]) diff --git a/testsuite/filtergen/BUILD b/testsuite/filtergen/BUILD index 893a863..36d20bb 100644 --- a/testsuite/filtergen/BUILD +++ b/testsuite/filtergen/BUILD @@ -5,11 +5,9 @@ dejagnu_test( srcs = glob(["**/*.exp"]), data = glob( [ - "**/*.in", - "include*.d/**", + "*.filter", ], - exclude_directories = 0, - ), + ) + ["//examples"], tool_exec = "//:filtergen", deps = ["//testsuite/lib:filtergen-dg"], ) From c537655d377268249a46ab808a7c79866ba2d014 Mon Sep 17 00:00:00 2001 From: Jamie Wilkinson Date: Wed, 14 Feb 2024 13:08:31 +1100 Subject: [PATCH 14/15] ci: Set the github cache key to hash on `WORKSPACE` and `MODULE.bazel`. --- .github/workflows/ci.yml | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/.github/workflows/ci.yml b/.github/workflows/ci.yml index c12f53a..fd9f2f8 100644 --- a/.github/workflows/ci.yml +++ b/.github/workflows/ci.yml @@ -62,7 +62,7 @@ jobs: uses: actions/cache@v4 with: path: "~/.cache/bazel" - key: bazel + key: bazel-${{ hashFiles('WORKSPACE', 'MODULE.bazel') }} - name: install dependencies run: | sudo apt-get install -y \ From 85126bc620d65dc1f952d1456f95e10d4b2cb7fd Mon Sep 17 00:00:00 2001 From: Jamie Wilkinson Date: Wed, 14 Feb 2024 13:11:15 +1100 Subject: [PATCH 15/15] ci: Change dependencies. We need `expect` for dejagnu, but the latter is now being fetched by bazel directly. --- .github/workflows/ci.yml | 5 +---- 1 file changed, 1 insertion(+), 4 deletions(-) diff --git a/.github/workflows/ci.yml b/.github/workflows/ci.yml index fd9f2f8..a45ec0e 100644 --- a/.github/workflows/ci.yml +++ b/.github/workflows/ci.yml @@ -66,10 +66,7 @@ jobs: - name: install dependencies run: | sudo apt-get install -y \ - dejagnu \ - gcc \ - llvm - dpkg -S llvm-cov + expect - name: bazel test run: bazel coverage --explain=explain.out -s --test_env=VERBOSE_COVERAGE=1 --test_env=DISPLAY_LCOV_CMD=1 --test_output=all --combined_report=lcov --instrument_test_targets --nocache_test_results --instrumentation_filter="^//" //... - name: copy test results into workspace