Skip to content

[19.1.x]: Patch port of #29454 #29477

New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

Merged
merged 4 commits into from
Jan 28, 2025
Merged
Show file tree
Hide file tree
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension


Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
Original file line number Diff line number Diff line change
@@ -1,18 +1,22 @@
# @generated
# Input hashes for repository rule npm_translate_lock(name = "npm2", pnpm_lock = "@//:pnpm-lock.yaml").
# This file should be checked into version control along with the pnpm-lock.yaml file.
.npmrc=-2023857461
package.json=688000741
.npmrc=-1406867100
modules/testing/builder/package.json=-1196120648
package.json=-865553716
packages/angular/build/package.json=954937711
packages/angular/cli/package.json=349838588
packages/angular/pwa/package.json=-1352285148
packages/angular/ssr/package.json=120782115
packages/angular_devkit/architect/package.json=-1496633956
packages/angular_devkit/architect_cli/package.json=1551210941
packages/angular_devkit/build_angular/package.json=-1437596637
packages/angular_devkit/build_webpack/package.json=373950017
packages/angular_devkit/core/package.json=339935828
packages/angular_devkit/schematics/package.json=673943597
packages/angular_devkit/schematics_cli/package.json=-356386813
packages/ngtools/webpack/package.json=-942726894
packages/schematics/angular/package.json=251715148
pnpm-lock.yaml=926343104
pnpm-workspace.yaml=1732591250
pnpm-lock.yaml=1087719969
pnpm-workspace.yaml=-1847919625
yarn.lock=969972397
2 changes: 2 additions & 0 deletions .bazelignore
Original file line number Diff line number Diff line change
Expand Up @@ -4,6 +4,7 @@ node_modules
packages/angular/cli/node_modules
packages/angular/create/node_modules
packages/angular/pwa/node_modules
packages/angular/build/node_modules
packages/angular/ssr/node_modules
packages/angular_devkit/architect/node_modules
packages/angular_devkit/architect_cli/node_modules
Expand All @@ -14,3 +15,4 @@ packages/angular_devkit/schematics/node_modules
packages/angular_devkit/schematics_cli/node_modules
packages/ngtools/webpack/node_modules
packages/schematics/angular/node_modules
modules/testing/builder/node_modules
5 changes: 5 additions & 0 deletions .npmrc
Original file line number Diff line number Diff line change
Expand Up @@ -5,3 +5,8 @@ engine-strict = false
# projects using rules_js so that pnpm outside of Bazel lays out a node_modules tree similar to what
# rules_js lays out under Bazel (without a hidden node_modules/.pnpm/node_modules)
hoist=false

# Avoid pnpm auto-installing peer dependencies. We want to be explicit about our versions used
# for peer dependencies, avoiding potential mismatches. In addition, it ensures we can continue
# to rely on peer dependency placeholders substituted via Bazel.
auto-install-peers=false
22 changes: 16 additions & 6 deletions BUILD.bazel
Original file line number Diff line number Diff line change
Expand Up @@ -34,18 +34,28 @@ rules_js_tsconfig(
)

rules_js_tsconfig(
name = "build-tsconfig-angular",
src = "tsconfig-build-ng.json",
name = "test-tsconfig",
src = "tsconfig-test.json",
deps = [
"tsconfig.json",
"//:node_modules/@types/jasmine",
"//:node_modules/@types/node",
],
)

rules_js_tsconfig(
name = "test-tsconfig",
src = "tsconfig-test.json",
name = "build-tsconfig-esm",
src = "tsconfig-build-esm.json",
deps = [
"tsconfig.json",
],
)

rules_js_tsconfig(
name = "test-tsconfig-esm",
src = "tsconfig-test-esm.json",
deps = [
":build-tsconfig-esm",
"//:node_modules/@types/jasmine",
"//:node_modules/@types/node",
],
Expand Down Expand Up @@ -92,8 +102,8 @@ config_setting(
)

ts_config(
name = "tsconfig-build-ng",
src = "tsconfig-build-ng.json",
name = "tsconfig-build-esm",
src = "tsconfig-build-esm.json",
deps = [
":tsconfig.json",
],
Expand Down
5 changes: 4 additions & 1 deletion WORKSPACE
Original file line number Diff line number Diff line change
Expand Up @@ -186,10 +186,14 @@ npm_translate_lock(
data = [
"//:package.json",
"//:pnpm-workspace.yaml",
"//modules/testing/builder:package.json",
"//packages/angular/build:package.json",
"//packages/angular/cli:package.json",
"//packages/angular/pwa:package.json",
"//packages/angular/ssr:package.json",
"//packages/angular_devkit/architect:package.json",
"//packages/angular_devkit/architect_cli:package.json",
"//packages/angular_devkit/build_angular:package.json",
"//packages/angular_devkit/build_webpack:package.json",
"//packages/angular_devkit/core:package.json",
"//packages/angular_devkit/schematics:package.json",
Expand Down Expand Up @@ -245,5 +249,4 @@ http_archive(

load("@aspect_rules_jasmine//jasmine:dependencies.bzl", "rules_jasmine_dependencies")

# Fetch dependencies which users need as well
rules_jasmine_dependencies()
25 changes: 14 additions & 11 deletions modules/testing/builder/BUILD.bazel
Original file line number Diff line number Diff line change
@@ -1,8 +1,10 @@
load("@npm//@bazel/jasmine:index.bzl", "jasmine_node_test")
load("//tools:interop.bzl", "ts_project")
load("@npm2//:defs.bzl", "npm_link_all_packages")
load("//tools:defaults2.bzl", "jasmine_test", "ts_project")

package(default_visibility = ["//visibility:public"])

npm_link_all_packages()

ts_project(
name = "builder",
testonly = True,
Expand All @@ -14,14 +16,15 @@ ts_project(
"src/**/*_spec.ts",
],
),
data = glob(["projects/**/*"]),
data = [
# Needed at runtime by some builder tests relying on SSR being
# resolvable in the test project.
":node_modules/@angular/ssr",
] + glob(["projects/**/*"]),
deps = [
":node_modules/@angular-devkit/architect",
":node_modules/@angular-devkit/core",
"//:node_modules/rxjs",
"//packages/angular_devkit/architect:architect_rjs",
"//packages/angular_devkit/architect/node:node_rjs",
"//packages/angular_devkit/architect/testing:testing_rjs",
"//packages/angular_devkit/core:core_rjs",
"//packages/angular_devkit/core/node:node_rjs",
],
)

Expand All @@ -35,11 +38,11 @@ ts_project(
),
deps = [
":builder_rjs",
"//packages/angular_devkit/architect/testing:testing_rjs",
":node_modules/@angular-devkit/architect",
],
)

jasmine_node_test(
jasmine_test(
name = "unit_test",
srcs = [":unit_test_lib"],
data = [":unit_test_lib_rjs"],
)
7 changes: 7 additions & 0 deletions modules/testing/builder/package.json
Original file line number Diff line number Diff line change
@@ -0,0 +1,7 @@
{
"devDependencies": {
"@angular-devkit/core": "workspace:*",
"@angular-devkit/architect": "workspace:*",
"@angular/ssr": "workspace:*"
}
}
5 changes: 4 additions & 1 deletion package.json
Original file line number Diff line number Diff line change
Expand Up @@ -221,7 +221,10 @@
}
},
"pnpm": {
"onlyBuiltDependencies": []
"onlyBuiltDependencies": [],
"overrides": {
"@angular/build": "workspace:*"
}
},
"resolutions": {
"typescript": "5.7.3"
Expand Down
41 changes: 17 additions & 24 deletions packages/angular/build/BUILD.bazel
Original file line number Diff line number Diff line change
@@ -1,12 +1,14 @@
load("@npm//@angular/build-tooling/bazel/api-golden:index.bzl", "api_golden_test_npm_package")
load("@npm//@bazel/jasmine:index.bzl", "jasmine_node_test")
load("//tools:defaults2.bzl", "npm_package", "ts_project")
load("@npm2//:defs.bzl", "npm_link_all_packages")
load("//tools:defaults2.bzl", "jasmine_test", "npm_package", "ts_project")
load("//tools:ts_json_schema.bzl", "ts_json_schema")

licenses(["notice"])

package(default_visibility = ["//visibility:public"])

npm_link_all_packages()

ts_json_schema(
name = "application_schema",
src = "src/builders/application/schema.json",
Expand Down Expand Up @@ -61,6 +63,9 @@ ts_project(
data = RUNTIME_ASSETS,
module_name = "@angular/build",
deps = [
":node_modules/@angular-devkit/architect",
":node_modules/@angular-devkit/core",
":node_modules/@angular/ssr",
"//:node_modules/@ampproject/remapping",
"//:node_modules/@angular/common",
"//:node_modules/@angular/compiler",
Expand All @@ -87,7 +92,9 @@ ts_project(
"//:node_modules/esbuild-wasm",
"//:node_modules/fast-glob",
"//:node_modules/https-proxy-agent",
"//:node_modules/istanbul-lib-instrument",
"//:node_modules/jsonc-parser",
"//:node_modules/less",
"//:node_modules/listr2",
"//:node_modules/lmdb",
"//:node_modules/magic-string",
Expand All @@ -104,10 +111,6 @@ ts_project(
"//:node_modules/typescript",
"//:node_modules/vite",
"//:node_modules/watchpack",
"//packages/angular/ssr:ssr_rjs",
"//packages/angular/ssr/node:node_rjs",
"//packages/angular_devkit/architect:architect_rjs",
"//packages/angular_devkit/core:core_rjs",
],
)

Expand All @@ -126,14 +129,12 @@ ts_project(
"//:node_modules/prettier",
"//:node_modules/typescript",
"//packages/angular/build/private:private_rjs",
"//packages/angular_devkit/core:core_rjs",
"//packages/angular_devkit/core/node:node_rjs",
],
)

jasmine_node_test(
jasmine_test(
name = "unit_tests",
deps = [":unit_test_lib"],
data = [":unit_test_lib_rjs"],
)

ts_project(
Expand All @@ -144,11 +145,7 @@ ts_project(
":build_rjs",
"//packages/angular/build/private:private_rjs",
"//modules/testing/builder:builder_rjs",
"//packages/angular_devkit/architect:architect_rjs",
"//packages/angular_devkit/architect/node:node_rjs",
"//packages/angular_devkit/architect/testing:testing_rjs",
"//packages/angular_devkit/core:core_rjs",
"//packages/angular_devkit/core/node:node_rjs",
":node_modules/@angular-devkit/architect",

# Base dependencies for the application in hello-world-app.
"//:node_modules/@angular/common",
Expand All @@ -174,11 +171,7 @@ ts_project(
":build_rjs",
"//packages/angular/build/private:private_rjs",
"//modules/testing/builder:builder_rjs",
"//packages/angular_devkit/architect:architect_rjs",
"//packages/angular_devkit/architect/node:node_rjs",
"//packages/angular_devkit/architect/testing:testing_rjs",
"//packages/angular_devkit/core:core_rjs",
"//packages/angular_devkit/core/node:node_rjs",
":node_modules/@angular-devkit/architect",

# dev server only test deps
"//:node_modules/@types/http-proxy",
Expand All @@ -202,20 +195,20 @@ ts_project(
],
)

jasmine_node_test(
jasmine_test(
name = "application_integration_tests",
size = "large",
data = [":application_integration_test_lib_rjs"],
flaky = True,
shard_count = 10,
deps = [":application_integration_test_lib"],
)

jasmine_node_test(
jasmine_test(
name = "dev-server_integration_tests",
size = "large",
data = [":dev-server_integration_test_lib_rjs"],
flaky = True,
shard_count = 10,
deps = [":dev-server_integration_test_lib"],
)

genrule(
Expand Down
6 changes: 5 additions & 1 deletion packages/angular/build/package.json
Original file line number Diff line number Diff line change
Expand Up @@ -19,7 +19,8 @@
"builders": "builders.json",
"dependencies": {
"@ampproject/remapping": "2.3.0",
"@angular-devkit/architect": "0.0.0-EXPERIMENTAL-PLACEHOLDER",
"@angular-devkit/core": "workspace:0.0.0-PLACEHOLDER",
"@angular-devkit/architect": "workspace:0.0.0-EXPERIMENTAL-PLACEHOLDER",
"@babel/core": "7.26.0",
"@babel/helper-annotate-as-pure": "7.25.9",
"@babel/helper-split-export-declaration": "7.24.7",
Expand Down Expand Up @@ -47,6 +48,9 @@
"optionalDependencies": {
"lmdb": "3.2.2"
},
"devDependencies": {
"@angular/ssr": "workspace:*"
},
"peerDependencies": {
"@angular/compiler": "^19.0.0",
"@angular/compiler-cli": "^19.0.0",
Expand Down
23 changes: 19 additions & 4 deletions packages/angular/ssr/BUILD.bazel
Original file line number Diff line number Diff line change
@@ -1,7 +1,8 @@
load("@aspect_rules_js//npm:defs.bzl", "npm_package")
load("@npm//@angular/build-tooling/bazel/api-golden:index.bzl", "api_golden_test_npm_package")
load("@rules_pkg//:pkg.bzl", "pkg_tar")
load("//tools:defaults.bzl", "ng_package")
load("//tools:interop.bzl", "ts_project")
load("//tools:defaults2.bzl", "ts_project")

package(default_visibility = ["//visibility:public"])

Expand All @@ -25,7 +26,7 @@ ts_project(
],
module_name = "@angular/ssr",
source_map = True,
tsconfig = "//:build-tsconfig-angular",
tsconfig = "//:build-tsconfig-esm",
deps = [
"//:node_modules/@angular/common",
"//:node_modules/@angular/core",
Expand All @@ -37,7 +38,7 @@ ts_project(
)

ng_package(
name = "npm_package",
name = "angular_package",
package_name = "@angular/ssr",
srcs = [
":package.json",
Expand All @@ -51,7 +52,6 @@ ng_package(
nested_packages = [
"//packages/angular/ssr/schematics:npm_package",
],
tags = ["release-package"],
deps = [
":ssr",
"//packages/angular/ssr/node",
Expand All @@ -67,6 +67,21 @@ pkg_tar(
tags = ["manual"],
)

# TODO: Replace when `ng_package` creates a valid `rules_js`-compliant npm package.
npm_package(
name = "npm_package",
srcs = [":angular_package"],
replace_prefixes = {
"angular_package/": "",
},
tags = ["release-package"],
)

alias(
name = "pkg",
actual = ":npm_package",
)

api_golden_test_npm_package(
name = "ssr_api",
data = [
Expand Down
2 changes: 1 addition & 1 deletion packages/angular/ssr/node/BUILD.bazel
Original file line number Diff line number Diff line change
Expand Up @@ -16,7 +16,7 @@ ts_project(
],
module_name = "@angular/ssr/node",
source_map = True,
tsconfig = "//:build-tsconfig-angular",
tsconfig = "//:build-tsconfig-esm",
deps = [
"//:node_modules/@angular/core",
"//:node_modules/@angular/platform-server",
Expand Down
1 change: 1 addition & 0 deletions packages/angular/ssr/package.json
Original file line number Diff line number Diff line change
Expand Up @@ -2,6 +2,7 @@
"name": "@angular/ssr",
"version": "0.0.0-PLACEHOLDER",
"description": "Angular server side rendering utilities",
"type": "module",
"license": "MIT",
"homepage": "https://github.com/angular/angular-cli",
"keywords": [
Expand Down
Loading
Loading