bazel-contrib / bazel-contrib/rules_nodejs

[FR]: Provide codegen for `node_repositories` value to simplify NodeJS upgrades

Open
#3,782 0 comments 0 reactions 0 assignees View on GitHub
enhancement need: discussion need: funding
Dominant language
Starlark
Stars
762
Forks
531
Avg merge
10h 31m
Merged PRs (30d)
3

Description

### What is the current behavior?

When using a version of NodeJS not known to the ruleset (typically a newer version) `node_repositories` must be specified. This is not difficult, but it is tedious (many hashes and strings to wrangle).

e.g.
```starlark
NODE_VERSIONS = {
"20.14.0-darwin_arm64": ("node-v20.14.0-darwin-arm64.tar.gz", "node-v20.14.0-darwin-arm64", "d2148d79e9ff04d2982d00faeae942ceba488ca327a91065e528235167b9e9d6"),
"20.14.0-darwin_amd64": ("node-v20.14.0-darwin-x64.tar.gz", "node-v20.14.0-darwin-x64", "1dcc18a199cb5f46d43ed1c3c61b87a247d1a1a11dd6b32a36a9c46ac1088f86"),
"20.14.0-linux_arm64": ("node-v20.14.0-linux-arm64.tar.xz", "node-v20.14.0-linux-arm64", "8fb7012589850390ec658f58aaa11656031f64a7a8efb0b37607ca140cefe3a9"),
"20.14.0-linux_ppc64le": ("node-v20.14.0-linux-ppc64le.tar.xz", "node-v20.14.0-linux-ppc64le", "2476aa037046e707c1fd755be624f0144438c3ce02fa0a4d0bb8b29fae84b5af"),
"20.14.0-linux_s390x": ("node-v20.14.0-linux-s390x.tar.xz", "node-v20.14.0-linux-s390x", "fafd8e3ac753f7e1468c9390f9f40dd9227172b9cac0ae3902e6df91861519da"),
"20.14.0-linux_amd64": ("node-v20.14.0-linux-x64.tar.xz", "node-v20.14.0-linux-x64", "fedf8fa73b6f51c4ffcc5da8f86cd1ed381bc9dceae0829832c7d683a78b8e36"),
"20.14.0-windows_amd64": ("node-v20.14.0-win-x64.zip", "node-v20.14.0-win-x64", "04cc745e572ff53a6b9ce5b573e4a18303e32351e60c278a93b84466b60d532f"),
}
```

### Describe the feature

Manually constructing `node_repositories` input is tedious work that can be automated easily. In fact, Rules NodeJS itself has already automated the update process internally. The request is to featurise this existing internal capability.

Contributor guide

Open the contributing guide

Assessment

This issue has not been assessed yet.

Get new issues in your inbox

A short digest of beginner-friendly GitHub issues.