refactor: remove rules_nodejs dependency on bazel_skylib
diff --git a/nodejs/repositories.bzl b/nodejs/repositories.bzl
index 4d1b594..a6495a1 100644
--- a/nodejs/repositories.bzl
+++ b/nodejs/repositories.bzl
@@ -4,9 +4,6 @@
load("//nodejs/private:node_versions.bzl", "NODE_VERSIONS")
load("//nodejs/private:nodejs_repo_host_os_alias.bzl", "nodejs_repo_host_os_alias")
load("//nodejs/private:toolchains_repo.bzl", "PLATFORMS", "toolchains_repo")
-load("@bazel_skylib//lib:paths.bzl", "paths")
-load("@bazel_tools//tools/build_defs/repo:http.bzl", "http_archive")
-load("@bazel_tools//tools/build_defs/repo:utils.bzl", "maybe")
# Default base name for node toolchain repositories
# created by the module extension
@@ -236,8 +233,9 @@
node_entry = "bin/node%s" % entry_ext
npm_entry = "bin/npm%s" % entry_ext
- node_bin_relative = paths.relativize(node_bin, "bin")
- npm_script_relative = paths.relativize(npm_script, "bin")
+ node_bin_relative = _strip_bin(node_bin)
+ npm_script_relative = _strip_bin(npm_script)
+ node_entry_relative = _strip_bin(node_entry)
# The entry points for node for osx/linux and windows
if not is_windows:
@@ -279,7 +277,7 @@
"$SCRIPT_DIR/{node}" "$SCRIPT_DIR/{script}" --scripts-prepend-node-path=false "$@"
""".format(
get_script_dir = GET_SCRIPT_DIR,
- node = paths.relativize(node_entry, "bin"),
+ node = node_entry_relative,
script = npm_script_relative,
),
executable = True,
@@ -292,7 +290,7 @@
SET SCRIPT_DIR=%~dp0
"%SCRIPT_DIR%\\{node}" "%SCRIPT_DIR%\\{script}" --scripts-prepend-node-path=false %*
""".format(
- node = paths.relativize(node_entry, "bin"),
+ node = node_entry_relative,
script = npm_script_relative,
),
executable = True,
@@ -361,6 +359,12 @@
"""
repository_ctx.file("BUILD.bazel", content = build_content)
+def _strip_bin(path):
+ if not path.startswith("bin/"):
+ fail("Expected path to start with 'bin/' but was %s" % path)
+
+ return path[len("bin/"):]
+
def _verify_version_is_valid(version):
major, minor, patch = (version.split(".") + [None, None, None])[:3]
if not major.isdigit() or not minor.isdigit() or not patch.isdigit():
@@ -424,12 +428,5 @@
)
def rules_nodejs_dependencies():
- maybe(
- http_archive,
- name = "bazel_skylib",
- sha256 = "c6966ec828da198c5d9adbaa94c05e3a1c7f21bd012a0b29ba8ddbccb2c93b0d",
- urls = [
- "https://github.com/bazelbuild/bazel-skylib/releases/download/1.1.1/bazel-skylib-1.1.1.tar.gz",
- "https://mirror.bazel.build/github.com/bazelbuild/bazel-skylib/releases/download/1.1.1/bazel-skylib-1.1.1.tar.gz",
- ],
- )
+ # This is a no-op, but we keep it around for backwards compatibility.
+ return True
diff --git a/repositories.bzl b/repositories.bzl
index 3deb434..41a54c2 100644
--- a/repositories.bzl
+++ b/repositories.bzl
@@ -21,6 +21,14 @@
load("@bazel_tools//tools/build_defs/repo:utils.bzl", "maybe")
def build_bazel_rules_nodejs_dependencies():
+ core_sha = "764a3b3757bb8c3c6a02ba3344731a3d71e558220adcb0cf7e43c9bba2c37ba8"
+ maybe(
+ http_archive,
+ name = "rules_nodejs",
+ sha256 = core_sha,
+ urls = ["https://github.com/bazelbuild/rules_nodejs/releases/download/5.8.2/rules_nodejs-core-5.8.2.tar.gz"],
+ )
+
maybe(
http_archive,
name = "bazel_skylib",
@@ -30,13 +38,6 @@
"https://mirror.bazel.build/github.com/bazelbuild/bazel-skylib/releases/download/1.1.1/bazel-skylib-1.1.1.tar.gz",
],
)
- core_sha = "764a3b3757bb8c3c6a02ba3344731a3d71e558220adcb0cf7e43c9bba2c37ba8"
- maybe(
- http_archive,
- name = "rules_nodejs",
- sha256 = core_sha,
- urls = ["https://github.com/bazelbuild/rules_nodejs/releases/download/5.8.2/rules_nodejs-core-5.8.2.tar.gz"],
- )
def build_bazel_rules_nodejs_dev_dependencies():
"""