Upgrade rules_js and friends to latest
Another step in the bazel 7 migration.
Change-Id: Ia045838d69ee90ce05e6dcb18051b577bbf1daba
Signed-off-by: Austin Schuh <austin.linux@gmail.com>
Signed-off-by: Philipp Schrader <philipp.schrader@gmail.com>
diff --git a/.bazelrc b/.bazelrc
index 9ff6c55..6359ba3 100644
--- a/.bazelrc
+++ b/.bazelrc
@@ -101,6 +101,19 @@
build --strategy=CopyFile=standalone
build --strategy=CopyDirectory=standalone
+# Honor the setting of `skipLibCheck` in the tsconfig.json file.
+# https://www.typescriptlang.org/tsconfig#skipLibCheck
+build --@aspect_rules_ts//ts:skipLibCheck=honor_tsconfig
+fetch --@aspect_rules_ts//ts:skipLibCheck=honor_tsconfig
+query --@aspect_rules_ts//ts:skipLibCheck=honor_tsconfig
+
+# Use "tsc" as the transpiler when ts_project has no `transpiler` set.
+# For now this is an acceptable default, but it would be nice to switch to swc in the future.
+# https://docs.aspect.build/rulesets/aspect_rules_ts/docs/transpiler/
+build --@aspect_rules_ts//ts:default_to_tsc_transpiler
+fetch --@aspect_rules_ts//ts:default_to_tsc_transpiler
+query --@aspect_rules_ts//ts:default_to_tsc_transpiler
+
# Use our hermetic JDK.
# Note that this doesn't quite work fully, but it should. See
# https://github.com/bazelbuild/bazel/issues/6341 for ongoing discussion with
diff --git a/WORKSPACE b/WORKSPACE
index 40f7cc3..94ea767 100644
--- a/WORKSPACE
+++ b/WORKSPACE
@@ -31,15 +31,17 @@
http_archive(
name = "aspect_bazel_lib",
- sha256 = "80897b673c2b506d21f861ae316689aa8abcc3e56947580a41bf9e68ff13af58",
- strip_prefix = "bazel-lib-1.27.1",
- url = "https://github.com/aspect-build/bazel-lib/releases/download/v1.27.1/bazel-lib-v1.27.1.tar.gz",
+ sha256 = "979667bb7276ee8fcf2c114c9be9932b9a3052a64a647e0dcaacfb9c0016f0a3",
+ strip_prefix = "bazel-lib-2.4.1",
+ url = "https://github.com/aspect-build/bazel-lib/releases/download/v2.4.1/bazel-lib-v2.4.1.tar.gz",
)
-load("@aspect_bazel_lib//lib:repositories.bzl", "aspect_bazel_lib_dependencies", "register_jq_toolchains")
+load("@aspect_bazel_lib//lib:repositories.bzl", "aspect_bazel_lib_dependencies", "aspect_bazel_lib_register_toolchains", "register_jq_toolchains")
aspect_bazel_lib_dependencies()
+aspect_bazel_lib_register_toolchains()
+
register_jq_toolchains()
http_archive(
@@ -870,25 +872,28 @@
http_archive(
name = "aspect_rules_js",
- sha256 = "9fadde0ae6e0101755b8aedabf7d80b166491a8de297c60f6a5179cd0d0fea58",
- strip_prefix = "rules_js-1.20.0",
- url = "https://github.com/aspect-build/rules_js/releases/download/v1.20.0/rules_js-v1.20.0.tar.gz",
+ sha256 = "630a71aba66c4023a5b16ab3efafaeed8b1a2865ccd168a34611eb73876b3fc4",
+ strip_prefix = "rules_js-1.37.1",
+ url = "https://github.com/aspect-build/rules_js/releases/download/v1.37.1/rules_js-v1.37.1.tar.gz",
)
-load("@aspect_rules_js//npm:npm_import.bzl", "npm_translate_lock", "pnpm_repository")
-
-pnpm_repository(name = "pnpm")
-
load("@aspect_rules_js//js:repositories.bzl", "rules_js_dependencies")
rules_js_dependencies()
+load("@bazel_features//:deps.bzl", "bazel_features_deps")
+
+bazel_features_deps()
+
+load("@aspect_rules_js//npm:npm_import.bzl", "npm_translate_lock", "pnpm_repository")
+
+pnpm_repository(name = "pnpm")
+
http_archive(
name = "aspect_rules_esbuild",
- sha256 = "b98cde83e9e6a006d8300e88e2f09da56b5a6c18166465a224cfe36bdcbc03e0",
- strip_prefix = "aspect-build-rules_esbuild-110b94c",
- type = "tar.gz",
- url = "https://github.com/aspect-build/rules_esbuild/tarball/110b94c7f16f328a0eab8aa0b862030055b86564",
+ sha256 = "999349afef62875301f45ec8515189ceaf2e85b1e67a17e2d28b95b30e1d6c0b",
+ strip_prefix = "rules_esbuild-0.18.0",
+ url = "https://github.com/aspect-build/rules_esbuild/releases/download/v0.18.0/rules_esbuild-v0.18.0.tar.gz",
)
load("@aspect_rules_esbuild//esbuild:dependencies.bzl", "rules_esbuild_dependencies")
@@ -933,7 +938,7 @@
verify_node_modules_ignored = "//:.bazelignore",
)
-load("@aspect_rules_esbuild//esbuild:repositories.bzl", "esbuild_register_toolchains", LATEST_ESBUILD_VERSION = "LATEST_VERSION")
+load("@aspect_rules_esbuild//esbuild:repositories.bzl", "LATEST_ESBUILD_VERSION", "esbuild_register_toolchains")
esbuild_register_toolchains(
name = "esbuild",
@@ -948,65 +953,34 @@
patches = [
"//third_party:rules_rollup/0001-Fix-resolving-files.patch",
],
- sha256 = "4c43d20ce377b93cd43a3553e6159a17b85ce80c36a564b55051c2320d32b777",
- strip_prefix = "rules_rollup-0.13.1",
- url = "https://github.com/aspect-build/rules_rollup/releases/download/v0.13.1/rules_rollup-v0.13.1.tar.gz",
+ sha256 = "a0433a0b0206a45d362749d71bc1e4e0dacf5ca2a572b059328f9753392bca80",
+ strip_prefix = "rules_rollup-1.0.0",
+ url = "https://github.com/aspect-build/rules_rollup/releases/download/v1.0.0/rules_rollup-v1.0.0.tar.gz",
)
-load("@aspect_rules_rollup//rollup:dependencies.bzl", "rules_rollup_dependencies")
-
-# Fetches the rules_rollup dependencies.
-# If you want to have a different version of some dependency,
-# you should fetch it *before* calling this.
-# Alternatively, you can skip calling this function, so long as you've
-# already fetched all the dependencies.
-rules_rollup_dependencies()
-
-load("@aspect_rules_rollup//rollup:repositories.bzl", "rollup_repositories")
-
-rollup_repositories(name = "rollup")
-
-load("@rollup//:npm_repositories.bzl", rollup_npm_repositories = "npm_repositories")
-
-rollup_npm_repositories()
-
http_archive(
name = "aspect_rules_terser",
- sha256 = "918e7ac036eca1402cae4d4ddba75ecdcdd886ac35bc0624d9f1ebc7527e369b",
- strip_prefix = "rules_terser-0.13.0",
- url = "https://github.com/aspect-build/rules_terser/archive/refs/tags/v0.13.0.tar.gz",
+ sha256 = "8424b4c064d0e490e5b6f215b993712ef641b77e03b68fdc64221edf48d14add",
+ strip_prefix = "rules_terser-1.0.0",
+ url = "https://github.com/aspect-build/rules_terser/releases/download/v1.0.0/rules_terser-v1.0.0.tar.gz",
)
load("@aspect_rules_terser//terser:dependencies.bzl", "rules_terser_dependencies")
rules_terser_dependencies()
-# Fetch and register a nodejs interpreter, if you haven't already
-
-nodejs_register_toolchains(
- name = "node",
- node_version = DEFAULT_NODE_VERSION,
-)
-
-# Fetch and register the terser tool
-load("@aspect_rules_terser//terser:repositories.bzl", "terser_repositories")
-
-terser_repositories(name = "terser")
-
-load("@terser//:npm_repositories.bzl", terser_npm_repositories = "npm_repositories")
-
-terser_npm_repositories()
-
http_archive(
name = "aspect_rules_ts",
- sha256 = "db77d904284d21121ae63dbaaadfd8c75ff6d21ad229f92038b415c1ad5019cc",
- strip_prefix = "rules_ts-1.3.0",
- url = "https://github.com/aspect-build/rules_ts/releases/download/v1.3.0/rules_ts-v1.3.0.tar.gz",
+ sha256 = "6ad28b5bac2bb5a74e737925fbc3f62ce1edabe5a48d61a9980c491ef4cedfb7",
+ strip_prefix = "rules_ts-2.1.1",
+ url = "https://github.com/aspect-build/rules_ts/releases/download/v2.1.1/rules_ts-v2.1.1.tar.gz",
)
load("@aspect_rules_ts//ts:repositories.bzl", "rules_ts_dependencies")
-rules_ts_dependencies(ts_version_from = "//:package.json")
+rules_ts_dependencies(
+ ts_version_from = "//:package.json",
+)
load("@npm//:repositories.bzl", "npm_repositories")
@@ -1014,11 +988,10 @@
http_archive(
name = "aspect_rules_cypress",
- sha256 = "06d70a2960108607d2e70f9bc6863af6b82317fdfcf7a5a30fd226a5abc46782",
- strip_prefix = "aspect-build-rules_cypress-3db1b74",
- type = "tar.gz",
+ sha256 = "76947778d8e855eee3c15931e1fcdc1c2a25d56d6c0edd110b2227c05b794d08",
+ strip_prefix = "rules_cypress-0.3.2",
urls = [
- "https://github.com/aspect-build/rules_cypress/tarball/3db1b74818ac4ce1b9d489a6e0065b36c1076761",
+ "https://github.com/aspect-build/rules_cypress/archive/refs/tags/v0.3.2.tar.gz",
],
)
diff --git a/scouting/www/entry/entry.component.ts b/scouting/www/entry/entry.component.ts
index b3e1e92..4286dca 100644
--- a/scouting/www/entry/entry.component.ts
+++ b/scouting/www/entry/entry.component.ts
@@ -25,7 +25,7 @@
Action,
} from '../../webserver/requests/messages/submit_2024_actions_generated';
import {Match} from '../../webserver/requests/messages/request_all_matches_response_generated';
-import {MatchListRequestor} from '@org_frc971/scouting/www/rpc';
+import {MatchListRequestor} from '../rpc';
type Section =
| 'Team Selection'
diff --git a/scouting/www/match_list/match_list.component.ts b/scouting/www/match_list/match_list.component.ts
index 0deeb11..8fafdce 100644
--- a/scouting/www/match_list/match_list.component.ts
+++ b/scouting/www/match_list/match_list.component.ts
@@ -7,7 +7,7 @@
RequestAllMatchesResponse,
} from '../../webserver/requests/messages/request_all_matches_response_generated';
-import {MatchListRequestor} from '@org_frc971/scouting/www/rpc';
+import {MatchListRequestor} from '../rpc';
type TeamInMatch = {
teamNumber: string;
diff --git a/third_party/flatbuffers/typescript.bzl b/third_party/flatbuffers/typescript.bzl
index f00c550..ccfd2d6 100644
--- a/third_party/flatbuffers/typescript.bzl
+++ b/third_party/flatbuffers/typescript.bzl
@@ -93,7 +93,7 @@
compatible_with = compatible_with,
restricted_to = restricted_to,
target_compatible_with = target_compatible_with,
- supports_workers = False,
+ supports_workers = 0,
tsconfig = {
"compilerOptions": {
"declaration": True,
diff --git a/third_party/rules_rollup/0001-Fix-resolving-files.patch b/third_party/rules_rollup/0001-Fix-resolving-files.patch
index a81a656..a57c4bc 100644
--- a/third_party/rules_rollup/0001-Fix-resolving-files.patch
+++ b/third_party/rules_rollup/0001-Fix-resolving-files.patch
@@ -1,19 +1,19 @@
-From fd6dd080ea58fd71c70ce2303873feab1abda760 Mon Sep 17 00:00:00 2001
+From 5c0b6653d0fa500b5ad3a65f8e58c97517f2d6bd Mon Sep 17 00:00:00 2001
From: Philipp Schrader <philipp.schrader@gmail.com>
-Date: Sun, 19 Feb 2023 14:18:11 -0800
+Date: Wed, 21 Feb 2024 17:26:27 -0800
Subject: [PATCH] Fix resolving files
I don't really know what the underlying problem is, but returning a
File instead of a path is causing us grief.
---
- rollup/private/rollup_bundle.bzl | 2 +-
+ rollup/private/rollup.bzl | 2 +-
1 file changed, 1 insertion(+), 1 deletion(-)
-diff --git a/rollup/private/rollup_bundle.bzl b/rollup/private/rollup_bundle.bzl
-index 32aaad4..a2061dd 100644
---- a/rollup/private/rollup_bundle.bzl
-+++ b/rollup/private/rollup_bundle.bzl
-@@ -186,7 +186,7 @@ def _resolve_js_input(f, inputs):
+diff --git a/rollup/private/rollup.bzl b/rollup/private/rollup.bzl
+index c1634cf..8cd5407 100644
+--- a/rollup/private/rollup.bzl
++++ b/rollup/private/rollup.bzl
+@@ -96,7 +96,7 @@ def _resolve_js_input(f, inputs):
for i in inputs:
if i.extension == "js" or i.extension == "mjs":
if _no_ext(i) == no_ext:
diff --git a/tools/build_rules/js.bzl b/tools/build_rules/js.bzl
index 4b11ea7..51fe987 100644
--- a/tools/build_rules/js.bzl
+++ b/tools/build_rules/js.bzl
@@ -8,8 +8,8 @@
load("@npm//:html-insert-assets/package_json.bzl", html_insert_assets_bin = "bin")
load("//tools/build_rules/js:ng.bzl", "ng_esbuild", "ng_project")
load("//tools/build_rules/js:ts.bzl", _ts_project = "ts_project")
-load("@aspect_rules_rollup//rollup:defs.bzl", upstream_rollup_bundle = "rollup_bundle")
-load("@aspect_rules_terser//terser:defs.bzl", "terser_minified")
+load("@aspect_rules_rollup//rollup:defs.bzl", upstream_rollup_bundle = "rollup")
+load("@aspect_rules_terser//terser:defs.bzl", terser_minified = "terser")
load("@aspect_rules_cypress//cypress:defs.bzl", "cypress_module_test")
ts_project = _ts_project
@@ -283,7 +283,7 @@
**kwargs
)
-def rollup_bundle(name, entry_point, deps = [], visibility = None, **kwargs):
+def rollup_bundle(name, entry_point, node_modules = "//:node_modules", deps = [], visibility = None, **kwargs):
"""Calls the upstream rollup_bundle() and exposes a .min.js file.
Legacy version of rollup_bundle() used to provide the .min.js file. This
@@ -301,6 +301,7 @@
deps = deps + [
"//:node_modules/@rollup/plugin-node-resolve",
],
+ node_modules = node_modules,
sourcemap = "false",
config_file = ":%s__rollup_config.js" % name,
entry_point = entry_point,
@@ -310,6 +311,7 @@
terser_minified(
name = name + "__min",
srcs = [name + ".js"],
+ node_modules = node_modules,
tags = [
"no-remote-cache",
],
@@ -354,7 +356,7 @@
},
)
-def cypress_test(runner, data = None, **kwargs):
+def cypress_test(name, runner, data = None, **kwargs):
"""Runs a cypress test with the specified runner.
Args:
@@ -373,16 +375,24 @@
# Chrome is located at the runfiles root. So we need to go up one more
# directory than the workspace root.
chrome_location = "../" * (package_depth + 1) + "chrome_linux/chrome"
- config_location = "../" * package_depth + "tools/build_rules/js/cypress.config.js"
+
+ copy_file(
+ name = name + "_config",
+ out = "cypress.config.js",
+ src = "//tools/build_rules/js:cypress.config.js",
+ visibility = ["//visibility:private"],
+ )
data = data or []
- data.append("//tools/build_rules/js:cypress.config.js")
+ data.append(":%s_config" % name)
data.append("@xvfb_amd64//:wrapped_bin/Xvfb")
+ data.append("//:node_modules")
cypress_module_test(
+ name = name,
args = [
"run",
- "--config-file=" + config_location,
+ "--config-file=cypress.config.js",
"--browser=" + chrome_location,
],
browsers = ["@chrome_linux//:all"],
diff --git a/tools/build_rules/js/cypress.config.js b/tools/build_rules/js/cypress.config.js
index c8d6988..e991016 100644
--- a/tools/build_rules/js/cypress.config.js
+++ b/tools/build_rules/js/cypress.config.js
@@ -1,6 +1,6 @@
-const {defineConfig} = require('cypress');
+import {defineConfig} from 'cypress';
-module.exports = defineConfig({
+export default defineConfig({
e2e: {
specPattern: ['*.cy.js'],
supportFile: false,
diff --git a/tools/build_rules/js/ts.bzl b/tools/build_rules/js/ts.bzl
index a5b0770..01b8bfe 100644
--- a/tools/build_rules/js/ts.bzl
+++ b/tools/build_rules/js/ts.bzl
@@ -15,6 +15,6 @@
# TODO(phil): Is this a good idea? I don't _actually_ know what this
# does.
- supports_workers = False,
+ supports_workers = 0,
**kwargs
)