Skip to content

Commit

Permalink
feat: extract npm package tars into virtual store as action using tar…
Browse files Browse the repository at this point in the history
… toolchain from bazel-lib
  • Loading branch information
gregmagolan committed Mar 26, 2024
1 parent 783dbee commit 33d2a26
Show file tree
Hide file tree
Showing 34 changed files with 124 additions and 55 deletions.
13 changes: 12 additions & 1 deletion MODULE.bazel
Original file line number Diff line number Diff line change
Expand Up @@ -8,7 +8,7 @@ module(

# Lower-bounds for runtime dependencies.
# Do not bump these unless rules_js requires a newer version to function.
bazel_dep(name = "aspect_bazel_lib", version = "1.40.3")
bazel_dep(name = "aspect_bazel_lib", version = "1.41.0")
bazel_dep(name = "aspect_rules_lint", version = "0.12.0")
bazel_dep(name = "bazel_features", version = "0.1.0")
bazel_dep(name = "bazel_skylib", version = "1.5.0")
Expand Down Expand Up @@ -43,6 +43,7 @@ pnpm.pnpm(
use_repo(pnpm, "pnpm", "pnpm__links")

bazel_lib_toolchains = use_extension("@aspect_bazel_lib//lib:extensions.bzl", "toolchains")
bazel_lib_toolchains.tar()
use_repo(bazel_lib_toolchains, "coreutils_toolchains")
use_repo(bazel_lib_toolchains, "yq_darwin_amd64")
use_repo(bazel_lib_toolchains, "yq_darwin_arm64")
Expand All @@ -51,6 +52,16 @@ use_repo(bazel_lib_toolchains, "yq_linux_arm64")
use_repo(bazel_lib_toolchains, "yq_linux_ppc64le")
use_repo(bazel_lib_toolchains, "yq_linux_s390x")
use_repo(bazel_lib_toolchains, "yq_windows_amd64")
use_repo(bazel_lib_toolchains, "bsd_tar_toolchains")

register_toolchains(
# Expand bsd_tar_toolchains
"@bsd_tar_toolchains//:linux_amd64_toolchain",
"@bsd_tar_toolchains//:linux_arm64_toolchain",
"@bsd_tar_toolchains//:windows_amd64_toolchain",
# host toolchain must be last, as it's only suitable as a fallback on macos
"@bsd_tar_toolchains//:host_toolchain",
)

####### Dev dependencies ########

Expand Down
5 changes: 3 additions & 2 deletions docs/npm_translate_lock.md

Some generated files are not rendered by default. Learn more about how customized files appear on GitHub.

2 changes: 1 addition & 1 deletion e2e/bzlmod/MODULE.bazel
Original file line number Diff line number Diff line change
Expand Up @@ -5,7 +5,7 @@ module(
)

bazel_dep(name = "aspect_rules_js", version = "0.0.0")
bazel_dep(name = "aspect_bazel_lib", version = "2.4.2")
bazel_dep(name = "aspect_bazel_lib", version = "2.5.3")
bazel_dep(name = "bazel_skylib", version = "1.4.1")

local_path_override(
Expand Down
2 changes: 1 addition & 1 deletion e2e/gyp_no_install_script/MODULE.bazel
Original file line number Diff line number Diff line change
@@ -1,4 +1,4 @@
bazel_dep(name = "aspect_bazel_lib", version = "2.4.2")
bazel_dep(name = "aspect_bazel_lib", version = "2.5.3")
bazel_dep(name = "aspect_rules_js", version = "0.0.0")
local_path_override(
module_name = "aspect_rules_js",
Expand Down
2 changes: 1 addition & 1 deletion e2e/js_run_devserver/MODULE.bazel
Original file line number Diff line number Diff line change
Expand Up @@ -4,7 +4,7 @@ module(
compatibility_level = 1,
)

bazel_dep(name = "aspect_bazel_lib", version = "1.40.3")
bazel_dep(name = "aspect_bazel_lib", version = "1.41.0")
bazel_dep(name = "aspect_rules_js", version = "0.0.0")
bazel_dep(name = "bazel_skylib", version = "1.4.1")
bazel_dep(name = "rules_go", version = "0.41.0")
Expand Down
2 changes: 1 addition & 1 deletion e2e/npm_translate_lock/MODULE.bazel
Original file line number Diff line number Diff line change
Expand Up @@ -5,7 +5,7 @@ module(
)

bazel_dep(name = "bazel_skylib", version = "1.4.1")
bazel_dep(name = "aspect_bazel_lib", version = "1.40.3")
bazel_dep(name = "aspect_bazel_lib", version = "1.41.0")
bazel_dep(name = "aspect_rules_js", version = "0.0.0")
local_path_override(
module_name = "aspect_rules_js",
Expand Down
2 changes: 1 addition & 1 deletion e2e/npm_translate_lock_auth/MODULE.bazel
Original file line number Diff line number Diff line change
Expand Up @@ -5,7 +5,7 @@ module(
)

bazel_dep(name = "bazel_skylib", version = "1.4.1")
bazel_dep(name = "aspect_bazel_lib", version = "1.40.3")
bazel_dep(name = "aspect_bazel_lib", version = "1.41.0")
bazel_dep(name = "aspect_rules_js", version = "0.0.0")
local_path_override(
module_name = "aspect_rules_js",
Expand Down
2 changes: 1 addition & 1 deletion e2e/npm_translate_lock_empty/MODULE.bazel
Original file line number Diff line number Diff line change
Expand Up @@ -5,7 +5,7 @@ module(
)

bazel_dep(name = "bazel_skylib", version = "1.4.1")
bazel_dep(name = "aspect_bazel_lib", version = "1.40.3")
bazel_dep(name = "aspect_bazel_lib", version = "1.41.0")
bazel_dep(name = "aspect_rules_js", version = "0.0.0")
local_path_override(
module_name = "aspect_rules_js",
Expand Down
2 changes: 1 addition & 1 deletion e2e/npm_translate_lock_git+ssh/MODULE.bazel
Original file line number Diff line number Diff line change
Expand Up @@ -5,7 +5,7 @@ module(
)

bazel_dep(name = "bazel_skylib", version = "1.4.1")
bazel_dep(name = "aspect_bazel_lib", version = "1.40.3")
bazel_dep(name = "aspect_bazel_lib", version = "1.41.0")
bazel_dep(name = "aspect_rules_js", version = "0.0.0")
local_path_override(
module_name = "aspect_rules_js",
Expand Down
2 changes: 1 addition & 1 deletion e2e/npm_translate_lock_multi/MODULE.bazel
Original file line number Diff line number Diff line change
Expand Up @@ -4,7 +4,7 @@ module(
compatibility_level = 1,
)

bazel_dep(name = "aspect_bazel_lib", version = "1.40.3")
bazel_dep(name = "aspect_bazel_lib", version = "1.41.0")
bazel_dep(name = "bazel_skylib", version = "1.4.1")
bazel_dep(name = "aspect_rules_js", version = "0.0.0")
local_path_override(
Expand Down
2 changes: 1 addition & 1 deletion e2e/npm_translate_lock_partial_clone/MODULE.bazel
Original file line number Diff line number Diff line change
Expand Up @@ -5,7 +5,7 @@ module(
)

bazel_dep(name = "bazel_skylib", version = "1.4.1")
bazel_dep(name = "aspect_bazel_lib", version = "1.40.3")
bazel_dep(name = "aspect_bazel_lib", version = "1.41.0")
bazel_dep(name = "aspect_rules_js", version = "0.0.0")
local_path_override(
module_name = "aspect_rules_js",
Expand Down
2 changes: 1 addition & 1 deletion e2e/npm_translate_lock_subdir_patch/MODULE.bazel
Original file line number Diff line number Diff line change
@@ -1,4 +1,4 @@
bazel_dep(name = "aspect_bazel_lib", version = "1.40.3")
bazel_dep(name = "aspect_bazel_lib", version = "1.41.0")
bazel_dep(name = "aspect_rules_js", version = "0.0.0")
local_path_override(
module_name = "aspect_rules_js",
Expand Down
2 changes: 1 addition & 1 deletion e2e/npm_translate_package_lock/MODULE.bazel
Original file line number Diff line number Diff line change
Expand Up @@ -4,7 +4,7 @@ module(
compatibility_level = 1,
)

bazel_dep(name = "aspect_bazel_lib", version = "1.40.3")
bazel_dep(name = "aspect_bazel_lib", version = "1.41.0")
bazel_dep(name = "bazel_skylib", version = "1.4.1")
bazel_dep(name = "aspect_rules_js", version = "0.0.0")
local_path_override(
Expand Down
2 changes: 1 addition & 1 deletion e2e/npm_translate_yarn_lock/MODULE.bazel
Original file line number Diff line number Diff line change
Expand Up @@ -4,7 +4,7 @@ module(
compatibility_level = 1,
)

bazel_dep(name = "aspect_bazel_lib", version = "1.40.3")
bazel_dep(name = "aspect_bazel_lib", version = "1.41.0")
bazel_dep(name = "bazel_skylib", version = "1.4.1")
bazel_dep(name = "aspect_rules_js", version = "0.0.0")
local_path_override(
Expand Down
2 changes: 1 addition & 1 deletion e2e/package_json_module/MODULE.bazel
Original file line number Diff line number Diff line change
Expand Up @@ -4,7 +4,7 @@ module(
compatibility_level = 1,
)

bazel_dep(name = "aspect_bazel_lib", version = "1.40.3")
bazel_dep(name = "aspect_bazel_lib", version = "1.41.0")
bazel_dep(name = "aspect_rules_js", version = "0.0.0")
local_path_override(
module_name = "aspect_rules_js",
Expand Down
2 changes: 1 addition & 1 deletion e2e/patch_from_repo/MODULE.bazel
Original file line number Diff line number Diff line change
@@ -1,7 +1,7 @@
bazel_dep(name = "bazel_skylib", version = "1.4.1")
bazel_dep(name = "aspect_rules_js", version = "0.0.0")
bazel_dep(name = "local_repo", version = "0.0.0")
bazel_dep(name = "aspect_bazel_lib", version = "1.40.3")
bazel_dep(name = "aspect_bazel_lib", version = "1.41.0")

local_path_override(
module_name = "aspect_rules_js",
Expand Down
2 changes: 1 addition & 1 deletion e2e/pnpm_workspace/MODULE.bazel
Original file line number Diff line number Diff line change
Expand Up @@ -6,7 +6,7 @@ module(

bazel_dep(name = "bazel_skylib", version = "1.4.1")
bazel_dep(name = "rules_nodejs", version = "6.0.5")
bazel_dep(name = "aspect_bazel_lib", version = "2.4.2")
bazel_dep(name = "aspect_bazel_lib", version = "2.5.3")
bazel_dep(name = "aspect_rules_js", version = "0.0.0")
local_path_override(
module_name = "aspect_rules_js",
Expand Down
2 changes: 1 addition & 1 deletion e2e/pnpm_workspace_deps/MODULE.bazel
Original file line number Diff line number Diff line change
Expand Up @@ -4,7 +4,7 @@ module(
compatibility_level = 1,
)

bazel_dep(name = "aspect_bazel_lib", version = "2.4.2")
bazel_dep(name = "aspect_bazel_lib", version = "2.5.3")
bazel_dep(name = "aspect_rules_js", version = "0.0.0")
local_path_override(
module_name = "aspect_rules_js",
Expand Down
2 changes: 1 addition & 1 deletion e2e/pnpm_workspace_rerooted/MODULE.bazel
Original file line number Diff line number Diff line change
Expand Up @@ -5,7 +5,7 @@ module(
)

bazel_dep(name = "rules_nodejs", version = "6.0.5")
bazel_dep(name = "aspect_bazel_lib", version = "1.40.3")
bazel_dep(name = "aspect_bazel_lib", version = "1.41.0")
bazel_dep(name = "aspect_rules_js", version = "0.0.0")
local_path_override(
module_name = "aspect_rules_js",
Expand Down
2 changes: 1 addition & 1 deletion e2e/stamped_package_json/MODULE.bazel
Original file line number Diff line number Diff line change
Expand Up @@ -4,7 +4,7 @@ module(
)

bazel_dep(name = "aspect_rules_js", version = "0.0.0")
bazel_dep(name = "aspect_bazel_lib", version = "2.4.2")
bazel_dep(name = "aspect_bazel_lib", version = "2.5.3")

local_path_override(
module_name = "aspect_rules_js",
Expand Down
2 changes: 1 addition & 1 deletion e2e/update_pnpm_lock/MODULE.bazel
Original file line number Diff line number Diff line change
Expand Up @@ -5,7 +5,7 @@ module(
)

bazel_dep(name = "bazel_skylib", version = "1.4.1")
bazel_dep(name = "aspect_bazel_lib", version = "1.40.3")
bazel_dep(name = "aspect_bazel_lib", version = "1.41.0")
bazel_dep(name = "aspect_rules_js", version = "0.0.0")
local_path_override(
module_name = "aspect_rules_js",
Expand Down
2 changes: 1 addition & 1 deletion e2e/update_pnpm_lock_with_import/MODULE.bazel
Original file line number Diff line number Diff line change
Expand Up @@ -5,7 +5,7 @@ module(
)

bazel_dep(name = "bazel_skylib", version = "1.4.1")
bazel_dep(name = "aspect_bazel_lib", version = "1.40.3")
bazel_dep(name = "aspect_bazel_lib", version = "1.41.0")
bazel_dep(name = "aspect_rules_js", version = "0.0.0")
local_path_override(
module_name = "aspect_rules_js",
Expand Down
2 changes: 1 addition & 1 deletion e2e/vendored_node/MODULE.bazel
Original file line number Diff line number Diff line change
Expand Up @@ -4,7 +4,7 @@ module(
compatibility_level = 1,
)

bazel_dep(name = "aspect_bazel_lib", version = "1.40.3")
bazel_dep(name = "aspect_bazel_lib", version = "1.41.0")
bazel_dep(name = "aspect_rules_js", version = "0.0.0")
bazel_dep(name = "rules_nodejs", version = "6.0.5")
bazel_dep(name = "platforms", version = "0.0.4")
Expand Down
2 changes: 1 addition & 1 deletion e2e/vendored_tarfile/MODULE.bazel
Original file line number Diff line number Diff line change
Expand Up @@ -5,7 +5,7 @@ module(
)

bazel_dep(name = "bazel_skylib", version = "1.4.1")
bazel_dep(name = "aspect_bazel_lib", version = "1.40.3")
bazel_dep(name = "aspect_bazel_lib", version = "1.41.0")
bazel_dep(name = "aspect_rules_js", version = "0.0.0")
local_path_override(
module_name = "aspect_rules_js",
Expand Down
2 changes: 1 addition & 1 deletion e2e/verify_patches/MODULE.bazel
Original file line number Diff line number Diff line change
Expand Up @@ -5,7 +5,7 @@ module(
)

bazel_dep(name = "bazel_skylib", version = "1.4.1")
bazel_dep(name = "aspect_bazel_lib", version = "1.40.3")
bazel_dep(name = "aspect_bazel_lib", version = "1.41.0")
bazel_dep(name = "aspect_rules_js", version = "0.0.0")
local_path_override(
module_name = "aspect_rules_js",
Expand Down
2 changes: 1 addition & 1 deletion e2e/webpack_devserver/MODULE.bazel
Original file line number Diff line number Diff line change
@@ -1,6 +1,6 @@
bazel_dep(name = "bazel_skylib", version = "1.4.1")
bazel_dep(name = "rules_go", version = "0.41.0")
bazel_dep(name = "aspect_bazel_lib", version = "1.40.3")
bazel_dep(name = "aspect_bazel_lib", version = "1.41.0")
bazel_dep(name = "aspect_rules_js", version = "0.0.0")
local_path_override(
module_name = "aspect_rules_js",
Expand Down
2 changes: 1 addition & 1 deletion e2e/webpack_devserver_esm/MODULE.bazel
Original file line number Diff line number Diff line change
@@ -1,6 +1,6 @@
bazel_dep(name = "bazel_skylib", version = "1.4.1")
bazel_dep(name = "rules_go", version = "0.41.0")
bazel_dep(name = "aspect_bazel_lib", version = "1.40.3")
bazel_dep(name = "aspect_bazel_lib", version = "1.41.0")
bazel_dep(name = "aspect_rules_js", version = "0.0.0")
local_path_override(
module_name = "aspect_rules_js",
Expand Down
6 changes: 3 additions & 3 deletions js/repositories.bzl
Original file line number Diff line number Diff line change
Expand Up @@ -23,9 +23,9 @@ def rules_js_dependencies():

http_archive(
name = "aspect_bazel_lib",
sha256 = "f2c1f91cc0a55f7a44c94b8a79974f21349b844075740c01045acaa49e731307",
strip_prefix = "bazel-lib-1.40.3",
url = "https://github.com/aspect-build/bazel-lib/releases/download/v1.40.3/bazel-lib-v1.40.3.tar.gz",
sha256 = "8e7a51c6bb835023fca7be2f04d688564869ad4df95d6c56ca2dadccc3f900f3",
strip_prefix = "bazel-lib-1.41.0",
url = "https://github.com/aspect-build/bazel-lib/releases/download/v1.41.0/bazel-lib-v1.41.0.tar.gz",
)

http_archive(
Expand Down
1 change: 1 addition & 0 deletions npm/extensions.bzl
Original file line number Diff line number Diff line change
Expand Up @@ -52,6 +52,7 @@ def _npm_extension_impl(module_ctx):
register_copy_directory_toolchains = False, # this registration is handled elsewhere with bzlmod
register_copy_to_directory_toolchains = False, # this registration is handled elsewhere with bzlmod
register_yq_toolchains = False, # this registration is handled elsewhere with bzlmod
register_tar_toolchains = False, # this registration is handled elsewhere with bzlmod
replace_packages = attr.replace_packages,
root_package = attr.root_package,
run_lifecycle_hooks = attr.run_lifecycle_hooks,
Expand Down
Loading

0 comments on commit 33d2a26

Please sign in to comment.