Bazel: Bump rules_js, rules_ts and rules_nodejs Update the JS ruleset stack: aspect_rules_js 3.1.2 -> 3.2.3, aspect_rules_ts 3.8.8 -> 3.9.2, rules_nodejs 6.7.4 -> 6.7.5, and adapt the tree to what the new versions require and enable. The rules_ts options validator now resolves outDir through the tsconfig extends chain and rejects the inherited yarn/IDE outDir (../../.ts-out/...), which escapes the Bazel package. Override it in the bazel tsconfigs, kept in sync with the out_dir attributes the ts_project targets already carry. rules_nodejs 6.7.5 reads the node version from .nvmrc (node_version_from_nvmrc), so the version is pinned in one cross-tool file that nvm, editors and CI honor as well -- previously the yarn dev flow had no node pin at all. Versions newer than the ruleset's built-in table are auto-fetched and recorded in MODULE.bazel.lock. This retires the hand-maintained node checksum dict, the per-platform use_repo boilerplate and the unused root alias of the pnpm extension (rules_js resolves its own pnpm; the npm_translate_lock update machinery never consumed the root alias). The bundled pnpm moves to 10.34.5, whose import marks git-hosted tarball resolutions with gitHosted: true (10.34.1 lockfile schema). Whether it also records an integrity field for such tarballs depends on the local store state: a cold store downloads the tarballs and emits integrity, a warm store omits it and strips it on re-import -- same version, same inputs, different lockfile. Reproducer: https://github.com/davido/pnpm-codeload-repro, filed upstream as https://github.com/pnpm/pnpm/issues/13338. The committed lock is the warm-store form, consistent with the action caches below. That nondeterminism broke CI: every fresh checkout re-ran pnpm import (cold) and failed with "pnpm-lock.yaml file updated". The root cause is that the npm_translate_lock action caches were gitignored, so update_pnpm_lock could never see that the lock is current. Check the .aspect/rules/external_repository_action_cache files in, as the rules_js documentation prescribes -- the action cache "persists the state of package and lock files that may effect the pnpm-lock.yaml generation and should be checked into the source control along with the pnpm-lock.yaml file" ("update_pnpm_lock" in https://github.com/aspect-build/rules_js/blob/main/docs/pnpm.md): with matching caches the import is skipped entirely and CI no longer depends on pnpm's store-state behavior. This stack also pulls in aspect_tools_telemetry, which reports ruleset usage with repo and user fingerprints at module-resolution time; opt the whole tree out via ASPECT_TOOLS_TELEMETRY=-all in .bazelrc. Release-Notes: skip Change-Id: I018b2e4754a921a69b6004ca78c38dbf08bd7539
diff --git a/.aspect/rules/external_repository_action_cache/npm_translate_lock_LTE4Nzc1MDcwNjU= b/.aspect/rules/external_repository_action_cache/npm_translate_lock_LTE4Nzc1MDcwNjU= new file mode 100755 index 0000000..b1e9051 --- /dev/null +++ b/.aspect/rules/external_repository_action_cache/npm_translate_lock_LTE4Nzc1MDcwNjU=
@@ -0,0 +1,7 @@ +# @generated +# Input hashes for repository rule npm_translate_lock(name = "npm", pnpm_lock = "@@//:pnpm-lock.yaml"). +# This file should be checked into version control along with the pnpm-lock.yaml file. +package.json=259674664 +pnpm-lock.yaml=640391753 +pnpm-workspace.yaml=-408937369 +yarn.lock=742513459
diff --git a/.aspect/rules/external_repository_action_cache/npm_translate_lock_NDEzOTg2ODE= b/.aspect/rules/external_repository_action_cache/npm_translate_lock_NDEzOTg2ODE= new file mode 100755 index 0000000..51238c9 --- /dev/null +++ b/.aspect/rules/external_repository_action_cache/npm_translate_lock_NDEzOTg2ODE=
@@ -0,0 +1,7 @@ +# @generated +# Input hashes for repository rule npm_translate_lock(name = "tools_npm", pnpm_lock = "@@//tools/node_tools:pnpm-lock.yaml"). +# This file should be checked into version control along with the pnpm-lock.yaml file. +tools/node_tools/package.json=899646160 +tools/node_tools/pnpm-lock.yaml=-1121876554 +tools/node_tools/pnpm-workspace.yaml=-408937369 +tools/node_tools/yarn.lock=1865795164
diff --git a/.aspect/rules/external_repository_action_cache/npm_translate_lock_ODE4NDE3MDEy b/.aspect/rules/external_repository_action_cache/npm_translate_lock_ODE4NDE3MDEy new file mode 100755 index 0000000..3612935 --- /dev/null +++ b/.aspect/rules/external_repository_action_cache/npm_translate_lock_ODE4NDE3MDEy
@@ -0,0 +1,7 @@ +# @generated +# Input hashes for repository rule npm_translate_lock(name = "ui_npm", pnpm_lock = "@@//polygerrit-ui/app:pnpm-lock.yaml"). +# This file should be checked into version control along with the pnpm-lock.yaml file. +polygerrit-ui/app/package.json=-844837576 +polygerrit-ui/app/pnpm-lock.yaml=1583889522 +polygerrit-ui/app/pnpm-workspace.yaml=1396467527 +polygerrit-ui/app/yarn.lock=-909422203
diff --git a/.aspect/rules/external_repository_action_cache/npm_translate_lock_ODE4OTg1MjQ0 b/.aspect/rules/external_repository_action_cache/npm_translate_lock_ODE4OTg1MjQ0 new file mode 100755 index 0000000..33edcc5 --- /dev/null +++ b/.aspect/rules/external_repository_action_cache/npm_translate_lock_ODE4OTg1MjQ0
@@ -0,0 +1,7 @@ +# @generated +# Input hashes for repository rule npm_translate_lock(name = "ui_dev_npm", pnpm_lock = "@@//polygerrit-ui:pnpm-lock.yaml"). +# This file should be checked into version control along with the pnpm-lock.yaml file. +polygerrit-ui/package.json=-860495337 +polygerrit-ui/pnpm-lock.yaml=201412925 +polygerrit-ui/pnpm-workspace.yaml=-408937369 +polygerrit-ui/yarn.lock=1276229348
diff --git a/.aspect/rules/external_repository_action_cache/npm_translate_lock_ODUwOTM3NTg= b/.aspect/rules/external_repository_action_cache/npm_translate_lock_ODUwOTM3NTg= new file mode 100755 index 0000000..23457d5 --- /dev/null +++ b/.aspect/rules/external_repository_action_cache/npm_translate_lock_ODUwOTM3NTg=
@@ -0,0 +1,7 @@ +# @generated +# Input hashes for repository rule npm_translate_lock(name = "plugins_npm", pnpm_lock = "@@//plugins:pnpm-lock.yaml"). +# This file should be checked into version control along with the pnpm-lock.yaml file. +plugins/package.json=1633560207 +plugins/pnpm-lock.yaml=-77521523 +plugins/pnpm-workspace.yaml=-408937369 +plugins/yarn.lock=-2081175573
diff --git a/.bazelrc b/.bazelrc index b864a3b..f5d330f 100644 --- a/.bazelrc +++ b/.bazelrc
@@ -4,6 +4,7 @@ common --incompatible_disallow_struct_provider_syntax=false common --incompatible_disallow_empty_glob=false common --@aspect_rules_ts//ts:default_to_tsc_transpiler +common --repo_env=ASPECT_TOOLS_TELEMETRY=-all build --workspace_status_command="python3 ./tools/workspace_status.py" build --repository_cache=~/.gerritcodereview/bazel-cache/repository
diff --git a/.gitignore b/.gitignore index cc71eb5..f42cfc0 100644 --- a/.gitignore +++ b/.gitignore
@@ -10,7 +10,6 @@ .DS_Store CLAUDE.md js-to-ts.sh -/.aspect/ /.apt_generated /.apt_generated_tests /.eslintcache
diff --git a/.nvmrc b/.nvmrc new file mode 100644 index 0000000..ca5c350 --- /dev/null +++ b/.nvmrc
@@ -0,0 +1 @@ +24.18.0
diff --git a/MODULE.bazel b/MODULE.bazel index 037a989..55fbaa8 100644 --- a/MODULE.bazel +++ b/MODULE.bazel
@@ -7,13 +7,13 @@ # Language rules. bazel_dep(name = "aspect_bazel_lib", version = "2.22.5") -bazel_dep(name = "aspect_rules_js", version = "3.1.2") +bazel_dep(name = "aspect_rules_js", version = "3.2.3") bazel_dep(name = "aspect_rules_rollup", version = "2.0.1") -bazel_dep(name = "aspect_rules_ts", version = "3.8.8") +bazel_dep(name = "aspect_rules_ts", version = "3.9.2") bazel_dep(name = "rules_android", version = "0.7.2") bazel_dep(name = "rules_go", version = "0.60.0") bazel_dep(name = "rules_java", version = "9.3.0") -bazel_dep(name = "rules_nodejs", version = "6.7.4") +bazel_dep(name = "rules_nodejs", version = "6.7.5") bazel_dep(name = "rules_python", version = "2.0.2") bazel_dep(name = "rules_shell", version = "0.8.0") @@ -60,4 +60,3 @@ # Wiring for external dependencies contributed by in-tree plugins. include("//plugins:external_plugin_deps.MODULE.bazel") -
diff --git a/MODULE.bazel.lock b/MODULE.bazel.lock index fe7c2be..7e2e9de 100644 --- a/MODULE.bazel.lock +++ b/MODULE.bazel.lock
@@ -33,14 +33,14 @@ "https://bcr.bazel.build/modules/aspect_bazel_lib/2.7.7/MODULE.bazel": "491f8681205e31bb57892d67442ce448cda4f472a8e6b3dc062865e29a64f89c", "https://bcr.bazel.build/modules/aspect_bazel_lib/2.8.1/MODULE.bazel": "812d2dd42f65dca362152101fbec418029cc8fd34cbad1a2fde905383d705838", "https://bcr.bazel.build/modules/aspect_rules_js/2.0.0/MODULE.bazel": "b45b507574aa60a92796e3e13c195cd5744b3b8aff516a9c0cb5ae6a048161c5", - "https://bcr.bazel.build/modules/aspect_rules_js/3.1.2/MODULE.bazel": "e3685502155d3cc65f3bf98e714f7435de67d7f8f355d63478a80197310311fc", - "https://bcr.bazel.build/modules/aspect_rules_js/3.1.2/source.json": "a32ab71831452b945f3f83a1b1feb9402007e600bce55ac76e15ef0c1e08b520", + "https://bcr.bazel.build/modules/aspect_rules_js/3.2.3/MODULE.bazel": "3a0363a5b8ec4931488dc327c577a78c1f5a725293ebffaa5d2613283701aa8a", + "https://bcr.bazel.build/modules/aspect_rules_js/3.2.3/source.json": "fa3187962f5fdeee0c6226792904aaafb2cf585717a264fa4393a767bffb99fe", "https://bcr.bazel.build/modules/aspect_rules_rollup/2.0.1/MODULE.bazel": "296e3a053658c2af989ba9bd62a205e6d1fa84bdd6dd5249196546e6b84770ec", "https://bcr.bazel.build/modules/aspect_rules_rollup/2.0.1/source.json": "2fe8ac1ccb4de74bf884761e070010280b272d94e3997205b361b91c75409726", - "https://bcr.bazel.build/modules/aspect_rules_ts/3.8.8/MODULE.bazel": "b52b929a948438665809d49af610f58d1b14f63d6d21ab748f47b6050be4c1f6", - "https://bcr.bazel.build/modules/aspect_rules_ts/3.8.8/source.json": "5414530b761a45ab7ca6c49f0a2a9cf8dc0da772f5037cf05ca18aaa64bb1b19", - "https://bcr.bazel.build/modules/aspect_tools_telemetry/0.3.3/MODULE.bazel": "37c764292861c2f70314efa9846bb6dbb44fc0308903b3285da6528305450183", - "https://bcr.bazel.build/modules/aspect_tools_telemetry/0.3.3/source.json": "605086bbc197743a0d360f7ddc550a1d4dfa0441bc807236e17170f636153348", + "https://bcr.bazel.build/modules/aspect_rules_ts/3.9.2/MODULE.bazel": "feeb6c45b69c995eca3e5ca5872658c80df658022e01044eca00cf472bb89142", + "https://bcr.bazel.build/modules/aspect_rules_ts/3.9.2/source.json": "cf3075502f798f71a9c5707a7684eaf0b86da11ed440fd90ea34385dc297676a", + "https://bcr.bazel.build/modules/aspect_tools_telemetry/0.4.2/MODULE.bazel": "f31aa84151d31e98cffd43eb7217ccff5ec52bdd5f2d10db8f053aeb23342eca", + "https://bcr.bazel.build/modules/aspect_tools_telemetry/0.4.2/source.json": "d027d264e6b6e7fc421e38189f4374fcd14a67e0bd6e0e705de8c2185c3787e1", "https://bcr.bazel.build/modules/bazel_features/1.1.0/MODULE.bazel": "cfd42ff3b815a5f39554d97182657f8c4b9719568eb7fded2b9135f084bf760b", "https://bcr.bazel.build/modules/bazel_features/1.1.1/MODULE.bazel": "27b8c79ef57efe08efccbd9dd6ef70d61b4798320b8d3c134fd571f78963dbcd", "https://bcr.bazel.build/modules/bazel_features/1.10.0/MODULE.bazel": "f75e8807570484a99be90abcd52b5e1f390362c258bcb73106f4544957a48101", @@ -237,8 +237,8 @@ "https://bcr.bazel.build/modules/rules_license/1.0.0/source.json": "a52c89e54cc311196e478f8382df91c15f7a2bfdf4c6cd0e2675cc2ff0b56efb", "https://bcr.bazel.build/modules/rules_nodejs/6.2.0/MODULE.bazel": "ec27907f55eb34705adb4e8257952162a2d4c3ed0f0b3b4c3c1aad1fac7be35e", "https://bcr.bazel.build/modules/rules_nodejs/6.7.3/MODULE.bazel": "c22a48b2a0dbf05a9dc5f83837bbc24c226c1f6e618de3c3a610044c9f336056", - "https://bcr.bazel.build/modules/rules_nodejs/6.7.4/MODULE.bazel": "e6a241a55c82e999145553d2e00a08fc6ebadf62b63d108fb5e984696ffd0bd2", - "https://bcr.bazel.build/modules/rules_nodejs/6.7.4/source.json": "34e7a8a3b4c8d630ac0e0492b3fed9dba41fe008a0edf220b7d88fa38ac53698", + "https://bcr.bazel.build/modules/rules_nodejs/6.7.5/MODULE.bazel": "97e6794043821d23c013baa4a50fd1c599f2e6ae92b06e2c5f1cd7074fd83e7c", + "https://bcr.bazel.build/modules/rules_nodejs/6.7.5/source.json": "d60ee5a76258b1c8f99545ed24172b44d43ba64ca1a2dfc04371ef203df19fdf", "https://bcr.bazel.build/modules/rules_pkg/0.7.0/MODULE.bazel": "df99f03fc7934a4737122518bb87e667e62d780b610910f0447665a7e2be62dc", "https://bcr.bazel.build/modules/rules_pkg/1.0.1/MODULE.bazel": "5b1df97dbc29623bccdf2b0dcd0f5cb08e2f2c9050aab1092fd39a41e82686ff", "https://bcr.bazel.build/modules/rules_pkg/1.0.1/source.json": "bd82e5d7b9ce2d31e380dd9f50c111d678c3bdaca190cb76b0e1c71b05e1ba8a", @@ -311,49 +311,31 @@ }, "selectedYankedVersions": {}, "moduleExtensions": { - "@@aspect_rules_ts+//ts:extensions.bzl%ext": { - "general": { - "bzlTransitiveDigest": "znGIWhsWB2BLftYOmjVGiqrZuccFABBogiS+i4Kg3tU=", - "usagesDigest": "wmTY4QJrwyD3VUSOHaA0OPkvX0ywR/XPM2EecaJ8yGk=", - "recordedInputs": [ - "REPO_MAPPING:aspect_rules_ts+,aspect_rules_ts aspect_rules_ts+", - "REPO_MAPPING:aspect_rules_ts+,bazel_tools bazel_tools", - "FILE:@@//package.json 582559a124fbee5740e1c3a5b4167aa579a1deb338e413bd82f358940feae420" - ], - "generatedRepoSpecs": { - "npm_typescript": { - "repoRuleId": "@@aspect_rules_ts+//ts/private:npm_repositories.bzl%http_archive_version", - "attributes": { - "version": "", - "version_from": "@@//:package.json", - "integrity": "", - "urls": [ - "https://registry.npmjs.org/typescript/-/typescript-{}.tgz" - ] - } - } - } - } - }, "@@aspect_tools_telemetry+//:extension.bzl%telemetry": { "general": { - "bzlTransitiveDigest": "cl5A2O84vDL6Tt+Qga8FCj1DUDGqn+e7ly5rZ+4xvcc=", - "usagesDigest": "VyFtm1DFYJGrU6mU+xj6UF6QCpzpFzBONF0/8BC6ZC8=", + "bzlTransitiveDigest": "4w9RM0xjdKo1crk5zL20a/TuhqO0P1z1LsuXDneBXD4=", + "usagesDigest": "VuWbxUOa4PEE7KktNjLNLRMFWZRv30gglkSl7mxZj9w=", "recordedInputs": [ "REPO_MAPPING:aspect_tools_telemetry+,bazel_lib bazel_lib+", - "REPO_MAPPING:aspect_tools_telemetry+,bazel_skylib bazel_skylib+" + "REPO_MAPPING:aspect_tools_telemetry+,bazel_skylib bazel_skylib+", + "ENV:ASPECT_TOOLS_TELEMETRY_TEST \\0" ], "generatedRepoSpecs": { "aspect_tools_telemetry_report": { "repoRuleId": "@@aspect_tools_telemetry+//:extension.bzl%tel_repository", "attributes": { "deps": { - "aspect_rules_js": "3.1.2", - "aspect_rules_ts": "3.8.8", - "aspect_tools_telemetry": "0.3.3" - } + "aspect_rules_js": "3.2.3", + "aspect_rules_ts": "3.9.2", + "aspect_tools_telemetry": "0.4.2" + }, + "last_notice": 1 } } + }, + "moduleExtensionMetadata": { + "useAllRepos": "NO", + "reproducible": false } } }, @@ -449,425 +431,6 @@ } } }, - "@@rules_nodejs+//nodejs:extensions.bzl%node": { - "general": { - "bzlTransitiveDigest": "oZFClfRhTTwsYzpxVPkOpOt/r0+OzEfEV37au0jFZ0s=", - "usagesDigest": "rmuj3zuYtKpBbldwwQvwLpB0VwZVHNwpx5rco2PvuLY=", - "recordedInputs": [], - "generatedRepoSpecs": { - "nodejs_linux_amd64": { - "repoRuleId": "@@rules_nodejs+//nodejs:repositories.bzl%_nodejs_repositories", - "attributes": { - "node_download_auth": {}, - "node_repositories": { - "24.14.1-darwin_arm64": [ - "node-v24.14.1-darwin-arm64.tar.gz", - "node-v24.14.1-darwin-arm64", - "25495ff85bd89e2d8a24d88566d7e2f827c6b0d3d872b2cebf75371f93fcb1fe" - ], - "24.14.1-darwin_amd64": [ - "node-v24.14.1-darwin-x64.tar.gz", - "node-v24.14.1-darwin-x64", - "2526230ad7d922be82d4fdb1e7ee1e84303e133e3b4b0ec4c2897ab31de0253d" - ], - "24.14.1-linux_arm64": [ - "node-v24.14.1-linux-arm64.tar.xz", - "node-v24.14.1-linux-arm64", - "71e427e28b78846f201d4d5ecc30cb13d1508ca099ef3871889a1256c7d6f67e" - ], - "24.14.1-linux_ppc64le": [ - "node-v24.14.1-linux-ppc64le.tar.xz", - "node-v24.14.1-linux-ppc64le", - "95bf0c8dbb73144edb79a57399f03c70af6995b78e1c632926e53e6404662ef5" - ], - "24.14.1-linux_s390x": [ - "node-v24.14.1-linux-s390x.tar.xz", - "node-v24.14.1-linux-s390x", - "ed3bfbc0ff418b0ec4633f23d53a12a691717a34b041c3fbdb296c8774e5a98a" - ], - "24.14.1-linux_amd64": [ - "node-v24.14.1-linux-x64.tar.xz", - "node-v24.14.1-linux-x64", - "84d38715d449447117d05c3e71acd78daa49d5b1bfa8aacf610303920c3322be" - ], - "24.14.1-windows_amd64": [ - "node-v24.14.1-win-x64.zip", - "node-v24.14.1-win-x64", - "6e50ce5498c0cebc20fd39ab3ff5df836ed2f8a31aa093cecad8497cff126d70" - ] - }, - "node_urls": [ - "https://nodejs.org/dist/v{version}/{filename}" - ], - "node_version": "24.14.1", - "include_headers": false, - "platform": "linux_amd64" - } - }, - "nodejs_linux_arm64": { - "repoRuleId": "@@rules_nodejs+//nodejs:repositories.bzl%_nodejs_repositories", - "attributes": { - "node_download_auth": {}, - "node_repositories": { - "24.14.1-darwin_arm64": [ - "node-v24.14.1-darwin-arm64.tar.gz", - "node-v24.14.1-darwin-arm64", - "25495ff85bd89e2d8a24d88566d7e2f827c6b0d3d872b2cebf75371f93fcb1fe" - ], - "24.14.1-darwin_amd64": [ - "node-v24.14.1-darwin-x64.tar.gz", - "node-v24.14.1-darwin-x64", - "2526230ad7d922be82d4fdb1e7ee1e84303e133e3b4b0ec4c2897ab31de0253d" - ], - "24.14.1-linux_arm64": [ - "node-v24.14.1-linux-arm64.tar.xz", - "node-v24.14.1-linux-arm64", - "71e427e28b78846f201d4d5ecc30cb13d1508ca099ef3871889a1256c7d6f67e" - ], - "24.14.1-linux_ppc64le": [ - "node-v24.14.1-linux-ppc64le.tar.xz", - "node-v24.14.1-linux-ppc64le", - "95bf0c8dbb73144edb79a57399f03c70af6995b78e1c632926e53e6404662ef5" - ], - "24.14.1-linux_s390x": [ - "node-v24.14.1-linux-s390x.tar.xz", - "node-v24.14.1-linux-s390x", - "ed3bfbc0ff418b0ec4633f23d53a12a691717a34b041c3fbdb296c8774e5a98a" - ], - "24.14.1-linux_amd64": [ - "node-v24.14.1-linux-x64.tar.xz", - "node-v24.14.1-linux-x64", - "84d38715d449447117d05c3e71acd78daa49d5b1bfa8aacf610303920c3322be" - ], - "24.14.1-windows_amd64": [ - "node-v24.14.1-win-x64.zip", - "node-v24.14.1-win-x64", - "6e50ce5498c0cebc20fd39ab3ff5df836ed2f8a31aa093cecad8497cff126d70" - ] - }, - "node_urls": [ - "https://nodejs.org/dist/v{version}/{filename}" - ], - "node_version": "24.14.1", - "include_headers": false, - "platform": "linux_arm64" - } - }, - "nodejs_linux_s390x": { - "repoRuleId": "@@rules_nodejs+//nodejs:repositories.bzl%_nodejs_repositories", - "attributes": { - "node_download_auth": {}, - "node_repositories": { - "24.14.1-darwin_arm64": [ - "node-v24.14.1-darwin-arm64.tar.gz", - "node-v24.14.1-darwin-arm64", - "25495ff85bd89e2d8a24d88566d7e2f827c6b0d3d872b2cebf75371f93fcb1fe" - ], - "24.14.1-darwin_amd64": [ - "node-v24.14.1-darwin-x64.tar.gz", - "node-v24.14.1-darwin-x64", - "2526230ad7d922be82d4fdb1e7ee1e84303e133e3b4b0ec4c2897ab31de0253d" - ], - "24.14.1-linux_arm64": [ - "node-v24.14.1-linux-arm64.tar.xz", - "node-v24.14.1-linux-arm64", - "71e427e28b78846f201d4d5ecc30cb13d1508ca099ef3871889a1256c7d6f67e" - ], - "24.14.1-linux_ppc64le": [ - "node-v24.14.1-linux-ppc64le.tar.xz", - "node-v24.14.1-linux-ppc64le", - "95bf0c8dbb73144edb79a57399f03c70af6995b78e1c632926e53e6404662ef5" - ], - "24.14.1-linux_s390x": [ - "node-v24.14.1-linux-s390x.tar.xz", - "node-v24.14.1-linux-s390x", - "ed3bfbc0ff418b0ec4633f23d53a12a691717a34b041c3fbdb296c8774e5a98a" - ], - "24.14.1-linux_amd64": [ - "node-v24.14.1-linux-x64.tar.xz", - "node-v24.14.1-linux-x64", - "84d38715d449447117d05c3e71acd78daa49d5b1bfa8aacf610303920c3322be" - ], - "24.14.1-windows_amd64": [ - "node-v24.14.1-win-x64.zip", - "node-v24.14.1-win-x64", - "6e50ce5498c0cebc20fd39ab3ff5df836ed2f8a31aa093cecad8497cff126d70" - ] - }, - "node_urls": [ - "https://nodejs.org/dist/v{version}/{filename}" - ], - "node_version": "24.14.1", - "include_headers": false, - "platform": "linux_s390x" - } - }, - "nodejs_linux_ppc64le": { - "repoRuleId": "@@rules_nodejs+//nodejs:repositories.bzl%_nodejs_repositories", - "attributes": { - "node_download_auth": {}, - "node_repositories": { - "24.14.1-darwin_arm64": [ - "node-v24.14.1-darwin-arm64.tar.gz", - "node-v24.14.1-darwin-arm64", - "25495ff85bd89e2d8a24d88566d7e2f827c6b0d3d872b2cebf75371f93fcb1fe" - ], - "24.14.1-darwin_amd64": [ - "node-v24.14.1-darwin-x64.tar.gz", - "node-v24.14.1-darwin-x64", - "2526230ad7d922be82d4fdb1e7ee1e84303e133e3b4b0ec4c2897ab31de0253d" - ], - "24.14.1-linux_arm64": [ - "node-v24.14.1-linux-arm64.tar.xz", - "node-v24.14.1-linux-arm64", - "71e427e28b78846f201d4d5ecc30cb13d1508ca099ef3871889a1256c7d6f67e" - ], - "24.14.1-linux_ppc64le": [ - "node-v24.14.1-linux-ppc64le.tar.xz", - "node-v24.14.1-linux-ppc64le", - "95bf0c8dbb73144edb79a57399f03c70af6995b78e1c632926e53e6404662ef5" - ], - "24.14.1-linux_s390x": [ - "node-v24.14.1-linux-s390x.tar.xz", - "node-v24.14.1-linux-s390x", - "ed3bfbc0ff418b0ec4633f23d53a12a691717a34b041c3fbdb296c8774e5a98a" - ], - "24.14.1-linux_amd64": [ - "node-v24.14.1-linux-x64.tar.xz", - "node-v24.14.1-linux-x64", - "84d38715d449447117d05c3e71acd78daa49d5b1bfa8aacf610303920c3322be" - ], - "24.14.1-windows_amd64": [ - "node-v24.14.1-win-x64.zip", - "node-v24.14.1-win-x64", - "6e50ce5498c0cebc20fd39ab3ff5df836ed2f8a31aa093cecad8497cff126d70" - ] - }, - "node_urls": [ - "https://nodejs.org/dist/v{version}/{filename}" - ], - "node_version": "24.14.1", - "include_headers": false, - "platform": "linux_ppc64le" - } - }, - "nodejs_darwin_amd64": { - "repoRuleId": "@@rules_nodejs+//nodejs:repositories.bzl%_nodejs_repositories", - "attributes": { - "node_download_auth": {}, - "node_repositories": { - "24.14.1-darwin_arm64": [ - "node-v24.14.1-darwin-arm64.tar.gz", - "node-v24.14.1-darwin-arm64", - "25495ff85bd89e2d8a24d88566d7e2f827c6b0d3d872b2cebf75371f93fcb1fe" - ], - "24.14.1-darwin_amd64": [ - "node-v24.14.1-darwin-x64.tar.gz", - "node-v24.14.1-darwin-x64", - "2526230ad7d922be82d4fdb1e7ee1e84303e133e3b4b0ec4c2897ab31de0253d" - ], - "24.14.1-linux_arm64": [ - "node-v24.14.1-linux-arm64.tar.xz", - "node-v24.14.1-linux-arm64", - "71e427e28b78846f201d4d5ecc30cb13d1508ca099ef3871889a1256c7d6f67e" - ], - "24.14.1-linux_ppc64le": [ - "node-v24.14.1-linux-ppc64le.tar.xz", - "node-v24.14.1-linux-ppc64le", - "95bf0c8dbb73144edb79a57399f03c70af6995b78e1c632926e53e6404662ef5" - ], - "24.14.1-linux_s390x": [ - "node-v24.14.1-linux-s390x.tar.xz", - "node-v24.14.1-linux-s390x", - "ed3bfbc0ff418b0ec4633f23d53a12a691717a34b041c3fbdb296c8774e5a98a" - ], - "24.14.1-linux_amd64": [ - "node-v24.14.1-linux-x64.tar.xz", - "node-v24.14.1-linux-x64", - "84d38715d449447117d05c3e71acd78daa49d5b1bfa8aacf610303920c3322be" - ], - "24.14.1-windows_amd64": [ - "node-v24.14.1-win-x64.zip", - "node-v24.14.1-win-x64", - "6e50ce5498c0cebc20fd39ab3ff5df836ed2f8a31aa093cecad8497cff126d70" - ] - }, - "node_urls": [ - "https://nodejs.org/dist/v{version}/{filename}" - ], - "node_version": "24.14.1", - "include_headers": false, - "platform": "darwin_amd64" - } - }, - "nodejs_darwin_arm64": { - "repoRuleId": "@@rules_nodejs+//nodejs:repositories.bzl%_nodejs_repositories", - "attributes": { - "node_download_auth": {}, - "node_repositories": { - "24.14.1-darwin_arm64": [ - "node-v24.14.1-darwin-arm64.tar.gz", - "node-v24.14.1-darwin-arm64", - "25495ff85bd89e2d8a24d88566d7e2f827c6b0d3d872b2cebf75371f93fcb1fe" - ], - "24.14.1-darwin_amd64": [ - "node-v24.14.1-darwin-x64.tar.gz", - "node-v24.14.1-darwin-x64", - "2526230ad7d922be82d4fdb1e7ee1e84303e133e3b4b0ec4c2897ab31de0253d" - ], - "24.14.1-linux_arm64": [ - "node-v24.14.1-linux-arm64.tar.xz", - "node-v24.14.1-linux-arm64", - "71e427e28b78846f201d4d5ecc30cb13d1508ca099ef3871889a1256c7d6f67e" - ], - "24.14.1-linux_ppc64le": [ - "node-v24.14.1-linux-ppc64le.tar.xz", - "node-v24.14.1-linux-ppc64le", - "95bf0c8dbb73144edb79a57399f03c70af6995b78e1c632926e53e6404662ef5" - ], - "24.14.1-linux_s390x": [ - "node-v24.14.1-linux-s390x.tar.xz", - "node-v24.14.1-linux-s390x", - "ed3bfbc0ff418b0ec4633f23d53a12a691717a34b041c3fbdb296c8774e5a98a" - ], - "24.14.1-linux_amd64": [ - "node-v24.14.1-linux-x64.tar.xz", - "node-v24.14.1-linux-x64", - "84d38715d449447117d05c3e71acd78daa49d5b1bfa8aacf610303920c3322be" - ], - "24.14.1-windows_amd64": [ - "node-v24.14.1-win-x64.zip", - "node-v24.14.1-win-x64", - "6e50ce5498c0cebc20fd39ab3ff5df836ed2f8a31aa093cecad8497cff126d70" - ] - }, - "node_urls": [ - "https://nodejs.org/dist/v{version}/{filename}" - ], - "node_version": "24.14.1", - "include_headers": false, - "platform": "darwin_arm64" - } - }, - "nodejs_windows_amd64": { - "repoRuleId": "@@rules_nodejs+//nodejs:repositories.bzl%_nodejs_repositories", - "attributes": { - "node_download_auth": {}, - "node_repositories": { - "24.14.1-darwin_arm64": [ - "node-v24.14.1-darwin-arm64.tar.gz", - "node-v24.14.1-darwin-arm64", - "25495ff85bd89e2d8a24d88566d7e2f827c6b0d3d872b2cebf75371f93fcb1fe" - ], - "24.14.1-darwin_amd64": [ - "node-v24.14.1-darwin-x64.tar.gz", - "node-v24.14.1-darwin-x64", - "2526230ad7d922be82d4fdb1e7ee1e84303e133e3b4b0ec4c2897ab31de0253d" - ], - "24.14.1-linux_arm64": [ - "node-v24.14.1-linux-arm64.tar.xz", - "node-v24.14.1-linux-arm64", - "71e427e28b78846f201d4d5ecc30cb13d1508ca099ef3871889a1256c7d6f67e" - ], - "24.14.1-linux_ppc64le": [ - "node-v24.14.1-linux-ppc64le.tar.xz", - "node-v24.14.1-linux-ppc64le", - "95bf0c8dbb73144edb79a57399f03c70af6995b78e1c632926e53e6404662ef5" - ], - "24.14.1-linux_s390x": [ - "node-v24.14.1-linux-s390x.tar.xz", - "node-v24.14.1-linux-s390x", - "ed3bfbc0ff418b0ec4633f23d53a12a691717a34b041c3fbdb296c8774e5a98a" - ], - "24.14.1-linux_amd64": [ - "node-v24.14.1-linux-x64.tar.xz", - "node-v24.14.1-linux-x64", - "84d38715d449447117d05c3e71acd78daa49d5b1bfa8aacf610303920c3322be" - ], - "24.14.1-windows_amd64": [ - "node-v24.14.1-win-x64.zip", - "node-v24.14.1-win-x64", - "6e50ce5498c0cebc20fd39ab3ff5df836ed2f8a31aa093cecad8497cff126d70" - ] - }, - "node_urls": [ - "https://nodejs.org/dist/v{version}/{filename}" - ], - "node_version": "24.14.1", - "include_headers": false, - "platform": "windows_amd64" - } - }, - "nodejs_windows_arm64": { - "repoRuleId": "@@rules_nodejs+//nodejs:repositories.bzl%_nodejs_repositories", - "attributes": { - "node_download_auth": {}, - "node_repositories": { - "24.14.1-darwin_arm64": [ - "node-v24.14.1-darwin-arm64.tar.gz", - "node-v24.14.1-darwin-arm64", - "25495ff85bd89e2d8a24d88566d7e2f827c6b0d3d872b2cebf75371f93fcb1fe" - ], - "24.14.1-darwin_amd64": [ - "node-v24.14.1-darwin-x64.tar.gz", - "node-v24.14.1-darwin-x64", - "2526230ad7d922be82d4fdb1e7ee1e84303e133e3b4b0ec4c2897ab31de0253d" - ], - "24.14.1-linux_arm64": [ - "node-v24.14.1-linux-arm64.tar.xz", - "node-v24.14.1-linux-arm64", - "71e427e28b78846f201d4d5ecc30cb13d1508ca099ef3871889a1256c7d6f67e" - ], - "24.14.1-linux_ppc64le": [ - "node-v24.14.1-linux-ppc64le.tar.xz", - "node-v24.14.1-linux-ppc64le", - "95bf0c8dbb73144edb79a57399f03c70af6995b78e1c632926e53e6404662ef5" - ], - "24.14.1-linux_s390x": [ - "node-v24.14.1-linux-s390x.tar.xz", - "node-v24.14.1-linux-s390x", - "ed3bfbc0ff418b0ec4633f23d53a12a691717a34b041c3fbdb296c8774e5a98a" - ], - "24.14.1-linux_amd64": [ - "node-v24.14.1-linux-x64.tar.xz", - "node-v24.14.1-linux-x64", - "84d38715d449447117d05c3e71acd78daa49d5b1bfa8aacf610303920c3322be" - ], - "24.14.1-windows_amd64": [ - "node-v24.14.1-win-x64.zip", - "node-v24.14.1-win-x64", - "6e50ce5498c0cebc20fd39ab3ff5df836ed2f8a31aa093cecad8497cff126d70" - ] - }, - "node_urls": [ - "https://nodejs.org/dist/v{version}/{filename}" - ], - "node_version": "24.14.1", - "include_headers": false, - "platform": "windows_arm64" - } - }, - "nodejs": { - "repoRuleId": "@@rules_nodejs+//nodejs/private:nodejs_repo_host_os_alias.bzl%nodejs_repo_host_os_alias", - "attributes": { - "user_node_repository_name": "nodejs" - } - }, - "nodejs_host": { - "repoRuleId": "@@rules_nodejs+//nodejs/private:nodejs_repo_host_os_alias.bzl%nodejs_repo_host_os_alias", - "attributes": { - "user_node_repository_name": "nodejs" - } - }, - "nodejs_toolchains": { - "repoRuleId": "@@rules_nodejs+//nodejs/private:nodejs_toolchains_repo.bzl%nodejs_toolchains_repo", - "attributes": { - "user_node_repository_name": "nodejs" - } - } - } - } - }, "@@rules_python+//python/uv:uv.bzl%uv": { "general": { "bzlTransitiveDigest": "I8FPZMevE2oI/peSpMBRVIN++WOtfjtJVjbPsBZQ87A=", @@ -1262,7 +825,7 @@ "@@yq.bzl+//yq:extensions.bzl%yq": { "general": { "bzlTransitiveDigest": "tDqk+ntWTdxNAWPDjRY1uITgHbti2jcXR5ZdinltBs0=", - "usagesDigest": "Pz33iK5QtkPFivaljfReN4KzpAqM2DgY4vwgyZSNoAM=", + "usagesDigest": "XGLRpNcVs4WD/zog6U0sXbBo2OlR5O4mc58OU1L3EVc=", "recordedInputs": [], "generatedRepoSpecs": { "yq_darwin_amd64": { @@ -1339,6 +902,9 @@ } }, "facts": { + "@@aspect_tools_telemetry+//:extension.bzl%telemetry": { + "notice_version": "1" + }, "@@rules_go+//go:extensions.bzl%go_sdk": { "1.22.4": { "aix_ppc64": [
diff --git a/polygerrit-ui/app/pnpm-lock.yaml b/polygerrit-ui/app/pnpm-lock.yaml index da97189..6d865aa 100644 --- a/polygerrit-ui/app/pnpm-lock.yaml +++ b/polygerrit-ui/app/pnpm-lock.yaml
@@ -138,15 +138,15 @@ engines: {node: '>=12.0.0'} highlightjs-closure-templates@https://codeload.github.com/highlightjs/highlightjs-closure-templates/tar.gz/02fb0646e0499084f96a99b8c6f4a0d7bd1d33ba: - resolution: {tarball: https://codeload.github.com/highlightjs/highlightjs-closure-templates/tar.gz/02fb0646e0499084f96a99b8c6f4a0d7bd1d33ba} + resolution: {gitHosted: true, tarball: https://codeload.github.com/highlightjs/highlightjs-closure-templates/tar.gz/02fb0646e0499084f96a99b8c6f4a0d7bd1d33ba} version: 0.0.1 highlightjs-epp@https://codeload.github.com/highlightjs/highlightjs-epp/tar.gz/9f9e1a92f37c217c68899c7d3bdccb4d134681b9: - resolution: {tarball: https://codeload.github.com/highlightjs/highlightjs-epp/tar.gz/9f9e1a92f37c217c68899c7d3bdccb4d134681b9} + resolution: {gitHosted: true, tarball: https://codeload.github.com/highlightjs/highlightjs-epp/tar.gz/9f9e1a92f37c217c68899c7d3bdccb4d134681b9} version: 0.0.1 highlightjs-structured-text@https://codeload.github.com/highlightjs/highlightjs-structured-text/tar.gz/e68dd7aa829529fb6c40d6287585f43273605a9e: - resolution: {tarball: https://codeload.github.com/highlightjs/highlightjs-structured-text/tar.gz/e68dd7aa829529fb6c40d6287585f43273605a9e} + resolution: {gitHosted: true, tarball: https://codeload.github.com/highlightjs/highlightjs-structured-text/tar.gz/e68dd7aa829529fb6c40d6287585f43273605a9e} version: 1.4.9 highlightjs-ttcn3@git+https://gitea.osmocom.org/ttcn3/highlightjs-ttcn3.git#6daccff309fca1e7561a43984d42fa4f829ce06d: @@ -154,7 +154,7 @@ version: 0.0.1 highlightjs-vue@https://codeload.github.com/paladox/highlightjs-vue/tar.gz/44eed074ea0110d1ad03d2cbd77d27027cf7bb04: - resolution: {tarball: https://codeload.github.com/paladox/highlightjs-vue/tar.gz/44eed074ea0110d1ad03d2cbd77d27027cf7bb04} + resolution: {gitHosted: true, tarball: https://codeload.github.com/paladox/highlightjs-vue/tar.gz/44eed074ea0110d1ad03d2cbd77d27027cf7bb04} version: 1.1.0 ieee754@1.2.1: @@ -224,7 +224,7 @@ engines: {node: '>= 6'} resemblejs@https://codeload.github.com/rsmbl/Resemble.js/tar.gz/66a55c5bfc3bda2303ad632ee8ce3c727b415917: - resolution: {tarball: https://codeload.github.com/rsmbl/Resemble.js/tar.gz/66a55c5bfc3bda2303ad632ee8ce3c727b415917} + resolution: {gitHosted: true, tarball: https://codeload.github.com/rsmbl/Resemble.js/tar.gz/66a55c5bfc3bda2303ad632ee8ce3c727b415917} version: 5.0.0 rxjs@6.6.7:
diff --git a/polygerrit-ui/app/tsconfig_bazel.json b/polygerrit-ui/app/tsconfig_bazel.json index 730fc4d..8cd5dfb 100644 --- a/polygerrit-ui/app/tsconfig_bazel.json +++ b/polygerrit-ui/app/tsconfig_bazel.json
@@ -1,6 +1,10 @@ { "extends": "./tsconfig.json", "compilerOptions": { + // Override the yarn/IDE outDir from tsconfig.json: rules_ts requires the + // output directory to stay within the Bazel package (kept in sync with + // out_dir of the compile_pg ts_project in the BUILD file). + "outDir": "_pg_ts_out", "typeRoots": [ "../../external/ui_npm/node_modules/@types", "../../external/ui_dev_npm/node_modules/@types"
diff --git a/polygerrit-ui/app/tsconfig_bazel_test.json b/polygerrit-ui/app/tsconfig_bazel_test.json index 7d74ffa..e6fc2cc 100644 --- a/polygerrit-ui/app/tsconfig_bazel_test.json +++ b/polygerrit-ui/app/tsconfig_bazel_test.json
@@ -1,6 +1,10 @@ { "extends": "./tsconfig_bazel.json", "compilerOptions": { + // Override the yarn/IDE outDir from tsconfig.json: rules_ts requires the + // output directory to stay within the Bazel package (kept in sync with + // out_dir of the compile_pg_with_tests ts_project). + "outDir": "_pg_with_tests_out", "typeRoots": [ "node_modules/@types", "../node_modules/@types"
diff --git a/polygerrit-ui/polygerrit.MODULE.bazel b/polygerrit-ui/polygerrit.MODULE.bazel index d839cc8..e04ccd6 100644 --- a/polygerrit-ui/polygerrit.MODULE.bazel +++ b/polygerrit-ui/polygerrit.MODULE.bazel
@@ -27,34 +27,12 @@ ) use_repo(rules_ts_ext, "npm_typescript") -NODE_24_REPO = { - "24.14.1-darwin_arm64": ("node-v24.14.1-darwin-arm64.tar.gz", "node-v24.14.1-darwin-arm64", "25495ff85bd89e2d8a24d88566d7e2f827c6b0d3d872b2cebf75371f93fcb1fe"), - "24.14.1-darwin_amd64": ("node-v24.14.1-darwin-x64.tar.gz", "node-v24.14.1-darwin-x64", "2526230ad7d922be82d4fdb1e7ee1e84303e133e3b4b0ec4c2897ab31de0253d"), - "24.14.1-linux_arm64": ("node-v24.14.1-linux-arm64.tar.xz", "node-v24.14.1-linux-arm64", "71e427e28b78846f201d4d5ecc30cb13d1508ca099ef3871889a1256c7d6f67e"), - "24.14.1-linux_ppc64le": ("node-v24.14.1-linux-ppc64le.tar.xz", "node-v24.14.1-linux-ppc64le", "95bf0c8dbb73144edb79a57399f03c70af6995b78e1c632926e53e6404662ef5"), - "24.14.1-linux_s390x": ("node-v24.14.1-linux-s390x.tar.xz", "node-v24.14.1-linux-s390x", "ed3bfbc0ff418b0ec4633f23d53a12a691717a34b041c3fbdb296c8774e5a98a"), - "24.14.1-linux_amd64": ("node-v24.14.1-linux-x64.tar.xz", "node-v24.14.1-linux-x64", "84d38715d449447117d05c3e71acd78daa49d5b1bfa8aacf610303920c3322be"), - "24.14.1-windows_amd64": ("node-v24.14.1-win-x64.zip", "node-v24.14.1-win-x64", "6e50ce5498c0cebc20fd39ab3ff5df836ed2f8a31aa093cecad8497cff126d70"), -} - +# The node version is read from //:.nvmrc, the cross-tool convention file +# also honored by nvm and CI -- Bazel and the yarn dev flow share one pin. +# Versions unknown to the pinned rules_nodejs release are auto-fetched and +# recorded in MODULE.bazel.lock (rules_nodejs >= 6.7.5). node = use_extension("@rules_nodejs//nodejs:extensions.bzl", "node") -node.toolchain( - name = "nodejs", - node_repositories = NODE_24_REPO, - node_version = "24.14.1", -) -use_repo(node, "nodejs_toolchains") -use_repo(node, "nodejs_darwin_arm64") -use_repo(node, "nodejs_darwin_amd64") -use_repo(node, "nodejs_linux_arm64") -use_repo(node, "nodejs_linux_ppc64le") -use_repo(node, "nodejs_linux_s390x") -use_repo(node, "nodejs_linux_amd64") -use_repo(node, "nodejs_windows_amd64") - -pnpm = use_extension("@aspect_rules_js//npm:extensions.bzl", "pnpm") -pnpm.pnpm(pnpm_version = "10.33.3") -use_repo(pnpm, "pnpm") +node.toolchain(node_version_from_nvmrc = "//:.nvmrc") npm = use_extension("@aspect_rules_js//npm:extensions.bzl", "npm") npm.npm_translate_lock(