diff --git a/BUILD.bazel b/BUILD.bazel index 6d7e25155e..9c22bf3b11 100644 --- a/BUILD.bazel +++ b/BUILD.bazel @@ -57,7 +57,7 @@ bzl_library( "//internal/pkg_npm:bzl", "//internal/pkg_web:bzl", "//internal/providers:bzl", - "//nodejs/private/providers:bzl", + "@rules_nodejs//nodejs/private/providers:bzl", ], ) @@ -76,8 +76,8 @@ pkg_npm( "BUILD.bazel", "LICENSE", "index.bzl", - "package.bzl", "providers.bzl", + "repositories.bzl", "version.bzl", ], substitutions = COMMON_REPLACEMENTS, @@ -96,8 +96,6 @@ pkg_npm( "//internal/pkg_web:package_contents", "//internal/providers:package_contents", "//internal/runfiles:package_contents", - "//nodejs:package_contents", - "//nodejs/private/providers:package_contents", "//third_party/github.com/bazelbuild/bazel:package_contents", "//third_party/github.com/bazelbuild/bazel-skylib:package_contents", "//third_party/github.com/bazelbuild/bazel/tools/bash/runfiles:package_contents", diff --git a/WORKSPACE b/WORKSPACE index 3b56211302..3d5e2af48b 100644 --- a/WORKSPACE +++ b/WORKSPACE @@ -43,9 +43,9 @@ local_repository( # Install rules_nodejs dev dependencies # -load("//:package.bzl", "rules_nodejs_dev_dependencies") +load("//:repositories.bzl", "build_bazel_rules_nodejs_dev_dependencies") -rules_nodejs_dev_dependencies() +build_bazel_rules_nodejs_dev_dependencies() # # Setup rules_nodejs npm dependencies diff --git a/docs/BUILD.bazel b/docs/BUILD.bazel index b1f1c5e220..50c578bc58 100644 --- a/docs/BUILD.bazel +++ b/docs/BUILD.bazel @@ -24,6 +24,7 @@ stardoc( deps = [ "//:bzl", "//internal/node:bzl", + "@rules_nodejs//nodejs:bzl", ], ) @@ -34,6 +35,7 @@ stardoc( tags = ["fix-windows"], deps = [ "//:bzl", + "@rules_nodejs//nodejs:bzl", ], ) diff --git a/docs/Built-ins.md b/docs/Built-ins.md index f78db9c837..f9e027cdee 100755 --- a/docs/Built-ins.md +++ b/docs/Built-ins.md @@ -13,238 +13,6 @@ via the `WORKSPACE` install of the `build_bazel_rules_nodejs` workspace. This is necessary to bootstrap Bazel to run the package manager to download other rules from NPM. -## node_repositories - -**USAGE** - -
-node_repositories(name, node_download_auth, node_repositories, node_urls, node_version,
-                  package_json, platform, repo_mapping, use_nvmrc, vendored_node, vendored_yarn,
-                  yarn_download_auth, yarn_repositories, yarn_urls, yarn_version)
-
- -To be run in user's WORKSPACE to install rules_nodejs dependencies. - -This rule sets up node, npm, and yarn. The versions of these tools can be specified in one of three ways - -### Simplest Usage - -Specify no explicit versions. This will download and use the latest NodeJS & Yarn that were available when the -version of rules_nodejs you're using was released. -Note that you can skip calling `node_repositories` in your WORKSPACE file - if you later try to `yarn_install` or `npm_install`, -we'll automatically select this simple usage for you. - -### Forced version(s) - -You can select the version of NodeJS and/or Yarn to download & use by specifying it when you call node_repositories, -using a value that matches a known version (see the default values) - -### Using a custom version - -You can pass in a custom list of NodeJS and/or Yarn repositories and URLs for node_resositories to use. - -#### Custom NodeJS versions - -To specify custom NodeJS versions, use the `node_repositories` attribute - -```python -node_repositories( - node_repositories = { - "10.10.0-darwin_amd64": ("node-v10.10.0-darwin-x64.tar.gz", "node-v10.10.0-darwin-x64", "00b7a8426e076e9bf9d12ba2d571312e833fe962c70afafd10ad3682fdeeaa5e"), - "10.10.0-linux_amd64": ("node-v10.10.0-linux-x64.tar.xz", "node-v10.10.0-linux-x64", "686d2c7b7698097e67bcd68edc3d6b5d28d81f62436c7cf9e7779d134ec262a9"), - "10.10.0-windows_amd64": ("node-v10.10.0-win-x64.zip", "node-v10.10.0-win-x64", "70c46e6451798be9d052b700ce5dadccb75cf917f6bf0d6ed54344c856830cfb"), - }, -) -``` - -These can be mapped to a custom download URL, using `node_urls` - -```python -node_repositories( - node_version = "10.10.0", - node_repositories = {"10.10.0-darwin_amd64": ("node-v10.10.0-darwin-x64.tar.gz", "node-v10.10.0-darwin-x64", "00b7a8426e076e9bf9d12ba2d571312e833fe962c70afafd10ad3682fdeeaa5e")}, - node_urls = ["https://mycorpproxy/mirror/node/v{version}/{filename}"], -) -``` - -A Mac client will try to download node from `https://mycorpproxy/mirror/node/v10.10.0/node-v10.10.0-darwin-x64.tar.gz` -and expect that file to have sha256sum `00b7a8426e076e9bf9d12ba2d571312e833fe962c70afafd10ad3682fdeeaa5e` - -#### Custom Yarn versions - -To specify custom Yarn versions, use the `yarn_repositories` attribute - -```python -node_repositories( - yarn_repositories = { - "1.12.1": ("yarn-v1.12.1.tar.gz", "yarn-v1.12.1", "09bea8f4ec41e9079fa03093d3b2db7ac5c5331852236d63815f8df42b3ba88d"), - }, -) -``` - -Like `node_urls`, the `yarn_urls` attribute can be used to provide a list of custom URLs to use to download yarn - -```python -node_repositories( - yarn_repositories = { - "1.12.1": ("yarn-v1.12.1.tar.gz", "yarn-v1.12.1", "09bea8f4ec41e9079fa03093d3b2db7ac5c5331852236d63815f8df42b3ba88d"), - }, - yarn_version = "1.12.1", - yarn_urls = [ - "https://github.com/yarnpkg/yarn/releases/download/v{version}/{filename}", - ], -) -``` - -Will download yarn from https://github.com/yarnpkg/yarn/releases/download/v1.2.1/yarn-v1.12.1.tar.gz -and expect the file to have sha256sum `09bea8f4ec41e9079fa03093d3b2db7ac5c5331852236d63815f8df42b3ba88d`. - -If you don't use Yarn at all, you can skip downloading it by setting `yarn_urls = []`. - -### Using a local version - -To avoid downloads, you can check in vendored copies of NodeJS and/or Yarn and set vendored_node and or vendored_yarn -to point to those before calling node_repositories. You can also point to a location where node is installed on your computer, -but we don't recommend this because it leads to version skew between you, your coworkers, and your Continuous Integration environment. -It also ties your build to a single platform, preventing you from cross-compiling into a Linux docker image on Mac for example. - -See the [the repositories documentation](repositories.html) for how to use the resulting repositories. - -### Manual install - -You can optionally pass a `package_json` array to node_repositories. This lets you use Bazel's version of yarn or npm, yet always run the package manager yourself. -This is an advanced scenario you can use in place of the `npm_install` or `yarn_install` rules, but we don't recommend it, and might remove it in the future. - -``` -load("@build_bazel_rules_nodejs//:index.bzl", "node_repositories") -node_repositories(package_json = ["//:package.json", "//subpkg:package.json"]) -``` - -Running `bazel run @nodejs//:yarn_node_repositories` in this repo would create `/node_modules` and `/subpkg/node_modules`. - -Note that the dependency installation scripts will run in each subpackage indicated by the `package_json` attribute. - - -**ATTRIBUTES** - - -

name

- -(*Name, mandatory*): A unique name for this repository. - - -

node_download_auth

- -(*Dictionary: String -> String*): auth to use for all url requests -Example: {"type": "basic", "login": "", "password": "" } - -Defaults to `{}` - -

node_repositories

- -(*Dictionary: String -> List of strings*): Custom list of node repositories to use - -A dictionary mapping NodeJS versions to sets of hosts and their corresponding (filename, strip_prefix, sha256) tuples. -You should list a node binary for every platform users have, likely Mac, Windows, and Linux. - -By default, if this attribute has no items, we'll use a list of all public NodeJS releases. - -Defaults to `{}` - -

node_urls

- -(*List of strings*): custom list of URLs to use to download NodeJS - -Each entry is a template for downloading a node distribution. - -The `{version}` parameter is substituted with the `node_version` attribute, -and `{filename}` with the matching entry from the `node_repositories` attribute. - -Defaults to `["https://nodejs.org/dist/v{version}/{filename}"]` - -

node_version

- -(*String*): the specific version of NodeJS to install or, if vendored_node is specified, the vendored version of node - -Defaults to `"16.12.0"` - -

package_json

- -(*List of labels*): (ADVANCED, not recommended) - a list of labels, which indicate the package.json files that will be installed - when you manually run the package manager, e.g. with - `bazel run @nodejs//:yarn_node_repositories` or `bazel run @nodejs//:npm_node_repositories install`. - If you use bazel-managed dependencies, you should omit this attribute. - -Defaults to `[]` - -

platform

- -(*String*): Internal use only. Which platform to install as a toolchain. If unset, we assume the repository is named nodejs_[platform] - -Defaults to `""` - -

repo_mapping

- -(*Dictionary: String -> String, mandatory*): A dictionary from local repository name to global repository name. This allows controls over workspace dependency resolution for dependencies of this repository.

For example, an entry `"@foo": "@bar"` declares that, for any time this repository depends on `@foo` (such as a dependency on `@foo//some:target`, it should actually resolve that dependency within globally-declared `@bar` (`@bar//some:target`). - - -

use_nvmrc

- -(*Label*): the local path of the .nvmrc file containing the version of node - -If set then also set node_version to the version found in the .nvmrc file. - -Defaults to `None` - -

vendored_node

- -(*Label*): the local path to a pre-installed NodeJS runtime. - -If set then also set node_version to the version that of node that is vendored. - -Defaults to `None` - -

vendored_yarn

- -(*Label*): the local path to a pre-installed yarn tool - -Defaults to `None` - -

yarn_download_auth

- -(*Dictionary: String -> String*): auth to use for all url requests -Example: {"type": "basic", "login": "", "password": "" } - -Defaults to `{}` - -

yarn_repositories

- -(*Dictionary: String -> List of strings*): Custom list of yarn repositories to use. - -Dictionary mapping Yarn versions to their corresponding (filename, strip_prefix, sha256) tuples. - -By default, if this attribute has no items, we'll use a list of all public NodeJS releases. - -Defaults to `{}` - -

yarn_urls

- -(*List of strings*): custom list of URLs to use to download Yarn - -Each entry is a template, similar to the `node_urls` attribute, using `yarn_version` and `yarn_repositories` in the substitutions. - -If this list is empty, we won't download yarn at all. - -Defaults to `["https://github.com/yarnpkg/yarn/releases/download/v{version}/{filename}"]` - -

yarn_version

- -(*String*): the specific version of Yarn to install - -Defaults to `"1.22.11"` - - ## nodejs_binary **USAGE** diff --git a/docs/Providers.md b/docs/Providers.md index 6e70e0dbbb..25915c7c91 100755 --- a/docs/Providers.md +++ b/docs/Providers.md @@ -10,57 +10,6 @@ Public providers, aspects and helpers that are shipped in the built-in build_baz Users should not load files under "/internal" -## DeclarationInfo - -**USAGE** - -
-DeclarationInfo(declarations, transitive_declarations, type_blocklisted_declarations)
-
- -The DeclarationInfo provider allows JS rules to communicate typing information. -TypeScript's .d.ts files are used as the interop format for describing types. -package.json files are included as well, as TypeScript needs to read the "typings" property. - -Do not create DeclarationInfo instances directly, instead use the declaration_info factory function. - -Note: historically this was a subset of the string-typed "typescript" provider. - - -**FIELDS** - -

declarations

- - A depset of typings files produced by this rule -

transitive_declarations

- - A depset of typings files produced by this rule and all its transitive dependencies. -This prevents needing an aspect in rules that consume the typings, which improves performance. -

type_blocklisted_declarations

- - A depset of .d.ts files that we should not use to infer JSCompiler types (via tsickle) - - -## DirectoryFilePathInfo - -**USAGE** - -
-DirectoryFilePathInfo(directory, path)
-
- -Joins a label pointing to a TreeArtifact with a path nested within that directory. - -**FIELDS** - -

directory

- - a TreeArtifact (ctx.actions.declare_directory) -

path

- - path relative to the directory - - ## ExternalNpmPackageInfo **USAGE** @@ -115,26 +64,6 @@ Historical note: this was the typescript.es6_sources output Depset of direct and transitive JavaScript files and sourcemaps -## JSModuleInfo - -**USAGE** - -
-JSModuleInfo(direct_sources, sources)
-
- -JavaScript files and sourcemaps. - -**FIELDS** - -

direct_sources

- - Depset of direct JavaScript files and sourcemaps -

sources

- - Depset of direct and transitive JavaScript files and sourcemaps - - ## JSNamedModuleInfo **USAGE** @@ -163,47 +92,6 @@ Historical note: this was the typescript.es5_sources output. Depset of direct and transitive JavaScript files and sourcemaps -## LinkablePackageInfo - -**USAGE** - -
-LinkablePackageInfo(files, package_name, package_path, path)
-
- -The LinkablePackageInfo provider provides information to the linker for linking pkg_npm built packages - -**FIELDS** - -

files

- - Depset of files in this package (must all be contained within path) -

package_name

- - The package name. - -This field is optional. If not set, the target can be made linkable to a package_name with the npm_link rule. -

package_path

- - The directory in the workspace to link to. - -If set, link the 1st party dependencies to the node_modules under the package path specified. -If unset, the default is to link to the node_modules root of the workspace. -

path

- - The path to link to. - -Path must be relative to execroot/wksp. It can either an output dir path such as, - -`bazel-out/-/bin/path/to/package` or -`bazel-out/-/bin/external/external_wksp>/path/to/package` - -or a source file path such as, - -`path/to/package` or -`external//path/to/package` - - ## NodeContextInfo **USAGE** @@ -284,32 +172,6 @@ Provides information about one or more external npm packages The workspace name that these external npm package(s) are provided from -## declaration_info - -**USAGE** - -
-declaration_info(declarations, deps)
-
- -Constructs a DeclarationInfo including all transitive files needed to type-check from DeclarationInfo providers in a list of deps. - -**PARAMETERS** - - -

declarations

- -list of typings files - - - -

deps

- -list of labels of dependencies where we should collect their DeclarationInfo to pass transitively - -Defaults to `[]` - - ## js_ecma_script_module_info **USAGE** @@ -336,32 +198,6 @@ Returns a single JSEcmaScriptModuleInfo. Defaults to `[]` -## js_module_info - -**USAGE** - -
-js_module_info(sources, deps)
-
- -Constructs a JSModuleInfo including all transitive sources from JSModuleInfo providers in a list of deps. - -Returns a single JSModuleInfo. - -**PARAMETERS** - - -

sources

- - - - -

deps

- - -Defaults to `[]` - - ## js_named_module_info **USAGE** diff --git a/e2e/bazel_managed_deps/WORKSPACE b/e2e/bazel_managed_deps/WORKSPACE index a189459f6a..c2d500e422 100644 --- a/e2e/bazel_managed_deps/WORKSPACE +++ b/e2e/bazel_managed_deps/WORKSPACE @@ -25,9 +25,9 @@ http_archive( urls = ["https://github.com/bazelbuild/rules_nodejs/releases/download/4.4.0/rules_nodejs-4.4.0.tar.gz"], ) -load("@build_bazel_rules_nodejs//nodejs:repositories.bzl", "rules_nodejs_dependencies") +load("@build_bazel_rules_nodejs//:repositories.bzl", "build_bazel_rules_nodejs_dependencies") -rules_nodejs_dependencies() +build_bazel_rules_nodejs_dependencies() load("@build_bazel_rules_nodejs//:index.bzl", "yarn_install") diff --git a/e2e/concatjs_devserver/WORKSPACE b/e2e/concatjs_devserver/WORKSPACE index ff6d838a43..d37ae3625a 100644 --- a/e2e/concatjs_devserver/WORKSPACE +++ b/e2e/concatjs_devserver/WORKSPACE @@ -25,9 +25,9 @@ http_archive( urls = ["https://github.com/bazelbuild/rules_nodejs/releases/download/4.4.0/rules_nodejs-4.4.0.tar.gz"], ) -load("@build_bazel_rules_nodejs//nodejs:repositories.bzl", "rules_nodejs_dependencies") +load("@build_bazel_rules_nodejs//:repositories.bzl", "build_bazel_rules_nodejs_dependencies") -rules_nodejs_dependencies() +build_bazel_rules_nodejs_dependencies() load("@build_bazel_rules_nodejs//:index.bzl", "yarn_install") diff --git a/e2e/coverage/WORKSPACE b/e2e/coverage/WORKSPACE index 9e6a2ebe53..798a79fc5c 100644 --- a/e2e/coverage/WORKSPACE +++ b/e2e/coverage/WORKSPACE @@ -25,9 +25,9 @@ http_archive( urls = ["https://github.com/bazelbuild/rules_nodejs/releases/download/4.4.0/rules_nodejs-4.4.0.tar.gz"], ) -load("@build_bazel_rules_nodejs//nodejs:repositories.bzl", "rules_nodejs_dependencies") +load("@build_bazel_rules_nodejs//:repositories.bzl", "build_bazel_rules_nodejs_dependencies") -rules_nodejs_dependencies() +build_bazel_rules_nodejs_dependencies() # Load web_test_suite http_archive( diff --git a/e2e/fine_grained_symlinks/WORKSPACE b/e2e/fine_grained_symlinks/WORKSPACE index 064da95182..7bd4ddb684 100644 --- a/e2e/fine_grained_symlinks/WORKSPACE +++ b/e2e/fine_grained_symlinks/WORKSPACE @@ -11,9 +11,9 @@ http_archive( urls = ["https://github.com/bazelbuild/rules_nodejs/releases/download/4.4.0/rules_nodejs-4.4.0.tar.gz"], ) -load("@build_bazel_rules_nodejs//nodejs:repositories.bzl", "rules_nodejs_dependencies") +load("@build_bazel_rules_nodejs//:repositories.bzl", "build_bazel_rules_nodejs_dependencies") -rules_nodejs_dependencies() +build_bazel_rules_nodejs_dependencies() load("@build_bazel_rules_nodejs//:index.bzl", "node_repositories", "yarn_install") diff --git a/e2e/jasmine/WORKSPACE b/e2e/jasmine/WORKSPACE index 9348165f09..5b85d75958 100644 --- a/e2e/jasmine/WORKSPACE +++ b/e2e/jasmine/WORKSPACE @@ -25,9 +25,9 @@ http_archive( urls = ["https://github.com/bazelbuild/rules_nodejs/releases/download/4.4.0/rules_nodejs-4.4.0.tar.gz"], ) -load("@build_bazel_rules_nodejs//nodejs:repositories.bzl", "rules_nodejs_dependencies") +load("@build_bazel_rules_nodejs//:repositories.bzl", "build_bazel_rules_nodejs_dependencies") -rules_nodejs_dependencies() +build_bazel_rules_nodejs_dependencies() load("@build_bazel_rules_nodejs//:index.bzl", "yarn_install") diff --git a/e2e/node_loader_no_preserve_symlinks/WORKSPACE b/e2e/node_loader_no_preserve_symlinks/WORKSPACE index e409ab965e..727d656cd3 100644 --- a/e2e/node_loader_no_preserve_symlinks/WORKSPACE +++ b/e2e/node_loader_no_preserve_symlinks/WORKSPACE @@ -13,9 +13,9 @@ http_archive( urls = ["https://github.com/bazelbuild/rules_nodejs/releases/download/4.4.0/rules_nodejs-4.4.0.tar.gz"], ) -load("@build_bazel_rules_nodejs//nodejs:repositories.bzl", "rules_nodejs_dependencies") +load("@build_bazel_rules_nodejs//:repositories.bzl", "build_bazel_rules_nodejs_dependencies") -rules_nodejs_dependencies() +build_bazel_rules_nodejs_dependencies() load("@rules_nodejs//nodejs:repositories.bzl", "nodejs_register_toolchains") diff --git a/e2e/node_loader_preserve_symlinks/WORKSPACE b/e2e/node_loader_preserve_symlinks/WORKSPACE index 3162b97e95..a46a3fb55a 100644 --- a/e2e/node_loader_preserve_symlinks/WORKSPACE +++ b/e2e/node_loader_preserve_symlinks/WORKSPACE @@ -13,9 +13,9 @@ http_archive( urls = ["https://github.com/bazelbuild/rules_nodejs/releases/download/4.4.0/rules_nodejs-4.4.0.tar.gz"], ) -load("@build_bazel_rules_nodejs//nodejs:repositories.bzl", "rules_nodejs_dependencies") +load("@build_bazel_rules_nodejs//:repositories.bzl", "build_bazel_rules_nodejs_dependencies") -rules_nodejs_dependencies() +build_bazel_rules_nodejs_dependencies() load("@build_bazel_rules_nodejs//:index.bzl", "yarn_install") diff --git a/e2e/nodejs_image/WORKSPACE b/e2e/nodejs_image/WORKSPACE index 2ff4fb4b4d..c9ff712e6c 100644 --- a/e2e/nodejs_image/WORKSPACE +++ b/e2e/nodejs_image/WORKSPACE @@ -25,9 +25,9 @@ http_archive( urls = ["https://github.com/bazelbuild/rules_nodejs/releases/download/4.4.0/rules_nodejs-4.4.0.tar.gz"], ) -load("@build_bazel_rules_nodejs//nodejs:repositories.bzl", "rules_nodejs_dependencies") +load("@build_bazel_rules_nodejs//:repositories.bzl", "build_bazel_rules_nodejs_dependencies") -rules_nodejs_dependencies() +build_bazel_rules_nodejs_dependencies() load("@build_bazel_rules_nodejs//:index.bzl", "yarn_install") diff --git a/e2e/nodejs_repository/WORKSPACE b/e2e/nodejs_repository/WORKSPACE index 6872269842..452e4eee08 100644 --- a/e2e/nodejs_repository/WORKSPACE +++ b/e2e/nodejs_repository/WORKSPACE @@ -11,9 +11,9 @@ http_archive( urls = ["https://github.com/bazelbuild/rules_nodejs/releases/download/4.4.0/rules_nodejs-4.4.0.tar.gz"], ) -load("@build_bazel_rules_nodejs//nodejs:repositories.bzl", "rules_nodejs_dependencies") +load("@build_bazel_rules_nodejs//:repositories.bzl", "build_bazel_rules_nodejs_dependencies") -rules_nodejs_dependencies() +build_bazel_rules_nodejs_dependencies() load("@build_bazel_rules_nodejs//:index.bzl", "yarn_install") diff --git a/e2e/packages/WORKSPACE b/e2e/packages/WORKSPACE index 8188c93839..157c9487da 100644 --- a/e2e/packages/WORKSPACE +++ b/e2e/packages/WORKSPACE @@ -8,14 +8,14 @@ http_archive( urls = ["https://github.com/bazelbuild/rules_nodejs/releases/download/4.4.0/rules_nodejs-4.4.0.tar.gz"], ) -load("@build_bazel_rules_nodejs//nodejs:repositories.bzl", "rules_nodejs_dependencies") +load("@build_bazel_rules_nodejs//:repositories.bzl", "build_bazel_rules_nodejs_dependencies") -rules_nodejs_dependencies() +build_bazel_rules_nodejs_dependencies() -load("@build_bazel_rules_nodejs//:index.bzl", "check_rules_nodejs_version", "node_repositories", "npm_install", "yarn_install") +load("@build_bazel_rules_nodejs//:index.bzl", "check_build_bazel_rules_nodejs_version", "node_repositories", "npm_install", "yarn_install") -# Test that check_rules_nodejs_version works as expected -check_rules_nodejs_version(minimum_version_string = "0.11.2") +# Test that check_build_bazel_rules_nodejs_version works as expected +check_build_bazel_rules_nodejs_version(minimum_version_string = "4.4.0") node_repositories() diff --git a/e2e/symlinked_node_modules_npm/WORKSPACE b/e2e/symlinked_node_modules_npm/WORKSPACE index eecafeded0..c01174a247 100644 --- a/e2e/symlinked_node_modules_npm/WORKSPACE +++ b/e2e/symlinked_node_modules_npm/WORKSPACE @@ -20,11 +20,11 @@ load("@rules_nodejs//nodejs:repositories.bzl", "nodejs_register_toolchains") nodejs_register_toolchains(name = "node") -# rules_nodejs_dev_dependencies() required since we're using local_repository for +# build_bazel_rules_nodejs_dev_dependencies() required since we're using local_repository for # build_bazel_rules_nodejs above. -load("@build_bazel_rules_nodejs//:package.bzl", "rules_nodejs_dev_dependencies") +load("@build_bazel_rules_nodejs//:repositories.bzl", "build_bazel_rules_nodejs_dev_dependencies") -rules_nodejs_dev_dependencies() +build_bazel_rules_nodejs_dev_dependencies() load("@build_bazel_rules_nodejs//:index.bzl", "npm_install") diff --git a/e2e/symlinked_node_modules_yarn/WORKSPACE b/e2e/symlinked_node_modules_yarn/WORKSPACE index 92947db134..3c5bea3c8c 100644 --- a/e2e/symlinked_node_modules_yarn/WORKSPACE +++ b/e2e/symlinked_node_modules_yarn/WORKSPACE @@ -20,11 +20,11 @@ load("@rules_nodejs//nodejs:repositories.bzl", "nodejs_register_toolchains") nodejs_register_toolchains(name = "node") -# rules_nodejs_dev_dependencies() required since we're using local_repository for +# build_bazel_rules_nodejs_dev_dependencies() required since we're using local_repository for # build_bazel_rules_nodejs above. -load("@build_bazel_rules_nodejs//:package.bzl", "rules_nodejs_dev_dependencies") +load("@build_bazel_rules_nodejs//:repositories.bzl", "build_bazel_rules_nodejs_dev_dependencies") -rules_nodejs_dev_dependencies() +build_bazel_rules_nodejs_dev_dependencies() load("@build_bazel_rules_nodejs//:index.bzl", "yarn_install") diff --git a/e2e/typescript/WORKSPACE b/e2e/typescript/WORKSPACE index d348ee482c..0e5fcf9310 100644 --- a/e2e/typescript/WORKSPACE +++ b/e2e/typescript/WORKSPACE @@ -25,9 +25,9 @@ http_archive( urls = ["https://github.com/bazelbuild/rules_nodejs/releases/download/4.4.0/rules_nodejs-4.4.0.tar.gz"], ) -load("@build_bazel_rules_nodejs//nodejs:repositories.bzl", "rules_nodejs_dependencies") +load("@build_bazel_rules_nodejs//:repositories.bzl", "build_bazel_rules_nodejs_dependencies") -rules_nodejs_dependencies() +build_bazel_rules_nodejs_dependencies() # Load web_test_suite http_archive( diff --git a/e2e/webapp/WORKSPACE b/e2e/webapp/WORKSPACE index 3938218a7b..0248a6598d 100644 --- a/e2e/webapp/WORKSPACE +++ b/e2e/webapp/WORKSPACE @@ -25,9 +25,9 @@ http_archive( urls = ["https://github.com/bazelbuild/rules_nodejs/releases/download/4.4.0/rules_nodejs-4.4.0.tar.gz"], ) -load("@build_bazel_rules_nodejs//nodejs:repositories.bzl", "rules_nodejs_dependencies") +load("@build_bazel_rules_nodejs//:repositories.bzl", "build_bazel_rules_nodejs_dependencies") -rules_nodejs_dependencies() +build_bazel_rules_nodejs_dependencies() load("@build_bazel_rules_nodejs//:index.bzl", "yarn_install") diff --git a/examples/BUILD.bazel b/examples/BUILD.bazel index ae451cbe54..e3e8258744 100644 --- a/examples/BUILD.bazel +++ b/examples/BUILD.bazel @@ -18,6 +18,7 @@ example_integration_test( name = "examples_angular", timeout = "long", npm_packages = { + "//packages/esbuild:npm_package": "@bazel/esbuild", "//packages/protractor:npm_package": "@bazel/protractor", "//packages/rollup:npm_package": "@bazel/rollup", "//packages/terser:npm_package": "@bazel/terser", diff --git a/examples/angular/WORKSPACE b/examples/angular/WORKSPACE index 9d2270c367..856222d3dc 100644 --- a/examples/angular/WORKSPACE +++ b/examples/angular/WORKSPACE @@ -19,9 +19,11 @@ http_archive( urls = ["https://github.com/bazelbuild/rules_nodejs/releases/download/4.4.0/rules_nodejs-4.4.0.tar.gz"], ) -load("@build_bazel_rules_nodejs//nodejs:repositories.bzl", "nodejs_register_toolchains", "rules_nodejs_dependencies") +load("@build_bazel_rules_nodejs//:repositories.bzl", "build_bazel_rules_nodejs_dependencies") -rules_nodejs_dependencies() +build_bazel_rules_nodejs_dependencies() + +load("@rules_nodejs//nodejs:repositories.bzl", "nodejs_register_toolchains") nodejs_register_toolchains( name = "nodejs", diff --git a/examples/angular_bazel_architect/WORKSPACE b/examples/angular_bazel_architect/WORKSPACE index c016257261..08e0288df9 100644 --- a/examples/angular_bazel_architect/WORKSPACE +++ b/examples/angular_bazel_architect/WORKSPACE @@ -16,9 +16,9 @@ http_archive( urls = ["https://github.com/bazelbuild/rules_nodejs/releases/download/4.4.0/rules_nodejs-4.4.0.tar.gz"], ) -load("@build_bazel_rules_nodejs//nodejs:repositories.bzl", "rules_nodejs_dependencies") +load("@build_bazel_rules_nodejs//:repositories.bzl", "build_bazel_rules_nodejs_dependencies") -rules_nodejs_dependencies() +build_bazel_rules_nodejs_dependencies() # The yarn_install rule runs yarn anytime the package.json or yarn.lock file changes. # It also extracts and installs any Bazel rules distributed in an npm package. diff --git a/examples/app/WORKSPACE b/examples/app/WORKSPACE index e66df2f7be..9f93f14c38 100644 --- a/examples/app/WORKSPACE +++ b/examples/app/WORKSPACE @@ -25,9 +25,9 @@ http_archive( urls = ["https://github.com/bazelbuild/rules_nodejs/releases/download/4.4.0/rules_nodejs-4.4.0.tar.gz"], ) -load("@build_bazel_rules_nodejs//nodejs:repositories.bzl", "rules_nodejs_dependencies") +load("@build_bazel_rules_nodejs//:repositories.bzl", "build_bazel_rules_nodejs_dependencies") -rules_nodejs_dependencies() +build_bazel_rules_nodejs_dependencies() load("@build_bazel_rules_nodejs//:index.bzl", "yarn_install") diff --git a/examples/closure/WORKSPACE b/examples/closure/WORKSPACE index 51b4c0b3b5..e15e186d2a 100644 --- a/examples/closure/WORKSPACE +++ b/examples/closure/WORKSPACE @@ -25,9 +25,9 @@ http_archive( urls = ["https://github.com/bazelbuild/rules_nodejs/releases/download/4.4.0/rules_nodejs-4.4.0.tar.gz"], ) -load("@build_bazel_rules_nodejs//nodejs:repositories.bzl", "rules_nodejs_dependencies") +load("@build_bazel_rules_nodejs//:repositories.bzl", "build_bazel_rules_nodejs_dependencies") -rules_nodejs_dependencies() +build_bazel_rules_nodejs_dependencies() load("@build_bazel_rules_nodejs//:index.bzl", "yarn_install") diff --git a/examples/create-react-app/WORKSPACE b/examples/create-react-app/WORKSPACE index f3aa6102a2..c76630299d 100644 --- a/examples/create-react-app/WORKSPACE +++ b/examples/create-react-app/WORKSPACE @@ -11,9 +11,9 @@ http_archive( urls = ["https://github.com/bazelbuild/rules_nodejs/releases/download/4.4.0/rules_nodejs-4.4.0.tar.gz"], ) -load("@build_bazel_rules_nodejs//nodejs:repositories.bzl", "rules_nodejs_dependencies") +load("@build_bazel_rules_nodejs//:repositories.bzl", "build_bazel_rules_nodejs_dependencies") -rules_nodejs_dependencies() +build_bazel_rules_nodejs_dependencies() load("@build_bazel_rules_nodejs//:index.bzl", "yarn_install") diff --git a/examples/cypress/WORKSPACE b/examples/cypress/WORKSPACE index 0a811053e1..ea88eaa7e3 100644 --- a/examples/cypress/WORKSPACE +++ b/examples/cypress/WORKSPACE @@ -25,9 +25,9 @@ http_archive( urls = ["https://github.com/bazelbuild/rules_nodejs/releases/download/4.4.0/rules_nodejs-4.4.0.tar.gz"], ) -load("@build_bazel_rules_nodejs//nodejs:repositories.bzl", "rules_nodejs_dependencies") +load("@build_bazel_rules_nodejs//:repositories.bzl", "build_bazel_rules_nodejs_dependencies") -rules_nodejs_dependencies() +build_bazel_rules_nodejs_dependencies() load("@build_bazel_rules_nodejs//:index.bzl", "yarn_install") diff --git a/examples/esbuild/WORKSPACE b/examples/esbuild/WORKSPACE index 817b1dbfd3..09457996f7 100644 --- a/examples/esbuild/WORKSPACE +++ b/examples/esbuild/WORKSPACE @@ -25,9 +25,9 @@ http_archive( urls = ["https://github.com/bazelbuild/rules_nodejs/releases/download/4.4.0/rules_nodejs-4.4.0.tar.gz"], ) -load("@build_bazel_rules_nodejs//nodejs:repositories.bzl", "rules_nodejs_dependencies") +load("@build_bazel_rules_nodejs//:repositories.bzl", "build_bazel_rules_nodejs_dependencies") -rules_nodejs_dependencies() +build_bazel_rules_nodejs_dependencies() load("@build_bazel_rules_nodejs//:index.bzl", "yarn_install") diff --git a/examples/from_source/WORKSPACE b/examples/from_source/WORKSPACE index bc76732f0b..40a36be39c 100644 --- a/examples/from_source/WORKSPACE +++ b/examples/from_source/WORKSPACE @@ -16,9 +16,9 @@ local_repository( path = "../..", ) -load("@build_bazel_rules_nodejs//:package.bzl", "rules_nodejs_dev_dependencies") +load("@build_bazel_rules_nodejs//:repositories.bzl", "build_bazel_rules_nodejs_dev_dependencies") -rules_nodejs_dev_dependencies() +build_bazel_rules_nodejs_dev_dependencies() load("@build_bazel_rules_nodejs//packages/concatjs:package.bzl", "rules_typescript_dev_dependencies") diff --git a/examples/jest/WORKSPACE b/examples/jest/WORKSPACE index 0b7eb09f79..8fd543a687 100644 --- a/examples/jest/WORKSPACE +++ b/examples/jest/WORKSPACE @@ -25,9 +25,9 @@ http_archive( urls = ["https://github.com/bazelbuild/rules_nodejs/releases/download/4.4.0/rules_nodejs-4.4.0.tar.gz"], ) -load("@build_bazel_rules_nodejs//nodejs:repositories.bzl", "rules_nodejs_dependencies") +load("@build_bazel_rules_nodejs//:repositories.bzl", "build_bazel_rules_nodejs_dependencies") -rules_nodejs_dependencies() +build_bazel_rules_nodejs_dependencies() load("@build_bazel_rules_nodejs//:index.bzl", "yarn_install") diff --git a/examples/kotlin/WORKSPACE b/examples/kotlin/WORKSPACE index 9fbd39dd35..f62bb5bb73 100644 --- a/examples/kotlin/WORKSPACE +++ b/examples/kotlin/WORKSPACE @@ -11,9 +11,9 @@ http_archive( urls = ["https://github.com/bazelbuild/rules_nodejs/releases/download/4.4.0/rules_nodejs-4.4.0.tar.gz"], ) -load("@build_bazel_rules_nodejs//nodejs:repositories.bzl", "rules_nodejs_dependencies") +load("@build_bazel_rules_nodejs//:repositories.bzl", "build_bazel_rules_nodejs_dependencies") -rules_nodejs_dependencies() +build_bazel_rules_nodejs_dependencies() # Install external npm dependencies load("@build_bazel_rules_nodejs//:index.bzl", "npm_install") diff --git a/examples/nestjs/WORKSPACE b/examples/nestjs/WORKSPACE index 294d653c5a..62a171bb88 100644 --- a/examples/nestjs/WORKSPACE +++ b/examples/nestjs/WORKSPACE @@ -25,9 +25,9 @@ http_archive( urls = ["https://github.com/bazelbuild/rules_nodejs/releases/download/4.4.0/rules_nodejs-4.4.0.tar.gz"], ) -load("@build_bazel_rules_nodejs//nodejs:repositories.bzl", "rules_nodejs_dependencies") +load("@build_bazel_rules_nodejs//:repositories.bzl", "build_bazel_rules_nodejs_dependencies") -rules_nodejs_dependencies() +build_bazel_rules_nodejs_dependencies() load("@build_bazel_rules_nodejs//:index.bzl", "yarn_install") diff --git a/examples/parcel/WORKSPACE b/examples/parcel/WORKSPACE index 2943e2647c..128a070861 100644 --- a/examples/parcel/WORKSPACE +++ b/examples/parcel/WORKSPACE @@ -25,9 +25,11 @@ http_archive( urls = ["https://github.com/bazelbuild/rules_nodejs/releases/download/4.4.0/rules_nodejs-4.4.0.tar.gz"], ) -load("@build_bazel_rules_nodejs//nodejs:repositories.bzl", "nodejs_register_toolchains", "rules_nodejs_dependencies") +load("@build_bazel_rules_nodejs//:repositories.bzl", "build_bazel_rules_nodejs_dependencies") -rules_nodejs_dependencies() +build_bazel_rules_nodejs_dependencies() + +load("@rules_nodejs//nodejs:repositories.bzl", "nodejs_register_toolchains") nodejs_register_toolchains( name = "nodejs", diff --git a/examples/protobufjs/WORKSPACE b/examples/protobufjs/WORKSPACE index 1759cac5f1..40788e0107 100644 --- a/examples/protobufjs/WORKSPACE +++ b/examples/protobufjs/WORKSPACE @@ -25,9 +25,9 @@ http_archive( urls = ["https://github.com/bazelbuild/rules_nodejs/releases/download/4.4.0/rules_nodejs-4.4.0.tar.gz"], ) -load("@build_bazel_rules_nodejs//nodejs:repositories.bzl", "rules_nodejs_dependencies") +load("@build_bazel_rules_nodejs//:repositories.bzl", "build_bazel_rules_nodejs_dependencies") -rules_nodejs_dependencies() +build_bazel_rules_nodejs_dependencies() http_archive( name = "rules_proto", diff --git a/examples/react_webpack/WORKSPACE b/examples/react_webpack/WORKSPACE index 1e013e6be6..03c4afe696 100644 --- a/examples/react_webpack/WORKSPACE +++ b/examples/react_webpack/WORKSPACE @@ -11,9 +11,9 @@ http_archive( urls = ["https://github.com/bazelbuild/rules_nodejs/releases/download/4.4.0/rules_nodejs-4.4.0.tar.gz"], ) -load("@build_bazel_rules_nodejs//nodejs:repositories.bzl", "rules_nodejs_dependencies") +load("@build_bazel_rules_nodejs//:repositories.bzl", "build_bazel_rules_nodejs_dependencies") -rules_nodejs_dependencies() +build_bazel_rules_nodejs_dependencies() load("@build_bazel_rules_nodejs//:index.bzl", "yarn_install") diff --git a/examples/user_managed_deps/README.md b/examples/user_managed_deps/README.md index a48adcfe25..6f3849beb1 100644 --- a/examples/user_managed_deps/README.md +++ b/examples/user_managed_deps/README.md @@ -37,8 +37,8 @@ This means you'll be exposed to the dev dependencies of rules_nodejs, and will n and call a function in your WORKSPACE file. ``` -load("@build_bazel_rules_nodejs//:package.bzl", "rules_nodejs_dev_dependencies") -rules_nodejs_dev_dependencies() +load("@build_bazel_rules_nodejs//:repositories.bzl", "build_bazel_rules_nodejs_dev_dependencies") +build_bazel_rules_nodejs_dev_dependencies() ``` You then load rules from the source locations like diff --git a/examples/user_managed_deps/WORKSPACE b/examples/user_managed_deps/WORKSPACE index 28e042d29e..d0bff644e7 100644 --- a/examples/user_managed_deps/WORKSPACE +++ b/examples/user_managed_deps/WORKSPACE @@ -19,9 +19,9 @@ local_repository( path = "../..", ) -load("@build_bazel_rules_nodejs//:package.bzl", "rules_nodejs_dev_dependencies") +load("@build_bazel_rules_nodejs//:repositories.bzl", "build_bazel_rules_nodejs_dev_dependencies") -rules_nodejs_dev_dependencies() +build_bazel_rules_nodejs_dev_dependencies() load("@build_bazel_rules_nodejs//:index.bzl", "node_repositories") diff --git a/examples/vendored_node/WORKSPACE b/examples/vendored_node/WORKSPACE index 18375dc383..a60c07c5b7 100644 --- a/examples/vendored_node/WORKSPACE +++ b/examples/vendored_node/WORKSPACE @@ -25,9 +25,9 @@ http_archive( urls = ["https://github.com/bazelbuild/rules_nodejs/releases/download/4.4.0/rules_nodejs-4.4.0.tar.gz"], ) -load("@build_bazel_rules_nodejs//nodejs:repositories.bzl", "rules_nodejs_dependencies") +load("@build_bazel_rules_nodejs//:repositories.bzl", "build_bazel_rules_nodejs_dependencies") -rules_nodejs_dependencies() +build_bazel_rules_nodejs_dependencies() http_archive( name = "vendored_node_15_0_1", diff --git a/examples/vendored_node_and_yarn/WORKSPACE b/examples/vendored_node_and_yarn/WORKSPACE index 1c6b739a0c..f81e2e1904 100644 --- a/examples/vendored_node_and_yarn/WORKSPACE +++ b/examples/vendored_node_and_yarn/WORKSPACE @@ -25,9 +25,9 @@ http_archive( urls = ["https://github.com/bazelbuild/rules_nodejs/releases/download/4.4.0/rules_nodejs-4.4.0.tar.gz"], ) -load("@build_bazel_rules_nodejs//nodejs:repositories.bzl", "rules_nodejs_dependencies") +load("@build_bazel_rules_nodejs//:repositories.bzl", "build_bazel_rules_nodejs_dependencies") -rules_nodejs_dependencies() +build_bazel_rules_nodejs_dependencies() http_archive( name = "vendored_node_10_12_0", diff --git a/examples/vue/WORKSPACE b/examples/vue/WORKSPACE index d4ebd53abc..cac8e79226 100644 --- a/examples/vue/WORKSPACE +++ b/examples/vue/WORKSPACE @@ -11,9 +11,9 @@ http_archive( urls = ["https://github.com/bazelbuild/rules_nodejs/releases/download/4.4.0/rules_nodejs-4.4.0.tar.gz"], ) -load("@build_bazel_rules_nodejs//nodejs:repositories.bzl", "rules_nodejs_dependencies") +load("@build_bazel_rules_nodejs//:repositories.bzl", "build_bazel_rules_nodejs_dependencies") -rules_nodejs_dependencies() +build_bazel_rules_nodejs_dependencies() load("@rules_nodejs//nodejs:repositories.bzl", "nodejs_register_toolchains") diff --git a/examples/web_testing/WORKSPACE b/examples/web_testing/WORKSPACE index f33b83194f..6e1e4c87c8 100644 --- a/examples/web_testing/WORKSPACE +++ b/examples/web_testing/WORKSPACE @@ -25,9 +25,9 @@ http_archive( urls = ["https://github.com/bazelbuild/rules_nodejs/releases/download/4.4.0/rules_nodejs-4.4.0.tar.gz"], ) -load("@build_bazel_rules_nodejs//nodejs:repositories.bzl", "rules_nodejs_dependencies") +load("@build_bazel_rules_nodejs//:repositories.bzl", "build_bazel_rules_nodejs_dependencies") -rules_nodejs_dependencies() +build_bazel_rules_nodejs_dependencies() load("@build_bazel_rules_nodejs//:index.bzl", "yarn_install") diff --git a/examples/webapp/WORKSPACE b/examples/webapp/WORKSPACE index c79d619d31..33518e875d 100644 --- a/examples/webapp/WORKSPACE +++ b/examples/webapp/WORKSPACE @@ -25,9 +25,9 @@ http_archive( urls = ["https://github.com/bazelbuild/rules_nodejs/releases/download/4.4.0/rules_nodejs-4.4.0.tar.gz"], ) -load("@build_bazel_rules_nodejs//nodejs:repositories.bzl", "rules_nodejs_dependencies") +load("@build_bazel_rules_nodejs//:repositories.bzl", "build_bazel_rules_nodejs_dependencies") -rules_nodejs_dependencies() +build_bazel_rules_nodejs_dependencies() load("@build_bazel_rules_nodejs//:index.bzl", "yarn_install") diff --git a/examples/worker/WORKSPACE b/examples/worker/WORKSPACE index 0ffc137bf7..58d383d8df 100644 --- a/examples/worker/WORKSPACE +++ b/examples/worker/WORKSPACE @@ -25,9 +25,9 @@ http_archive( urls = ["https://github.com/bazelbuild/rules_nodejs/releases/download/4.4.0/rules_nodejs-4.4.0.tar.gz"], ) -load("@build_bazel_rules_nodejs//nodejs:repositories.bzl", "rules_nodejs_dependencies") +load("@build_bazel_rules_nodejs//:repositories.bzl", "build_bazel_rules_nodejs_dependencies") -rules_nodejs_dependencies() +build_bazel_rules_nodejs_dependencies() load("@build_bazel_rules_nodejs//:index.bzl", "yarn_install") diff --git a/index.bzl b/index.bzl index 9d36662b07..d3ad3fe417 100644 --- a/index.bzl +++ b/index.bzl @@ -34,10 +34,6 @@ load("//internal/node:npm_package_bin.bzl", _npm_bin = "npm_package_bin") load("//internal/npm_install:npm_install.bzl", _npm_install = "npm_install", _yarn_install = "yarn_install") load("//internal/pkg_npm:pkg_npm.bzl", _pkg_npm = "pkg_npm_macro") load("//internal/pkg_web:pkg_web.bzl", _pkg_web = "pkg_web") -load( - "//nodejs/private/providers:directory_file_path_info.bzl", - _directory_file_path = "directory_file_path", -) check_bazel_version = _check_bazel_version nodejs_binary = _nodejs_binary @@ -50,7 +46,6 @@ copy_to_bin = _copy_to_bin params_file = _params_file generated_file_test = _generated_file_test js_library = _js_library -directory_file_path = _directory_file_path # ANY RULES ADDED HERE SHOULD BE DOCUMENTED, see index.for_docs.bzl # @unsorted-dict-items @@ -85,7 +80,7 @@ BAZEL_VERSION = "4.1.0" # bazel_integration_test. SUPPORTED_BAZEL_VERSIONS = [BAZEL_VERSION] -def check_rules_nodejs_version(minimum_version_string): +def check_build_bazel_rules_nodejs_version(minimum_version_string): """ Verify that a minimum build_bazel_rules_nodejs is loaded a WORKSPACE. @@ -94,8 +89,8 @@ def check_rules_nodejs_version(minimum_version_string): ``` # in WORKSPACE: - load("@build_bazel_rules_nodejs//:package.bzl", "check_rules_nodejs_version") - check_rules_nodejs_version("0.11.2") + load("@build_bazel_rules_nodejs//:index.bzl", "check_build_bazel_rules_nodejs_version") + check_build_bazel_rules_nodejs_version("4.4.0") ``` Args: @@ -106,3 +101,8 @@ def check_rules_nodejs_version(minimum_version_string): VERSION, minimum_version_string, )) + +# Export check_rules_nodejs_version symbol for pre-5.0 backward compat. This +# will eventually get removed as we move to the core @rules_nodejs package in +# future release. +check_rules_nodejs_version = check_build_bazel_rules_nodejs_version diff --git a/index.for_docs.bzl b/index.for_docs.bzl index 342a9a9e58..42eab46716 100644 --- a/index.for_docs.bzl +++ b/index.for_docs.bzl @@ -29,7 +29,6 @@ load("//internal/common:params_file.bzl", _params_file = "params_file") load("//internal/generated_file_test:generated_file_test.bzl", _generated_file_test = "generated_file_test") load("//internal/js_library:js_library.bzl", _js_library = "js_library") load("//internal/node:node.bzl", _nodejs_binary = "nodejs_binary", _nodejs_test = "nodejs_test") -load("//nodejs:repositories.bzl", _node_repositories = "node_repositories") load("//internal/node:npm_package_bin.bzl", _npm_bin = "npm_package_bin") load("//internal/npm_install:npm_install.bzl", _npm_install = "npm_install", _yarn_install = "yarn_install") load("//internal/pkg_npm:pkg_npm.bzl", _pkg_npm = "pkg_npm") @@ -40,7 +39,6 @@ copy_to_bin = _copy_to_bin params_file = _params_file nodejs_binary = _nodejs_binary nodejs_test = _nodejs_test -node_repositories = _node_repositories pkg_npm = _pkg_npm npm_install = _npm_install yarn_install = _yarn_install diff --git a/internal/bazel_integration_test/test_runner.js b/internal/bazel_integration_test/test_runner.js index d815743b2b..bf97c00828 100644 --- a/internal/bazel_integration_test/test_runner.js +++ b/internal/bazel_integration_test/test_runner.js @@ -207,10 +207,10 @@ if (config.bazelrcAppend) { // Special case during build_bazel_rules_nodejs -> rules_nodejs migration. // One of our dependencies is on antother package within our repo, // so we need to override by installing our locally-built copy of it before calling the - // rules_nodejs_dependencies helper. + // build_bazel_rules_nodejs_dependencies helper. if (repositoryKey === "rules_nodejs") { - workspaceContents = workspaceContents.replace('rules_nodejs_dependencies()', - `http_archive(\n name = "${repositoryKey}",\n url="file:${archiveFile}"\n)\nrules_nodejs_dependencies()`); + workspaceContents = workspaceContents.replace('build_bazel_rules_nodejs_dependencies()', + `http_archive(\n name = "${repositoryKey}",\n url="file:${archiveFile}"\n)\nbuild_bazel_rules_nodejs_dependencies()`); } const regex = diff --git a/internal/common/maybe_directory_file_path.bzl b/internal/common/maybe_directory_file_path.bzl index 774de4721b..41b15f4136 100644 --- a/internal/common/maybe_directory_file_path.bzl +++ b/internal/common/maybe_directory_file_path.bzl @@ -15,7 +15,7 @@ """Helper function to accept either a label or a directory_file_path as dict """ -load("//nodejs/private/providers:directory_file_path_info.bzl", "directory_file_path") +load("@rules_nodejs//nodejs/private:directory_file_path.bzl", "directory_file_path") def maybe_directory_file_path(name, value): """Pass-through a value or convert a dict with a single key/value pair to a directory_file_path and return its label diff --git a/internal/js_library/js_library.bzl b/internal/js_library/js_library.bzl index 0a296c04cf..25870d9b8e 100644 --- a/internal/js_library/js_library.bzl +++ b/internal/js_library/js_library.bzl @@ -15,16 +15,19 @@ "js_library can be used to expose and share any library package." load( - "//:providers.bzl", + "@rules_nodejs//nodejs:providers.bzl", "DeclarationInfo", - "ExternalNpmPackageInfo", - "JSEcmaScriptModuleInfo", "JSModuleInfo", - "JSNamedModuleInfo", "LinkablePackageInfo", "declaration_info", - "js_ecma_script_module_info", "js_module_info", +) +load( + "//:providers.bzl", + "ExternalNpmPackageInfo", + "JSEcmaScriptModuleInfo", + "JSNamedModuleInfo", + "js_ecma_script_module_info", "js_named_module_info", ) load( diff --git a/internal/js_library/test/transitive/transitive_declarations_test.bzl b/internal/js_library/test/transitive/transitive_declarations_test.bzl index eea4d944ae..a2300dd2ba 100644 --- a/internal/js_library/test/transitive/transitive_declarations_test.bzl +++ b/internal/js_library/test/transitive/transitive_declarations_test.bzl @@ -1,7 +1,7 @@ "Unit tests for js_library rule" load("@bazel_skylib//lib:unittest.bzl", "asserts", "unittest") -load("//:providers.bzl", "DeclarationInfo") +load("@rules_nodejs//nodejs:providers.bzl", "DeclarationInfo") def _impl(ctx): env = unittest.begin(ctx) diff --git a/internal/linker/link_node_modules.bzl b/internal/linker/link_node_modules.bzl index 15f0720a42..b0b58c739b 100644 --- a/internal/linker/link_node_modules.bzl +++ b/internal/linker/link_node_modules.bzl @@ -12,7 +12,7 @@ runtimes to locate all the first-party packages. # Can't load from //:providers.bzl directly as that introduces a circular dep load("//internal/providers:external_npm_package_info.bzl", "ExternalNpmPackageInfo") -load("//nodejs/private/providers:linkable_package_info.bzl", "LinkablePackageInfo") +load("@rules_nodejs//nodejs:providers.bzl", "LinkablePackageInfo") def _debug(vars, *args): if "VERBOSE_LOGS" in vars.keys(): diff --git a/internal/linker/npm_link.bzl b/internal/linker/npm_link.bzl index 35b33fdc1e..29a4b65610 100644 --- a/internal/linker/npm_link.bzl +++ b/internal/linker/npm_link.bzl @@ -21,13 +21,16 @@ package_name set here must match. """ load( - "//:providers.bzl", + "@rules_nodejs//nodejs:providers.bzl", "DeclarationInfo", - "ExternalNpmPackageInfo", "JSModuleInfo", - "JSNamedModuleInfo", "LinkablePackageInfo", ) +load( + "//:providers.bzl", + "ExternalNpmPackageInfo", + "JSNamedModuleInfo", +) load( "//third_party/github.com/bazelbuild/bazel-skylib:rules/private/copy_file_private.bzl", "copy_bash", diff --git a/internal/node/BUILD.bazel b/internal/node/BUILD.bazel index 5add4d5653..d2a8bfc2e4 100644 --- a/internal/node/BUILD.bazel +++ b/internal/node/BUILD.bazel @@ -29,7 +29,6 @@ bzl_library( visibility = ["//visibility:public"], deps = [ "//internal/npm_install:bzl", - "//nodejs:bzl", "//third_party/github.com/bazelbuild/bazel-skylib:bzl", "@rules_nodejs//nodejs:bzl", ], diff --git a/internal/node/node.bzl b/internal/node/node.bzl index ec70f0256a..187098657f 100644 --- a/internal/node/node.bzl +++ b/internal/node/node.bzl @@ -20,7 +20,8 @@ They support module mapping: any targets in the transitive dependencies with a `module_name` attribute can be `require`d by that name. """ -load("//:providers.bzl", "DirectoryFilePathInfo", "ExternalNpmPackageInfo", "JSModuleInfo", "JSNamedModuleInfo", "NodeRuntimeDepsInfo", "node_modules_aspect") +load("@rules_nodejs//nodejs:providers.bzl", "DirectoryFilePathInfo", "JSModuleInfo", "UserBuildSettingInfo") +load("//:providers.bzl", "ExternalNpmPackageInfo", "JSNamedModuleInfo", "NodeRuntimeDepsInfo", "node_modules_aspect") load("//internal/common:expand_into_runfiles.bzl", "expand_location_into_runfiles") load("//internal/common:maybe_directory_file_path.bzl", "maybe_directory_file_path") load("//internal/common:module_mappings.bzl", "module_mappings_runtime_aspect") @@ -28,7 +29,6 @@ load("//internal/common:path_utils.bzl", "strip_external") load("//internal/common:preserve_legacy_templated_args.bzl", "preserve_legacy_templated_args") load("//internal/common:windows_utils.bzl", "create_windows_native_launcher_script", "is_windows") load("//internal/linker:link_node_modules.bzl", "LinkerPackageMappingInfo", "module_mappings_aspect", "write_node_modules_manifest") -load("//nodejs:providers.bzl", "UserBuildSettingInfo") def _trim_package_node_modules(package_name): # trim a package name down to its path prior to a node_modules @@ -594,7 +594,7 @@ Predefined genrule variables are not supported in this context. allow_single_file = True, ), "toolchain": attr.label(), - "_node_args": attr.label(default = "//nodejs:default_args"), + "_node_args": attr.label(default = "@rules_nodejs//nodejs:default_args"), "_node_patches_script": attr.label( default = Label("//internal/node:node_patches.js"), allow_single_file = True, diff --git a/internal/node/node_labels.bzl b/internal/node/node_labels.bzl index 8c677612f7..af441a1ac4 100644 --- a/internal/node/node_labels.bzl +++ b/internal/node/node_labels.bzl @@ -17,7 +17,7 @@ Labels are different on windows and linux/OSX. """ -load("//nodejs/private:os_name.bzl", "is_windows_os", "os_name") +load("@rules_nodejs//nodejs/private:os_name.bzl", "is_windows_os", "os_name") def _get_label(rctx, tool): ext = ".cmd" if is_windows_os(rctx) else "" diff --git a/internal/node/node_repositories.bzl b/internal/node/node_repositories.bzl index 8e708dafb1..74f350dc52 100644 --- a/internal/node/node_repositories.bzl +++ b/internal/node/node_repositories.bzl @@ -19,10 +19,9 @@ See https://docs.bazel.build/versions/main/skylark/repository_rules.html """ load("@bazel_tools//tools/build_defs/repo:utils.bzl", "maybe") +load("@rules_nodejs//nodejs/private:os_name.bzl", "OS_ARCH_NAMES", "node_exists_for_os", "os_name") +load("@rules_nodejs//nodejs:repositories.bzl", "DEFAULT_NODE_VERSION", "nodejs_register_toolchains", node_repositories_rule = "node_repositories") load("//internal/common:check_bazel_version.bzl", "check_bazel_version") -load("//nodejs/private:os_name.bzl", "OS_ARCH_NAMES", "node_exists_for_os", "os_name") -load("//nodejs:repositories.bzl", "DEFAULT_NODE_VERSION", node_repositories_rule = "node_repositories") -load("@rules_nodejs//nodejs:repositories.bzl", "nodejs_register_toolchains") def node_repositories(**kwargs): """ diff --git a/internal/node/npm_package_bin.bzl b/internal/node/npm_package_bin.bzl index 91b8c330f1..576b1b6202 100644 --- a/internal/node/npm_package_bin.bzl +++ b/internal/node/npm_package_bin.bzl @@ -1,6 +1,7 @@ "A generic rule to run a tool that appears in node_modules/.bin" -load("//:providers.bzl", "DeclarationInfo", "ExternalNpmPackageInfo", "JSModuleInfo", "node_modules_aspect", "run_node") +load("@rules_nodejs//nodejs:providers.bzl", "DeclarationInfo", "JSModuleInfo") +load("//:providers.bzl", "ExternalNpmPackageInfo", "node_modules_aspect", "run_node") load("//internal/common:expand_variables.bzl", "expand_variables") load("//internal/linker:link_node_modules.bzl", "module_mappings_aspect") diff --git a/internal/node/test/dir_entry_point/BUILD.bazel b/internal/node/test/dir_entry_point/BUILD.bazel index 5c5924b8d7..6f00a17ce2 100644 --- a/internal/node/test/dir_entry_point/BUILD.bazel +++ b/internal/node/test/dir_entry_point/BUILD.bazel @@ -1,5 +1,6 @@ load("@bazel_skylib//rules:write_file.bzl", "write_file") -load("@build_bazel_rules_nodejs//:index.bzl", "directory_file_path", "nodejs_binary", "pkg_npm") +load("@rules_nodejs//nodejs/private:directory_file_path.bzl", "directory_file_path") +load("@build_bazel_rules_nodejs//:index.bzl", "nodejs_binary", "pkg_npm") load("@npm//typescript:index.bzl", "tsc") load("//internal/common:assert.bzl", "assert_program_produces_stdout") diff --git a/internal/npm_install/npm_install.bzl b/internal/npm_install/npm_install.bzl index 03c6e8adb0..566ec77bd2 100644 --- a/internal/npm_install/npm_install.bzl +++ b/internal/npm_install/npm_install.bzl @@ -21,9 +21,9 @@ as the package manager. See discussion in the README. """ +load("@rules_nodejs//nodejs/private:os_name.bzl", "is_windows_os", "os_name") load("//:version.bzl", "VERSION") load("//internal/common:check_bazel_version.bzl", "check_bazel_version") -load("//nodejs/private:os_name.bzl", "is_windows_os", "os_name") load("//internal/node:node_labels.bzl", "get_node_label", "get_npm_label", "get_yarn_label") COMMON_ATTRIBUTES = dict(dict(), **{ diff --git a/internal/npm_install/npm_umd_bundle.bzl b/internal/npm_install/npm_umd_bundle.bzl index 2822f3c63a..bc6d7b094f 100644 --- a/internal/npm_install/npm_umd_bundle.bzl +++ b/internal/npm_install/npm_umd_bundle.bzl @@ -17,7 +17,8 @@ For use by yarn_install and npm_install. Not meant to be part of the public API. """ -load("//:providers.bzl", "DirectoryFilePathInfo", "ExternalNpmPackageInfo", "node_modules_aspect") +load("@rules_nodejs//nodejs:providers.bzl", "DirectoryFilePathInfo") +load("//:providers.bzl", "ExternalNpmPackageInfo", "node_modules_aspect") load("//internal/common:maybe_directory_file_path.bzl", "maybe_directory_file_path") def _entry_point_path(ctx): diff --git a/internal/pkg_npm/pkg_npm.bzl b/internal/pkg_npm/pkg_npm.bzl index 59894b7474..c1faaff436 100644 --- a/internal/pkg_npm/pkg_npm.bzl +++ b/internal/pkg_npm/pkg_npm.bzl @@ -6,7 +6,8 @@ If all users of your library code use Bazel, they should just add your library to the `deps` of one of their targets. """ -load("//:providers.bzl", "DeclarationInfo", "JSEcmaScriptModuleInfo", "JSModuleInfo", "JSNamedModuleInfo", "LinkablePackageInfo", "NODE_CONTEXT_ATTRS", "NodeContextInfo") +load("@rules_nodejs//nodejs:providers.bzl", "DeclarationInfo", "JSModuleInfo", "LinkablePackageInfo") +load("//:providers.bzl", "JSEcmaScriptModuleInfo", "JSNamedModuleInfo", "NODE_CONTEXT_ATTRS", "NodeContextInfo") _DOC = """The pkg_npm rule creates a directory containing a publishable npm artifact. diff --git a/internal/providers/js_providers.bzl b/internal/providers/js_providers.bzl index 4d507b35cc..a9c3b71832 100644 --- a/internal/providers/js_providers.bzl +++ b/internal/providers/js_providers.bzl @@ -36,29 +36,6 @@ If users really need to produce both in a single build, they'll need two rules w differing 'debug' attributes. """ -JSModuleInfo = provider( - doc = """JavaScript files and sourcemaps.""", - fields = { - "direct_sources": "Depset of direct JavaScript files and sourcemaps", - "sources": "Depset of direct and transitive JavaScript files and sourcemaps", - }, -) - -def js_module_info(sources, deps = []): - """Constructs a JSModuleInfo including all transitive sources from JSModuleInfo providers in a list of deps. - - Returns a single JSModuleInfo. - """ - transitive_depsets = [sources] - for dep in deps: - if JSModuleInfo in dep: - transitive_depsets.append(dep[JSModuleInfo].sources) - - return JSModuleInfo( - direct_sources = sources, - sources = depset(transitive = transitive_depsets), - ) - JSNamedModuleInfo = provider( doc = """JavaScript files whose module name is self-contained. diff --git a/nodejs/private/directory_file_path.bzl b/nodejs/private/directory_file_path.bzl new file mode 100644 index 0000000000..0027fb7e16 --- /dev/null +++ b/nodejs/private/directory_file_path.bzl @@ -0,0 +1,32 @@ +"""This module contains providers for working with TreeArtifacts. + +See https://github.com/bazelbuild/bazel-skylib/issues/300 +(this feature could be upstreamed to bazel-skylib in the future) + +These are also called output directories, created by `ctx.actions.declare_directory`. +""" + +load("//nodejs/private/providers:directory_file_path_info.bzl", "DirectoryFilePathInfo") + +def _directory_file_path(ctx): + if not ctx.file.directory.is_source and not ctx.file.directory.is_directory: + fail("directory attribute must be a source directory or created with Bazel declare_directory (TreeArtifact)") + return [DirectoryFilePathInfo(path = ctx.attr.path, directory = ctx.file.directory)] + +directory_file_path = rule( + doc = """Provide DirectoryFilePathInfo to reference some file within a directory. + + Otherwise there is no way to give a Bazel label for it.""", + implementation = _directory_file_path, + attrs = { + "directory": attr.label( + doc = "a directory", + mandatory = True, + allow_single_file = True, + ), + "path": attr.string( + doc = "a path within that directory", + mandatory = True, + ), + }, +) diff --git a/nodejs/repositories.bzl b/nodejs/repositories.bzl index f39cb985a4..47ea055166 100644 --- a/nodejs/repositories.bzl +++ b/nodejs/repositories.bzl @@ -738,10 +738,3 @@ def rules_nodejs_dependencies(): "https://mirror.bazel.build/github.com/bazelbuild/bazel-skylib/releases/download/1.1.1/bazel-skylib-1.1.1.tar.gz", ], ) - core_sha = "8f4a19de1eb16b57ac03a8e9b78344b44473e0e06b0510cec14a81f6adfdfc25" - maybe( - http_archive, - name = "rules_nodejs", - sha256 = core_sha, - urls = ["https://github.com/bazelbuild/rules_nodejs/releases/download/4.4.6/rules_nodejs-core-4.4.6.tar.gz"], - ) diff --git a/packages/concatjs/BUILD.bazel b/packages/concatjs/BUILD.bazel index e00704ce4b..d3f6846c48 100644 --- a/packages/concatjs/BUILD.bazel +++ b/packages/concatjs/BUILD.bazel @@ -55,6 +55,7 @@ bzl_library( "@build_bazel_rules_nodejs//:bzl", "@build_bazel_rules_nodejs//internal/common:bzl", "@build_bazel_rules_nodejs//internal/node:bzl", + "@rules_nodejs//nodejs:bzl", ], ) diff --git a/packages/concatjs/internal/BUILD.bazel b/packages/concatjs/internal/BUILD.bazel index d1e958288e..0bbc74cfc3 100644 --- a/packages/concatjs/internal/BUILD.bazel +++ b/packages/concatjs/internal/BUILD.bazel @@ -35,6 +35,7 @@ bzl_library( deps = [ "@build_bazel_rules_nodejs//:bzl", "@build_bazel_rules_nodejs//internal/common:bzl", + "@rules_nodejs//nodejs:bzl", ], ) diff --git a/packages/concatjs/internal/build_defs.bzl b/packages/concatjs/internal/build_defs.bzl index f68e933c3d..971fb80d0d 100644 --- a/packages/concatjs/internal/build_defs.bzl +++ b/packages/concatjs/internal/build_defs.bzl @@ -14,7 +14,8 @@ "TypeScript compilation" -load("@build_bazel_rules_nodejs//:providers.bzl", "ExternalNpmPackageInfo", "LinkablePackageInfo", "js_ecma_script_module_info", "js_module_info", "js_named_module_info", "node_modules_aspect", "run_node") +load("@rules_nodejs//nodejs:providers.bzl", "LinkablePackageInfo", "js_module_info") +load("@build_bazel_rules_nodejs//:providers.bzl", "ExternalNpmPackageInfo", "js_ecma_script_module_info", "js_named_module_info", "node_modules_aspect", "run_node") # pylint: disable=unused-argument # pylint: disable=missing-docstring diff --git a/packages/concatjs/internal/common/compilation.bzl b/packages/concatjs/internal/common/compilation.bzl index c7538f7618..fed787aa86 100644 --- a/packages/concatjs/internal/common/compilation.bzl +++ b/packages/concatjs/internal/common/compilation.bzl @@ -15,7 +15,7 @@ """Used for compilation by the different implementations of build_defs.bzl. """ -load("@build_bazel_rules_nodejs//:providers.bzl", "DeclarationInfo") +load("@rules_nodejs//nodejs:providers.bzl", "DeclarationInfo") load(":common/json_marshal.bzl", "json_marshal") load(":common/module_mappings.bzl", "module_mappings_aspect") diff --git a/packages/concatjs/web_test/BUILD.bazel b/packages/concatjs/web_test/BUILD.bazel index 434069696d..b3fe7a0e51 100644 --- a/packages/concatjs/web_test/BUILD.bazel +++ b/packages/concatjs/web_test/BUILD.bazel @@ -44,6 +44,7 @@ bzl_library( "@build_bazel_rules_nodejs//:bzl", "@build_bazel_rules_nodejs//internal/js_library:bzl", "@io_bazel_rules_webtesting//web", + "@rules_nodejs//nodejs:bzl", ], ) diff --git a/packages/concatjs/web_test/karma_web_test.bzl b/packages/concatjs/web_test/karma_web_test.bzl index dd5b200e97..0166dc54cd 100644 --- a/packages/concatjs/web_test/karma_web_test.bzl +++ b/packages/concatjs/web_test/karma_web_test.bzl @@ -13,7 +13,8 @@ # limitations under the License. "Unit testing with Karma" -load("@build_bazel_rules_nodejs//:providers.bzl", "ExternalNpmPackageInfo", "JSModuleInfo", "JSNamedModuleInfo", "node_modules_aspect") +load("@rules_nodejs//nodejs:providers.bzl", "JSModuleInfo") +load("@build_bazel_rules_nodejs//:providers.bzl", "ExternalNpmPackageInfo", "JSNamedModuleInfo", "node_modules_aspect") load("@build_bazel_rules_nodejs//internal/js_library:js_library.bzl", "write_amd_names_shim") load("@io_bazel_rules_webtesting//web:web.bzl", "web_test_suite") load("@io_bazel_rules_webtesting//web/internal:constants.bzl", "DEFAULT_WRAPPED_TEST_TAGS") diff --git a/packages/cypress/BUILD.bazel b/packages/cypress/BUILD.bazel index 924155bdd8..d1382f1772 100644 --- a/packages/cypress/BUILD.bazel +++ b/packages/cypress/BUILD.bazel @@ -35,6 +35,7 @@ bzl_library( "//internal/common:bzl", "//internal/node:bzl", "//toolchains/cypress:bzl", + "@rules_nodejs//nodejs:bzl", ], ) diff --git a/packages/cypress/internal/cypress_web_test.bzl b/packages/cypress/internal/cypress_web_test.bzl index 6a45154e9e..6a17e144ca 100644 --- a/packages/cypress/internal/cypress_web_test.bzl +++ b/packages/cypress/internal/cypress_web_test.bzl @@ -13,7 +13,8 @@ # limitations under the License. "E2E testing with Cypress" -load("@build_bazel_rules_nodejs//:providers.bzl", "JSModuleInfo", "JSNamedModuleInfo") +load("@rules_nodejs//nodejs:providers.bzl", "JSModuleInfo") +load("@build_bazel_rules_nodejs//:providers.bzl", "JSNamedModuleInfo") load("@build_bazel_rules_nodejs//internal/node:node.bzl", "nodejs_test_kwargs") ATTRS = dict( diff --git a/packages/esbuild/BUILD.bazel b/packages/esbuild/BUILD.bazel index 5cc6937825..f4b34386f4 100644 --- a/packages/esbuild/BUILD.bazel +++ b/packages/esbuild/BUILD.bazel @@ -36,6 +36,7 @@ bzl_library( "@build_bazel_rules_nodejs//internal/common:bzl", "@build_bazel_rules_nodejs//internal/node:bzl", "@build_bazel_rules_nodejs//toolchains/esbuild:bzl", + "@rules_nodejs//nodejs:bzl", ], ) diff --git a/packages/esbuild/esbuild.bzl b/packages/esbuild/esbuild.bzl index dfd7712035..1b5052c1f2 100644 --- a/packages/esbuild/esbuild.bzl +++ b/packages/esbuild/esbuild.bzl @@ -2,9 +2,10 @@ esbuild rule """ +load("@rules_nodejs//nodejs:providers.bzl", "JSModuleInfo") load("@bazel_skylib//rules:common_settings.bzl", "BuildSettingInfo") load("@build_bazel_rules_nodejs//:index.bzl", "nodejs_binary") -load("@build_bazel_rules_nodejs//:providers.bzl", "ExternalNpmPackageInfo", "JSEcmaScriptModuleInfo", "JSModuleInfo", "NODE_CONTEXT_ATTRS", "NodeContextInfo", "node_modules_aspect", "run_node") +load("@build_bazel_rules_nodejs//:providers.bzl", "ExternalNpmPackageInfo", "JSEcmaScriptModuleInfo", "NODE_CONTEXT_ATTRS", "NodeContextInfo", "node_modules_aspect", "run_node") load("@build_bazel_rules_nodejs//internal/linker:link_node_modules.bzl", "LinkerPackageMappingInfo", "module_mappings_aspect") load("@build_bazel_rules_nodejs//internal/common:expand_variables.bzl", "expand_variables") load("@build_bazel_rules_nodejs//toolchains/esbuild:toolchain.bzl", "TOOLCHAIN") diff --git a/packages/jasmine/BUILD.bazel b/packages/jasmine/BUILD.bazel index d1bb8bf5af..ecac8af849 100644 --- a/packages/jasmine/BUILD.bazel +++ b/packages/jasmine/BUILD.bazel @@ -29,6 +29,7 @@ bzl_library( "@build_bazel_rules_nodejs//:bzl", "@build_bazel_rules_nodejs//internal/common:bzl", "@build_bazel_rules_nodejs//internal/node:bzl", + "@rules_nodejs//nodejs:bzl", ], ) diff --git a/packages/jasmine/jasmine_node_test.bzl b/packages/jasmine/jasmine_node_test.bzl index 13e3008cae..1a117abafe 100644 --- a/packages/jasmine/jasmine_node_test.bzl +++ b/packages/jasmine/jasmine_node_test.bzl @@ -18,7 +18,7 @@ These rules let you run tests outside of a browser. This is typically faster than launching a test in Karma, for example. """ -load("@build_bazel_rules_nodejs//:providers.bzl", "JSModuleInfo") +load("@rules_nodejs//nodejs:providers.bzl", "JSModuleInfo") load("@build_bazel_rules_nodejs//internal/node:node.bzl", nodejs_test = "nodejs_test_macro") def _js_sources_impl(ctx): diff --git a/packages/protractor/BUILD.bazel b/packages/protractor/BUILD.bazel index 34959d0806..b73df7138e 100644 --- a/packages/protractor/BUILD.bazel +++ b/packages/protractor/BUILD.bazel @@ -35,6 +35,7 @@ bzl_library( "@build_bazel_rules_nodejs//internal/common:bzl", "@build_bazel_rules_nodejs//internal/node:bzl", "@io_bazel_rules_webtesting//web", + "@rules_nodejs//nodejs:bzl", ], ) diff --git a/packages/protractor/protractor_web_test.bzl b/packages/protractor/protractor_web_test.bzl index f25bcfaa86..375dd592ad 100644 --- a/packages/protractor/protractor_web_test.bzl +++ b/packages/protractor/protractor_web_test.bzl @@ -13,8 +13,9 @@ # limitations under the License. "Run end-to-end tests with Protractor" +load("@rules_nodejs//nodejs:providers.bzl", "JSModuleInfo") load("@build_bazel_rules_nodejs//:index.bzl", "nodejs_binary") -load("@build_bazel_rules_nodejs//:providers.bzl", "ExternalNpmPackageInfo", "JSModuleInfo", "JSNamedModuleInfo", "node_modules_aspect") +load("@build_bazel_rules_nodejs//:providers.bzl", "ExternalNpmPackageInfo", "JSNamedModuleInfo", "node_modules_aspect") load("@build_bazel_rules_nodejs//internal/common:windows_utils.bzl", "create_windows_native_launcher_script", "is_windows") load("@io_bazel_rules_webtesting//web:web.bzl", "web_test_suite") load("@io_bazel_rules_webtesting//web/internal:constants.bzl", "DEFAULT_WRAPPED_TEST_TAGS") diff --git a/packages/rollup/BUILD.bazel b/packages/rollup/BUILD.bazel index 702abacc5e..2ca53b1366 100644 --- a/packages/rollup/BUILD.bazel +++ b/packages/rollup/BUILD.bazel @@ -35,6 +35,7 @@ bzl_library( "@build_bazel_rules_nodejs//:bzl", "@build_bazel_rules_nodejs//internal/common:bzl", "@build_bazel_rules_nodejs//internal/linker:bzl", + "@rules_nodejs//nodejs:bzl", ], ) diff --git a/packages/rollup/rollup_bundle.bzl b/packages/rollup/rollup_bundle.bzl index d7303f7dca..5c364f5a29 100644 --- a/packages/rollup/rollup_bundle.bzl +++ b/packages/rollup/rollup_bundle.bzl @@ -1,6 +1,7 @@ "Rules for running Rollup under Bazel" -load("@build_bazel_rules_nodejs//:providers.bzl", "ExternalNpmPackageInfo", "JSEcmaScriptModuleInfo", "JSModuleInfo", "NODE_CONTEXT_ATTRS", "NodeContextInfo", "node_modules_aspect", "run_node") +load("@rules_nodejs//nodejs:providers.bzl", "JSModuleInfo") +load("@build_bazel_rules_nodejs//:providers.bzl", "ExternalNpmPackageInfo", "JSEcmaScriptModuleInfo", "NODE_CONTEXT_ATTRS", "NodeContextInfo", "node_modules_aspect", "run_node") load("@build_bazel_rules_nodejs//internal/linker:link_node_modules.bzl", "module_mappings_aspect") _DOC = "Runs the rollup.js CLI under Bazel." diff --git a/packages/terser/BUILD.bazel b/packages/terser/BUILD.bazel index 18c071087a..e9706d507c 100644 --- a/packages/terser/BUILD.bazel +++ b/packages/terser/BUILD.bazel @@ -32,6 +32,7 @@ bzl_library( deps = [ "@build_bazel_rules_nodejs//:bzl", "@build_bazel_rules_nodejs//internal/common:bzl", + "@rules_nodejs//nodejs:bzl", ], ) diff --git a/packages/terser/terser_minified.bzl b/packages/terser/terser_minified.bzl index 950fbab233..8f95fe59ba 100644 --- a/packages/terser/terser_minified.bzl +++ b/packages/terser/terser_minified.bzl @@ -14,7 +14,8 @@ "Rule to run the terser binary under bazel" -load("@build_bazel_rules_nodejs//:providers.bzl", "JSModuleInfo", "run_node") +load("@rules_nodejs//nodejs:providers.bzl", "JSModuleInfo") +load("@build_bazel_rules_nodejs//:providers.bzl", "run_node") _DOC = """Run the terser minifier. diff --git a/packages/typescript/BUILD.bazel b/packages/typescript/BUILD.bazel index e441ce1059..5d34535a36 100644 --- a/packages/typescript/BUILD.bazel +++ b/packages/typescript/BUILD.bazel @@ -29,6 +29,7 @@ bzl_library( "@build_bazel_rules_nodejs//:bzl", "@build_bazel_rules_nodejs//internal/common:bzl", "@build_bazel_rules_nodejs//internal/node:bzl", + "@rules_nodejs//nodejs:bzl", ], ) diff --git a/packages/typescript/internal/BUILD.bazel b/packages/typescript/internal/BUILD.bazel index 5e9f093237..ae3025cade 100644 --- a/packages/typescript/internal/BUILD.bazel +++ b/packages/typescript/internal/BUILD.bazel @@ -43,6 +43,7 @@ bzl_library( deps = [ "@build_bazel_rules_nodejs//:bzl", "@build_bazel_rules_nodejs//internal/common:bzl", + "@rules_nodejs//nodejs:bzl", ], ) diff --git a/packages/typescript/internal/ts_project.bzl b/packages/typescript/internal/ts_project.bzl index 0614f60ff5..4a46ecd8a7 100644 --- a/packages/typescript/internal/ts_project.bzl +++ b/packages/typescript/internal/ts_project.bzl @@ -1,6 +1,7 @@ "ts_project rule" -load("@build_bazel_rules_nodejs//:providers.bzl", "DeclarationInfo", "ExternalNpmPackageInfo", "declaration_info", "js_module_info", "run_node") +load("@rules_nodejs//nodejs:providers.bzl", "DeclarationInfo", "declaration_info", "js_module_info") +load("@build_bazel_rules_nodejs//:providers.bzl", "ExternalNpmPackageInfo", "run_node") load("@build_bazel_rules_nodejs//internal/linker:link_node_modules.bzl", "module_mappings_aspect") load("@build_bazel_rules_nodejs//internal/node:node.bzl", "nodejs_binary") load(":ts_config.bzl", "TsConfigInfo", "write_tsconfig") diff --git a/providers.bzl b/providers.bzl index 93ac74b0c3..55c444b0b6 100644 --- a/providers.bzl +++ b/providers.bzl @@ -18,11 +18,6 @@ Public providers, aspects and helpers that are shipped in the built-in build_baz Users should not load files under "/internal" """ -load( - "//nodejs/private/providers:declaration_info.bzl", - _DeclarationInfo = "DeclarationInfo", - _declaration_info = "declaration_info", -) load( "//internal/providers:external_npm_package_info.bzl", _ExternalNpmPackageInfo = "ExternalNpmPackageInfo", @@ -31,50 +26,33 @@ load( load( "//internal/providers:js_providers.bzl", _JSEcmaScriptModuleInfo = "JSEcmaScriptModuleInfo", - _JSModuleInfo = "JSModuleInfo", _JSNamedModuleInfo = "JSNamedModuleInfo", _js_ecma_script_module_info = "js_ecma_script_module_info", - _js_module_info = "js_module_info", _js_named_module_info = "js_named_module_info", ) -load( - "//nodejs/private/providers:linkable_package_info.bzl", - _LinkablePackageInfo = "LinkablePackageInfo", -) load( "//internal/providers:node_runtime_deps_info.bzl", _NodeRuntimeDepsInfo = "NodeRuntimeDepsInfo", _run_node = "run_node", ) -load( - "//nodejs/private/providers:directory_file_path_info.bzl", - _DirectoryFilePathInfo = "DirectoryFilePathInfo", -) load( "//internal/providers:node_context.bzl", _NODE_CONTEXT_ATTRS = "NODE_CONTEXT_ATTRS", _NodeContextInfo = "NodeContextInfo", ) -NodeContextInfo = _NodeContextInfo -NODE_CONTEXT_ATTRS = _NODE_CONTEXT_ATTRS - -DeclarationInfo = _DeclarationInfo -declaration_info = _declaration_info -JSModuleInfo = _JSModuleInfo -js_module_info = _js_module_info -JSNamedModuleInfo = _JSNamedModuleInfo +ExternalNpmPackageInfo = _ExternalNpmPackageInfo +js_ecma_script_module_info = _js_ecma_script_module_info js_named_module_info = _js_named_module_info JSEcmaScriptModuleInfo = _JSEcmaScriptModuleInfo -js_ecma_script_module_info = _js_ecma_script_module_info -ExternalNpmPackageInfo = _ExternalNpmPackageInfo +JSNamedModuleInfo = _JSNamedModuleInfo +NODE_CONTEXT_ATTRS = _NODE_CONTEXT_ATTRS +node_modules_aspect = _node_modules_aspect +NodeContextInfo = _NodeContextInfo +NodeRuntimeDepsInfo = _NodeRuntimeDepsInfo +run_node = _run_node # Export NpmPackageInfo for pre-3.0 legacy support in downstream rule sets # such as rules_docker -# TODO(4.0): remove NpmPackageInfo +# TODO(6.0): remove NpmPackageInfo from rules_docker & then remove it here NpmPackageInfo = _ExternalNpmPackageInfo -node_modules_aspect = _node_modules_aspect -LinkablePackageInfo = _LinkablePackageInfo -NodeRuntimeDepsInfo = _NodeRuntimeDepsInfo -run_node = _run_node -DirectoryFilePathInfo = _DirectoryFilePathInfo diff --git a/package.bzl b/repositories.bzl similarity index 83% rename from package.bzl rename to repositories.bzl index 6dc85efb99..b261de8d26 100644 --- a/package.bzl +++ b/repositories.bzl @@ -19,9 +19,26 @@ Fulfills similar role as the package.json file. load("@bazel_tools//tools/build_defs/repo:http.bzl", "http_archive") load("@bazel_tools//tools/build_defs/repo:utils.bzl", "maybe") -load("@rules_nodejs//nodejs:repositories.bzl", "rules_nodejs_dependencies") -def rules_nodejs_dev_dependencies(): +def build_bazel_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", + ], + ) + core_sha = "8f4a19de1eb16b57ac03a8e9b78344b44473e0e06b0510cec14a81f6adfdfc25" + maybe( + http_archive, + name = "rules_nodejs", + sha256 = core_sha, + urls = ["https://github.com/bazelbuild/rules_nodejs/releases/download/4.4.6/rules_nodejs-core-4.4.6.tar.gz"], + ) + +def build_bazel_rules_nodejs_dev_dependencies(): """ Fetch dependencies needed for local development, but not needed by users. @@ -29,8 +46,7 @@ def rules_nodejs_dev_dependencies(): shorter. """ - # This just gives us bazel-skylib - rules_nodejs_dependencies() + build_bazel_rules_nodejs_dependencies() # Dependencies for generating documentation maybe( diff --git a/scripts/on-release.js b/scripts/on-release.js index 329dde20d0..77aaea6cc1 100644 --- a/scripts/on-release.js +++ b/scripts/on-release.js @@ -26,8 +26,8 @@ for (const f of ['docs/install.md', 'packages/create/index.js']) { } shell.sed( '-i', 'download/[0-9\.]*(-(beta|rc).[0-9]+)?/rules_nodejs-core-[0-9\.]*(-(beta|rc).[0-9]+)?.tar.gz', - `download/${version}/rules_nodejs-core-${version}.tar.gz`, 'nodejs/repositories.bzl') -shell.sed('-i', 'core_sha = \"[0-9a-f]+\"', `core_sha = "${coreSha256}"`, 'nodejs/repositories.bzl'); + `download/${version}/rules_nodejs-core-${version}.tar.gz`, 'repositories.bzl') +shell.sed('-i', 'core_sha = \"[0-9a-f]+\"', `core_sha = "${coreSha256}"`, 'repositories.bzl'); shell.cp('-f', artifact, `rules_nodejs-${version}.tar.gz`); shell.cp('-f', coreArtifact, `rules_nodejs-core-${version}.tar.gz`); diff --git a/toolchains/BUILD.bazel b/toolchains/BUILD.bazel index 08747a20c9..539420cbc8 100644 --- a/toolchains/BUILD.bazel +++ b/toolchains/BUILD.bazel @@ -9,5 +9,6 @@ stardoc( deps = [ "//toolchains/cypress:bzl", "//toolchains/esbuild:bzl", + "@rules_nodejs//nodejs:bzl", ], )