diff --git a/.aspect/workflows/config.yaml b/.aspect/workflows/config.yaml index dce8b5417..a1ae9a081 100644 --- a/.aspect/workflows/config.yaml +++ b/.aspect/workflows/config.yaml @@ -18,6 +18,19 @@ workspaces: without: true - delivery: without: true + e2e/gyp_no_install_script: + icon: npm + tasks: + - test: + queue: aspect-medium + - format: + without: true + - buildifier: + without: true + - configure: + without: true + - delivery: + without: true # rules_docker not compatible with Bazel 7. # See https://github.com/bazelbuild/bazel/issues/20494#issuecomment-1852401451. # e2e/js_image_docker: diff --git a/.github/workflows/ci.yaml b/.github/workflows/ci.yaml index a71c9b422..ebee872c0 100644 --- a/.github/workflows/ci.yaml +++ b/.github/workflows/ci.yaml @@ -4,9 +4,9 @@ name: CI on: # Triggers the workflow on push or pull request events but only for the main branch push: - branches: [main] + branches: [main, 2.x] pull_request: - branches: [main] + branches: [main, 2.x] # Allows you to run this workflow manually from the Actions tab workflow_dispatch: @@ -55,6 +55,7 @@ jobs: a=( . e2e/bzlmod + e2e/gyp_no_install_script e2e/js_image_docker e2e/js_image_oci e2e/js_run_devserver @@ -174,31 +175,37 @@ jobs: major: 7 bzlmod: 1 folder: e2e/update_pnpm_lock_with_import + # gyp_no_install_script is broken in an usual way on 6.5.0 + # that is not worth investigating as we're dropping Bazel 6 support soon + - bazel-version: + major: 6 + bzlmod: 0 + folder: e2e/gyp_no_install_script include: - bazel-version: major: 7 - version: 7.0.0 + version: 7.1.1 bzlmod: 1 os: windows config: local folder: e2e/bzlmod - bazel-version: major: 7 - version: 7.0.0 + version: 7.1.1 bzlmod: 1 os: macos config: local folder: e2e/bzlmod - bazel-version: major: 6 - version: 6.4.0 + version: 6.5.0 bzlmod: 1 os: windows config: local folder: e2e/bzlmod - bazel-version: major: 6 - version: 6.4.0 + version: 6.5.0 bzlmod: 1 os: macos config: local diff --git a/e2e/gyp_no_install_script/MODULE.bazel b/e2e/gyp_no_install_script/MODULE.bazel index d30e66f8a..378a9231e 100644 --- a/e2e/gyp_no_install_script/MODULE.bazel +++ b/e2e/gyp_no_install_script/MODULE.bazel @@ -1,5 +1,7 @@ bazel_dep(name = "aspect_bazel_lib", version = "2.7.0") bazel_dep(name = "aspect_rules_js", version = "0.0.0") +bazel_dep(name = "platforms", version = "0.0.8") + local_path_override( module_name = "aspect_rules_js", path = "../..", diff --git a/e2e/gyp_no_install_script/snapshots/bzlmod/repositories.bzl b/e2e/gyp_no_install_script/snapshots/bzlmod/repositories.bzl index 6b0cc7783..a4347a026 100644 --- a/e2e/gyp_no_install_script/snapshots/bzlmod/repositories.bzl +++ b/e2e/gyp_no_install_script/snapshots/bzlmod/repositories.bzl @@ -1,8 +1,8 @@ -"""@generated by npm_translate_lock(name = "npm", pnpm_lock = "//:pnpm-lock.yaml")""" +"""@generated by npm_translate_lock(name = "npm", pnpm_lock = "@@//:pnpm-lock.yaml")""" load("@aspect_rules_js//npm:repositories.bzl", "npm_import") -# Generated npm_import repository rules corresponding to npm packages in //:pnpm-lock.yaml +# Generated npm_import repository rules corresponding to npm packages in @@//:pnpm-lock.yaml # buildifier: disable=function-docstring def npm_repositories(): npm_import( diff --git a/e2e/gyp_no_install_script/snapshots/bzlmod/segfault-handler_defs.bzl b/e2e/gyp_no_install_script/snapshots/bzlmod/segfault-handler_defs.bzl index b7d5f98f4..d00c16a7e 100644 --- a/e2e/gyp_no_install_script/snapshots/bzlmod/segfault-handler_defs.bzl +++ b/e2e/gyp_no_install_script/snapshots/bzlmod/segfault-handler_defs.bzl @@ -140,41 +140,29 @@ def npm_imported_package_store(name): version = "1.3.0", dev = False, tags = ["manual"], - use_declare_symlink = select({ - "@aspect_rules_js//js:allow_unresolved_symlinks": True, - "//conditions:default": False, - }), ) # post-lifecycle target with reference deps for use in terminal target with transitive closure _npm_package_store( name = "{}/pkg".format(store_target_name), - src = "{}/pkg_lc".format(store_target_name) if True else "@@aspect_rules_js~override~npm~npm__segfault-handler__1.3.0//:pkg", + src = "{}/pkg_lc".format(store_target_name) if True else "@@aspect_rules_js~~npm~npm__segfault-handler__1.3.0//:pkg", package = "segfault-handler", version = "1.3.0", dev = False, deps = ref_deps, tags = ["manual"], - use_declare_symlink = select({ - "@aspect_rules_js//js:allow_unresolved_symlinks": True, - "//conditions:default": False, - }), ) # virtual store target with transitive closure of all npm package dependencies _npm_package_store( name = store_target_name, - src = None if True else "@@aspect_rules_js~override~npm~npm__segfault-handler__1.3.0//:pkg", + src = None if True else "@@aspect_rules_js~~npm~npm__segfault-handler__1.3.0//:pkg", package = "segfault-handler", version = "1.3.0", dev = False, deps = deps, visibility = ["//visibility:public"], tags = ["manual"], - use_declare_symlink = select({ - "@aspect_rules_js//js:allow_unresolved_symlinks": True, - "//conditions:default": False, - }), ) # filegroup target that provides a single file which is @@ -298,10 +286,6 @@ def npm_imported_package_store(name): dev = False, deps = ref_deps, tags = ["manual"], - use_declare_symlink = select({ - "@aspect_rules_js//js:allow_unresolved_symlinks": True, - "//conditions:default": False, - }), ) # terminal pre-lifecycle target for use in lifecycle build target below @@ -312,23 +296,19 @@ def npm_imported_package_store(name): dev = False, deps = lc_deps, tags = ["manual"], - use_declare_symlink = select({ - "@aspect_rules_js//js:allow_unresolved_symlinks": True, - "//conditions:default": False, - }), ) # lifecycle build action _js_run_binary( name = "{}/lc".format(store_target_name), srcs = [ - "@@aspect_rules_js~override~npm~npm__segfault-handler__1.3.0//:pkg", + "@@aspect_rules_js~~npm~npm__segfault-handler__1.3.0//:pkg", ":{}/pkg_pre_lc".format(store_target_name), ], # js_run_binary runs in the output dir; must add "../../../" because paths are relative to the exec root args = [ "segfault-handler", - "../../../$(execpath @@aspect_rules_js~override~npm~npm__segfault-handler__1.3.0//:pkg)", + "../../../$(execpath @@aspect_rules_js~~npm~npm__segfault-handler__1.3.0//:pkg)", "../../../$(@D)", ] + select({ @@ -400,10 +380,6 @@ def npm_link_imported_package_store(name): src = "//:{}".format(store_target_name), visibility = ["//visibility:public"], tags = ["manual"], - use_declare_symlink = select({ - "@aspect_rules_js//js:allow_unresolved_symlinks": True, - "//conditions:default": False, - }), ) # filegroup target that provides a single file which is diff --git a/e2e/gyp_no_install_script/snapshots/wksp/repositories.bzl b/e2e/gyp_no_install_script/snapshots/wksp/repositories.bzl index 6b0cc7783..cfad4a5f6 100644 --- a/e2e/gyp_no_install_script/snapshots/wksp/repositories.bzl +++ b/e2e/gyp_no_install_script/snapshots/wksp/repositories.bzl @@ -1,8 +1,8 @@ -"""@generated by npm_translate_lock(name = "npm", pnpm_lock = "//:pnpm-lock.yaml")""" +"""@generated by npm_translate_lock(name = "npm", pnpm_lock = "@//:pnpm-lock.yaml")""" load("@aspect_rules_js//npm:repositories.bzl", "npm_import") -# Generated npm_import repository rules corresponding to npm packages in //:pnpm-lock.yaml +# Generated npm_import repository rules corresponding to npm packages in @//:pnpm-lock.yaml # buildifier: disable=function-docstring def npm_repositories(): npm_import( diff --git a/e2e/gyp_no_install_script/snapshots/wksp/segfault-handler_defs.bzl b/e2e/gyp_no_install_script/snapshots/wksp/segfault-handler_defs.bzl index 493e7bd2d..b57e45233 100644 --- a/e2e/gyp_no_install_script/snapshots/wksp/segfault-handler_defs.bzl +++ b/e2e/gyp_no_install_script/snapshots/wksp/segfault-handler_defs.bzl @@ -140,10 +140,6 @@ def npm_imported_package_store(name): version = "1.3.0", dev = False, tags = ["manual"], - use_declare_symlink = select({ - "@aspect_rules_js//js:allow_unresolved_symlinks": True, - "//conditions:default": False, - }), ) # post-lifecycle target with reference deps for use in terminal target with transitive closure @@ -155,10 +151,6 @@ def npm_imported_package_store(name): dev = False, deps = ref_deps, tags = ["manual"], - use_declare_symlink = select({ - "@aspect_rules_js//js:allow_unresolved_symlinks": True, - "//conditions:default": False, - }), ) # virtual store target with transitive closure of all npm package dependencies @@ -171,10 +163,6 @@ def npm_imported_package_store(name): deps = deps, visibility = ["//visibility:public"], tags = ["manual"], - use_declare_symlink = select({ - "@aspect_rules_js//js:allow_unresolved_symlinks": True, - "//conditions:default": False, - }), ) # filegroup target that provides a single file which is @@ -298,10 +286,6 @@ def npm_imported_package_store(name): dev = False, deps = ref_deps, tags = ["manual"], - use_declare_symlink = select({ - "@aspect_rules_js//js:allow_unresolved_symlinks": True, - "//conditions:default": False, - }), ) # terminal pre-lifecycle target for use in lifecycle build target below @@ -312,10 +296,6 @@ def npm_imported_package_store(name): dev = False, deps = lc_deps, tags = ["manual"], - use_declare_symlink = select({ - "@aspect_rules_js//js:allow_unresolved_symlinks": True, - "//conditions:default": False, - }), ) # lifecycle build action @@ -400,10 +380,6 @@ def npm_link_imported_package_store(name): src = "//:{}".format(store_target_name), visibility = ["//visibility:public"], tags = ["manual"], - use_declare_symlink = select({ - "@aspect_rules_js//js:allow_unresolved_symlinks": True, - "//conditions:default": False, - }), ) # filegroup target that provides a single file which is diff --git a/e2e/npm_translate_lock/snapshots/wksp/repositories.bzl b/e2e/npm_translate_lock/snapshots/wksp/repositories.bzl index 15722a8aa..43d65a43f 100644 --- a/e2e/npm_translate_lock/snapshots/wksp/repositories.bzl +++ b/e2e/npm_translate_lock/snapshots/wksp/repositories.bzl @@ -1,8 +1,8 @@ -"""@generated by npm_translate_lock(name = "npm", pnpm_lock = "//:pnpm-lock.yaml")""" +"""@generated by npm_translate_lock(name = "npm", pnpm_lock = "@//:pnpm-lock.yaml")""" load("@aspect_rules_js//npm:repositories.bzl", "npm_import") -# Generated npm_import repository rules corresponding to npm packages in //:pnpm-lock.yaml +# Generated npm_import repository rules corresponding to npm packages in @//:pnpm-lock.yaml # buildifier: disable=function-docstring def npm_repositories(): npm_import( diff --git a/e2e/npm_translate_lock_empty/snapshots/wksp/repositories.bzl b/e2e/npm_translate_lock_empty/snapshots/wksp/repositories.bzl index 2c5e8a358..60608e83e 100644 --- a/e2e/npm_translate_lock_empty/snapshots/wksp/repositories.bzl +++ b/e2e/npm_translate_lock_empty/snapshots/wksp/repositories.bzl @@ -1,6 +1,6 @@ -"""@generated by npm_translate_lock(name = "npm", pnpm_lock = "//:pnpm-lock.yaml")""" +"""@generated by npm_translate_lock(name = "npm", pnpm_lock = "@//:pnpm-lock.yaml")""" -# Generated npm_import repository rules corresponding to npm packages in //:pnpm-lock.yaml +# Generated npm_import repository rules corresponding to npm packages in @//:pnpm-lock.yaml # buildifier: disable=function-docstring def npm_repositories(): pass diff --git a/e2e/patch_from_repo/MODULE.bazel b/e2e/patch_from_repo/MODULE.bazel index 036143927..fae49255b 100644 --- a/e2e/patch_from_repo/MODULE.bazel +++ b/e2e/patch_from_repo/MODULE.bazel @@ -24,10 +24,10 @@ npm.npm_translate_lock( }, patches = { # TODO: Because `patches` is a string_list_dict that doesn't take labels, we can't - # pass in a label like `@local_repo//:....` because only the root repository knows + # pass in a label like `@local_repo~//:....` because only the root repository knows # how to map this repo to its local override. This causes rules_js to fail when trying # to convert the label into a path. - "meaning-of-life@1.0.0": ["@@local_repo~override//:meaning-of-life@1.0.0.patch"], + "meaning-of-life@1.0.0": ["@@local_repo~//:meaning-of-life@1.0.0.patch"], }, pnpm_lock = "//:pnpm-lock.yaml", ) diff --git a/e2e/vendored_node/WORKSPACE b/e2e/vendored_node/WORKSPACE index bf9bddbcf..fbd512df1 100644 --- a/e2e/vendored_node/WORKSPACE +++ b/e2e/vendored_node/WORKSPACE @@ -7,6 +7,25 @@ load("@aspect_rules_js//js:repositories.bzl", "rules_js_dependencies") rules_js_dependencies() +load( + "@aspect_bazel_lib//lib:repositories.bzl", + "register_copy_directory_toolchains", + "register_copy_to_directory_toolchains", + "register_coreutils_toolchains", + "register_tar_toolchains", + "register_yq_toolchains", +) + +register_copy_directory_toolchains() + +register_copy_to_directory_toolchains() + +register_coreutils_toolchains() + +register_tar_toolchains() + +register_yq_toolchains() + load("@bazel_features//:deps.bzl", "bazel_features_deps") bazel_features_deps() diff --git a/e2e/webpack_devserver/MODULE.bazel b/e2e/webpack_devserver/MODULE.bazel index e540e49e0..aff87e261 100644 --- a/e2e/webpack_devserver/MODULE.bazel +++ b/e2e/webpack_devserver/MODULE.bazel @@ -1,3 +1,4 @@ +bazel_dep(name = "aspect_bazel_lib", version = "2.7.0") bazel_dep(name = "bazel_skylib", version = "1.5.0") bazel_dep(name = "rules_go", version = "0.46.0") bazel_dep(name = "aspect_rules_js", version = "0.0.0") diff --git a/e2e/webpack_devserver_esm/MODULE.bazel b/e2e/webpack_devserver_esm/MODULE.bazel index 176b6d1a8..7d5521409 100644 --- a/e2e/webpack_devserver_esm/MODULE.bazel +++ b/e2e/webpack_devserver_esm/MODULE.bazel @@ -1,3 +1,4 @@ +bazel_dep(name = "aspect_bazel_lib", version = "2.7.0") bazel_dep(name = "bazel_skylib", version = "1.5.0") bazel_dep(name = "rules_go", version = "0.46.0") bazel_dep(name = "aspect_rules_js", version = "0.0.0") diff --git a/e2e/worker/WORKSPACE b/e2e/worker/WORKSPACE index fd70c1137..85cb981c6 100644 --- a/e2e/worker/WORKSPACE +++ b/e2e/worker/WORKSPACE @@ -15,6 +15,25 @@ nodejs_register_toolchains( node_version = "14.20.0", ) +load( + "@aspect_bazel_lib//lib:repositories.bzl", + "register_copy_directory_toolchains", + "register_copy_to_directory_toolchains", + "register_coreutils_toolchains", + "register_tar_toolchains", + "register_yq_toolchains", +) + +register_copy_directory_toolchains() + +register_copy_to_directory_toolchains() + +register_coreutils_toolchains() + +register_tar_toolchains() + +register_yq_toolchains() + load("@bazel_features//:deps.bzl", "bazel_features_deps") bazel_features_deps() diff --git a/js/private/test/image/checksum.expected b/js/private/test/image/checksum.expected index 0d74d4040..2658d32bf 100644 --- a/js/private/test/image/checksum.expected +++ b/js/private/test/image/checksum.expected @@ -1,2 +1,2 @@ -6477f43b8663b593b7eb3ba50f7b617849eca2d2ecccdba37a92b0c9faf1226c js/private/test/image/cksum_app.tar +4a332bdfbc2c68da46ff8851a060c04c5e0328c07540c0da992d95e7b0e79ffa js/private/test/image/cksum_app.tar 813d54ae63067f19103e13f616726ff1f32cf8d51e27789b8d31415300f0a69e js/private/test/image/cksum_node_modules.tar diff --git a/js/private/test/image/custom_owner_app.listing b/js/private/test/image/custom_owner_app.listing index 0cfd302af..563c1bf9f 100644 --- a/js/private/test/image/custom_owner_app.listing +++ b/js/private/test/image/custom_owner_app.listing @@ -10,7 +10,7 @@ drwxr-xr-x 100/0 0 1970-01-01 00:00 app/js/private/test/image/bin.ru drwxr-xr-x 100/0 0 1970-01-01 00:00 app/js/private/test/image/bin.runfiles/aspect_rules_js/js/private drwxr-xr-x 100/0 0 1970-01-01 00:00 app/js/private/test/image/bin.runfiles/aspect_rules_js/js/private/test drwxr-xr-x 100/0 0 1970-01-01 00:00 app/js/private/test/image/bin.runfiles/aspect_rules_js/js/private/test/image --r-xr-xr-x 100/0 24130 1970-01-01 00:00 app/js/private/test/image/bin.runfiles/aspect_rules_js/js/private/test/image/bin +-r-xr-xr-x 100/0 23948 1970-01-01 00:00 app/js/private/test/image/bin.runfiles/aspect_rules_js/js/private/test/image/bin drwxr-xr-x 100/0 0 1970-01-01 00:00 app/js/private/test/image/bin.runfiles/aspect_rules_js/js/private/test/image/bin_node_bin -r-xr-xr-x 100/0 133 1970-01-01 00:00 app/js/private/test/image/bin.runfiles/aspect_rules_js/js/private/test/image/bin_node_bin/node -r-xr-xr-x 100/0 20 1970-01-01 00:00 app/js/private/test/image/bin.runfiles/aspect_rules_js/js/private/test/image/main.js diff --git a/js/private/test/image/default_app.listing b/js/private/test/image/default_app.listing index ad75c6876..95aa225fd 100644 --- a/js/private/test/image/default_app.listing +++ b/js/private/test/image/default_app.listing @@ -10,7 +10,7 @@ drwxr-xr-x 0/0 0 1970-01-01 00:00 app/js/private/test/image/bin.ru drwxr-xr-x 0/0 0 1970-01-01 00:00 app/js/private/test/image/bin.runfiles/aspect_rules_js/js/private drwxr-xr-x 0/0 0 1970-01-01 00:00 app/js/private/test/image/bin.runfiles/aspect_rules_js/js/private/test drwxr-xr-x 0/0 0 1970-01-01 00:00 app/js/private/test/image/bin.runfiles/aspect_rules_js/js/private/test/image --r-xr-xr-x 0/0 24130 1970-01-01 00:00 app/js/private/test/image/bin.runfiles/aspect_rules_js/js/private/test/image/bin +-r-xr-xr-x 0/0 23948 1970-01-01 00:00 app/js/private/test/image/bin.runfiles/aspect_rules_js/js/private/test/image/bin drwxr-xr-x 0/0 0 1970-01-01 00:00 app/js/private/test/image/bin.runfiles/aspect_rules_js/js/private/test/image/bin_node_bin -r-xr-xr-x 0/0 133 1970-01-01 00:00 app/js/private/test/image/bin.runfiles/aspect_rules_js/js/private/test/image/bin_node_bin/node -r-xr-xr-x 0/0 20 1970-01-01 00:00 app/js/private/test/image/bin.runfiles/aspect_rules_js/js/private/test/image/main.js