From 7cc48ac4860a01c9351779cefb6acaa4f406c560 Mon Sep 17 00:00:00 2001 From: Greg Magolan Date: Sat, 20 Apr 2024 17:30:12 -0700 Subject: [PATCH] feat: upgrade to rules_js 2.0 --- .bazeliskrc | 2 +- .bazelversion | 2 +- .github/workflows/ci.yaml | 3 +- .gitignore | 11 ++++++- .pre-commit-config.yaml | 6 ++-- BUILD.bazel | 15 ++++++--- MODULE.bazel | 16 ++++++---- WORKSPACE | 51 ++++++++++++++++-------------- e2e/loaders/BUILD.bazel | 4 +-- e2e/loaders/WORKSPACE | 13 ++------ e2e/smoke/MODULE.bazel | 12 +++---- e2e/smoke/WORKSPACE.bazel | 13 ++------ e2e/worker/BUILD.bazel | 2 +- e2e/worker/WORKSPACE | 13 ++------ internal_deps.bzl | 32 +++++++------------ webpack/dependencies.bzl | 21 ++++++------ webpack/private/webpack_bundle.bzl | 37 ++++++++++------------ webpack/tests/simple/BUILD.bazel | 2 +- 18 files changed, 122 insertions(+), 133 deletions(-) diff --git a/.bazeliskrc b/.bazeliskrc index a28c887..269fbb0 100644 --- a/.bazeliskrc +++ b/.bazeliskrc @@ -1,2 +1,2 @@ BAZELISK_BASE_URL=https://github.com/aspect-build/aspect-cli/releases/download -USE_BAZEL_VERSION=aspect/5.7.2 +USE_BAZEL_VERSION=aspect/5.9.25 diff --git a/.bazelversion b/.bazelversion index 6c7efdc..2b1ea10 100644 --- a/.bazelversion +++ b/.bazelversion @@ -1,4 +1,4 @@ -6.3.2 +7.1.1 # The first line of this file is used by Bazelisk and Bazel to be sure # the right version of Bazel is used to build and test this repo. # This also defines which version is used on CI. diff --git a/.github/workflows/ci.yaml b/.github/workflows/ci.yaml index 736adca..cc750e9 100644 --- a/.github/workflows/ci.yaml +++ b/.github/workflows/ci.yaml @@ -28,8 +28,7 @@ jobs: runs-on: ubuntu-latest steps: - uses: actions/checkout@v3 - # TODO(alex): add testing on Bazel 7 - - id: bazel_6 + - id: bazel_7 run: echo "bazelversion=$(head -n 1 .bazelversion)" >> $GITHUB_OUTPUT outputs: # Will look like ["", ...] diff --git a/.gitignore b/.gitignore index 47ddd74..1a4a203 100644 --- a/.gitignore +++ b/.gitignore @@ -3,4 +3,13 @@ dist node_modules .DS_Store aspect-build-webpack-* -.bazelrc.user \ No newline at end of file +.bazelrc.user + +# Don't commit lockfile for now as it is unstable. Do allow for it to be +# created, however, since it gives a performance boost for local development. +# https://github.com/bazelbuild/bazel/issues/19026 +# https://github.com/bazelbuild/bazel/issues/19621 +# https://github.com/bazelbuild/bazel/issues/19971 +# https://github.com/bazelbuild/bazel/issues/20272 +# https://github.com/bazelbuild/bazel/issues/20369 +MODULE.bazel.lock diff --git a/.pre-commit-config.yaml b/.pre-commit-config.yaml index 014f49a..cb16842 100644 --- a/.pre-commit-config.yaml +++ b/.pre-commit-config.yaml @@ -9,18 +9,18 @@ default_stages: [commit] repos: # Check formatting and lint for starlark code - repo: https://github.com/keith/pre-commit-buildifier - rev: 4.0.1.1 + rev: 6.4.0 hooks: - id: buildifier - id: buildifier-lint # Enforce that commit messages allow for later changelog generation - repo: https://github.com/commitizen-tools/commitizen - rev: v2.18.0 + rev: v3.24.0 hooks: # Requires that commitizen is already installed - id: commitizen stages: [commit-msg] - repo: https://github.com/pre-commit/mirrors-prettier - rev: 'v2.4.0' + rev: v3.1.0 hooks: - id: prettier diff --git a/BUILD.bazel b/BUILD.bazel index 9005145..0baef78 100644 --- a/BUILD.bazel +++ b/BUILD.bazel @@ -1,5 +1,5 @@ -load("@bazel_skylib//:bzl_library.bzl", "bzl_library") load("@bazel_gazelle//:def.bzl", "gazelle", "gazelle_binary") +load("@bazel_skylib//:bzl_library.bzl", "bzl_library") load("@buildifier_prebuilt//:rules.bzl", "buildifier") load("@npm//:defs.bzl", "npm_link_all_packages") @@ -11,16 +11,23 @@ gazelle_binary( ) # gazelle:exclude @bazel/* + gazelle( name = "gazelle", gazelle = "gazelle_bin", ) +buildifier( + name = "buildifier", + exclude_patterns = ["./.git/*"], + lint_mode = "fix", + mode = "fix", + tags = ["manual"], # tag as manual so windows ci does not build it by default +) + buildifier( name = "buildifier.check", - exclude_patterns = [ - "./.git/*", - ], + exclude_patterns = ["./.git/*"], lint_mode = "warn", mode = "diff", tags = ["manual"], # tag as manual so windows ci does not build it by default diff --git a/MODULE.bazel b/MODULE.bazel index 8186689..e563e55 100644 --- a/MODULE.bazel +++ b/MODULE.bazel @@ -6,10 +6,14 @@ module( compatibility_level = 1, ) -bazel_dep(name = "aspect_bazel_lib", version = "1.38.1") -bazel_dep(name = "aspect_rules_js", version = "1.34.0") -bazel_dep(name = "bazel_skylib", version = "1.4.1") +# Lower-bounds (minimum) versions for direct runtime dependencies +bazel_dep(name = "aspect_bazel_lib", version = "2.7.1") +bazel_dep(name = "aspect_rules_js", version = "2.0.0-alpha.2") +bazel_dep(name = "bazel_skylib", version = "1.5.0") -bazel_dep(name = "gazelle", version = "0.29.0", dev_dependency = True, repo_name = "bazel_gazelle") -bazel_dep(name = "bazel_skylib_gazelle_plugin", version = "1.4.1", dev_dependency = True) -bazel_dep(name = "buildifier_prebuilt", version = "6.1.2.1", dev_dependency = True) +####### Dev dependencies ######## + +bazel_dep(name = "bazel_skylib_gazelle_plugin", version = "1.5.0", dev_dependency = True) +bazel_dep(name = "buildifier_prebuilt", version = "6.4.0", dev_dependency = True) +bazel_dep(name = "gazelle", version = "0.36.0", dev_dependency = True, repo_name = "bazel_gazelle") +bazel_dep(name = "stardoc", version = "0.6.2", dev_dependency = True, repo_name = "io_bazel_stardoc") diff --git a/WORKSPACE b/WORKSPACE index b130ad0..f59fd7e 100644 --- a/WORKSPACE +++ b/WORKSPACE @@ -1,9 +1,4 @@ -# Declare the local Bazel workspace. -# This is *not* included in the published distribution. -workspace( - # see https://docs.bazel.build/versions/main/skylark/deploying.html#workspace - name = "aspect_rules_webpack", -) +workspace(name = "aspect_rules_webpack") load("//:internal_deps.bzl", "rules_webpack_internal_deps") @@ -13,24 +8,11 @@ load("//webpack:dependencies.bzl", "rules_webpack_dependencies") rules_webpack_dependencies() -load("@aspect_rules_js//js:repositories.bzl", "rules_js_dependencies") - -rules_js_dependencies() - -load("@aspect_bazel_lib//lib:repositories.bzl", "aspect_bazel_lib_dependencies", "register_coreutils_toolchains") +load("@aspect_rules_js//js:toolchains.bzl", "DEFAULT_NODE_VERSION", "rules_js_register_toolchains") -aspect_bazel_lib_dependencies() +rules_js_register_toolchains(node_version = DEFAULT_NODE_VERSION) -register_coreutils_toolchains() - -load("@rules_nodejs//nodejs:repositories.bzl", "DEFAULT_NODE_VERSION", "nodejs_register_toolchains") - -nodejs_register_toolchains( - name = "nodejs", - node_version = DEFAULT_NODE_VERSION, -) - -load("@aspect_rules_js//npm:npm_import.bzl", "npm_translate_lock") +load("@aspect_rules_js//npm:repositories.bzl", "npm_translate_lock") npm_translate_lock( name = "npm", @@ -48,10 +30,11 @@ load("@bazel_skylib//lib:unittest.bzl", "register_unittest_toolchains") register_unittest_toolchains() +load("@bazel_gazelle//:deps.bzl", "gazelle_dependencies") + ############################################ # Gazelle, for generating bzl_library targets load("@io_bazel_rules_go//go:deps.bzl", "go_register_toolchains", "go_rules_dependencies") -load("@bazel_gazelle//:deps.bzl", "gazelle_dependencies") go_rules_dependencies() @@ -59,6 +42,28 @@ go_register_toolchains(version = "1.19.3") gazelle_dependencies() +############################################ +# Stardoc +load("@io_bazel_stardoc//:setup.bzl", "stardoc_repositories") + +stardoc_repositories() + +load("@rules_jvm_external//:repositories.bzl", "rules_jvm_external_deps") + +rules_jvm_external_deps() + +load("@rules_jvm_external//:setup.bzl", "rules_jvm_external_setup") + +rules_jvm_external_setup() + +load("@io_bazel_stardoc//:deps.bzl", "stardoc_external_deps") + +stardoc_external_deps() + +load("@stardoc_maven//:defs.bzl", stardoc_pinned_maven_install = "pinned_maven_install") + +stardoc_pinned_maven_install() + # Buildifier load("@buildifier_prebuilt//:deps.bzl", "buildifier_prebuilt_deps") diff --git a/e2e/loaders/BUILD.bazel b/e2e/loaders/BUILD.bazel index b9c75c7..f13b68a 100644 --- a/e2e/loaders/BUILD.bazel +++ b/e2e/loaders/BUILD.bazel @@ -1,7 +1,7 @@ -load("@npm//:defs.bzl", "npm_link_all_packages") +load("@aspect_rules_js//js:defs.bzl", "js_run_devserver") load("@aspect_rules_webpack//webpack:defs.bzl", "webpack_bundle") load("@bazel_skylib//rules:build_test.bzl", "build_test") -load("@aspect_rules_js//js:defs.bzl", "js_run_devserver") +load("@npm//:defs.bzl", "npm_link_all_packages") load("@npm//:http-server/package_json.bzl", http_server_bin = "bin") http_server_bin.http_server_binary( diff --git a/e2e/loaders/WORKSPACE b/e2e/loaders/WORKSPACE index c34ddd5..64afe8e 100644 --- a/e2e/loaders/WORKSPACE +++ b/e2e/loaders/WORKSPACE @@ -10,21 +10,14 @@ load("@aspect_rules_webpack//webpack:dependencies.bzl", "rules_webpack_dependenc rules_webpack_dependencies() -load("@aspect_rules_js//js:repositories.bzl", "rules_js_dependencies") - -rules_js_dependencies() - # Fetch and register a nodejs interpreter, if you haven't already -load("@rules_nodejs//nodejs:repositories.bzl", "DEFAULT_NODE_VERSION", "nodejs_register_toolchains") +load("@aspect_rules_js//js:toolchains.bzl", "DEFAULT_NODE_VERSION", "rules_js_register_toolchains") -nodejs_register_toolchains( - name = "node", - node_version = DEFAULT_NODE_VERSION, -) +rules_js_register_toolchains(node_version = DEFAULT_NODE_VERSION) # brought as a dep by webpack ruleset -load("@aspect_rules_js//npm:npm_import.bzl", "npm_translate_lock") +load("@aspect_rules_js//npm:repositories.bzl", "npm_translate_lock") npm_translate_lock( name = "npm", diff --git a/e2e/smoke/MODULE.bazel b/e2e/smoke/MODULE.bazel index 94a609f..20c914c 100644 --- a/e2e/smoke/MODULE.bazel +++ b/e2e/smoke/MODULE.bazel @@ -1,16 +1,14 @@ -"Bazel dependencies" - -bazel_dep(name = "aspect_bazel_lib", version = "1.32.0") -bazel_dep(name = "aspect_rules_js", version = "1.33.1") -bazel_dep(name = "bazel_skylib", version = "1.4.1") - bazel_dep(name = "aspect_rules_webpack", version = "0.0.0", dev_dependency = True) local_path_override( module_name = "aspect_rules_webpack", path = "../..", ) -npm = use_extension("@aspect_rules_js//npm:extensions.bzl", "npm") +bazel_dep(name = "aspect_bazel_lib", version = "2.7.1", dev_dependency = True) +bazel_dep(name = "aspect_rules_js", version = "2.0.0-alpha.2", dev_dependency = True) +bazel_dep(name = "bazel_skylib", version = "1.5.0", dev_dependency = True) + +npm = use_extension("@aspect_rules_js//npm:extensions.bzl", "npm", dev_dependency = True) npm.npm_translate_lock( name = "v4-npm", pnpm_lock = "//v4:pnpm-lock.yaml", diff --git a/e2e/smoke/WORKSPACE.bazel b/e2e/smoke/WORKSPACE.bazel index 2109430..0d7eb64 100644 --- a/e2e/smoke/WORKSPACE.bazel +++ b/e2e/smoke/WORKSPACE.bazel @@ -16,20 +16,13 @@ load("@aspect_rules_webpack//webpack:dependencies.bzl", "rules_webpack_dependenc rules_webpack_dependencies() -load("@aspect_rules_js//js:repositories.bzl", "rules_js_dependencies") - -rules_js_dependencies() - # Fetch and register a nodejs interpreter, if you haven't already -load("@rules_nodejs//nodejs:repositories.bzl", "DEFAULT_NODE_VERSION", "nodejs_register_toolchains") +load("@aspect_rules_js//js:toolchains.bzl", "DEFAULT_NODE_VERSION", "rules_js_register_toolchains") -nodejs_register_toolchains( - name = "node", - node_version = DEFAULT_NODE_VERSION, -) +rules_js_register_toolchains(node_version = DEFAULT_NODE_VERSION) -load("@aspect_rules_js//npm:npm_import.bzl", "npm_translate_lock") +load("@aspect_rules_js//npm:repositories.bzl", "npm_translate_lock") npm_translate_lock( name = "v4-npm", diff --git a/e2e/worker/BUILD.bazel b/e2e/worker/BUILD.bazel index 43cd181..085f44a 100644 --- a/e2e/worker/BUILD.bazel +++ b/e2e/worker/BUILD.bazel @@ -1,5 +1,5 @@ -load("@aspect_bazel_lib//lib:write_source_files.bzl", "write_source_files") load("@aspect_bazel_lib//lib:diff_test.bzl", "diff_test") +load("@aspect_bazel_lib//lib:write_source_files.bzl", "write_source_files") load("@aspect_rules_webpack//webpack:defs.bzl", "webpack_bundle") load("@npm//:defs.bzl", "npm_link_all_packages") diff --git a/e2e/worker/WORKSPACE b/e2e/worker/WORKSPACE index 15530c7..b90f761 100644 --- a/e2e/worker/WORKSPACE +++ b/e2e/worker/WORKSPACE @@ -10,20 +10,13 @@ load("@aspect_rules_webpack//webpack:dependencies.bzl", "rules_webpack_dependenc rules_webpack_dependencies() -load("@aspect_rules_js//js:repositories.bzl", "rules_js_dependencies") - -rules_js_dependencies() - # Fetch and register a nodejs interpreter, if you haven't already -load("@rules_nodejs//nodejs:repositories.bzl", "DEFAULT_NODE_VERSION", "nodejs_register_toolchains") +load("@aspect_rules_js//js:toolchains.bzl", "DEFAULT_NODE_VERSION", "rules_js_register_toolchains") -nodejs_register_toolchains( - name = "node", - node_version = DEFAULT_NODE_VERSION, -) +rules_js_register_toolchains(node_version = DEFAULT_NODE_VERSION) -load("@aspect_rules_js//npm:npm_import.bzl", "npm_translate_lock") +load("@aspect_rules_js//npm:repositories.bzl", "npm_translate_lock") npm_translate_lock( name = "npm", diff --git a/internal_deps.bzl b/internal_deps.bzl index 34c08d8..3ef5928 100644 --- a/internal_deps.bzl +++ b/internal_deps.bzl @@ -10,43 +10,33 @@ load("//webpack/private:maybe.bzl", http_archive = "maybe_http_archive") def rules_webpack_internal_deps(): "Fetch repositories used for developing the rules" - # opt-in to 2.0 without forcing users to do so - http_archive( - name = "aspect_bazel_lib", - sha256 = "c858cc637db5370f6fd752478d1153955b4b4cbec7ffe95eb4a47a48499a79c3", - strip_prefix = "bazel-lib-2.0.3", - url = "https://github.com/aspect-build/bazel-lib/releases/download/v2.0.3/bazel-lib-v2.0.3.tar.gz", - ) - http_archive( name = "io_bazel_rules_go", - sha256 = "099a9fb96a376ccbbb7d291ed4ecbdfd42f6bc822ab77ae6f1b5cb9e914e94fa", - urls = ["https://github.com/bazelbuild/rules_go/releases/download/v0.35.0/rules_go-v0.35.0.zip"], + sha256 = "80a98277ad1311dacd837f9b16db62887702e9f1d1c4c9f796d0121a46c8e184", + urls = ["https://github.com/bazelbuild/rules_go/releases/download/v0.46.0/rules_go-v0.46.0.zip"], ) http_archive( name = "bazel_gazelle", - sha256 = "448e37e0dbf61d6fa8f00aaa12d191745e14f07c31cabfa731f0c8e8a4f41b97", - urls = ["https://github.com/bazelbuild/bazel-gazelle/releases/download/v0.28.0/bazel-gazelle-v0.28.0.tar.gz"], + integrity = "sha256-dd8ojEsxyB61D1Hi4U9HY8t1SNquEmgXJHBkY3/Z6mI=", + urls = ["https://github.com/bazelbuild/bazel-gazelle/releases/download/v0.36.0/bazel-gazelle-v0.36.0.tar.gz"], ) http_archive( name = "bazel_skylib_gazelle_plugin", - sha256 = "0a466b61f331585f06ecdbbf2480b9edf70e067a53f261e0596acd573a7d2dc3", - urls = ["https://github.com/bazelbuild/bazel-skylib/releases/download/1.4.1/bazel-skylib-gazelle-plugin-1.4.1.tar.gz"], + sha256 = "747addf3f508186234f6232674dd7786743efb8c68619aece5fb0cac97b8f415", + urls = ["https://github.com/bazelbuild/bazel-skylib/releases/download/1.5.0/bazel-skylib-gazelle-plugin-1.5.0.tar.gz"], ) http_archive( name = "io_bazel_stardoc", - sha256 = "3fd8fec4ddec3c670bd810904e2e33170bedfe12f90adf943508184be458c8bb", - urls = ["https://github.com/bazelbuild/stardoc/releases/download/0.5.3/stardoc-0.5.3.tar.gz"], + sha256 = "62bd2e60216b7a6fec3ac79341aa201e0956477e7c8f6ccc286f279ad1d96432", + urls = ["https://github.com/bazelbuild/stardoc/releases/download/0.6.2/stardoc-0.6.2.tar.gz"], ) http_archive( name = "buildifier_prebuilt", - sha256 = "e46c16180bc49487bfd0f1ffa7345364718c57334fa0b5b67cb5f27eba10f309", - strip_prefix = "buildifier-prebuilt-6.1.0", - urls = [ - "https://github.com/keith/buildifier-prebuilt/archive/6.1.0.tar.gz", - ], + sha256 = "8ada9d88e51ebf5a1fdff37d75ed41d51f5e677cdbeafb0a22dda54747d6e07e", + strip_prefix = "buildifier-prebuilt-6.4.0", + urls = ["http://github.com/keith/buildifier-prebuilt/archive/6.4.0.tar.gz"], ) diff --git a/webpack/dependencies.bzl b/webpack/dependencies.bzl index 7833043..d2cf585 100644 --- a/webpack/dependencies.bzl +++ b/webpack/dependencies.bzl @@ -9,26 +9,27 @@ load("//webpack/private:maybe.bzl", http_archive = "maybe_http_archive") def rules_webpack_dependencies(): http_archive( name = "bazel_skylib", - sha256 = "b8a1527901774180afc798aeb28c4634bdccf19c4d98e7bdd1ce79d1fe9aaad7", - urls = ["https://github.com/bazelbuild/bazel-skylib/releases/download/1.4.1/bazel-skylib-1.4.1.tar.gz"], + sha256 = "cd55a062e763b9349921f0f5db8c3933288dc8ba4f76dd9416aac68acee3cb94", + urls = ["https://github.com/bazelbuild/bazel-skylib/releases/download/1.5.0/bazel-skylib-1.5.0.tar.gz"], ) http_archive( name = "aspect_bazel_lib", - sha256 = "262e3d6693cdc16dd43880785cdae13c64e6a3f63f75b1993c716295093d117f", - strip_prefix = "bazel-lib-1.38.1", - url = "https://github.com/aspect-build/bazel-lib/releases/download/v1.38.1/bazel-lib-v1.38.1.tar.gz", + sha256 = "b554eb7942a5ab44c90077df6a0c76fc67c5874c9446a007e9ba68be82bd4796", + strip_prefix = "bazel-lib-2.7.1", + url = "https://github.com/aspect-build/bazel-lib/releases/download/v2.7.1/bazel-lib-v2.7.1.tar.gz", ) http_archive( name = "aspect_rules_js", - sha256 = "d9ceb89e97bb5ad53b278148e01a77a3e9100db272ce4ebdcd59889d26b9076e", - strip_prefix = "rules_js-1.34.0", - url = "https://github.com/aspect-build/rules_js/releases/download/v1.34.0/rules_js-v1.34.0.tar.gz", + sha256 = "b627acf34f928507dfabae69d3fd8702ce3d45bed568ad4c44b243cb789f08c6", + strip_prefix = "rules_js-2.0.0-alpha.2", + url = "https://github.com/aspect-build/rules_js/releases/download/v2.0.0-alpha.2/rules_js-v2.0.0-alpha.2.tar.gz", ) http_archive( name = "rules_nodejs", - sha256 = "764a3b3757bb8c3c6a02ba3344731a3d71e558220adcb0cf7e43c9bba2c37ba8", - urls = ["https://github.com/bazelbuild/rules_nodejs/releases/download/5.8.2/rules_nodejs-core-5.8.2.tar.gz"], + sha256 = "dddd60acc3f2f30359bef502c9d788f67e33814b0ddd99aa27c5a15eb7a41b8c", + strip_prefix = "rules_nodejs-6.1.0", + url = "https://github.com/bazelbuild/rules_nodejs/releases/download/v6.1.0/rules_nodejs-v6.1.0.tar.gz", ) diff --git a/webpack/private/webpack_bundle.bzl b/webpack/private/webpack_bundle.bzl index 05941ab..63c97cd 100644 --- a/webpack/private/webpack_bundle.bzl +++ b/webpack/private/webpack_bundle.bzl @@ -164,12 +164,13 @@ def _impl(ctx): inputs.extend(ctx.files.entry_points) inputs = depset( copy_files_to_bin_actions(ctx, inputs) + no_copy_bin_inputs, - transitive = [webpack_runfiles] + [js_lib_helpers.gather_files_from_js_providers( + transitive = [webpack_runfiles] + [js_lib_helpers.gather_files_from_js_infos( targets = ctx.attr.srcs + ctx.attr.deps, + include_sources = True, + include_types = False, include_transitive_sources = True, - # Upstream Type-check actions should not be triggered by bundling - include_declarations = False, - include_npm_linked_packages = True, + include_transitive_types = False, + include_npm_sources = True, )], ) @@ -184,14 +185,14 @@ def _impl(ctx): env = env, ) - npm_linked_packages = js_lib_helpers.gather_npm_linked_packages( + # If a subset of linked npm dependencies are not bundled, it is up to the user to re-specify + # these in `data` if they are runtime dependencies to progagate to binary rules or `srcs` if + # they are to be propagated to downstream build targets. + npm_sources = js_lib_helpers.gather_npm_sources( srcs = ctx.attr.srcs, deps = [], ) - - npm_package_store_deps = js_lib_helpers.gather_npm_package_store_deps( - # Since we're bundling, only propagate `data` npm packages to the direct dependencies of - # downstream linked `npm_package` targets instead of the common `data` and `deps` pattern. + npm_package_store_infos = js_lib_helpers.gather_npm_package_store_infos( targets = ctx.attr.data, ) @@ -207,19 +208,15 @@ def _impl(ctx): return [ js_info( - npm_linked_package_files = npm_linked_packages.direct_files, - npm_linked_packages = npm_linked_packages.direct, - npm_package_store_deps = npm_package_store_deps, + target = ctx.label, sources = output_sources_depset, - # Since we're bundling, we don't propagate linked npm packages from dependencies since - # they are bundled and the dependencies are dropped. If a subset of linked npm - # dependencies are not bundled it is up the the user to re-specify these in `data` if - # they are runtime dependencies to propagate to binary rules or `srcs` if they are to be - # propagated to downstream build targets. - transitive_npm_linked_package_files = npm_linked_packages.transitive_files, - transitive_npm_linked_packages = npm_linked_packages.transitive, - # Since we're bundling, we don't propagate any transitive output_sources from dependencies + types = depset(), # webpack does not emit types directly + # Since we're bundling, don't propogate any transitive sources or declarations since sources + # are typically bundled into the output. transitive_sources = output_sources_depset, + transitive_types = depset(), + npm_sources = npm_sources, + npm_package_store_infos = npm_package_store_infos, ), DefaultInfo( files = output_sources_depset, diff --git a/webpack/tests/simple/BUILD.bazel b/webpack/tests/simple/BUILD.bazel index 7d20255..c78b386 100644 --- a/webpack/tests/simple/BUILD.bazel +++ b/webpack/tests/simple/BUILD.bazel @@ -1,5 +1,5 @@ -load("@aspect_bazel_lib//lib:write_source_files.bzl", "write_source_files") load("@aspect_bazel_lib//lib:diff_test.bzl", "diff_test") +load("@aspect_bazel_lib//lib:write_source_files.bzl", "write_source_files") load("//webpack:defs.bzl", "webpack_bundle") webpack_bundle(