Skip to content

Commit af5e6e4

Browse files
committed
feat: upgrade to rules_js 2.0
1 parent d2b5a42 commit af5e6e4

File tree

9 files changed

+49
-95
lines changed

9 files changed

+49
-95
lines changed

MODULE.bazel

Lines changed: 4 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -6,14 +6,14 @@ module(
66
compatibility_level = 1,
77
)
88

9-
bazel_dep(name = "aspect_bazel_lib", version = "1.38.1")
10-
bazel_dep(name = "aspect_rules_js", version = "1.34.0")
11-
bazel_dep(name = "bazel_skylib", version = "1.4.1")
9+
# Lower-bounds (minimum) versions for direct runtime dependencies
10+
bazel_dep(name = "aspect_bazel_lib", version = "2.7.1")
11+
bazel_dep(name = "aspect_rules_js", version = "2.0.0-alpha.3")
12+
bazel_dep(name = "bazel_skylib", version = "1.5.0")
1213

1314
####### Dev dependencies ########
1415

1516
bazel_dep(name = "bazel_skylib_gazelle_plugin", version = "1.5.0", dev_dependency = True)
1617
bazel_dep(name = "buildifier_prebuilt", version = "6.4.0", dev_dependency = True)
1718
bazel_dep(name = "gazelle", version = "0.36.0", dev_dependency = True, repo_name = "bazel_gazelle")
18-
bazel_dep(name = "rules_go", version = "0.46.0", dev_dependency = True)
1919
bazel_dep(name = "stardoc", version = "0.6.2", dev_dependency = True, repo_name = "io_bazel_stardoc")

WORKSPACE

Lines changed: 3 additions & 16 deletions
Original file line numberDiff line numberDiff line change
@@ -8,24 +8,11 @@ load("//webpack:dependencies.bzl", "rules_webpack_dependencies")
88

99
rules_webpack_dependencies()
1010

11-
load("@aspect_rules_js//js:repositories.bzl", "rules_js_dependencies")
11+
load("@aspect_rules_js//js:toolchains.bzl", "DEFAULT_NODE_VERSION", "rules_js_register_toolchains")
1212

13-
rules_js_dependencies()
13+
rules_js_register_toolchains(node_version = DEFAULT_NODE_VERSION)
1414

15-
load("@aspect_bazel_lib//lib:repositories.bzl", "aspect_bazel_lib_dependencies", "register_coreutils_toolchains")
16-
17-
aspect_bazel_lib_dependencies()
18-
19-
register_coreutils_toolchains()
20-
21-
load("@rules_nodejs//nodejs:repositories.bzl", "DEFAULT_NODE_VERSION", "nodejs_register_toolchains")
22-
23-
nodejs_register_toolchains(
24-
name = "nodejs",
25-
node_version = DEFAULT_NODE_VERSION,
26-
)
27-
28-
load("@aspect_rules_js//npm:npm_import.bzl", "npm_translate_lock")
15+
load("@aspect_rules_js//npm:repositories.bzl", "npm_translate_lock")
2916

3017
npm_translate_lock(
3118
name = "npm",

e2e/loaders/WORKSPACE

Lines changed: 3 additions & 10 deletions
Original file line numberDiff line numberDiff line change
@@ -10,21 +10,14 @@ load("@aspect_rules_webpack//webpack:dependencies.bzl", "rules_webpack_dependenc
1010

1111
rules_webpack_dependencies()
1212

13-
load("@aspect_rules_js//js:repositories.bzl", "rules_js_dependencies")
14-
15-
rules_js_dependencies()
16-
1713
# Fetch and register a nodejs interpreter, if you haven't already
1814

19-
load("@rules_nodejs//nodejs:repositories.bzl", "DEFAULT_NODE_VERSION", "nodejs_register_toolchains")
15+
load("@aspect_rules_js//js:toolchains.bzl", "DEFAULT_NODE_VERSION", "rules_js_register_toolchains")
2016

21-
nodejs_register_toolchains(
22-
name = "node",
23-
node_version = DEFAULT_NODE_VERSION,
24-
)
17+
rules_js_register_toolchains(node_version = DEFAULT_NODE_VERSION)
2518

2619
# brought as a dep by webpack ruleset
27-
load("@aspect_rules_js//npm:npm_import.bzl", "npm_translate_lock")
20+
load("@aspect_rules_js//npm:repositories.bzl", "npm_translate_lock")
2821

2922
npm_translate_lock(
3023
name = "npm",

e2e/smoke/MODULE.bazel

Lines changed: 5 additions & 7 deletions
Original file line numberDiff line numberDiff line change
@@ -1,16 +1,14 @@
1-
"Bazel dependencies"
2-
3-
bazel_dep(name = "aspect_bazel_lib", version = "1.32.0")
4-
bazel_dep(name = "aspect_rules_js", version = "1.33.1")
5-
bazel_dep(name = "bazel_skylib", version = "1.4.1")
6-
71
bazel_dep(name = "aspect_rules_webpack", version = "0.0.0", dev_dependency = True)
82
local_path_override(
93
module_name = "aspect_rules_webpack",
104
path = "../..",
115
)
126

13-
npm = use_extension("@aspect_rules_js//npm:extensions.bzl", "npm")
7+
bazel_dep(name = "aspect_bazel_lib", version = "2.7.1", dev_dependency = True)
8+
bazel_dep(name = "aspect_rules_js", version = "2.0.0-alpha.3", dev_dependency = True)
9+
bazel_dep(name = "bazel_skylib", version = "1.5.0", dev_dependency = True)
10+
11+
npm = use_extension("@aspect_rules_js//npm:extensions.bzl", "npm", dev_dependency = True)
1412
npm.npm_translate_lock(
1513
name = "v4-npm",
1614
pnpm_lock = "//v4:pnpm-lock.yaml",

e2e/smoke/WORKSPACE.bazel

Lines changed: 3 additions & 10 deletions
Original file line numberDiff line numberDiff line change
@@ -16,20 +16,13 @@ load("@aspect_rules_webpack//webpack:dependencies.bzl", "rules_webpack_dependenc
1616

1717
rules_webpack_dependencies()
1818

19-
load("@aspect_rules_js//js:repositories.bzl", "rules_js_dependencies")
20-
21-
rules_js_dependencies()
22-
2319
# Fetch and register a nodejs interpreter, if you haven't already
2420

25-
load("@rules_nodejs//nodejs:repositories.bzl", "DEFAULT_NODE_VERSION", "nodejs_register_toolchains")
21+
load("@aspect_rules_js//js:toolchains.bzl", "DEFAULT_NODE_VERSION", "rules_js_register_toolchains")
2622

27-
nodejs_register_toolchains(
28-
name = "node",
29-
node_version = DEFAULT_NODE_VERSION,
30-
)
23+
rules_js_register_toolchains(node_version = DEFAULT_NODE_VERSION)
3124

32-
load("@aspect_rules_js//npm:npm_import.bzl", "npm_translate_lock")
25+
load("@aspect_rules_js//npm:repositories.bzl", "npm_translate_lock")
3326

3427
npm_translate_lock(
3528
name = "v4-npm",

e2e/worker/WORKSPACE

Lines changed: 3 additions & 10 deletions
Original file line numberDiff line numberDiff line change
@@ -10,20 +10,13 @@ load("@aspect_rules_webpack//webpack:dependencies.bzl", "rules_webpack_dependenc
1010

1111
rules_webpack_dependencies()
1212

13-
load("@aspect_rules_js//js:repositories.bzl", "rules_js_dependencies")
14-
15-
rules_js_dependencies()
16-
1713
# Fetch and register a nodejs interpreter, if you haven't already
1814

19-
load("@rules_nodejs//nodejs:repositories.bzl", "DEFAULT_NODE_VERSION", "nodejs_register_toolchains")
15+
load("@aspect_rules_js//js:toolchains.bzl", "DEFAULT_NODE_VERSION", "rules_js_register_toolchains")
2016

21-
nodejs_register_toolchains(
22-
name = "node",
23-
node_version = DEFAULT_NODE_VERSION,
24-
)
17+
rules_js_register_toolchains(node_version = DEFAULT_NODE_VERSION)
2518

26-
load("@aspect_rules_js//npm:npm_import.bzl", "npm_translate_lock")
19+
load("@aspect_rules_js//npm:repositories.bzl", "npm_translate_lock")
2720

2821
npm_translate_lock(
2922
name = "npm",

internal_deps.bzl

Lines changed: 0 additions & 8 deletions
Original file line numberDiff line numberDiff line change
@@ -10,14 +10,6 @@ load("//webpack/private:maybe.bzl", http_archive = "maybe_http_archive")
1010
def rules_webpack_internal_deps():
1111
"Fetch repositories used for developing the rules"
1212

13-
# opt-in to 2.0 without forcing users to do so
14-
http_archive(
15-
name = "aspect_bazel_lib",
16-
sha256 = "c858cc637db5370f6fd752478d1153955b4b4cbec7ffe95eb4a47a48499a79c3",
17-
strip_prefix = "bazel-lib-2.0.3",
18-
url = "https://github.com/aspect-build/bazel-lib/releases/download/v2.0.3/bazel-lib-v2.0.3.tar.gz",
19-
)
20-
2113
http_archive(
2214
name = "io_bazel_rules_go",
2315
sha256 = "80a98277ad1311dacd837f9b16db62887702e9f1d1c4c9f796d0121a46c8e184",

webpack/dependencies.bzl

Lines changed: 11 additions & 10 deletions
Original file line numberDiff line numberDiff line change
@@ -9,26 +9,27 @@ load("//webpack/private:maybe.bzl", http_archive = "maybe_http_archive")
99
def rules_webpack_dependencies():
1010
http_archive(
1111
name = "bazel_skylib",
12-
sha256 = "b8a1527901774180afc798aeb28c4634bdccf19c4d98e7bdd1ce79d1fe9aaad7",
13-
urls = ["https://github.com/bazelbuild/bazel-skylib/releases/download/1.4.1/bazel-skylib-1.4.1.tar.gz"],
12+
sha256 = "cd55a062e763b9349921f0f5db8c3933288dc8ba4f76dd9416aac68acee3cb94",
13+
urls = ["https://github.com/bazelbuild/bazel-skylib/releases/download/1.5.0/bazel-skylib-1.5.0.tar.gz"],
1414
)
1515

1616
http_archive(
1717
name = "aspect_bazel_lib",
18-
sha256 = "262e3d6693cdc16dd43880785cdae13c64e6a3f63f75b1993c716295093d117f",
19-
strip_prefix = "bazel-lib-1.38.1",
20-
url = "https://github.com/aspect-build/bazel-lib/releases/download/v1.38.1/bazel-lib-v1.38.1.tar.gz",
18+
sha256 = "b554eb7942a5ab44c90077df6a0c76fc67c5874c9446a007e9ba68be82bd4796",
19+
strip_prefix = "bazel-lib-2.7.1",
20+
url = "https://github.com/aspect-build/bazel-lib/releases/download/v2.7.1/bazel-lib-v2.7.1.tar.gz",
2121
)
2222

2323
http_archive(
2424
name = "aspect_rules_js",
25-
sha256 = "d9ceb89e97bb5ad53b278148e01a77a3e9100db272ce4ebdcd59889d26b9076e",
26-
strip_prefix = "rules_js-1.34.0",
27-
url = "https://github.com/aspect-build/rules_js/releases/download/v1.34.0/rules_js-v1.34.0.tar.gz",
25+
sha256 = "32546833201bec90457c20b979889cccd2049ec6766a57dc51d184e02cb88200",
26+
strip_prefix = "rules_js-2.0.0-alpha.3",
27+
url = "https://github.com/aspect-build/rules_js/releases/download/v2.0.0-alpha.3/rules_js-v2.0.0-alpha.3.tar.gz",
2828
)
2929

3030
http_archive(
3131
name = "rules_nodejs",
32-
sha256 = "764a3b3757bb8c3c6a02ba3344731a3d71e558220adcb0cf7e43c9bba2c37ba8",
33-
urls = ["https://github.com/bazelbuild/rules_nodejs/releases/download/5.8.2/rules_nodejs-core-5.8.2.tar.gz"],
32+
sha256 = "dddd60acc3f2f30359bef502c9d788f67e33814b0ddd99aa27c5a15eb7a41b8c",
33+
strip_prefix = "rules_nodejs-6.1.0",
34+
url = "https://github.com/bazelbuild/rules_nodejs/releases/download/v6.1.0/rules_nodejs-v6.1.0.tar.gz",
3435
)

webpack/private/webpack_bundle.bzl

Lines changed: 17 additions & 20 deletions
Original file line numberDiff line numberDiff line change
@@ -164,12 +164,13 @@ def _impl(ctx):
164164
inputs.extend(ctx.files.entry_points)
165165
inputs = depset(
166166
copy_files_to_bin_actions(ctx, inputs) + no_copy_bin_inputs,
167-
transitive = [webpack_runfiles] + [js_lib_helpers.gather_files_from_js_providers(
167+
transitive = [webpack_runfiles] + [js_lib_helpers.gather_files_from_js_infos(
168168
targets = ctx.attr.srcs + ctx.attr.deps,
169+
include_sources = True,
170+
include_types = False,
169171
include_transitive_sources = True,
170-
# Upstream Type-check actions should not be triggered by bundling
171-
include_declarations = False,
172-
include_npm_linked_packages = True,
172+
include_transitive_types = False,
173+
include_npm_sources = True,
173174
)],
174175
)
175176

@@ -184,14 +185,14 @@ def _impl(ctx):
184185
env = env,
185186
)
186187

187-
npm_linked_packages = js_lib_helpers.gather_npm_linked_packages(
188+
# If a subset of linked npm dependencies are not bundled, it is up to the user to re-specify
189+
# these in `data` if they are runtime dependencies to progagate to binary rules or `srcs` if
190+
# they are to be propagated to downstream build targets.
191+
npm_sources = js_lib_helpers.gather_npm_sources(
188192
srcs = ctx.attr.srcs,
189193
deps = [],
190194
)
191-
192-
npm_package_store_deps = js_lib_helpers.gather_npm_package_store_deps(
193-
# Since we're bundling, only propagate `data` npm packages to the direct dependencies of
194-
# downstream linked `npm_package` targets instead of the common `data` and `deps` pattern.
195+
npm_package_store_infos = js_lib_helpers.gather_npm_package_store_infos(
195196
targets = ctx.attr.data,
196197
)
197198

@@ -207,19 +208,15 @@ def _impl(ctx):
207208

208209
return [
209210
js_info(
210-
npm_linked_package_files = npm_linked_packages.direct_files,
211-
npm_linked_packages = npm_linked_packages.direct,
212-
npm_package_store_deps = npm_package_store_deps,
211+
target = ctx.label,
213212
sources = output_sources_depset,
214-
# Since we're bundling, we don't propagate linked npm packages from dependencies since
215-
# they are bundled and the dependencies are dropped. If a subset of linked npm
216-
# dependencies are not bundled it is up the the user to re-specify these in `data` if
217-
# they are runtime dependencies to propagate to binary rules or `srcs` if they are to be
218-
# propagated to downstream build targets.
219-
transitive_npm_linked_package_files = npm_linked_packages.transitive_files,
220-
transitive_npm_linked_packages = npm_linked_packages.transitive,
221-
# Since we're bundling, we don't propagate any transitive output_sources from dependencies
213+
types = depset(), # webpack does not emit types directly
214+
# Since we're bundling, don't propogate any transitive sources or declarations since sources
215+
# are typically bundled into the output.
222216
transitive_sources = output_sources_depset,
217+
transitive_types = depset(),
218+
npm_sources = npm_sources,
219+
npm_package_store_infos = npm_package_store_infos,
223220
),
224221
DefaultInfo(
225222
files = output_sources_depset,

0 commit comments

Comments
 (0)