From b85d75437b7c5b4575ff4469d0c779e2d3a03d1f Mon Sep 17 00:00:00 2001 From: Adrian RC Date: Tue, 5 Mar 2024 00:57:23 +0000 Subject: [PATCH 1/6] Bump webtesting rules version. We haven't updated this dependency on the bazel webtesting rules for a while, and it looks like we need to do it to be able to also update our reference to the rules_closure target, to unblock #6721. To be clear, this PR is a prerequisite to pin the rules_closure version in a separate PR, which in turn will unblock #6721. An attempt to use the versioned browsers provided by the rules_webtesting dependency was created in #6772, but some tests were failing. It seems that some components or tests were written in a way that depends on the specific browser (?), so to be able to update this dependency, this continues to use the same browser version, only updating the rules we use to define our testing browser, to be compatible with a newer version of rules_webtesting. --- WORKSPACE | 6 ++-- third_party/chromium/BUILD | 27 ++++++-------- third_party/workspace.bzl | 74 ++++++++++++++++++++++++++------------ 3 files changed, 65 insertions(+), 42 deletions(-) diff --git a/WORKSPACE b/WORKSPACE index f5c97007b7..1f4941f2a2 100644 --- a/WORKSPACE +++ b/WORKSPACE @@ -26,10 +26,10 @@ versions.check( http_archive( name = "io_bazel_rules_webtesting", - sha256 = "9bb461d5ef08e850025480bab185fd269242d4e533bca75bfb748001ceb343c3", + sha256 = "e9abb7658b6a129740c0b3ef6f5a2370864e102a5ba5ffca2cea565829ed825a", 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/releases/download/0.3.3/rules_webtesting.tar.gz", + "https://github.com/bazelbuild/rules_webtesting/releases/download/0.3.5/rules_webtesting.tar.gz", ], ) diff --git a/third_party/chromium/BUILD b/third_party/chromium/BUILD index 60beaa021c..8f13cc4412 100644 --- a/third_party/chromium/BUILD +++ b/third_party/chromium/BUILD @@ -1,5 +1,3 @@ -load("@io_bazel_rules_webtesting//web:web.bzl", "web_test_archive") - package(default_visibility = ["//tensorboard:internal"]) licenses(["notice"]) @@ -14,25 +12,22 @@ config_setting( values = {"cpu": "k8"}, ) -web_test_archive( +alias( 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", - }, + testonly = True, + actual = select({ + ":linux": "@org_chromium_chromium_linux_x64//:metadata", + ":mac": "@org_chromium_chromium_macos//:metadata", }), visibility = ["//tensorboard/functionaltests/browsers:__pkg__"], ) -web_test_archive( +alias( name = "chromedriver", - archive = "@org_chromium_chromedriver//file", - extract = "build", - named_files = {"CHROMEDRIVER": "chromedriver"}, + testonly = True, + actual = select({ + ":linux": "@org_chromium_chromedriver_linux_x64//:metadata", + ":mac": "@org_chromium_chromedriver_macos//:metadata", + }), visibility = ["//tensorboard/functionaltests/browsers:__pkg__"], ) diff --git a/third_party/workspace.bzl b/third_party/workspace.bzl index 1b3b125853..b953d60087 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:web.bzl", "platform_archive") 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,44 +46,72 @@ 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 + # Chromium browser for multiple platforms, pinned to Chromium 84.0.4147.0. + platform_archive( + name = "org_chromium_chromium_linux_x64", licenses = ["notice"], # BSD 3-clause (maybe more?) - amd64_sha256 = - "49b25bf32b797558eb7957ac7c60e065433bdef278f669291f71edd329505e27", - amd64_urls = [ + sha256 = "49b25bf32b797558eb7957ac7c60e065433bdef278f669291f71edd329505e27", + urls = [ "https://commondatastorage.googleapis.com/chromium-browser-snapshots/Linux_x64/768959/chrome-linux.zip", ], - macos_sha256 = - "f0c7dc5c26061e2f179d1cb9819cb786d2c37cca9f53155e57ac2b6ab60c5cbc", - macos_urls = [ + named_files = { + "CHROMIUM": "chrome-linux/chrome", + }, + ) + + platform_archive( + name = "org_chromium_chromium_macos", + licenses = ["notice"], # BSD 3-clause (maybe more?) + sha256 = "f0c7dc5c26061e2f179d1cb9819cb786d2c37cca9f53155e57ac2b6ab60c5cbc", + urls = [ "https://commondatastorage.googleapis.com/chromium-browser-snapshots/Mac/768938/chrome-mac.zip", ], - windows_sha256 = - "f441a079046a35afc249a95d29356f33945c0a60b59236b9cf6db532c69dba6f", - windows_urls = [ + named_files = { + "CHROMIUM": "chrome-mac/Chromium.app/Contents/MacOS/chromium", + }, + ) + + platform_archive( + name = "org_chromium_chromium_windows", + licenses = ["notice"], # BSD 3-clause (maybe more?) + sha256 = "f441a079046a35afc249a95d29356f33945c0a60b59236b9cf6db532c69dba6f", + urls = [ "https://commondatastorage.googleapis.com/chromium-browser-snapshots/Win_x64/768952/chrome-win.zip", ], + named_files = { + "CHROMIUM": "chrome-win/chrome.exe", + }, ) - platform_http_file( - name = "org_chromium_chromedriver", + # Chromium webdriver for multiple platforms. + platform_archive( + name = "org_chromium_chromedriver_linux_x64", 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 = [ + sha256 = "71eafe087900dbca4bc0b354a1d172df48b31a4a502e21f7c7b156d7e76c95c7", + urls = [ "https://chromedriver.storage.googleapis.com/2.41/chromedriver_linux64.zip", ], - macos_sha256 = - "fd32a27148f44796a55f5ce3397015c89ebd9f600d9dda2bcaca54575e2497ae", - macos_urls = [ + named_files = {"CHROMEDRIVER": "chromedriver"}, + ) + + platform_archive( + name = "org_chromium_chromedriver_macos", + licenses = ["reciprocal"], # BSD 3-clause, ICU, MPL 1.1, libpng (BSD/MIT-like), Academic Free License v. 2.0, BSD 2-clause, MIT + sha256 = "fd32a27148f44796a55f5ce3397015c89ebd9f600d9dda2bcaca54575e2497ae", + urls = [ "https://chromedriver.storage.googleapis.com/2.41/chromedriver_mac64.zip", ], - windows_sha256 = - "a8fa028acebef7b931ef9cb093f02865f9f7495e49351f556e919f7be77f072e", - windows_urls = [ + named_files = {"CHROMEDRIVER": "chromedriver"}, + ) + + platform_archive( + name = "org_chromium_chromedriver_windows", + licenses = ["reciprocal"], # BSD 3-clause, ICU, MPL 1.1, libpng (BSD/MIT-like), Academic Free License v. 2.0, BSD 2-clause, MIT + sha256 = "a8fa028acebef7b931ef9cb093f02865f9f7495e49351f556e919f7be77f072e", + urls = [ "https://chromedriver.storage.googleapis.com/2.38/chromedriver_win32.zip", ], + named_files = {"CHROMEDRIVER": "chromedriver"}, ) java_import_external( From 49600546e842b6a8771bb85945b8cbcd0b3c3676 Mon Sep 17 00:00:00 2001 From: Adrian RC Date: Tue, 5 Mar 2024 01:21:50 +0000 Subject: [PATCH 2/6] Adding required browser dependencies. --- WORKSPACE | 8 ++++---- third_party/workspace.bzl | 5 +++++ 2 files changed, 9 insertions(+), 4 deletions(-) diff --git a/WORKSPACE b/WORKSPACE index 1f4941f2a2..1502a21809 100644 --- a/WORKSPACE +++ b/WORKSPACE @@ -55,11 +55,11 @@ py_repositories() http_archive( name = "io_bazel_rules_closure", - sha256 = "6a900831c1eb8dbfc9d6879b5820fd614d4ea1db180eb5ff8aedcb75ee747c1f", - strip_prefix = "rules_closure-db4683a2a1836ac8e265804ca5fa31852395185b", + sha256 = "b2ead8bdcf6d2d56b9cb797699a0ea707d33998edb9067825a588d9ccd3805e0", + strip_prefix = "rules_closure-c56b953045c883b393d6f0f5dbf9900df71949c1", urls = [ - "http://mirror.tensorflow.org/github.com/bazelbuild/rules_closure/archive/db4683a2a1836ac8e265804ca5fa31852395185b.tar.gz", - "https://github.com/bazelbuild/rules_closure/archive/db4683a2a1836ac8e265804ca5fa31852395185b.tar.gz", # 2020-01-15 + "http://mirror.tensorflow.org/github.com/bazelbuild/rules_closure/archive/c56b953045c883b393d6f0f5dbf9900df71949c1.tar.gz", + "https://github.com/bazelbuild/rules_closure/archive/c56b953045c883b393d6f0f5dbf9900df71949c1.tar.gz", # 2024-02-28 ], ) diff --git a/third_party/workspace.bzl b/third_party/workspace.bzl index b953d60087..32a523924f 100644 --- a/third_party/workspace.bzl +++ b/third_party/workspace.bzl @@ -18,6 +18,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:web.bzl", "platform_archive") +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,6 +47,10 @@ def tensorboard_workspace(name = ""): actual = "@com_github_grpc_grpc//src/compiler:grpc_python_plugin", ) + # We use our own browser definition below, but this seems to be required by + # bazel if we want to reference the new version of rules_webtesting. + browser_repositories(chromium = True) + # Chromium browser for multiple platforms, pinned to Chromium 84.0.4147.0. platform_archive( name = "org_chromium_chromium_linux_x64", From f7bf52525a2c46bc1767e1386abb35bdbe06e6db Mon Sep 17 00:00:00 2001 From: Adrian RC Date: Tue, 5 Mar 2024 01:23:36 +0000 Subject: [PATCH 3/6] Reverting closure changes. --- WORKSPACE | 8 ++++---- 1 file changed, 4 insertions(+), 4 deletions(-) diff --git a/WORKSPACE b/WORKSPACE index 1502a21809..1f4941f2a2 100644 --- a/WORKSPACE +++ b/WORKSPACE @@ -55,11 +55,11 @@ py_repositories() http_archive( name = "io_bazel_rules_closure", - sha256 = "b2ead8bdcf6d2d56b9cb797699a0ea707d33998edb9067825a588d9ccd3805e0", - strip_prefix = "rules_closure-c56b953045c883b393d6f0f5dbf9900df71949c1", + sha256 = "6a900831c1eb8dbfc9d6879b5820fd614d4ea1db180eb5ff8aedcb75ee747c1f", + strip_prefix = "rules_closure-db4683a2a1836ac8e265804ca5fa31852395185b", urls = [ - "http://mirror.tensorflow.org/github.com/bazelbuild/rules_closure/archive/c56b953045c883b393d6f0f5dbf9900df71949c1.tar.gz", - "https://github.com/bazelbuild/rules_closure/archive/c56b953045c883b393d6f0f5dbf9900df71949c1.tar.gz", # 2024-02-28 + "http://mirror.tensorflow.org/github.com/bazelbuild/rules_closure/archive/db4683a2a1836ac8e265804ca5fa31852395185b.tar.gz", + "https://github.com/bazelbuild/rules_closure/archive/db4683a2a1836ac8e265804ca5fa31852395185b.tar.gz", # 2020-01-15 ], ) From e7fe3755fd2e014d5525fe6cddf5ed0f7e1fb176 Mon Sep 17 00:00:00 2001 From: Adrian RC Date: Tue, 5 Mar 2024 17:12:18 +0000 Subject: [PATCH 4/6] Fix WORKSPACE format. --- WORKSPACE | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/WORKSPACE b/WORKSPACE index 1f4941f2a2..8c5723140f 100644 --- a/WORKSPACE +++ b/WORKSPACE @@ -28,7 +28,7 @@ http_archive( name = "io_bazel_rules_webtesting", sha256 = "e9abb7658b6a129740c0b3ef6f5a2370864e102a5ba5ffca2cea565829ed825a", urls = [ -# "http://mirror.tensorflow.org/github.com/bazelbuild/rules_webtesting/releases/download/0.3.3/rules_webtesting.tar.gz", + # "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.5/rules_webtesting.tar.gz", ], ) From 57c801313786804d9ed8b37e50d9e2fec4f6286d Mon Sep 17 00:00:00 2001 From: Adrian RC Date: Tue, 5 Mar 2024 20:55:16 +0000 Subject: [PATCH 5/6] Update rules_webtesting archive urls with link from TF mirror. --- WORKSPACE | 2 +- third_party/workspace.bzl | 2 +- 2 files changed, 2 insertions(+), 2 deletions(-) diff --git a/WORKSPACE b/WORKSPACE index 8c5723140f..90f4343943 100644 --- a/WORKSPACE +++ b/WORKSPACE @@ -28,7 +28,7 @@ http_archive( name = "io_bazel_rules_webtesting", sha256 = "e9abb7658b6a129740c0b3ef6f5a2370864e102a5ba5ffca2cea565829ed825a", urls = [ - # "http://mirror.tensorflow.org/github.com/bazelbuild/rules_webtesting/releases/download/0.3.3/rules_webtesting.tar.gz", + "http://mirror.tensorflow.org/github.com/bazelbuild/rules_webtesting/releases/download/0.3.5/rules_webtesting.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 32a523924f..b04167026e 100644 --- a/third_party/workspace.bzl +++ b/third_party/workspace.bzl @@ -48,7 +48,7 @@ def tensorboard_workspace(name = ""): ) # We use our own browser definition below, but this seems to be required by - # bazel if we want to reference the new version of rules_webtesting. + # the rules_webtesting dependency. browser_repositories(chromium = True) # Chromium browser for multiple platforms, pinned to Chromium 84.0.4147.0. From 941fc72db99e1b9f8cdb7f2dfefe778eefbf0f02 Mon Sep 17 00:00:00 2001 From: Adrian RC Date: Tue, 5 Mar 2024 21:57:02 +0000 Subject: [PATCH 6/6] Updates comment about browser_repositories being required. --- third_party/workspace.bzl | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/third_party/workspace.bzl b/third_party/workspace.bzl index b04167026e..9f15e0b3b0 100644 --- a/third_party/workspace.bzl +++ b/third_party/workspace.bzl @@ -47,8 +47,8 @@ def tensorboard_workspace(name = ""): actual = "@com_github_grpc_grpc//src/compiler:grpc_python_plugin", ) - # We use our own browser definition below, but this seems to be required by - # the rules_webtesting dependency. + # We use our own browser definition based on the archives defined below, but + # this seems to be required by the rules_webtesting dependency. browser_repositories(chromium = True) # Chromium browser for multiple platforms, pinned to Chromium 84.0.4147.0.