From 7afbde15b4631f333fe359e7fd0a775851b8c8e0 Mon Sep 17 00:00:00 2001 From: Adrian RC Date: Fri, 1 Mar 2024 03:11:24 +0000 Subject: [PATCH 1/2] Bump webtesting rules and uses versioned browser for tests. The bazel web testing rules package provides versioned browsers for testing. The one from 0.3.3 was picked somewhat arbitrarily as it seems old enough to provide enough compatibility coverage, without being as old as the version we were using before. This change might produce some scuba tests to be updated. Alternatively, we can accomplish the same result we had before with our custom browser, but some of the rules that we use for this purpose have been removed/changed. In that case, we'd need to use the `platform_archive` rule, like they do [here] (https://github.com/bazelbuild/rules_webtesting/blob/9e9361ba887a3b687f537c02409b690b62fecdfe/web/versioned/browsers-0.3.3.bzl#L134), and then define a browser similarly like they do [here] (https://github.com/bazelbuild/rules_webtesting/blob/9e9361ba887a3b687f537c02409b690b62fecdfe/browsers/BUILD.bazel#L50), which in turn declares a dependency on [this file] (https://github.com/bazelbuild/rules_webtesting/blob/9e9361ba887a3b687f537c02409b690b62fecdfe/third_party/chromium/BUILD.bazel), which is the one that references the output from the `platform_archive` rule. --- WORKSPACE | 7 +-- tensorboard/functionaltests/BUILD | 2 +- tensorboard/functionaltests/browsers/BUILD | 32 -------------- .../functionaltests/browsers/chromium.json | 17 -------- .../functionaltests/browsers/disabled.json | 1 - third_party/chromium/BUILD | 38 ---------------- third_party/workspace.bzl | 43 ++----------------- 7 files changed, 8 insertions(+), 132 deletions(-) delete mode 100644 tensorboard/functionaltests/browsers/BUILD delete mode 100644 tensorboard/functionaltests/browsers/chromium.json delete mode 100644 tensorboard/functionaltests/browsers/disabled.json delete mode 100644 third_party/chromium/BUILD diff --git a/WORKSPACE b/WORKSPACE index f5c97007b7..c65bbccdaf 100644 --- a/WORKSPACE +++ b/WORKSPACE @@ -26,10 +26,11 @@ versions.check( http_archive( name = "io_bazel_rules_webtesting", - sha256 = "9bb461d5ef08e850025480bab185fd269242d4e533bca75bfb748001ceb343c3", + sha256 = "41d500a97ad9621dcf92fcb0cd77916e517388b196e5c3f0e63c7753e983b2bb", + strip_prefix = "rules_webtesting-4d7ec75d1cbb289f977b41638fc8b630bdf22bee", urls = [ - "http://mirror.tensorflow.org/github.com/bazelbuild/rules_webtesting/releases/download/0.3.3/rules_webtesting.tar.gz", - "https://github.com/bazelbuild/rules_webtesting/releases/download/0.3.3/rules_webtesting.tar.gz", + "http://mirror.tensorflow.org/github.com/bazelbuild/rules_webtesting/archive/4d7ec75d1cbb289f977b41638fc8b630bdf22bee.tar.gz", + "https://github.com/bazelbuild/rules_webtesting/archive/4d7ec75d1cbb289f977b41638fc8b630bdf22bee.tar.gz", ], ) diff --git a/tensorboard/functionaltests/BUILD b/tensorboard/functionaltests/BUILD index f4ad579cb6..721d4e25f8 100644 --- a/tensorboard/functionaltests/BUILD +++ b/tensorboard/functionaltests/BUILD @@ -7,7 +7,7 @@ licenses(["notice"]) py_web_test_suite( name = "core_test", srcs = ["core_test.py"], - browsers = ["//tensorboard/functionaltests/browsers:chromium"], + browsers = ["@io_bazel_rules_webtesting//browsers:chromium-local"], data = [ "//tensorboard", ], diff --git a/tensorboard/functionaltests/browsers/BUILD b/tensorboard/functionaltests/browsers/BUILD deleted file mode 100644 index ee8d4e4ab9..0000000000 --- a/tensorboard/functionaltests/browsers/BUILD +++ /dev/null @@ -1,32 +0,0 @@ -load("@io_bazel_rules_webtesting//web:web.bzl", "browser") - -package(default_visibility = ["//tensorboard:internal"]) - -licenses(["notice"]) - -config_setting( - name = "mac", - values = {"cpu": "darwin"}, - visibility = ["//:__subpackages__"], -) - -config_setting( - name = "linux", - values = {"cpu": "k8"}, - visibility = ["//:__subpackages__"], -) - -browser( - name = "chromium", - environment = select({ - ":linux": None, - ":mac": {"DISABLE_X_DISPLAY": "1"}, - }), - metadata = "chromium.json", - visibility = ["//visibility:public"], - deps = [ - "//third_party/chromium", - "//third_party/chromium:chromedriver", - "@io_bazel_rules_webtesting//go/wsl", - ], -) diff --git a/tensorboard/functionaltests/browsers/chromium.json b/tensorboard/functionaltests/browsers/chromium.json deleted file mode 100644 index 0576a642e4..0000000000 --- a/tensorboard/functionaltests/browsers/chromium.json +++ /dev/null @@ -1,17 +0,0 @@ -{ - "environment": "local", - "capabilities": { - "browserName": "chrome", - "goog:chromeOptions": { - "args": ["--headless", "--no-sandbox"], - "binary": "%FILE:CHROMIUM%" - }, - "google:wslConfig": { - "binary": "%FILE:CHROMEDRIVER%", - "port":"%WSLPORT:WSL%", - "args": ["--port=%WSLPORT:WSL%"], - "status": true, - "shutdown": true - } - } -} diff --git a/tensorboard/functionaltests/browsers/disabled.json b/tensorboard/functionaltests/browsers/disabled.json deleted file mode 100644 index 0967ef424b..0000000000 --- a/tensorboard/functionaltests/browsers/disabled.json +++ /dev/null @@ -1 +0,0 @@ -{} diff --git a/third_party/chromium/BUILD b/third_party/chromium/BUILD deleted file mode 100644 index 60beaa021c..0000000000 --- a/third_party/chromium/BUILD +++ /dev/null @@ -1,38 +0,0 @@ -load("@io_bazel_rules_webtesting//web:web.bzl", "web_test_archive") - -package(default_visibility = ["//tensorboard:internal"]) - -licenses(["notice"]) - -config_setting( - name = "mac", - values = {"cpu": "darwin"}, -) - -config_setting( - name = "linux", - values = {"cpu": "k8"}, -) - -web_test_archive( - name = "chromium", - archive = "@org_chromium_chromium//file", - extract = "build", - named_files = select({ - ":linux": { - "CHROMIUM": "chrome-linux/chrome", - }, - ":mac": { - "CHROMIUM": "chrome-mac/Chromium.app/Contents/MacOS/chromium", - }, - }), - visibility = ["//tensorboard/functionaltests/browsers:__pkg__"], -) - -web_test_archive( - name = "chromedriver", - archive = "@org_chromium_chromedriver//file", - extract = "build", - named_files = {"CHROMEDRIVER": "chromedriver"}, - visibility = ["//tensorboard/functionaltests/browsers:__pkg__"], -) diff --git a/third_party/workspace.bzl b/third_party/workspace.bzl index 1b3b125853..da2648ebe0 100644 --- a/third_party/workspace.bzl +++ b/third_party/workspace.bzl @@ -17,7 +17,7 @@ TensorBoard external dependencies that can be loaded in WORKSPACE files. """ load("@bazel_tools//tools/build_defs/repo:java.bzl", "java_import_external") -load("@io_bazel_rules_webtesting//web/internal:platform_http_file.bzl", "platform_http_file") # buildifier: disable=bzl-visibility +load("@io_bazel_rules_webtesting//web/versioned:browsers-0.3.3.bzl", "browser_repositories") load("//third_party:fonts.bzl", "tensorboard_fonts_workspace") load("//third_party:python.bzl", "tensorboard_python_workspace") load("//third_party:js.bzl", "tensorboard_js_workspace") @@ -46,45 +46,8 @@ def tensorboard_workspace(name = ""): actual = "@com_github_grpc_grpc//src/compiler:grpc_python_plugin", ) - platform_http_file( - name = "org_chromium_chromium", # pinned to Chromium 84.0.4147.0 - licenses = ["notice"], # BSD 3-clause (maybe more?) - amd64_sha256 = - "49b25bf32b797558eb7957ac7c60e065433bdef278f669291f71edd329505e27", - amd64_urls = [ - "https://commondatastorage.googleapis.com/chromium-browser-snapshots/Linux_x64/768959/chrome-linux.zip", - ], - macos_sha256 = - "f0c7dc5c26061e2f179d1cb9819cb786d2c37cca9f53155e57ac2b6ab60c5cbc", - macos_urls = [ - "https://commondatastorage.googleapis.com/chromium-browser-snapshots/Mac/768938/chrome-mac.zip", - ], - windows_sha256 = - "f441a079046a35afc249a95d29356f33945c0a60b59236b9cf6db532c69dba6f", - windows_urls = [ - "https://commondatastorage.googleapis.com/chromium-browser-snapshots/Win_x64/768952/chrome-win.zip", - ], - ) - - platform_http_file( - name = "org_chromium_chromedriver", - licenses = ["reciprocal"], # BSD 3-clause, ICU, MPL 1.1, libpng (BSD/MIT-like), Academic Free License v. 2.0, BSD 2-clause, MIT - amd64_sha256 = - "71eafe087900dbca4bc0b354a1d172df48b31a4a502e21f7c7b156d7e76c95c7", - amd64_urls = [ - "https://chromedriver.storage.googleapis.com/2.41/chromedriver_linux64.zip", - ], - macos_sha256 = - "fd32a27148f44796a55f5ce3397015c89ebd9f600d9dda2bcaca54575e2497ae", - macos_urls = [ - "https://chromedriver.storage.googleapis.com/2.41/chromedriver_mac64.zip", - ], - windows_sha256 = - "a8fa028acebef7b931ef9cb093f02865f9f7495e49351f556e919f7be77f072e", - windows_urls = [ - "https://chromedriver.storage.googleapis.com/2.38/chromedriver_win32.zip", - ], - ) + # Use the versioned browsers provided by the web testing rules package. + browser_repositories(chromium=True) java_import_external( name = "org_apache_commons_lang3", From dad6949256581e9004b3746c05a116e06353f7ca Mon Sep 17 00:00:00 2001 From: Adrian RC Date: Mon, 4 Mar 2024 22:53:30 +0000 Subject: [PATCH 2/2] Updates rules_webtesting reference to point to latest release. Also fixes formatting issues. --- WORKSPACE | 10 ++++++---- third_party/workspace.bzl | 4 ++-- 2 files changed, 8 insertions(+), 6 deletions(-) diff --git a/WORKSPACE b/WORKSPACE index c65bbccdaf..71e7386c14 100644 --- a/WORKSPACE +++ b/WORKSPACE @@ -26,11 +26,13 @@ versions.check( http_archive( name = "io_bazel_rules_webtesting", - sha256 = "41d500a97ad9621dcf92fcb0cd77916e517388b196e5c3f0e63c7753e983b2bb", - strip_prefix = "rules_webtesting-4d7ec75d1cbb289f977b41638fc8b630bdf22bee", + # sha256 = "41d500a97ad9621dcf92fcb0cd77916e517388b196e5c3f0e63c7753e983b2bb", + # strip_prefix = "rules_webtesting-4d7ec75d1cbb289f977b41638fc8b630bdf22bee", + sha256 = "e9abb7658b6a129740c0b3ef6f5a2370864e102a5ba5ffca2cea565829ed825a", urls = [ - "http://mirror.tensorflow.org/github.com/bazelbuild/rules_webtesting/archive/4d7ec75d1cbb289f977b41638fc8b630bdf22bee.tar.gz", - "https://github.com/bazelbuild/rules_webtesting/archive/4d7ec75d1cbb289f977b41638fc8b630bdf22bee.tar.gz", + # "http://mirror.tensorflow.org/github.com/bazelbuild/rules_webtesting/archive/4d7ec75d1cbb289f977b41638fc8b630bdf22bee.tar.gz", + # "https://github.com/bazelbuild/rules_webtesting/archive/4d7ec75d1cbb289f977b41638fc8b630bdf22bee.tar.gz", + "https://github.com/bazelbuild/rules_webtesting/releases/download/0.3.5/rules_webtesting.tar.gz", ], ) diff --git a/third_party/workspace.bzl b/third_party/workspace.bzl index da2648ebe0..d1ac75967c 100644 --- a/third_party/workspace.bzl +++ b/third_party/workspace.bzl @@ -19,8 +19,8 @@ TensorBoard external dependencies that can be loaded in WORKSPACE files. load("@bazel_tools//tools/build_defs/repo:java.bzl", "java_import_external") load("@io_bazel_rules_webtesting//web/versioned:browsers-0.3.3.bzl", "browser_repositories") load("//third_party:fonts.bzl", "tensorboard_fonts_workspace") -load("//third_party:python.bzl", "tensorboard_python_workspace") load("//third_party:js.bzl", "tensorboard_js_workspace") +load("//third_party:python.bzl", "tensorboard_python_workspace") load("//third_party:rust.bzl", "tensorboard_rust_workspace") def tensorboard_workspace(name = ""): @@ -47,7 +47,7 @@ def tensorboard_workspace(name = ""): ) # Use the versioned browsers provided by the web testing rules package. - browser_repositories(chromium=True) + browser_repositories(chromium = True) java_import_external( name = "org_apache_commons_lang3",