build: replace all ng_package with new rule from rules_angular (#61862)

Replaces all `ng_package` rule with the new rule from `rules_angular`.

PR Close #61862
This commit is contained in:
Paul Gschwendtner
2025-06-03 11:40:54 +00:00
parent a24fb53a73
commit 8564cf48d8
35 changed files with 268 additions and 180 deletions
@@ -4,6 +4,7 @@
.npmrc=-1406867100
.pnpmfile.cjs=-2033668682
adev/shared-docs/pipeline/api-gen/package.json=939673974
integration/package.json=-239561259
modules/package.json=-1315257891
package.json=2073214251
packages/animations/package.json=-678724831
@@ -20,7 +21,7 @@ packages/platform-browser/package.json=-1163479450
packages/router/package.json=860819913
packages/upgrade/package.json=16347051
packages/zone.js/package.json=-1577512523
pnpm-lock.yaml=1222242295
pnpm-workspace.yaml=-1489095561
pnpm-lock.yaml=354037729
pnpm-workspace.yaml=1973735808
tools/bazel/rules_angular_store/package.json=-239561259
yarn.lock=2105129652
+1
View File
@@ -42,6 +42,7 @@ modules/ssr-benchmarks/node_modules
# For rules_js
adev/shared-docs/pipeline/api-gen/node_modules
modules/node_modules
integration/node_modules
packages/animations/node_modules
packages/common/node_modules
packages/localize/node_modules
+1
View File
@@ -110,6 +110,7 @@ npm_translate_lock(
"//:package.json",
"//:pnpm-workspace.yaml",
"//adev/shared-docs/pipeline/api-gen:package.json",
"//integration:package.json",
"//modules:package.json",
"//packages/animations:package.json",
"//packages/common:package.json",
+1 -1
View File
@@ -29,7 +29,7 @@ def link_local_packages(all_deps):
pkg_name = _angular_dep_to_pkg_name(dep)
npm_link(
name = _npm_link_name(pkg_name),
target = to_package_label(pkg_name),
target = to_package_label(pkg_name) + "__adev_link",
package_name = pkg_name,
package_path = native.package_name(),
tags = ["manual"],
+3
View File
@@ -0,0 +1,3 @@
load("@npm2//:defs.bzl", "npm_link_all_packages")
npm_link_all_packages()
@@ -8,13 +8,11 @@ ts_project(
data = [
"//packages:package_json",
],
interop_deps = [
"//packages/compiler-cli",
],
tsconfig = "tsconfig.json",
deps = [
"//:node_modules/@types/node",
"//:node_modules/typescript",
"//integration:node_modules/@angular/compiler-cli",
],
)
@@ -1,5 +1,5 @@
load("@aspect_rules_js//js:defs.bzl", "js_test")
load("@bazel_skylib//rules:write_file.bzl", "write_file")
load("//tools:defaults.bzl", "nodejs_test")
def module_test(name, npm_packages, skipped_entry_points = [], additional_deps = [], **kwargs):
write_file(
@@ -11,14 +11,13 @@ def module_test(name, npm_packages, skipped_entry_points = [], additional_deps =
})],
)
nodejs_test(
js_test(
name = "test",
data = [
":%s_config" % name,
"//integration/ng-modules-importability:test_lib",
"//integration/ng-modules-importability:test_lib_rjs",
] + additional_deps + [pkg[0] for pkg in npm_packages.items()],
entry_point = "//integration/ng-modules-importability:index.mjs",
enable_linker = True,
templated_args = ["$(rootpath :%s_config)" % name],
fixed_args = ["$(rootpath :%s_config)" % name],
**kwargs
)
+10 -4
View File
@@ -1,4 +1,4 @@
import {performCompilation} from '../../packages/compiler-cli/index.js';
import {performCompilation} from '@angular/compiler-cli';
import * as fs from 'fs/promises';
import * as path from 'path';
import * as os from 'os';
@@ -33,6 +33,11 @@ async function main() {
const testChunkStart = testChunkSize * testShardIndex;
const shardExports = allExports.slice(testChunkStart, testChunkStart + testChunkSize);
// Sub-test directory where the first-party linked node modules end up being available.
const testDir = path.join(tmpDir, 'test');
await fs.mkdir(testDir);
await fs.mkdir(path.join(testDir, 'node_modules/@angular'), {recursive: true});
const testFiles = shardExports.map((e) => ({
content: `
import {NgModule, Component} from '@angular/core';
@@ -46,15 +51,16 @@ async function main() {
@Component({imports: [TestModule], template: ''})
export class TestComponent {}
`,
path: path.join(tmpDir, `${e.symbolName.toLowerCase()}.ts`),
path: path.join(testDir, `${e.symbolName.toLowerCase()}.ts`),
}));
// Prepare node modules to resolve e.g. `@angular/core`
await fs.symlink(path.resolve('./node_modules'), path.join(tmpDir, 'node_modules'));
await fs.symlink(path.resolve('./integration/node_modules'), path.join(tmpDir, 'node_modules'));
// Prepare node modules to resolve e.g. `@angular/cdk`. This is possible
// as we are inside the sandbox, inside our test runfiles directory.
for (const {packagePath, name} of packages) {
await fs.symlink(path.resolve(packagePath), `./node_modules/${name}`);
await fs.symlink(path.resolve(packagePath), path.join(testDir, 'node_modules', name));
}
const diagnostics: ts.Diagnostic[] = [];
@@ -3,8 +3,8 @@
"strict": true,
"declaration": true,
"sourceMap": true,
"module": "node16",
"moduleResolution": "node16",
"module": "esnext",
"moduleResolution": "bundler",
"types": ["node"]
}
}
+5
View File
@@ -0,0 +1,5 @@
{
"dependencies": {
"@angular/compiler-cli": "workspace:*"
}
}
+1 -1
View File
@@ -10,7 +10,7 @@ def to_package_label(package_name):
return "//packages/misc/angular-in-memory-web-api:npm_package"
if package_name == "@angular/docs":
return "//adev/shared-docs:npm_package"
return "//adev/shared-docs:pkg"
return "//packages/{package_name}:npm_package".format(package_name = package_name.replace("@angular/", ""))
+6 -6
View File
@@ -1,5 +1,5 @@
load("//tools:defaults.bzl", "api_golden_test", "api_golden_test_npm_package", "generate_api_docs", "ng_package")
load("//tools:defaults2.bzl", "ng_project", "npm_package")
load("//tools:defaults.bzl", "api_golden_test", "api_golden_test_npm_package", "generate_api_docs")
load("//tools:defaults2.bzl", "ng_package", "ng_project", "npm_package")
package(default_visibility = ["//visibility:public"])
@@ -21,10 +21,10 @@ ng_project(
ng_package(
name = "npm_package",
package_name = "@angular/animations",
srcs = [
"package.json",
],
package = "@angular/animations",
tags = [
"release-with-framework",
],
@@ -38,9 +38,9 @@ ng_package(
"//packages/compiler/test:__pkg__",
],
deps = [
":animations",
"//packages/animations/browser",
"//packages/animations/browser/testing",
":animations_rjs",
"//packages/animations/browser:browser_rjs",
"//packages/animations/browser/testing:testing_rjs",
],
)
+3 -4
View File
@@ -1,6 +1,5 @@
load("@aspect_rules_ts//ts:defs.bzl", rules_js_tsconfig = "ts_config")
load("//tools:defaults.bzl", "ng_package")
load("//tools:defaults2.bzl", "ts_project")
load("//tools:defaults2.bzl", "ng_package", "ts_project")
package(default_visibility = ["//visibility:public"])
@@ -32,7 +31,6 @@ ts_project(
ng_package(
name = "npm_package",
package_name = "@angular/benchpress",
srcs = [
"README.md",
"package.json",
@@ -41,6 +39,7 @@ ng_package(
"@angular/core",
"reflect-metadata",
],
package = "@angular/benchpress",
# Do not add more to this list.
# Dependencies on the full npm_package cause long re-builds.
visibility = [
@@ -48,6 +47,6 @@ ng_package(
"//modules/ssr-benchmarks:__subpackages__",
],
deps = [
":benchpress",
":benchpress_rjs",
],
)
+11 -7
View File
@@ -1,7 +1,7 @@
load("@build_bazel_rules_nodejs//:index.bzl", "generated_file_test")
load("//packages/common/locales:index.bzl", "generate_base_currencies_file")
load("//tools:defaults.bzl", "api_golden_test", "api_golden_test_npm_package", "generate_api_docs", "ng_package")
load("//tools:defaults2.bzl", "ng_project", "npm_package")
load("//tools:defaults.bzl", "api_golden_test", "api_golden_test_npm_package", "generate_api_docs")
load("//tools:defaults2.bzl", "ng_package", "ng_project", "npm_package")
package(default_visibility = ["//visibility:public"])
@@ -43,6 +43,10 @@ ng_package(
"package.json",
],
nested_packages = ["//packages/common/locales:package"],
package = "@angular/common",
replace_prefixes = {
"locales/package": "locales/",
},
tags = [
"release-with-framework",
],
@@ -62,11 +66,11 @@ ng_package(
"//packages/language-service/test:__pkg__",
],
deps = [
"//packages/common",
"//packages/common/http",
"//packages/common/http/testing",
"//packages/common/testing",
"//packages/common/upgrade",
"//packages/common:common_rjs",
"//packages/common/http:http_rjs",
"//packages/common/http/testing:testing_rjs",
"//packages/common/testing:testing_rjs",
"//packages/common/upgrade:upgrade_rjs",
],
)
+6
View File
@@ -142,6 +142,12 @@ pkg_npm(
],
)
# TODO(rules_js migration): Remove when adev uses pnpm workspaces.
alias(
name = "npm_package__adev_link",
actual = ":npm_package",
)
# TODO(devversion): Temporary early `npm_package` for making compiler-cli usable in `rules_angular`.
# Long-term, `pkg_npm` will be migrated to `npm_package` in general.
npm_package(
@@ -1,5 +1,4 @@
load("//tools:defaults.bzl", "ng_package")
load("//tools:defaults2.bzl", "ts_project")
load("//tools:defaults2.bzl", "ng_package", "ts_project")
package(default_visibility = ["//visibility:public"])
@@ -19,7 +18,8 @@ ng_package(
srcs = [
"package.json",
],
package = "@angular/common",
deps = [
":fake_common",
":fake_common_rjs",
],
)
+4 -3
View File
@@ -1,5 +1,5 @@
load("//tools:defaults.bzl", "ng_package", "tsec_test")
load("//tools:defaults2.bzl", "npm_package", "ts_project")
load("//tools:defaults.bzl", "tsec_test")
load("//tools:defaults2.bzl", "ng_package", "npm_package", "ts_project")
package(default_visibility = ["//visibility:public"])
@@ -24,6 +24,7 @@ ng_package(
srcs = [
"package.json",
],
package = "@angular/compiler",
side_effect_entry_points = [
"@angular/compiler",
],
@@ -43,7 +44,7 @@ ng_package(
"@npm//@angular/build-tooling/shared-scripts:__subpackages__",
],
deps = [
":compiler",
":compiler_rjs",
],
)
+9 -9
View File
@@ -1,8 +1,8 @@
load("@build_bazel_rules_nodejs//:index.bzl", "generated_file_test")
load("//adev/shared-docs/pipeline/api-gen:generate_api_docs.bzl", "generate_api_docs")
load("//packages/common/locales:index.bzl", "generate_base_locale_file")
load("//tools:defaults.bzl", "api_golden_test", "api_golden_test_npm_package", "ng_package", "tsec_test")
load("//tools:defaults2.bzl", "ng_project", "npm_package", "ts_config")
load("//tools:defaults.bzl", "api_golden_test", "api_golden_test_npm_package", "tsec_test")
load("//tools:defaults2.bzl", "ng_package", "ng_project", "npm_package", "ts_config")
package(default_visibility = ["//visibility:public"])
@@ -68,7 +68,6 @@ tsec_test(
ng_package(
name = "npm_package",
package_name = "@angular/core",
srcs = [
"package.json",
":event_dispatch_contract_binary",
@@ -76,6 +75,7 @@ ng_package(
nested_packages = [
"//packages/core/schematics:npm_package",
],
package = "@angular/core",
tags = [
"release-with-framework",
],
@@ -95,12 +95,12 @@ ng_package(
"//packages/language-service/test:__pkg__",
],
deps = [
":core",
"//packages/core/primitives/di",
"//packages/core/primitives/event-dispatch",
"//packages/core/primitives/signals",
"//packages/core/rxjs-interop",
"//packages/core/testing",
":core_rjs",
"//packages/core/primitives/di:di_rjs",
"//packages/core/primitives/event-dispatch:event-dispatch_rjs",
"//packages/core/primitives/signals:signals_rjs",
"//packages/core/rxjs-interop:rxjs-interop_rjs",
"//packages/core/testing:testing_rjs",
],
)
+4 -4
View File
@@ -1,5 +1,5 @@
load("//tools:defaults.bzl", "api_golden_test_npm_package", "generate_api_docs", "ng_package")
load("//tools:defaults2.bzl", "ng_project")
load("//tools:defaults.bzl", "api_golden_test_npm_package", "generate_api_docs")
load("//tools:defaults2.bzl", "ng_package", "ng_project")
package(default_visibility = ["//visibility:public"])
@@ -22,8 +22,8 @@ ng_project(
ng_package(
name = "npm_package",
package_name = "@angular/elements",
srcs = ["package.json"],
package = "@angular/elements",
tags = [
"release-with-framework",
],
@@ -34,7 +34,7 @@ ng_package(
"//modules/ssr-benchmarks:__subpackages__",
],
deps = [
":elements",
":elements_rjs",
],
)
+4 -4
View File
@@ -1,5 +1,5 @@
load("//tools:defaults.bzl", "api_golden_test", "api_golden_test_npm_package", "generate_api_docs", "ng_package")
load("//tools:defaults2.bzl", "ng_project", "npm_package")
load("//tools:defaults.bzl", "api_golden_test", "api_golden_test_npm_package", "generate_api_docs")
load("//tools:defaults2.bzl", "ng_package", "ng_project", "npm_package")
package(default_visibility = ["//visibility:public"])
@@ -22,8 +22,8 @@ ng_project(
ng_package(
name = "npm_package",
package_name = "@angular/forms",
srcs = ["package.json"],
package = "@angular/forms",
tags = [
"release-with-framework",
],
@@ -38,7 +38,7 @@ ng_package(
"//packages/language-service/test:__pkg__",
],
deps = [
":forms",
":forms_rjs",
],
)
+8 -5
View File
@@ -1,5 +1,5 @@
load("//tools:defaults.bzl", "api_golden_test_npm_package", "generate_api_docs", "ng_package")
load("//tools:defaults2.bzl", "npm_package", "ts_project")
load("//tools:defaults.bzl", "api_golden_test_npm_package", "generate_api_docs")
load("//tools:defaults2.bzl", "ng_package", "npm_package", "ts_project")
package(default_visibility = ["//visibility:public"])
@@ -20,7 +20,6 @@ ts_project(
ng_package(
name = "npm_package",
package_name = "@angular/localize",
srcs = [
"package.json",
],
@@ -28,6 +27,10 @@ ng_package(
"//packages/localize/schematics:npm_package",
"//packages/localize/tools:npm_package",
],
package = "@angular/localize",
replace_prefixes = {
"tools/npm_package": "tools",
},
side_effect_entry_points = [
"@angular/localize/init",
],
@@ -35,8 +38,8 @@ ng_package(
"release-with-framework",
],
deps = [
":localize",
"//packages/localize/init",
":localize_rjs",
"//packages/localize/init:init_rjs",
],
)
@@ -1,5 +1,4 @@
load("//tools:defaults.bzl", "ng_package")
load("//tools:defaults2.bzl", "ng_project")
load("//tools:defaults2.bzl", "ng_package", "ng_project")
package(default_visibility = ["//visibility:public"])
@@ -25,7 +24,8 @@ ng_project(
ng_package(
name = "npm_package",
srcs = ["package.json"],
package = "angular-in-memory-web-api",
deps = [
":angular-in-memory-web-api",
":angular-in-memory-web-api_rjs",
],
)
@@ -1,5 +1,5 @@
load("//tools:defaults.bzl", "api_golden_test_npm_package", "generate_api_docs", "ng_package")
load("//tools:defaults2.bzl", "ng_project", "npm_package")
load("//tools:defaults.bzl", "api_golden_test_npm_package", "generate_api_docs")
load("//tools:defaults2.bzl", "ng_package", "ng_project", "npm_package")
package(default_visibility = ["//visibility:public"])
@@ -27,6 +27,7 @@ ng_package(
srcs = [
"package.json",
],
package = "@angular/platform-browser-dynamic",
side_effect_entry_points = [
"@angular/platform-browser-dynamic",
"@angular/platform-browser-dynamic/testing",
@@ -43,8 +44,8 @@ ng_package(
"//packages/compiler-cli/integrationtest:__pkg__",
],
deps = [
":platform-browser-dynamic",
"//packages/platform-browser-dynamic/testing",
":platform-browser-dynamic_rjs",
"//packages/platform-browser-dynamic/testing:testing_rjs",
],
)
+7 -6
View File
@@ -1,5 +1,5 @@
load("//tools:defaults.bzl", "api_golden_test", "api_golden_test_npm_package", "generate_api_docs", "ng_package", "tsec_test")
load("//tools:defaults2.bzl", "ng_project", "npm_package")
load("//tools:defaults.bzl", "api_golden_test", "api_golden_test_npm_package", "generate_api_docs", "tsec_test")
load("//tools:defaults2.bzl", "ng_package", "ng_project", "npm_package")
package(default_visibility = ["//visibility:public"])
@@ -35,6 +35,7 @@ ng_package(
srcs = [
"package.json",
],
package = "@angular/platform-browser",
tags = [
"release-with-framework",
],
@@ -48,10 +49,10 @@ ng_package(
"//packages/compiler-cli/test:__pkg__",
],
deps = [
":platform-browser",
"//packages/platform-browser/animations",
"//packages/platform-browser/animations/async",
"//packages/platform-browser/testing",
":platform-browser_rjs",
"//packages/platform-browser/animations:animations_rjs",
"//packages/platform-browser/animations/async:async_rjs",
"//packages/platform-browser/testing:testing_rjs",
],
)
+6 -5
View File
@@ -1,6 +1,6 @@
load("@build_bazel_rules_nodejs//:index.bzl", "js_library")
load("//tools:defaults.bzl", "api_golden_test_npm_package", "esbuild", "generate_api_docs", "ng_package", "tsec_test")
load("//tools:defaults2.bzl", "ng_project")
load("//tools:defaults.bzl", "api_golden_test_npm_package", "esbuild", "generate_api_docs", "tsec_test")
load("//tools:defaults2.bzl", "ng_package", "ng_project")
package(default_visibility = ["//visibility:public"])
@@ -59,6 +59,7 @@ ng_package(
externals = [
"xhr2",
],
package = "@angular/platform-server",
side_effect_entry_points = [
"@angular/platform-server/init",
],
@@ -74,9 +75,9 @@ ng_package(
"//packages/compiler-cli/integrationtest:__pkg__",
],
deps = [
":platform-server",
"//packages/platform-server/init",
"//packages/platform-server/testing",
":platform-server_rjs",
"//packages/platform-server/init:init_rjs",
"//packages/platform-server/testing:testing_rjs",
],
)
+2
View File
@@ -16,6 +16,8 @@ ng_project(
interop_deps = [
"//packages/platform-server:bundled_domino_lib",
],
# TODO(rules_js migration): testonly targets do not auto-compute a module name right now.
module_name = "@angular/private/testing",
deps = [
"//packages/common:common_rjs",
"//packages/core:core_rjs",
+6 -6
View File
@@ -1,5 +1,5 @@
load("//tools:defaults.bzl", "api_golden_test", "api_golden_test_npm_package", "generate_api_docs", "ng_package")
load("//tools:defaults2.bzl", "ng_project", "npm_package")
load("//tools:defaults.bzl", "api_golden_test", "api_golden_test_npm_package", "generate_api_docs")
load("//tools:defaults2.bzl", "ng_package", "ng_project", "npm_package")
package(default_visibility = ["//visibility:public"])
@@ -23,10 +23,10 @@ ng_project(
ng_package(
name = "npm_package",
package_name = "@angular/router",
srcs = [
"package.json",
],
package = "@angular/router",
tags = [
"release-with-framework",
],
@@ -42,9 +42,9 @@ ng_package(
"//packages/compiler-cli/test/transformers:__pkg__",
],
deps = [
":router",
"//packages/router/testing",
"//packages/router/upgrade",
":router_rjs",
"//packages/router/testing:testing_rjs",
"//packages/router/upgrade:upgrade_rjs",
],
)
+5 -5
View File
@@ -1,6 +1,6 @@
load("@aspect_rules_ts//ts:defs.bzl", rules_js_tsconfig = "ts_config")
load("//tools:defaults.bzl", "api_golden_test", "api_golden_test_npm_package", "generate_api_docs", "ng_package")
load("//tools:defaults2.bzl", "ng_project")
load("//tools:defaults.bzl", "api_golden_test", "api_golden_test_npm_package", "generate_api_docs")
load("//tools:defaults2.bzl", "ng_package", "ng_project")
package(default_visibility = ["//visibility:public"])
@@ -47,7 +47,6 @@ genrule(
ng_package(
name = "npm_package",
package_name = "@angular/service-worker",
srcs = [
"package.json",
"safety-worker.js",
@@ -55,6 +54,7 @@ ng_package(
":ngsw_worker_renamed",
"//packages/service-worker/config:schema.json",
],
package = "@angular/service-worker",
tags = [
"release-with-framework",
],
@@ -65,8 +65,8 @@ ng_package(
"//modules/ssr-benchmarks:__subpackages__",
],
deps = [
":service-worker",
"//packages/service-worker/config",
":service-worker_rjs",
"//packages/service-worker/config:config_rjs",
],
)
+6 -6
View File
@@ -1,5 +1,5 @@
load("//tools:defaults.bzl", "api_golden_test_npm_package", "generate_api_docs", "ng_package")
load("//tools:defaults2.bzl", "ng_project", "npm_package")
load("//tools:defaults.bzl", "api_golden_test_npm_package", "generate_api_docs")
load("//tools:defaults2.bzl", "ng_package", "ng_project", "npm_package")
package(default_visibility = ["//visibility:public"])
@@ -23,10 +23,10 @@ ng_project(
ng_package(
name = "npm_package",
package_name = "@angular/upgrade",
srcs = [
"package.json",
],
package = "@angular/upgrade",
tags = [
"release-with-framework",
],
@@ -37,9 +37,9 @@ ng_package(
"//modules/ssr-benchmarks:__subpackages__",
],
deps = [
":upgrade",
"//packages/upgrade/static",
"//packages/upgrade/static/testing",
":upgrade_rjs",
"//packages/upgrade/static:static_rjs",
"//packages/upgrade/static/testing:testing_rjs",
],
)
+6
View File
@@ -568,6 +568,12 @@ importers:
specifier: workspace:*
version: link:../../../../packages/compiler-cli
integration:
dependencies:
'@angular/compiler-cli':
specifier: workspace:*
version: link:../packages/compiler-cli
modules:
dependencies:
'@angular/animations':
+1
View File
@@ -2,6 +2,7 @@ packages:
- .
- adev/shared-docs/pipeline/api-gen
- modules
- integration
- packages/animations/
- packages/common/
- packages/compiler-cli/
+106
View File
@@ -0,0 +1,106 @@
load("@rules_angular//src/ng_package:index.bzl", _ng_package = "ng_package")
load("@rules_pkg//:pkg.bzl", "pkg_tar")
load("//tools/bazel:ng_package_link_interop.bzl", "ng_package_link_interop")
# Packages which are versioned together on npm
ANGULAR_SCOPED_PACKAGES = ["@angular/%s" % p for p in [
# core should be the first package because it's the main package in the group
# this is significant for Angular CLI and "ng update" specifically, @angular/core
# is considered the identifier of the group by these tools.
"core",
"bazel",
"common",
"compiler",
"compiler-cli",
"animations",
"elements",
"platform-browser",
"platform-browser-dynamic",
"forms",
"platform-server",
"upgrade",
"router",
"language-service",
"localize",
"service-worker",
]]
PKG_GROUP_REPLACEMENTS = {
"\"NG_UPDATE_PACKAGE_GROUP\"": """[
%s
]""" % ",\n ".join(["\"%s\"" % s for s in ANGULAR_SCOPED_PACKAGES]),
}
def ng_package(name, readme_md = None, license_banner = None, license = None, deps = [], **kwargs):
if not readme_md:
readme_md = "//packages:README.md"
if not license_banner:
license_banner = "//packages:license-banner.txt"
if not license:
license = "//:LICENSE"
visibility = kwargs.pop("visibility", None)
tags = kwargs.pop("tags", [])
common_substitutions = dict(kwargs.pop("substitutions", {}), **PKG_GROUP_REPLACEMENTS)
substitutions = dict(common_substitutions, **{
"0.0.0-PLACEHOLDER": "0.0.0",
})
stamped_substitutions = dict(common_substitutions, **{
"0.0.0-PLACEHOLDER": "{{STABLE_PROJECT_VERSION}}",
})
rollup_runtime_deps = [
"//:node_modules/@rollup/plugin-commonjs",
"//:node_modules/@rollup/plugin-node-resolve",
"//:node_modules/magic-string",
"//:node_modules/rollup-plugin-dts",
"//:node_modules/rollup-plugin-sourcemaps2",
]
_ng_package(
name = name,
deps = deps,
readme_md = readme_md,
license = license,
rollup_runtime_deps = rollup_runtime_deps,
license_banner = license_banner,
substitutions = select({
"//:stamp": stamped_substitutions,
"//conditions:default": substitutions,
}),
visibility = visibility,
tags = tags,
**kwargs
)
_ng_package(
name = "%s_nosub" % name,
deps = deps,
readme_md = readme_md,
license = license,
rollup_runtime_deps = rollup_runtime_deps,
license_banner = license_banner,
substitutions = common_substitutions,
visibility = visibility,
tags = ["manual"],
**kwargs
)
pkg_tar(
name = name + "_archive",
srcs = [":%s" % name],
extension = "tar.gz",
strip_prefix = "./%s" % name,
# should not be built unless it is a dependency of another rule
tags = ["manual"],
visibility = visibility,
)
# TODO(rules_js migration): Remove when adev uses pnpm workspaces.
ng_package_link_interop(
name = "%s__adev_link" % name,
package = ":%s" % name,
package_name = kwargs.get("package"),
package_path = "adev",
tags = ["manual"],
)
+23
View File
@@ -0,0 +1,23 @@
load("@aspect_rules_js//npm:providers.bzl", "NpmPackageInfo")
load("@build_bazel_rules_nodejs//:providers.bzl", "LinkablePackageInfo")
def _ng_package_link_interop_impl(ctx):
return [
ctx.attr.package[DefaultInfo],
ctx.attr.package[NpmPackageInfo],
LinkablePackageInfo(
package_name = ctx.attr.package_name,
package_path = ctx.attr.package_path,
path = ctx.files.package[0].path,
files = ctx.attr.package[DefaultInfo].files,
),
]
ng_package_link_interop = rule(
implementation = _ng_package_link_interop_impl,
attrs = {
"package": attr.label(mandatory = True),
"package_name": attr.string(mandatory = True),
"package_path": attr.string(mandatory = True),
},
)
-68
View File
@@ -17,15 +17,11 @@ load("@npm//@bazel/terser:index.bzl", "terser_minified")
load("@npm//typescript:index.bzl", "tsc")
load("@rules_pkg//:pkg.bzl", "pkg_tar")
load("//adev/shared-docs/pipeline/api-gen:generate_api_docs.bzl", _generate_api_docs = "generate_api_docs")
load("//packages/bazel:index.bzl", _ng_package = "ng_package")
load("//tools/bazel:module_name.bzl", "compute_module_name")
load("//tools/bazel:tsec.bzl", _tsec_test = "tsec_test")
load("//tools/esm-interop:index.bzl", "enable_esm_node_module_loader", _nodejs_binary = "nodejs_binary", _nodejs_test = "nodejs_test")
_DEFAULT_TSCONFIG_TEST = "//packages:tsconfig-test"
_INTERNAL_NG_PACKAGE_PACKAGER = "//packages/bazel/src/ng_package:packager"
_INTERNAL_NG_PACKAGE_DEFAULT_ROLLUP_CONFIG_TMPL = "//packages/bazel/src/ng_package:rollup.config.js"
_INTERNAL_NG_PACKAGE_DEFAULT_ROLLUP = "//packages/bazel/src/ng_package/rollup"
esbuild_config = _esbuild_config
esbuild_esm_bundle = _esbuild_esm_bundle
@@ -116,70 +112,6 @@ def ts_library(
**kwargs
)
def ng_package(name, readme_md = None, license_banner = None, license = None, deps = [], **kwargs):
"""Default values for ng_package"""
if not readme_md:
readme_md = "//packages:README.md"
if not license_banner:
license_banner = "//packages:license-banner.txt"
if not license:
license = "//:LICENSE"
visibility = kwargs.pop("visibility", None)
tags = kwargs.pop("tags", [])
common_substitutions = dict(kwargs.pop("substitutions", {}), **PKG_GROUP_REPLACEMENTS)
substitutions = dict(common_substitutions, **{
"0.0.0-PLACEHOLDER": "0.0.0",
})
stamped_substitutions = dict(common_substitutions, **{
"0.0.0-PLACEHOLDER": "{STABLE_PROJECT_VERSION}",
})
_ng_package(
name = name,
deps = deps,
validate = True,
readme_md = readme_md,
license = license,
license_banner = license_banner,
substitutions = select({
"//:stamp": stamped_substitutions,
"//conditions:default": substitutions,
}),
ng_packager = _INTERNAL_NG_PACKAGE_PACKAGER,
rollup_config_tmpl = _INTERNAL_NG_PACKAGE_DEFAULT_ROLLUP_CONFIG_TMPL,
rollup = _INTERNAL_NG_PACKAGE_DEFAULT_ROLLUP,
visibility = visibility,
tags = tags,
**kwargs
)
_ng_package(
name = "%s_nosub" % name,
deps = deps,
validate = True,
readme_md = readme_md,
license = license,
license_banner = license_banner,
substitutions = common_substitutions,
ng_packager = _INTERNAL_NG_PACKAGE_PACKAGER,
rollup_config_tmpl = _INTERNAL_NG_PACKAGE_DEFAULT_ROLLUP_CONFIG_TMPL,
rollup = _INTERNAL_NG_PACKAGE_DEFAULT_ROLLUP,
visibility = visibility,
tags = ["manual"],
**kwargs
)
pkg_tar(
name = name + "_archive",
srcs = [":%s" % name],
extension = "tar.gz",
strip_prefix = "./%s" % name,
# should not be built unless it is a dependency of another rule
tags = ["manual"],
visibility = visibility,
)
def pkg_npm(name, deps = [], validate = True, **kwargs):
"""Default values for pkg_npm"""
visibility = kwargs.pop("visibility", None)
+2 -14
View File
@@ -1,13 +1,14 @@
load("@aspect_rules_jasmine//jasmine:defs.bzl", _jasmine_test = "jasmine_test")
load("@aspect_rules_js//npm:defs.bzl", _npm_package = "npm_package")
load("@aspect_rules_ts//ts:defs.bzl", _ts_config = "ts_config")
load("@rules_angular//src/ng_package:index.bzl", _ng_package = "ng_package")
load("@rules_angular//src/ng_project:index.bzl", _ng_project = "ng_project")
load("//tools/bazel:module_name.bzl", "compute_module_name")
load("//tools/bazel:ng_package.bzl", _ng_package = "ng_package")
load("//tools/bazel:ts_project_interop.bzl", _ts_project = "ts_project")
npm_package = _npm_package
ts_config = _ts_config
ng_package = _ng_package
def _determine_tsconfig(testonly):
if native.package_name().startswith("packages/compiler-cli"):
@@ -106,16 +107,3 @@ def jasmine_test(name, data = [], args = [], **kwargs):
],
**kwargs
)
def ng_package(deps = [], **kwargs):
_ng_package(
deps = deps,
rollup_runtime_deps = [
"//:node_modules/@rollup/plugin-commonjs",
"//:node_modules/@rollup/plugin-node-resolve",
"//:node_modules/magic-string",
"//:node_modules/rollup-plugin-dts",
"//:node_modules/rollup-plugin-sourcemaps2",
],
**kwargs
)