diff --git a/.bazelignore b/.bazelignore
index 94034ac8db9d..3f8f9df52ffd 100644
--- a/.bazelignore
+++ b/.bazelignore
@@ -8,32 +8,32 @@ dist
# All integration test node_modules folders
integration/animations/node_modules
+integration/animations-async/node_modules
integration/cli-elements-universal/node_modules
integration/cli-hello-world/node_modules
integration/cli-hello-world-ivy-i18n/node_modules
integration/cli-hello-world-lazy/node_modules
integration/cli-hello-world-mocha/node_modules
integration/cli-signal-inputs/node_modules
-integration/platform-server-hydration/node_modules
integration/defer/node_modules
integration/dynamic-compiler/node_modules
integration/forms/node_modules
integration/injectable-def/node_modules
integration/ivy-i18n/node_modules
-integration/ng-add-localize/node_modules
integration/ng_elements/node_modules
integration/ng_update/node_modules
integration/ng_update_migrations/node_modules
+integration/ng-add-localize/node_modules
integration/nodenext_resolution/node_modules
-integration/npm_package_archives.bzl/node_modules
integration/platform-server/node_modules
+integration/platform-server-hydration/node_modules
integration/service-worker-schema/node_modules
integration/side-effects/node_modules
integration/standalone-bootstrap/node_modules
integration/terser/node_modules
integration/trusted-types/node_modules
integration/typings_test_rxjs7/node_modules
-integration/typings_test_ts49/node_modules
-integration/typings_test_ts50/node_modules
-integration/typings_test_ts51/node_modules
-integration/typings_test_ts52/node_modules
+integration/typings_test_ts55/node_modules
+integration/typings_test_ts56/node_modules
+integration/typings_test_ts57/node_modules
+modules/ssr-benchmarks/node_modules
diff --git a/.bazelrc b/.bazelrc
index aca58640cc79..5049882e2dc5 100644
--- a/.bazelrc
+++ b/.bazelrc
@@ -78,12 +78,6 @@ query --output=label_kind
# By default, failing tests don't print any output, it goes to the log file
test --test_output=errors
-################################
-# Settings for CircleCI #
-################################
-
-# Bazel flags for CircleCI are in /.circleci/bazel.linux.rc and /.circleci/bazel.windows.rc
-
##################################
# Remote Build Execution support #
# Turn on these settings with #
diff --git a/.circleci/README.md b/.circleci/README.md
deleted file mode 100644
index cddaf76fe8c6..000000000000
--- a/.circleci/README.md
+++ /dev/null
@@ -1,19 +0,0 @@
-# Encryption
-
-Based on https://github.com/circleci/encrypted-files
-
-In the CircleCI web UI, we have a secret variable called `KEY`
-https://circleci.com/gh/angular/angular/edit#env-vars
-which is only exposed to non-fork builds
-(see "Pass secrets to builds from forked pull requests" under
-https://circleci.com/gh/angular/angular/edit#advanced-settings)
-
-We use this as a symmetric AES encryption key to encrypt tokens like
-a GitHub token that enables publishing snapshots.
-
-To create the github_token file, we take this approach:
-- Find the angular-builds:token in the internal pw database
-- Go inside the CircleCI default docker image so you use the same version of openssl as we will at runtime: `docker run --rm -it circleci/node:10.12`
-- echo "https://[token]:@github.com" > credentials
-- openssl aes-256-cbc -e -in credentials -out .circleci/github_token -k $KEY
-- If needed, base64-encode the result so you can copy-paste it out of docker: `base64 github_token`
diff --git a/.circleci/bazel.common.rc b/.circleci/bazel.common.rc
deleted file mode 100644
index 2b4c9ec625d1..000000000000
--- a/.circleci/bazel.common.rc
+++ /dev/null
@@ -1,16 +0,0 @@
-# Settings in this file should be OS agnostic. Use the bazel.`: The code to run to compute the value for the variable. Since this code should be
-# executed lazily, it must be properly escaped. For example:
-# ```sh
-# # DO NOT do this:
-# createPublicVarSetter MY_VAR "$(whoami)"; # `whoami` will be evaluated eagerly
-#
-# # DO this isntead:
-# createPublicVarSetter MY_VAR "\$(whoami)"; # `whoami` will NOT be evaluated eagerly
-# ```
-#
-# Usage: `createPublicVarSetter `
-#
-# Example:
-# ```sh
-# createPublicVarSetter MY_VAR 'echo "FOO"';
-# echo $MY_VAR; # Not defined
-#
-# setPublicVar_MY_VAR;
-# source $BASH_ENV;
-# echo $MY_VAR; # FOO
-# ```
-function createPublicVarSetter() {
- echo "setPublicVar_$1() { setPublicVar $1 \"$2\"; }" >> $BASH_ENV;
-}
diff --git a/.circleci/env.linux.sh b/.circleci/env.linux.sh
deleted file mode 100755
index 6fab1c71143c..000000000000
--- a/.circleci/env.linux.sh
+++ /dev/null
@@ -1,4 +0,0 @@
-####################################################################################################
-# Set bazel configuration for CircleCI runs.
-####################################################################################################
-cp "${PROJECT_ROOT}/.circleci/bazel.linux.rc" ".bazelrc.user";
diff --git a/.circleci/env.sh b/.circleci/env.sh
deleted file mode 100755
index 9522f3c56a73..000000000000
--- a/.circleci/env.sh
+++ /dev/null
@@ -1,88 +0,0 @@
-#!/usr/bin/env bash
-
-# Variables
-readonly projectDir=$(realpath "$(dirname ${BASH_SOURCE[0]})/..")
-readonly envHelpersPath="$projectDir/.circleci/env-helpers.inc.sh";
-
-# Load helpers and make them available everywhere (through `$BASH_ENV`).
-source $envHelpersPath;
-echo "source $envHelpersPath;" >> $BASH_ENV;
-
-
-####################################################################################################
-# Define PUBLIC environment variables for CircleCI.
-####################################################################################################
-# See https://circleci.com/docs/2.0/env-vars/#built-in-environment-variables for more info.
-####################################################################################################
-setPublicVar CI "$CI"
-setPublicVar PROJECT_ROOT "$projectDir";
-# This is the branch being built; e.g. `pull/12345` for PR builds.
-setPublicVar CI_BRANCH "$CIRCLE_BRANCH";
-setPublicVar CI_BUILD_URL "$CIRCLE_BUILD_URL";
-setPublicVar CI_COMMIT "$CIRCLE_SHA1";
-# `CI_COMMIT_RANGE` is only used on push builds (a.k.a. non-PR, non-scheduled builds and rerun
-# workflows of such builds).
-setPublicVar CI_GIT_BASE_REVISION "${CIRCLE_GIT_BASE_REVISION}";
-setPublicVar CI_GIT_REVISION "${CIRCLE_GIT_REVISION}";
-setPublicVar CI_COMMIT_RANGE "$CIRCLE_GIT_BASE_REVISION..$CIRCLE_GIT_REVISION";
-setPublicVar CI_PULL_REQUEST "${CIRCLE_PR_NUMBER:-false}";
-setPublicVar CI_REPO_NAME "$CIRCLE_PROJECT_REPONAME";
-setPublicVar CI_REPO_OWNER "$CIRCLE_PROJECT_USERNAME";
-setPublicVar CI_PR_REPONAME "$CIRCLE_PR_REPONAME";
-setPublicVar CI_PR_USERNAME "$CIRCLE_PR_USERNAME";
-
-
-####################################################################################################
-# Define "lazy" PUBLIC environment variables for CircleCI.
-# (I.e. functions to set an environment variable when called.)
-####################################################################################################
-createPublicVarSetter CI_STABLE_BRANCH "\$(npm info @angular/core dist-tags.latest | sed -r 's/^\\s*([0-9]+\\.[0-9]+)\\.[0-9]+.*$/\\1.x/')";
-
-
-####################################################################################################
-# Define SECRET environment variables for CircleCI.
-####################################################################################################
-setSecretVar CI_SECRET_AIO_DEPLOY_FIREBASE_TOKEN "$AIO_DEPLOY_TOKEN";
-setSecretVar CI_SECRET_PAYLOAD_FIREBASE_TOKEN "$ANGULAR_PAYLOAD_TOKEN";
-
-
-####################################################################################################
-# Define SauceLabs environment variables for CircleCI.
-####################################################################################################
-setPublicVar SAUCE_USERNAME "angular-framework";
-setSecretVar SAUCE_ACCESS_KEY "f4bf7c639c5a-c6bb-d6a4-a4b5-800aa111";
-# TODO(josephperrott): Remove environment variables once all saucelabs tests are via bazel method.
-setPublicVar SAUCE_LOG_FILE /tmp/angular/sauce-connect.log
-setPublicVar SAUCE_READY_FILE /tmp/angular/sauce-connect-ready-file.lock
-setPublicVar SAUCE_PID_FILE /tmp/angular/sauce-connect-pid-file.lock
-setPublicVar SAUCE_TUNNEL_IDENTIFIER "angular-framework-${CIRCLE_BUILD_NUM}-${CIRCLE_NODE_INDEX}"
-# Amount of seconds we wait for sauceconnect to establish a tunnel instance. In order to not
-# acquire CircleCI instances for too long if sauceconnect failed, we need a connect timeout.
-setPublicVar SAUCE_READY_FILE_TIMEOUT 120
-
-####################################################################################################
-# Create shell script in /tmp for Bazel actions to access CI envs without
-# busting the cache. Used by payload-size.sh script in integration tests.
-####################################################################################################
-readonly bazelVarEnv="/tmp/bazel-ci-env.sh"
-echo "# Setup by /.circle/env.sh" > $bazelVarEnv
-echo "export PROJECT_ROOT=\"${PROJECT_ROOT}\";" >> $bazelVarEnv
-echo "export CI_BRANCH=\"${CI_BRANCH}\";" >> $bazelVarEnv
-echo "export CI_BUILD_URL=\"${CI_BUILD_URL}\";" >> $bazelVarEnv
-echo "export CI_COMMIT=\"${CI_COMMIT}\";" >> $bazelVarEnv
-echo "export CI_PULL_REQUEST=\"${CI_PULL_REQUEST}\";" >> $bazelVarEnv
-echo "export CI_REPO_NAME=\"${CI_REPO_NAME}\";" >> $bazelVarEnv
-echo "export CI_REPO_OWNER=\"${CI_REPO_OWNER}\";" >> $bazelVarEnv
-echo "export CI_SECRET_PAYLOAD_FIREBASE_TOKEN=\"${CI_SECRET_PAYLOAD_FIREBASE_TOKEN}\";" >> $bazelVarEnv
-
-####################################################################################################
-# Platform-specific environment setup (which can leverage the base variables from here)
-####################################################################################################
-
-# Conditionally, load additional environment settings based on the current VM
-# operating system running. We detect Windows by checking for `%AppData%`.
-if [[ -n "${APPDATA}" ]]; then
- source ${projectDir}/.circleci/env.windows.sh
-else
- source ${projectDir}/.circleci/env.linux.sh
-fi
diff --git a/.circleci/env.windows.sh b/.circleci/env.windows.sh
deleted file mode 100755
index 19a6fbe1c65f..000000000000
--- a/.circleci/env.windows.sh
+++ /dev/null
@@ -1,13 +0,0 @@
-####################################################################################################
-# Set bazel configuration for CircleCI runs.
-####################################################################################################
-cp "${PROJECT_ROOT}/.circleci/bazel.windows.rc" ".bazelrc.user";
-
-# Override the `PATH` environment variable so that the windows-nvm NodeJS version
-# always has precedence over potential existing NodeJS versions from the image.
-setPublicVar PATH "/c/Program Files/nodejs/:$PATH"
-
-# Expose the Bazelisk version. We need to run Bazelisk globally since Windows has problems launching
-# Bazel from a node modules directoy that might be modified by the Bazel Yarn install then.
-setPublicVar BAZELISK_VERSION \
- "$(cd ${PROJECT_ROOT}; node -p 'require("./package.json").devDependencies["@bazel/bazelisk"]')"
diff --git a/.circleci/setup_cache.sh b/.circleci/setup_cache.sh
deleted file mode 100755
index 232596df4a98..000000000000
--- a/.circleci/setup_cache.sh
+++ /dev/null
@@ -1,11 +0,0 @@
-#!/bin/sh
-# Install bazel remote cache proxy
-# This is temporary until the feature is no longer experimental on CircleCI.
-# See remote cache documentation in /docs/BAZEL.md
-
-set -u -e
-
-readonly DOWNLOAD_URL="https://5-116431813-gh.circle-artifacts.com/0/pkg/bazel-remote-proxy-$(uname -s)_$(uname -m)"
-
-curl --fail -o ~/bazel-remote-proxy "$DOWNLOAD_URL"
-chmod +x ~/bazel-remote-proxy
diff --git a/.devcontainer/recommended-Dockerfile b/.devcontainer/recommended-Dockerfile
index b12a0a70ed11..d128851219bc 100644
--- a/.devcontainer/recommended-Dockerfile
+++ b/.devcontainer/recommended-Dockerfile
@@ -1,6 +1,5 @@
# Image metadata and config.
# Ideally, the Node.js version should match what we use on CI.
-# See `executors > default-executor` in `.circleci/config.yml`.
FROM cimg/node:18.13.0@sha256:45d0ee279f522c4562a464df71108104cc9b2187205333ffd0707d4f05589731
@@ -12,7 +11,7 @@ LABEL name="Angular dev environment" \
EXPOSE 4000 4200 4433 5000 8080 9876
-# Switch to `root` (CircleCI images use `circleci` as the user).
+# Switch to `root`.
USER root
diff --git a/.github/actions/deploy-docs-site/main.js b/.github/actions/deploy-docs-site/main.js
index 1331973969c6..d7ef66750092 100644
--- a/.github/actions/deploy-docs-site/main.js
+++ b/.github/actions/deploy-docs-site/main.js
@@ -320,7 +320,7 @@ var require_tunnel = __commonJS({
var http = __require("http");
var https = __require("https");
var events = __require("events");
- var assert = __require("assert");
+ var assert2 = __require("assert");
var util = __require("util");
exports.httpOverHttp = httpOverHttp;
exports.httpsOverHttp = httpsOverHttp;
@@ -10151,7 +10151,8 @@ var supportsColor2 = {
var supports_color_default2 = supportsColor2;
//
-import { spawn as _spawn, spawnSync as _spawnSync } from "child_process";
+import { spawn as _spawn, spawnSync as _spawnSync, exec as _exec } from "child_process";
+import assert from "assert";
var ChildProcess = class {
static spawnInteractive(command, args, options = {}) {
return new Promise((resolve, reject) => {
@@ -10161,52 +10162,9 @@ var ChildProcess = class {
childProcess.on("close", (status) => status === 0 ? resolve() : reject(status));
});
}
- static spawn(command, args, options = {}) {
- return new Promise((resolve, reject) => {
- const commandText = `${command} ${args.join(" ")}`;
- const outputMode = options.mode;
- const env3 = getEnvironmentForNonInteractiveSpawn(options.env);
- Log.debug(`Executing command: ${commandText}`);
- const childProcess = _spawn(command, args, { ...options, env: env3, shell: true, stdio: "pipe" });
- let logOutput = "";
- let stdout = "";
- let stderr = "";
- if (options.input !== void 0) {
- childProcess.stdin.write(options.input);
- childProcess.stdin.end();
- }
- childProcess.stderr.on("data", (message) => {
- stderr += message;
- logOutput += message;
- if (outputMode === void 0 || outputMode === "enabled") {
- process.stderr.write(message);
- }
- });
- childProcess.stdout.on("data", (message) => {
- stdout += message;
- logOutput += message;
- if (outputMode === void 0 || outputMode === "enabled") {
- process.stderr.write(message);
- }
- });
- childProcess.on("close", (exitCode, signal) => {
- const exitDescription = exitCode !== null ? `exit code "${exitCode}"` : `signal "${signal}"`;
- const printFn = outputMode === "on-error" ? Log.error : Log.debug;
- const status = statusFromExitCodeAndSignal(exitCode, signal);
- printFn(`Command "${commandText}" completed with ${exitDescription}.`);
- printFn(`Process output:
-${logOutput}`);
- if (status === 0 || options.suppressErrorOnFailingExitCode) {
- resolve({ stdout, stderr, status });
- } else {
- reject(outputMode === "silent" ? logOutput : void 0);
- }
- });
- });
- }
static spawnSync(command, args, options = {}) {
const commandText = `${command} ${args.join(" ")}`;
- const env3 = getEnvironmentForNonInteractiveSpawn(options.env);
+ const env3 = getEnvironmentForNonInteractiveCommand(options.env);
Log.debug(`Executing command: ${commandText}`);
const { status: exitCode, signal, stdout, stderr } = _spawnSync(command, args, { ...options, env: env3, encoding: "utf8", shell: true, stdio: "pipe" });
const status = statusFromExitCodeAndSignal(exitCode, signal);
@@ -10215,14 +10173,64 @@ ${logOutput}`);
}
throw new Error(stderr);
}
+ static spawn(command, args, options = {}) {
+ const commandText = `${command} ${args.join(" ")}`;
+ const env3 = getEnvironmentForNonInteractiveCommand(options.env);
+ return processAsyncCmd(commandText, options, _spawn(command, args, { ...options, env: env3, shell: true, stdio: "pipe" }));
+ }
+ static exec(command, options = {}) {
+ const env3 = getEnvironmentForNonInteractiveCommand(options.env);
+ return processAsyncCmd(command, options, _exec(command, { ...options, env: env3 }));
+ }
};
function statusFromExitCodeAndSignal(exitCode, signal) {
return exitCode ?? signal ?? -1;
}
-function getEnvironmentForNonInteractiveSpawn(userProvidedEnv) {
+function getEnvironmentForNonInteractiveCommand(userProvidedEnv) {
const forceColorValue = supports_color_default2.stdout !== false ? supports_color_default2.stdout.level.toString() : void 0;
return { FORCE_COLOR: forceColorValue, ...userProvidedEnv ?? process.env };
}
+function processAsyncCmd(command, options, childProcess) {
+ return new Promise((resolve, reject) => {
+ var _a, _b;
+ let logOutput = "";
+ let stdout = "";
+ let stderr = "";
+ Log.debug(`Executing command: ${command}`);
+ if (options.input !== void 0) {
+ assert(childProcess.stdin, "Cannot write process `input` if there is no pipe `stdin` channel.");
+ childProcess.stdin.write(options.input);
+ childProcess.stdin.end();
+ }
+ (_a = childProcess.stderr) == null ? void 0 : _a.on("data", (message) => {
+ stderr += message;
+ logOutput += message;
+ if (options.mode === void 0 || options.mode === "enabled") {
+ process.stderr.write(message);
+ }
+ });
+ (_b = childProcess.stdout) == null ? void 0 : _b.on("data", (message) => {
+ stdout += message;
+ logOutput += message;
+ if (options.mode === void 0 || options.mode === "enabled") {
+ process.stderr.write(message);
+ }
+ });
+ childProcess.on("close", (exitCode, signal) => {
+ const exitDescription = exitCode !== null ? `exit code "${exitCode}"` : `signal "${signal}"`;
+ const printFn = options.mode === "on-error" ? Log.error : Log.debug;
+ const status = statusFromExitCodeAndSignal(exitCode, signal);
+ printFn(`Command "${command}" completed with ${exitDescription}.`);
+ printFn(`Process output:
+${logOutput}`);
+ if (status === 0 || options.suppressErrorOnFailingExitCode) {
+ resolve({ stdout, stderr, status });
+ } else {
+ reject(options.mode === "silent" ? logOutput : void 0);
+ }
+ });
+ });
+}
//
function determineRepoBaseDirFromCwd() {
diff --git a/.github/actions/saucelabs-legacy/action.yml b/.github/actions/saucelabs-legacy/action.yml
index 99b000a421f9..27557b38bf2a 100644
--- a/.github/actions/saucelabs-legacy/action.yml
+++ b/.github/actions/saucelabs-legacy/action.yml
@@ -5,9 +5,9 @@ runs:
using: 'composite'
steps:
- name: Setup Bazel
- uses: angular/dev-infra/github-actions/bazel/setup@2137a36261ceb2e74dc5ddafdb171ac9fc62a6ea
+ uses: angular/dev-infra/github-actions/bazel/setup@289aa644e65a557bcb21adcf75ad60605a9c9859
- name: Setup Saucelabs Variables
- uses: angular/dev-infra/github-actions/saucelabs@2137a36261ceb2e74dc5ddafdb171ac9fc62a6ea
+ uses: angular/dev-infra/github-actions/saucelabs@289aa644e65a557bcb21adcf75ad60605a9c9859
- name: Starting Saucelabs tunnel service
shell: bash
run: ./tools/saucelabs/sauce-service.sh run &
diff --git a/.github/actions/yarn-install/action.yml b/.github/actions/yarn-install/action.yml
index 65e5fb8c5dcb..3dd8d7ed6595 100644
--- a/.github/actions/yarn-install/action.yml
+++ b/.github/actions/yarn-install/action.yml
@@ -4,7 +4,7 @@ description: 'Installs the dependencies using Yarn'
runs:
using: 'composite'
steps:
- - uses: actions/cache@6849a6489940f00c2f30c0fb92c6274307ccb58a # v4
+ - uses: actions/cache@1bd1e32a3bdc45362d1e726936510720a7c30a57 # v4
with:
path: |
./node_modules/
diff --git a/.github/workflows/adev-preview-build.yml b/.github/workflows/adev-preview-build.yml
index bd7559610dec..4ed5325b68cb 100644
--- a/.github/workflows/adev-preview-build.yml
+++ b/.github/workflows/adev-preview-build.yml
@@ -21,16 +21,16 @@ jobs:
(github.event.action == 'synchronize' && contains(github.event.pull_request.labels.*.name, 'adev: preview'))
steps:
- name: Initialize environment
- uses: angular/dev-infra/github-actions/npm/checkout-and-setup-node@2137a36261ceb2e74dc5ddafdb171ac9fc62a6ea
+ uses: angular/dev-infra/github-actions/npm/checkout-and-setup-node@289aa644e65a557bcb21adcf75ad60605a9c9859
- name: Setup Bazel
- uses: angular/dev-infra/github-actions/bazel/setup@2137a36261ceb2e74dc5ddafdb171ac9fc62a6ea
+ uses: angular/dev-infra/github-actions/bazel/setup@289aa644e65a557bcb21adcf75ad60605a9c9859
- name: Setup Bazel RBE
- uses: angular/dev-infra/github-actions/bazel/configure-remote@2137a36261ceb2e74dc5ddafdb171ac9fc62a6ea
+ uses: angular/dev-infra/github-actions/bazel/configure-remote@289aa644e65a557bcb21adcf75ad60605a9c9859
- name: Install node modules
run: yarn install --frozen-lockfile
- name: Build adev to ensure it continues to work
run: yarn bazel build //adev:build --full_build_adev --config=release
- - uses: angular/dev-infra/github-actions/previews/pack-and-upload-artifact@2137a36261ceb2e74dc5ddafdb171ac9fc62a6ea
+ - uses: angular/dev-infra/github-actions/previews/pack-and-upload-artifact@289aa644e65a557bcb21adcf75ad60605a9c9859
with:
workflow-artifact-name: 'adev-preview'
pull-number: '${{github.event.pull_request.number}}'
diff --git a/.github/workflows/adev-preview-deploy.yml b/.github/workflows/adev-preview-deploy.yml
index b7d5946ffc6f..901b371aee1a 100644
--- a/.github/workflows/adev-preview-deploy.yml
+++ b/.github/workflows/adev-preview-deploy.yml
@@ -40,7 +40,7 @@ jobs:
npx -y firebase-tools@latest target:clear --config adev/firebase.json --project ${{env.PREVIEW_PROJECT}} hosting angular-docs
npx -y firebase-tools@latest target:apply --config adev/firebase.json --project ${{env.PREVIEW_PROJECT}} hosting angular-docs ${{env.PREVIEW_SITE}}
- - uses: angular/dev-infra/github-actions/previews/upload-artifacts-to-firebase@2137a36261ceb2e74dc5ddafdb171ac9fc62a6ea
+ - uses: angular/dev-infra/github-actions/previews/upload-artifacts-to-firebase@289aa644e65a557bcb21adcf75ad60605a9c9859
with:
github-token: '${{secrets.GITHUB_TOKEN}}'
workflow-artifact-name: 'adev-preview'
diff --git a/.github/workflows/assistant-to-the-branch-manager.yml b/.github/workflows/assistant-to-the-branch-manager.yml
index fccb0fa92e03..faad5f28e26a 100644
--- a/.github/workflows/assistant-to-the-branch-manager.yml
+++ b/.github/workflows/assistant-to-the-branch-manager.yml
@@ -16,6 +16,6 @@ jobs:
- uses: actions/checkout@11bd71901bbe5b1630ceea73d27597364c9af683 # v4.2.2
with:
persist-credentials: false
- - uses: angular/dev-infra/github-actions/branch-manager@2137a36261ceb2e74dc5ddafdb171ac9fc62a6ea
+ - uses: angular/dev-infra/github-actions/branch-manager@289aa644e65a557bcb21adcf75ad60605a9c9859
with:
angular-robot-key: ${{ secrets.ANGULAR_ROBOT_PRIVATE_KEY }}
diff --git a/.github/workflows/benchmark-compare.yml b/.github/workflows/benchmark-compare.yml
index bc32c4a82596..3b8f5b84b83c 100644
--- a/.github/workflows/benchmark-compare.yml
+++ b/.github/workflows/benchmark-compare.yml
@@ -38,7 +38,7 @@ jobs:
- uses: ./.github/actions/yarn-install
- - uses: angular/dev-infra/github-actions/bazel/configure-remote@2137a36261ceb2e74dc5ddafdb171ac9fc62a6ea
+ - uses: angular/dev-infra/github-actions/bazel/configure-remote@289aa644e65a557bcb21adcf75ad60605a9c9859
with:
bazelrc: ./.bazelrc.user
diff --git a/.github/workflows/ci.yml b/.github/workflows/ci.yml
index 3d024b9490dd..6380f97b9513 100644
--- a/.github/workflows/ci.yml
+++ b/.github/workflows/ci.yml
@@ -21,7 +21,7 @@ jobs:
runs-on: ubuntu-latest
steps:
- name: Initialize environment
- uses: angular/dev-infra/github-actions/npm/checkout-and-setup-node@2137a36261ceb2e74dc5ddafdb171ac9fc62a6ea
+ uses: angular/dev-infra/github-actions/npm/checkout-and-setup-node@289aa644e65a557bcb21adcf75ad60605a9c9859
with:
cache-node-modules: true
- name: Install node modules
@@ -41,13 +41,13 @@ jobs:
runs-on: ubuntu-latest
steps:
- name: Initialize environment
- uses: angular/dev-infra/github-actions/npm/checkout-and-setup-node@2137a36261ceb2e74dc5ddafdb171ac9fc62a6ea
+ uses: angular/dev-infra/github-actions/npm/checkout-and-setup-node@289aa644e65a557bcb21adcf75ad60605a9c9859
with:
cache-node-modules: true
- name: Setup Bazel
- uses: angular/dev-infra/github-actions/bazel/setup@2137a36261ceb2e74dc5ddafdb171ac9fc62a6ea
+ uses: angular/dev-infra/github-actions/bazel/setup@289aa644e65a557bcb21adcf75ad60605a9c9859
- name: Setup Bazel RBE
- uses: angular/dev-infra/github-actions/bazel/configure-remote@2137a36261ceb2e74dc5ddafdb171ac9fc62a6ea
+ uses: angular/dev-infra/github-actions/bazel/configure-remote@289aa644e65a557bcb21adcf75ad60605a9c9859
- name: Install node modules
run: yarn install --frozen-lockfile
- name: Run unit tests
@@ -59,13 +59,13 @@ jobs:
runs-on: ubuntu-latest-4core
steps:
- name: Initialize environment
- uses: angular/dev-infra/github-actions/npm/checkout-and-setup-node@2137a36261ceb2e74dc5ddafdb171ac9fc62a6ea
+ uses: angular/dev-infra/github-actions/npm/checkout-and-setup-node@289aa644e65a557bcb21adcf75ad60605a9c9859
with:
cache-node-modules: true
- name: Setup Bazel
- uses: angular/dev-infra/github-actions/bazel/setup@2137a36261ceb2e74dc5ddafdb171ac9fc62a6ea
+ uses: angular/dev-infra/github-actions/bazel/setup@289aa644e65a557bcb21adcf75ad60605a9c9859
- name: Setup Bazel Remote Caching
- uses: angular/dev-infra/github-actions/bazel/configure-remote@2137a36261ceb2e74dc5ddafdb171ac9fc62a6ea
+ uses: angular/dev-infra/github-actions/bazel/configure-remote@289aa644e65a557bcb21adcf75ad60605a9c9859
- name: Install node modules
run: yarn install --frozen-lockfile --network-timeout 100000
- name: Run CI tests for framework
@@ -76,32 +76,30 @@ jobs:
labels: ubuntu-latest-4core
steps:
- name: Initialize environment
- uses: angular/dev-infra/github-actions/npm/checkout-and-setup-node@2137a36261ceb2e74dc5ddafdb171ac9fc62a6ea
+ uses: angular/dev-infra/github-actions/npm/checkout-and-setup-node@289aa644e65a557bcb21adcf75ad60605a9c9859
- name: Setup Bazel
- uses: angular/dev-infra/github-actions/bazel/setup@2137a36261ceb2e74dc5ddafdb171ac9fc62a6ea
+ uses: angular/dev-infra/github-actions/bazel/setup@289aa644e65a557bcb21adcf75ad60605a9c9859
- name: Setup Bazel RBE
- uses: angular/dev-infra/github-actions/bazel/configure-remote@2137a36261ceb2e74dc5ddafdb171ac9fc62a6ea
+ uses: angular/dev-infra/github-actions/bazel/configure-remote@289aa644e65a557bcb21adcf75ad60605a9c9859
- name: Install node modules
run: yarn install --frozen-lockfile
- name: Build adev in fast mode to ensure it continues to work
run: yarn bazel build //adev:build --config=release
- # TODO: re-enable tests once the next release is shipped
- # Tests are broken because of https://github.com/angular/angular/issues/54858
- # - name: Run tests
- # run: yarn bazel test //adev/...
+ - name: Run tests
+ run: yarn bazel test //adev/...
publish-snapshots:
runs-on:
labels: ubuntu-latest
steps:
- name: Initialize environment
- uses: angular/dev-infra/github-actions/npm/checkout-and-setup-node@2137a36261ceb2e74dc5ddafdb171ac9fc62a6ea
+ uses: angular/dev-infra/github-actions/npm/checkout-and-setup-node@289aa644e65a557bcb21adcf75ad60605a9c9859
with:
cache-node-modules: true
- name: Setup Bazel
- uses: angular/dev-infra/github-actions/bazel/setup@2137a36261ceb2e74dc5ddafdb171ac9fc62a6ea
+ uses: angular/dev-infra/github-actions/bazel/setup@289aa644e65a557bcb21adcf75ad60605a9c9859
- name: Setup Bazel RBE
- uses: angular/dev-infra/github-actions/bazel/configure-remote@2137a36261ceb2e74dc5ddafdb171ac9fc62a6ea
+ uses: angular/dev-infra/github-actions/bazel/configure-remote@289aa644e65a557bcb21adcf75ad60605a9c9859
- name: Install node modules
run: yarn install --frozen-lockfile
- run: echo "https://${{secrets.SNAPSHOT_BUILDS_GITHUB_TOKEN}}:@github.com" > ${HOME}/.git_credentials
@@ -113,7 +111,7 @@ jobs:
labels: ubuntu-latest-4core
steps:
- name: Initialize environment
- uses: angular/dev-infra/github-actions/npm/checkout-and-setup-node@2137a36261ceb2e74dc5ddafdb171ac9fc62a6ea
+ uses: angular/dev-infra/github-actions/npm/checkout-and-setup-node@289aa644e65a557bcb21adcf75ad60605a9c9859
with:
cache-node-modules: true
node-module-directories: |
@@ -121,9 +119,9 @@ jobs:
./packages/zone.js/node_modules
./packages/zone.js/test/typings/node_modules
- name: Setup Bazel
- uses: angular/dev-infra/github-actions/bazel/setup@2137a36261ceb2e74dc5ddafdb171ac9fc62a6ea
+ uses: angular/dev-infra/github-actions/bazel/setup@289aa644e65a557bcb21adcf75ad60605a9c9859
- name: Setup Bazel RBE
- uses: angular/dev-infra/github-actions/bazel/configure-remote@2137a36261ceb2e74dc5ddafdb171ac9fc62a6ea
+ uses: angular/dev-infra/github-actions/bazel/configure-remote@289aa644e65a557bcb21adcf75ad60605a9c9859
- name: Install node modules
run: yarn install --frozen-lockfile
- run: |
@@ -160,7 +158,7 @@ jobs:
SAUCE_TUNNEL_IDENTIFIER: angular-framework-${{ github.run_number }}
steps:
- name: Initialize environment
- uses: angular/dev-infra/github-actions/npm/checkout-and-setup-node@2137a36261ceb2e74dc5ddafdb171ac9fc62a6ea
+ uses: angular/dev-infra/github-actions/npm/checkout-and-setup-node@289aa644e65a557bcb21adcf75ad60605a9c9859
with:
cache-node-modules: true
- name: Install node modules
@@ -173,11 +171,11 @@ jobs:
runs-on: ubuntu-latest
steps:
- name: Initialize environment
- uses: angular/dev-infra/github-actions/npm/checkout-and-setup-node@2137a36261ceb2e74dc5ddafdb171ac9fc62a6ea
+ uses: angular/dev-infra/github-actions/npm/checkout-and-setup-node@289aa644e65a557bcb21adcf75ad60605a9c9859
- name: Setup Bazel
- uses: angular/dev-infra/github-actions/bazel/setup@2137a36261ceb2e74dc5ddafdb171ac9fc62a6ea
+ uses: angular/dev-infra/github-actions/bazel/setup@289aa644e65a557bcb21adcf75ad60605a9c9859
- name: Setup Bazel RBE
- uses: angular/dev-infra/github-actions/bazel/configure-remote@2137a36261ceb2e74dc5ddafdb171ac9fc62a6ea
+ uses: angular/dev-infra/github-actions/bazel/configure-remote@289aa644e65a557bcb21adcf75ad60605a9c9859
- name: Install node modules
run: yarn install --frozen-lockfile
- name: Build adev to ensure it continues to work
diff --git a/.github/workflows/dev-infra.yml b/.github/workflows/dev-infra.yml
index 0651d747e06b..dec5276091ec 100644
--- a/.github/workflows/dev-infra.yml
+++ b/.github/workflows/dev-infra.yml
@@ -13,13 +13,13 @@ jobs:
runs-on: ubuntu-latest
steps:
- uses: actions/checkout@11bd71901bbe5b1630ceea73d27597364c9af683 # v4.2.2
- - uses: angular/dev-infra/github-actions/commit-message-based-labels@2137a36261ceb2e74dc5ddafdb171ac9fc62a6ea
+ - uses: angular/dev-infra/github-actions/commit-message-based-labels@289aa644e65a557bcb21adcf75ad60605a9c9859
with:
angular-robot-key: ${{ secrets.ANGULAR_ROBOT_PRIVATE_KEY }}
post_approval_changes:
runs-on: ubuntu-latest
steps:
- uses: actions/checkout@11bd71901bbe5b1630ceea73d27597364c9af683 # v4.2.2
- - uses: angular/dev-infra/github-actions/post-approval-changes@2137a36261ceb2e74dc5ddafdb171ac9fc62a6ea
+ - uses: angular/dev-infra/github-actions/post-approval-changes@289aa644e65a557bcb21adcf75ad60605a9c9859
with:
angular-robot-key: ${{ secrets.ANGULAR_ROBOT_PRIVATE_KEY }}
diff --git a/.github/workflows/google-internal-tests.yml b/.github/workflows/google-internal-tests.yml
index 42ca3cd0ebba..c06d486970ec 100644
--- a/.github/workflows/google-internal-tests.yml
+++ b/.github/workflows/google-internal-tests.yml
@@ -14,7 +14,7 @@ jobs:
runs-on: ubuntu-latest
steps:
- uses: actions/checkout@11bd71901bbe5b1630ceea73d27597364c9af683 # v4.2.2
- - uses: angular/dev-infra/github-actions/google-internal-tests@2137a36261ceb2e74dc5ddafdb171ac9fc62a6ea
+ - uses: angular/dev-infra/github-actions/google-internal-tests@289aa644e65a557bcb21adcf75ad60605a9c9859
with:
run-tests-guide-url: http://go/angular-g3sync-start
github-token: ${{ secrets.GITHUB_TOKEN }}
diff --git a/.github/workflows/manual.yml b/.github/workflows/manual.yml
index fbfac928555b..062bd915a3f2 100644
--- a/.github/workflows/manual.yml
+++ b/.github/workflows/manual.yml
@@ -13,17 +13,17 @@ jobs:
JOBS: 2
steps:
- name: Initialize environment
- uses: angular/dev-infra/github-actions/npm/checkout-and-setup-node@2137a36261ceb2e74dc5ddafdb171ac9fc62a6ea
+ uses: angular/dev-infra/github-actions/npm/checkout-and-setup-node@289aa644e65a557bcb21adcf75ad60605a9c9859
with:
cache-node-modules: true
- name: Install node modules
run: yarn install --frozen-lockfile
- name: Setup Bazel
- uses: angular/dev-infra/github-actions/bazel/setup@2137a36261ceb2e74dc5ddafdb171ac9fc62a6ea
+ uses: angular/dev-infra/github-actions/bazel/setup@289aa644e65a557bcb21adcf75ad60605a9c9859
- name: Setup Bazel Remote Caching
- uses: angular/dev-infra/github-actions/bazel/configure-remote@2137a36261ceb2e74dc5ddafdb171ac9fc62a6ea
+ uses: angular/dev-infra/github-actions/bazel/configure-remote@289aa644e65a557bcb21adcf75ad60605a9c9859
- name: Setup Saucelabs Variables
- uses: angular/dev-infra/github-actions/saucelabs@2137a36261ceb2e74dc5ddafdb171ac9fc62a6ea
+ uses: angular/dev-infra/github-actions/saucelabs@289aa644e65a557bcb21adcf75ad60605a9c9859
- name: Set up Sauce Tunnel Daemon
run: yarn bazel run //tools/saucelabs-daemon/background-service -- $JOBS &
env:
diff --git a/.github/workflows/merge-ready-status.yml b/.github/workflows/merge-ready-status.yml
index 6a8b3a7791a8..84e1f4b2c975 100644
--- a/.github/workflows/merge-ready-status.yml
+++ b/.github/workflows/merge-ready-status.yml
@@ -9,6 +9,6 @@ jobs:
status:
runs-on: ubuntu-latest
steps:
- - uses: angular/dev-infra/github-actions/unified-status-check@2137a36261ceb2e74dc5ddafdb171ac9fc62a6ea
+ - uses: angular/dev-infra/github-actions/unified-status-check@289aa644e65a557bcb21adcf75ad60605a9c9859
with:
angular-robot-key: ${{ secrets.ANGULAR_ROBOT_PRIVATE_KEY }}
diff --git a/.github/workflows/perf.yml b/.github/workflows/perf.yml
new file mode 100644
index 000000000000..5c462853df65
--- /dev/null
+++ b/.github/workflows/perf.yml
@@ -0,0 +1,53 @@
+name: Performance Tracking
+
+on:
+ push:
+ branches:
+ - main
+
+permissions:
+ contents: 'read'
+ id-token: 'write'
+
+defaults:
+ run:
+ shell: bash
+
+jobs:
+ list:
+ timeout-minutes: 3
+ runs-on: ubuntu-latest
+ outputs:
+ workflows: ${{ steps.workflows.outputs.workflows }}
+ steps:
+ - name: Initialize environment
+ uses: angular/dev-infra/github-actions/npm/checkout-and-setup-node@289aa644e65a557bcb21adcf75ad60605a9c9859
+ - name: Install node modules
+ run: yarn -s install --frozen-lockfile
+ - id: workflows
+ run: echo "workflows=$(yarn -s ng-dev perf workflows --list)" >> "$GITHUB_OUTPUT"
+
+ workflow:
+ timeout-minutes: 30
+ runs-on: ubuntu-latest
+ needs: list
+ strategy:
+ matrix:
+ workflow: ${{ fromJSON(needs.list.outputs.workflows) }}
+ steps:
+ - name: Initialize environment
+ uses: angular/dev-infra/github-actions/npm/checkout-and-setup-node@289aa644e65a557bcb21adcf75ad60605a9c9859
+ - name: Setup Bazel
+ uses: angular/dev-infra/github-actions/bazel/setup@289aa644e65a557bcb21adcf75ad60605a9c9859
+ - name: Install node modules
+ run: yarn -s install --frozen-lockfile
+ # We utilize the google-github-actions/auth action to allow us to get an active credential using workflow
+ # identity federation. This allows us to request short lived credentials on demand, rather than storing
+ # credentials in secrets long term. More information can be found at:
+ # https://docs.github.com/en/actions/security-for-github-actions/security-hardening-your-deployments/configuring-openid-connect-in-google-cloud-platform
+ - uses: 'google-github-actions/auth@6fc4af4b145ae7821d527454aa9bd537d1f2dc5f' # v2
+ with:
+ project_id: 'internal-200822'
+ workload_identity_provider: 'projects/823469418460/locations/global/workloadIdentityPools/measurables-tracking/providers/angular'
+ service_account: 'measures-uploader@internal-200822.iam.gserviceaccount.com'
+ - run: yarn ng-dev perf workflows --name ${{ matrix.workflow }} --commit-sha ${{github.sha}}
diff --git a/.github/workflows/pr.yml b/.github/workflows/pr.yml
index 1b432a6413ad..51312a3dd6e1 100644
--- a/.github/workflows/pr.yml
+++ b/.github/workflows/pr.yml
@@ -19,7 +19,7 @@ jobs:
runs-on: ubuntu-latest
steps:
- name: Initialize environment
- uses: angular/dev-infra/github-actions/npm/checkout-and-setup-node@2137a36261ceb2e74dc5ddafdb171ac9fc62a6ea
+ uses: angular/dev-infra/github-actions/npm/checkout-and-setup-node@289aa644e65a557bcb21adcf75ad60605a9c9859
with:
cache-node-modules: true
- name: Install node modules
@@ -39,7 +39,7 @@ jobs:
- name: Check code format
run: yarn ng-dev format changed --check ${{ github.event.pull_request.base.sha }}
- name: Check Package Licenses
- uses: angular/dev-infra/github-actions/linting/licenses@2137a36261ceb2e74dc5ddafdb171ac9fc62a6ea
+ uses: angular/dev-infra/github-actions/linting/licenses@289aa644e65a557bcb21adcf75ad60605a9c9859
with:
allow-dependencies-licenses: 'pkg:npm/google-protobuf@'
@@ -47,13 +47,13 @@ jobs:
runs-on: ubuntu-latest
steps:
- name: Initialize environment
- uses: angular/dev-infra/github-actions/npm/checkout-and-setup-node@2137a36261ceb2e74dc5ddafdb171ac9fc62a6ea
+ uses: angular/dev-infra/github-actions/npm/checkout-and-setup-node@289aa644e65a557bcb21adcf75ad60605a9c9859
with:
cache-node-modules: true
- name: Setup Bazel
- uses: angular/dev-infra/github-actions/bazel/setup@2137a36261ceb2e74dc5ddafdb171ac9fc62a6ea
+ uses: angular/dev-infra/github-actions/bazel/setup@289aa644e65a557bcb21adcf75ad60605a9c9859
- name: Setup Bazel RBE
- uses: angular/dev-infra/github-actions/bazel/configure-remote@2137a36261ceb2e74dc5ddafdb171ac9fc62a6ea
+ uses: angular/dev-infra/github-actions/bazel/configure-remote@289aa644e65a557bcb21adcf75ad60605a9c9859
- name: Install node modules
run: yarn install --frozen-lockfile
- name: Run unit tests
@@ -65,13 +65,13 @@ jobs:
runs-on: ubuntu-latest-4core
steps:
- name: Initialize environment
- uses: angular/dev-infra/github-actions/npm/checkout-and-setup-node@2137a36261ceb2e74dc5ddafdb171ac9fc62a6ea
+ uses: angular/dev-infra/github-actions/npm/checkout-and-setup-node@289aa644e65a557bcb21adcf75ad60605a9c9859
with:
cache-node-modules: true
- name: Setup Bazel
- uses: angular/dev-infra/github-actions/bazel/setup@2137a36261ceb2e74dc5ddafdb171ac9fc62a6ea
+ uses: angular/dev-infra/github-actions/bazel/setup@289aa644e65a557bcb21adcf75ad60605a9c9859
- name: Setup Bazel Remote Caching
- uses: angular/dev-infra/github-actions/bazel/configure-remote@2137a36261ceb2e74dc5ddafdb171ac9fc62a6ea
+ uses: angular/dev-infra/github-actions/bazel/configure-remote@289aa644e65a557bcb21adcf75ad60605a9c9859
- name: Install node modules
run: yarn install --frozen-lockfile --network-timeout 100000
- name: Run CI tests for framework
@@ -83,13 +83,13 @@ jobs:
runs-on: ubuntu-latest
steps:
- name: Initialize environment
- uses: angular/dev-infra/github-actions/npm/checkout-and-setup-node@2137a36261ceb2e74dc5ddafdb171ac9fc62a6ea
+ uses: angular/dev-infra/github-actions/npm/checkout-and-setup-node@289aa644e65a557bcb21adcf75ad60605a9c9859
with:
cache-node-modules: true
- name: Setup Bazel
- uses: angular/dev-infra/github-actions/bazel/setup@2137a36261ceb2e74dc5ddafdb171ac9fc62a6ea
+ uses: angular/dev-infra/github-actions/bazel/setup@289aa644e65a557bcb21adcf75ad60605a9c9859
- name: Setup Bazel Remote Caching
- uses: angular/dev-infra/github-actions/bazel/configure-remote@2137a36261ceb2e74dc5ddafdb171ac9fc62a6ea
+ uses: angular/dev-infra/github-actions/bazel/configure-remote@289aa644e65a557bcb21adcf75ad60605a9c9859
- name: Install node modules
run: yarn install --frozen-lockfile --network-timeout 100000
- name: Run CI tests for framework
@@ -105,26 +105,24 @@ jobs:
labels: ubuntu-latest-4core
steps:
- name: Initialize environment
- uses: angular/dev-infra/github-actions/npm/checkout-and-setup-node@2137a36261ceb2e74dc5ddafdb171ac9fc62a6ea
+ uses: angular/dev-infra/github-actions/npm/checkout-and-setup-node@289aa644e65a557bcb21adcf75ad60605a9c9859
- name: Setup Bazel
- uses: angular/dev-infra/github-actions/bazel/setup@2137a36261ceb2e74dc5ddafdb171ac9fc62a6ea
+ uses: angular/dev-infra/github-actions/bazel/setup@289aa644e65a557bcb21adcf75ad60605a9c9859
- name: Setup Bazel RBE
- uses: angular/dev-infra/github-actions/bazel/configure-remote@2137a36261ceb2e74dc5ddafdb171ac9fc62a6ea
+ uses: angular/dev-infra/github-actions/bazel/configure-remote@289aa644e65a557bcb21adcf75ad60605a9c9859
- name: Install node modules
run: yarn install --frozen-lockfile
- name: Build adev in fast mode to ensure it continues to work
run: yarn bazel build //adev:build --config=release
- # TODO: re-enable tests once the next release is shipped
- # Tests are broken because of https://github.com/angular/angular/issues/54858
- # - name: Run tests
- # run: yarn bazel test //adev/...
+ - name: Run tests
+ run: yarn bazel test //adev/...
zone-js:
runs-on:
labels: ubuntu-latest-4core
steps:
- name: Initialize environment
- uses: angular/dev-infra/github-actions/npm/checkout-and-setup-node@2137a36261ceb2e74dc5ddafdb171ac9fc62a6ea
+ uses: angular/dev-infra/github-actions/npm/checkout-and-setup-node@289aa644e65a557bcb21adcf75ad60605a9c9859
with:
cache-node-modules: true
node-module-directories: |
@@ -132,9 +130,9 @@ jobs:
./packages/zone.js/node_modules
./packages/zone.js/test/typings/node_modules
- name: Setup Bazel
- uses: angular/dev-infra/github-actions/bazel/setup@2137a36261ceb2e74dc5ddafdb171ac9fc62a6ea
+ uses: angular/dev-infra/github-actions/bazel/setup@289aa644e65a557bcb21adcf75ad60605a9c9859
- name: Setup Bazel RBE
- uses: angular/dev-infra/github-actions/bazel/configure-remote@2137a36261ceb2e74dc5ddafdb171ac9fc62a6ea
+ uses: angular/dev-infra/github-actions/bazel/configure-remote@289aa644e65a557bcb21adcf75ad60605a9c9859
- name: Install node modules
run: yarn install --frozen-lockfile
- run: |
@@ -171,7 +169,7 @@ jobs:
SAUCE_TUNNEL_IDENTIFIER: angular-framework-${{ github.run_number }}
steps:
- name: Initialize environment
- uses: angular/dev-infra/github-actions/npm/checkout-and-setup-node@2137a36261ceb2e74dc5ddafdb171ac9fc62a6ea
+ uses: angular/dev-infra/github-actions/npm/checkout-and-setup-node@289aa644e65a557bcb21adcf75ad60605a9c9859
with:
cache-node-modules: true
- name: Install node modules
diff --git a/.github/workflows/scorecard.yml b/.github/workflows/scorecard.yml
index 50749762093f..d9ba79011e4a 100644
--- a/.github/workflows/scorecard.yml
+++ b/.github/workflows/scorecard.yml
@@ -47,6 +47,6 @@ jobs:
# Upload the results to GitHub's code scanning dashboard.
- name: 'Upload to code-scanning'
- uses: github/codeql-action/upload-sarif@662472033e021d55d94146f66f6058822b0b39fd # v3.27.0
+ uses: github/codeql-action/upload-sarif@df409f7d9260372bd5f19e5b04e83cb3c43714ae # v3.27.9
with:
sarif_file: results.sarif
diff --git a/.github/workflows/update-cli-help.yml b/.github/workflows/update-cli-help.yml
index 5ecca9271e73..ab56712d9854 100644
--- a/.github/workflows/update-cli-help.yml
+++ b/.github/workflows/update-cli-help.yml
@@ -32,7 +32,7 @@ jobs:
env:
ANGULAR_CLI_BUILDS_READONLY_GITHUB_TOKEN: ${{ secrets.ANGULAR_CLI_BUILDS_READONLY_GITHUB_TOKEN }}
- name: Create a PR (if necessary)
- uses: angular/dev-infra/github-actions/create-pr-for-changes@2137a36261ceb2e74dc5ddafdb171ac9fc62a6ea
+ uses: angular/dev-infra/github-actions/create-pr-for-changes@289aa644e65a557bcb21adcf75ad60605a9c9859
with:
branch-prefix: update-cli-help
pr-title: 'docs: update Angular CLI help [${{github.ref_name}}]'
diff --git a/.gitignore b/.gitignore
index 487a4952c502..8c124604a98f 100644
--- a/.gitignore
+++ b/.gitignore
@@ -4,11 +4,8 @@
/bazel-out
/integration/bazel/bazel-*
*.log
-/node_modules/
-
-# CircleCI temporary file for cache key computation.
-# See `save_month_to_file` in `.circleci/config.yml`.
-month.txt
+node_modules/
+modules/ssr-benchmarks/node_modules/
# Include when developing application packages.
pubspec.lock
@@ -57,10 +54,5 @@ baseline.json
# Husky
.husky/_
-
# Ignore cache created with the Angular CLI.
.angular/
-
-# Ignore AIO files, useful when changing branches
-aio/node_modules
-aio/out-tsc
\ No newline at end of file
diff --git a/.ng-dev/caretaker.mts b/.ng-dev/caretaker.mts
index a8f884d4a2d0..f4404dd93563 100644
--- a/.ng-dev/caretaker.mts
+++ b/.ng-dev/caretaker.mts
@@ -6,7 +6,7 @@ export const caretaker: CaretakerConfig = {
githubQueries: [
{
name: 'Merge Queue',
- query: `is:pr is:open status:success label:"action: merge"`,
+ query: `is:pr is:open label:"action: merge"`,
},
{
name: 'Merge Assistance Queue',
diff --git a/.ng-dev/dx-perf-workflows.yml b/.ng-dev/dx-perf-workflows.yml
new file mode 100644
index 000000000000..8da43f1f68c2
--- /dev/null
+++ b/.ng-dev/dx-perf-workflows.yml
@@ -0,0 +1,7 @@
+workflows:
+ build-adev:
+ name: Build adev
+ prepare:
+ - bazel clean
+ workflow:
+ - bazel build //adev:build
diff --git a/.ng-dev/format.mts b/.ng-dev/format.mts
index 89453c4ca845..62d2028c1f3f 100644
--- a/.ng-dev/format.mts
+++ b/.ng-dev/format.mts
@@ -8,6 +8,7 @@ export const format: FormatConfig = {
'matchers': [
'**/*.{yaml,yml}',
'**/*.{js,ts}',
+ 'devtools/**/*.{js,ts,html,scss}',
// Do not format d.ts files as they are generated
'!**/*.d.ts',
diff --git a/.ng-dev/google-sync-config.json b/.ng-dev/google-sync-config.json
index 8363f89def0a..89d77442a048 100644
--- a/.ng-dev/google-sync-config.json
+++ b/.ng-dev/google-sync-config.json
@@ -3,15 +3,7 @@
"separateFilePatterns": ["packages/core/primitives/**"],
"alwaysExternalFilePatterns": [
"packages/*",
- "packages/bazel/*",
- "packages/bazel/src/*",
- "packages/bazel/src/api-extractor/**",
- "packages/bazel/src/builders/**",
- "packages/bazel/src/ng_module/**",
- "packages/bazel/src/ng_package/**",
- "packages/bazel/src/protractor/**",
- "packages/bazel/src/schematics/**",
- "packages/bazel/src/types_bundle/**",
+ "packages/bazel/**",
"packages/compiler-cli/linker/**",
"packages/compiler-cli/src/ngtsc/sourcemaps/**",
"packages/compiler-cli/src/ngtsc/testing/**",
diff --git a/.pullapprove.yml b/.pullapprove.yml
index fb1bd8897590..22217c82f955 100644
--- a/.pullapprove.yml
+++ b/.pullapprove.yml
@@ -57,7 +57,7 @@
version: 3
availability:
- users_unavailable: ['atscott']
+ users_unavailable: ['atscott', 'devversion']
# Meta field that goes unused by PullApprove to allow for defining aliases to be
# used throughout the config.
@@ -111,24 +111,6 @@ overrides:
explanation: 'Passing as globally approved by global approvers'
groups:
- # =========================================================
- # Framework: Animations
- # =========================================================
- fw-animations:
- <<: *defaults
- conditions:
- - >
- contains_any_globs(files, [
- 'packages/animations/**/{*,.*}',
- 'packages/platform-browser/animations/**/{*,.*}',
- ])
- reviewers:
- users:
- - alxhub
- - crisbeto
- - ~jelbourn
- - thePunderWoman
-
# =========================================================
# Framework: Compiler
# =========================================================
@@ -140,7 +122,8 @@ groups:
'packages/compiler/**/{*,.*}',
'packages/examples/compiler/**/{*,.*}',
'packages/compiler-cli/**/{*,.*}',
- ])
+ 'packages/language-service/**/{*,.*}',
+ ])
reviewers:
users:
- alxhub
@@ -148,273 +131,53 @@ groups:
- atscott
- crisbeto
- devversion
+ - kirjs
- JoostK
# =========================================================
- # Framework: Migrations
+ # Framework: General (most code in our packages)
# =========================================================
- fw-migrations:
- <<: *defaults
- conditions:
- - files.include("packages/core/schematics/*")
- reviewers:
- users:
- - alxhub
- - crisbeto
- - devversion
- - thePunderWoman
- - AndrewKushnir
-
- # =========================================================
- # Framework: Core
- # =========================================================
- fw-core:
+ fw-general:
<<: *defaults
conditions:
- >
- contains_any_globs(files.exclude("packages/core/schematics/*").exclude('packages/core/primitives/*'), [
+ contains_any_globs(files.exclude('packages/core/primitives/*'), [
+ 'contributing-docs/public-api-surface.md',
+ 'goldens/circular-deps/packages.json',
+ 'integration/**/{*,.*}',
+ 'modules/**/{*,.*}',
+ 'packages/animations/**/{*,.*}',
+ 'packages/benchpress/**/{*,.*}',
+ 'packages/common/**/{*,.*}',
'packages/core/**/{*,.*}',
- 'packages/examples/core/**/{*,.*}',
- 'packages/platform-browser/**/{*,.*}',
- 'packages/examples/platform-browser/**/{*,.*}',
- 'packages/platform-browser-dynamic/**/{*,.*}',
'packages/docs/**/{*,.*}',
- ])
- reviewers:
- users:
- - alxhub
- - AndrewKushnir
- - atscott
- - crisbeto
- - devversion
- - thePunderWoman
- - pkozlowski-opensource
-
- # =========================================================
- # Framework: Common
- # =========================================================
- fw-common:
- <<: *defaults
- conditions:
- - >
- contains_any_globs(files.exclude("packages/common/http/*"), [
- 'packages/common/**/{*,.*}',
- 'packages/examples/common/**/{*,.*}',
- ])
- reviewers:
- users:
- - alxhub
- - AndrewKushnir
- - atscott
- - thePunderWoman
- - pkozlowski-opensource
-
- # =========================================================
- # Framework: Http
- # =========================================================
- fw-http:
- <<: *defaults
- conditions:
- - >
- contains_any_globs(files, [
- 'packages/common/http/**/{*,.*}',
- 'packages/examples/http/**/{*,.*}',
- ])
- reviewers:
- users:
- - alxhub
- - AndrewKushnir
- - atscott
- - thePunderWoman
- - pkozlowski-opensource
-
- # =========================================================
- # Framework: Elements
- # =========================================================
- fw-elements:
- <<: *defaults
- conditions:
- - >
- contains_any_globs(files, [
'packages/elements/**/{*,.*}',
- ])
- reviewers:
- users:
- - alxhub
- - AndrewKushnir
- - andrewseguin
- - atscott
- - thePunderWoman
- - pkozlowski-opensource
-
- # =========================================================
- # Framework: Forms
- # =========================================================
- fw-forms:
- <<: *defaults
- conditions:
- - >
- contains_any_globs(files, [
+ 'packages/examples/**/{*,.*}',
'packages/forms/**/{*,.*}',
- 'packages/examples/forms/**/{*,.*}',
- ])
- reviewers:
- users:
- - AndrewKushnir
- - alxhub
-
- # =========================================================
- # Framework: i18n
- # =========================================================
- fw-i18n:
- <<: *defaults
- conditions:
- - >
- contains_any_globs(files, [
- 'packages/core/src/i18n/**/{*,.*}',
- 'packages/core/src/render3/i18n/**/{*,.*}',
- 'packages/core/src/render3/instructions/i18n.ts',
- 'packages/core/src/render3/interfaces/i18n.ts',
- 'packages/common/locales/**/{*,.*}',
- 'packages/common/src/i18n/**/{*,.*}',
- 'packages/common/src/pipes/date_pipe.ts',
- 'packages/common/src/pipes/i18n_plural_pipe.ts',
- 'packages/common/src/pipes/i18n_select_pipe.ts',
- 'packages/common/src/pipes/number_pipe.ts',
- 'packages/compiler/src/i18n/**/{*,.*}',
- 'packages/compiler/src/render3/view/i18n/**/{*,.*}',
- 'packages/compiler-cli/src/extract_i18n.ts',
'packages/localize/**/{*,.*}',
- ])
- reviewers:
- users:
- - AndrewKushnir
- - dgp1130
-
- # =========================================================
- # Framework: Platform Server
- # =========================================================
- fw-platform-server:
- <<: *defaults
- conditions:
- - >
- contains_any_globs(files, [
+ 'packages/misc/**/{*,.*}',
+ 'packages/platform-browser/**/{*,.*}',
+ 'packages/platform-browser-dynamic/**/{*,.*}',
'packages/platform-server/**/{*,.*}',
- ])
- reviewers:
- users:
- - alan-agius4
- - alxhub
- - AndrewKushnir
- - atscott
- - thePunderWoman
- - pkozlowski-opensource
-
- # =========================================================
- # Framework: Router
- # =========================================================
- fw-router:
- <<: *defaults
- conditions:
- - >
- contains_any_globs(files, [
+ 'packages/ssr/**/{*,.*}',
'packages/router/**/{*,.*}',
- 'packages/examples/router/**/{*,.*}',
- ])
- reviewers:
- users:
- - AndrewKushnir
- - atscott
-
- # =========================================================
- # Framework: Service Worker
- # =========================================================
- fw-service-worker:
- <<: *defaults
- conditions:
- - >
- contains_any_globs(files, [
'packages/service-worker/**/{*,.*}',
- 'packages/examples/service-worker/**/{*,.*}',
- ])
- reviewers:
- users:
- - alxhub
-
- # =========================================================
- # Framework: Upgrade
- # =========================================================
- fw-upgrade:
- <<: *defaults
- conditions:
- - >
- contains_any_globs(files, [
'packages/upgrade/**/{*,.*}',
- 'packages/common/upgrade/**/{*,.*}',
- 'packages/examples/upgrade/**/{*,.*}',
- ])
- reviewers:
- users:
- - alxhub
- - thePunderWoman
-
- # =========================================================
- # Framework: Testing
- # =========================================================
- fw-testing:
- <<: *defaults
- conditions:
- - >
- contains_any_globs(files.exclude('packages/compiler-cli/*').exclude('packages/language-service/*').exclude('packages/service-worker/*').exclude('packages/core/schematics/*'), [
- 'packages/**/testing/**/{*,.*}',
- ])
- reviewers:
- users:
- - alxhub
- - AndrewKushnir
- - atscott
- - thePunderWoman
- - pkozlowski-opensource
-
- # =========================================================
- # Framework: Benchmarks
- # =========================================================
- fw-benchmarks:
- <<: *defaults
- conditions:
- - >
- contains_any_globs(files, [
- 'modules/benchmarks/**/{*,.*}',
- 'modules/ssr-benchmarks/**/{*,.*}'
- ])
- reviewers:
- users:
- - alxhub
- - AndrewKushnir
- - atscott
- - thePunderWoman
- - pkozlowski-opensource
-
- # =========================================================
- # Framework: Playground
- # =========================================================
- fw-playground:
- <<: *defaults
- conditions:
- - >
- contains_any_globs(files, [
- 'modules/playground/**/{*,.*}'
- ])
+ ])
reviewers:
users:
- alxhub
- AndrewKushnir
- atscott
+ - crisbeto
+ - devversion
+ - kirjs
+ - ~jelbourn
- thePunderWoman
- pkozlowski-opensource
# =========================================================
- # Framework: Security
+ # Framework: Security-sensitive files which require extra review
# =========================================================
fw-security:
<<: *defaults
@@ -428,6 +191,8 @@ groups:
'packages/tsconfig-tsec-base.json',
'packages/tsec-exemption.json',
'tools/tsec.bzl',
+ 'adev/src/content/guide/security.md',
+ 'adev/src/content/examples/security/**/{*,.*}',
])
reviewers:
users:
@@ -455,22 +220,6 @@ groups:
- devversion
- josephperrott
- # =========================================================
- # Language Service
- # =========================================================
- language-service:
- <<: *defaults
- conditions:
- - >
- contains_any_globs(files, [
- 'packages/language-service/**/{*,.*}',
- ])
- reviewers:
- users:
- - alxhub
- - atscott
- - clydin
-
# =========================================================
# zone.js
# =========================================================
@@ -485,76 +234,6 @@ groups:
users:
- JiaLiPassion
- # =========================================================
- # in-memory-web-api
- # =========================================================
- in-memory-web-api:
- conditions:
- - >
- contains_any_globs(files, [
- 'packages/misc/angular-in-memory-web-api/**/{*,.*}',
- ])
- reviewers:
- users:
- - alxhub
- - AndrewKushnir
- - atscott
- - crisbeto
- - thePunderWoman
- - pkozlowski-opensource
-
- # =========================================================
- # Benchpress
- # =========================================================
- benchpress:
- <<: *defaults
- conditions:
- - >
- contains_any_globs(files, [
- 'packages/benchpress/**/{*,.*}'
- ])
- reviewers:
- users:
- - devversion
- - josephperrott
- - pkozlowski-opensource
-
- # =========================================================
- # Integration Tests
- # =========================================================
- integration-tests:
- <<: *defaults
- conditions:
- - >
- contains_any_globs(files, [
- 'integration/**/{*,.*}'
- ])
- reviewers:
- users:
- - alxhub
- - AndrewKushnir
- - atscott
- - thePunderWoman
- - josephperrott
-
- # =========================================================
- # Docs: Packaging, Tooling, Releasing
- # =========================================================
- docs-packaging-and-releasing:
- <<: *defaults
- conditions:
- - >
- contains_any_globs(files, [
- 'contributing-docs/public-api-surface.md',
- ])
- reviewers:
- users:
- - alxhub
- - AndrewKushnir
- - atscott
- - thePunderWoman
- - jelbourn
-
# =========================================================
# Tooling: Compiler API shared with Angular CLI
#
@@ -579,30 +258,33 @@ groups:
reviewed_for: required
# =========================================================
- # Docs: Angular Dev Site
+ # Documentation content
# =========================================================
angular-dev:
<<: *defaults
conditions:
- >
contains_any_globs(files, [
- 'adev/**/{.*,*}',
- 'aio/**/{.*,*}'
- ])
+ 'adev/**/{*,.*}',
+ ])
reviewers:
users:
- - josephperrott
- - jelbourn
- - bencodezen
- - thePunderWoman
- - AndrewKushnir
+ - alan-agius4
- alxhub
+ - AndrewKushnir
+ - atscott
+ - bencodezen
- crisbeto
+ - kirjs
+ - ~JeanMeche
+ - jelbourn
+ - thePunderWoman
- devversion
- - atscott
+ - josephperrott
- pkozlowski-opensource
+ - mgechev
- MarkTechson
- - ~JeanMeche
+ - kirjs
# =========================================================
# Angular DevTools
@@ -633,7 +315,6 @@ groups:
- >
contains_any_globs(files.exclude('.pullapprove.yml'), [
'{*,.*}',
- '.circleci/**/{*,.*}',
'.devcontainer/**/{*,.*}',
'.github/**/{*,.*}',
'.husky/**/{*,.*}',
@@ -684,6 +365,8 @@ groups:
conditions:
- author in ["angular-robot"]
reviewers:
+ users:
+ - ~alan-agius4
teams:
- framework-team
@@ -698,7 +381,7 @@ groups:
- >
contains_any_globs(files.exclude("goldens/public-api/manage.js"), [
'goldens/public-api/**/{*,.*}',
- ])
+ ])
reviewers:
users:
- AndrewKushnir
@@ -707,6 +390,7 @@ groups:
- ~jelbourn
- thePunderWoman
- pkozlowski-opensource
+ - kirjs
- ~iteriani
- ~tbondwilkinson
- ~rahatarmanahmed
@@ -732,6 +416,7 @@ groups:
- alxhub
- AndrewKushnir
- atscott
+ - kirjs
- ~jelbourn
- thePunderWoman
- pkozlowski-opensource
@@ -760,6 +445,7 @@ groups:
- ~jelbourn
- thePunderWoman
- pkozlowski-opensource
+ - kirjs
####################################################################################
# Special Cases
@@ -774,7 +460,7 @@ groups:
- >
contains_any_globs(files, [
'.pullapprove.yml'
- ])
+ ])
reviewers:
users:
- alxhub
diff --git a/CHANGELOG.md b/CHANGELOG.md
index 2e4e3cf05241..706969c6bad5 100644
--- a/CHANGELOG.md
+++ b/CHANGELOG.md
@@ -1,211 +1,379 @@
-
-# 19.0.0-rc.1 (2024-11-06)
-### compiler
-| Commit | Type | Description |
-| -- | -- | -- |
-| [b25121ee4a](https://github.com/angular/angular/commit/b25121ee4aba427954fef074a967b9332654be84) | fix | avoid having to duplicate core environment ([#58444](https://github.com/angular/angular/pull/58444)) |
-### compiler-cli
-| Commit | Type | Description |
-| -- | -- | -- |
-| [d4d76ead80](https://github.com/angular/angular/commit/d4d76ead802837bc6cc7908bc9ebfefa73eb9969) | fix | do not fail fatal when references to non-existent module are discovered ([#58515](https://github.com/angular/angular/pull/58515)) |
-| [22cd6869ef](https://github.com/angular/angular/commit/22cd6869ef453c342b206f84e857ef6c34922fa5) | fix | make the unused imports diagnostic easier to read ([#58468](https://github.com/angular/angular/pull/58468)) |
+
+# 19.1.0-next.4 (2024-12-18)
### core
| Commit | Type | Description |
| -- | -- | -- |
-| [8ae84be3df](https://github.com/angular/angular/commit/8ae84be3df4e1393c6f00e2d28ccacd5b2159a0f) | fix | avoid slow stringification when checking for duplicates in dev mode ([#58521](https://github.com/angular/angular/pull/58521)) |
-| [6e0af6dbbb](https://github.com/angular/angular/commit/6e0af6dbbbe5e9a9e2e5809ada0b7b5a7e456402) | fix | resolve forward-referenced host directives during directive matching ([#58492](https://github.com/angular/angular/pull/58492)) |
-### migrations
-| Commit | Type | Description |
-| -- | -- | -- |
-| [c5e676bb87](https://github.com/angular/angular/commit/c5e676bb8715bcde42e56eb08a41cc1ba5c95f91) | fix | flip the default standalone flag in route-lazy-loading migration ([#58474](https://github.com/angular/angular/pull/58474)) |
-| [e85ac5c7cb](https://github.com/angular/angular/commit/e85ac5c7cb06dc0fba757a9b931e79e07978f2a9) | fix | properly bundle shared compiler code into migrations ([#58515](https://github.com/angular/angular/pull/58515)) |
-### platform-browser
+| [57f3550219](https://github.com/angular/angular/commit/57f3550219f2a57c7c26c9183e48ee66845e0439) | feat | add utility for resolving defer block information to ng global ([#59184](https://github.com/angular/angular/pull/59184)) |
+| [22f191f763](https://github.com/angular/angular/commit/22f191f76339a08bb8f0f2dfbc60dde0f2e38e73) | feat | extend the set of profiler events ([#59183](https://github.com/angular/angular/pull/59183)) |
+| [1f4ff2fa36](https://github.com/angular/angular/commit/1f4ff2fa36f5d6240cbc4a40839d3d89501519d8) | fix | avoid triggering `on timer` and `on idle` on the server ([#59177](https://github.com/angular/angular/pull/59177)) |
+| [cf89f14766](https://github.com/angular/angular/commit/cf89f14766b0ed0204f7012d44a4732fccb35398) | fix | Fix nested timer serialization ([#59173](https://github.com/angular/angular/pull/59173)) |
+### platform-server
| Commit | Type | Description |
| -- | -- | -- |
-| [c36a1c023b](https://github.com/angular/angular/commit/c36a1c023b34f9b2056e1bef6364787e8495bfad) | fix | correctly add external stylesheets to ShadowDOM components ([#58482](https://github.com/angular/angular/pull/58482)) |
+| [300b141cc8](https://github.com/angular/angular/commit/300b141cc8652fd714b02f05c943cb79167ea844) | fix | Warn user when transfer state happens more than once ([#58935](https://github.com/angular/angular/pull/58935)) |
-
-# 18.2.11 (2024-11-06)
+
+# 19.0.5 (2024-12-18)
### core
| Commit | Type | Description |
| -- | -- | -- |
-| [5f2d98a1b1](https://github.com/angular/angular/commit/5f2d98a1b1262a9cca84143fdf9829537138fc5c) | fix | avoid slow stringification when checking for duplicates in dev mode ([#58521](https://github.com/angular/angular/pull/58521)) |
-| [3aa45a2fa1](https://github.com/angular/angular/commit/3aa45a2fa11ad568d12c622e0a9a94bbf1552118) | fix | resolve forward-referenced host directives during directive matching ([#58492](https://github.com/angular/angular/pull/58492)) ([#58500](https://github.com/angular/angular/pull/58500)) |
+| [3793218e77](https://github.com/angular/angular/commit/3793218e77d699ddfae95a53ad048d4bfb9f042c) | fix | avoid triggering `on timer` and `on idle` on the server ([#59177](https://github.com/angular/angular/pull/59177)) |
+| [cfc96ed82c](https://github.com/angular/angular/commit/cfc96ed82cbe958ea7548718f76a2e7a3d6826a9) | fix | Fix nested timer serialization ([#59173](https://github.com/angular/angular/pull/59173)) |
+### platform-server
+| Commit | Type | Description |
+| -- | -- | -- |
+| [9085a8fbd8](https://github.com/angular/angular/commit/9085a8fbd8cb61e3ce45adfa9ca2e96ba0be6f62) | fix | Warn user when transfer state happens more than once ([#58935](https://github.com/angular/angular/pull/58935)) |
-
-# 19.0.0-rc.0 (2024-10-30)
-### compiler
-| Commit | Type | Description |
-| -- | -- | -- |
-| [98804fd4beb](https://github.com/angular/angular/commit/98804fd4beb6292f5a50ce728424fdb33c47f654) | fix | add more specific matcher for hydrate never block ([#58360](https://github.com/angular/angular/pull/58360)) |
+
+# 19.1.0-next.3 (2024-12-12)
### compiler-cli
| Commit | Type | Description |
| -- | -- | -- |
-| [dbe612f2cd5](https://github.com/angular/angular/commit/dbe612f2cd59adecdab3abb270b014c4b26e472c) | fix | disable standalone by default on older versions of Angular ([#58405](https://github.com/angular/angular/pull/58405)) |
+| [c5c20e9d86](https://github.com/angular/angular/commit/c5c20e9d86d72b33840dcf0adea02876437a589f) | fix | check event side of two-way bindings ([#59002](https://github.com/angular/angular/pull/59002)) |
+| [0dee2681f7](https://github.com/angular/angular/commit/0dee2681f782106fdb0fdcf9bc6ad1bca562751d) | fix | consider pre-release versions when detecting feature support ([#59061](https://github.com/angular/angular/pull/59061)) |
+| [1b9492edf8](https://github.com/angular/angular/commit/1b9492edf88f8a217c0fd1a8203df489d91b623b) | fix | error in unused standalone imports diagnostic ([#59064](https://github.com/angular/angular/pull/59064)) |
### core
| Commit | Type | Description |
| -- | -- | -- |
-| [c095679f927](https://github.com/angular/angular/commit/c095679f927ad67fec6c18cb140ea550ae02639e) | fix | avoid breaking change with apps using rxjs 6.x ([#58341](https://github.com/angular/angular/pull/58341)) |
-| [fd7716440be](https://github.com/angular/angular/commit/fd7716440bec8f7ed042d79bafacf3048d45cd47) | fix | Prevents trying to trigger incremental hydration on CSR ([#58366](https://github.com/angular/angular/pull/58366)) |
-### localize
-| Commit | Type | Description |
-| -- | -- | -- |
-| [0730d9d748a](https://github.com/angular/angular/commit/0730d9d748a8b82f5a3e071e8756afbdd22901a1) | fix | Adding arb format to the list of valid formats in the localization extractor cli ([#58287](https://github.com/angular/angular/pull/58287)) |
-### migrations
-| Commit | Type | Description |
-| -- | -- | -- |
-| [90c7ec39a06](https://github.com/angular/angular/commit/90c7ec39a06e5c14711e0a42e2d6a478cde2b9cc) | fix | inject migration always inserting generated variables before super call ([#58393](https://github.com/angular/angular/pull/58393)) |
-| [7a65cdd911c](https://github.com/angular/angular/commit/7a65cdd911cbbf22445c916fc754d3a3304bc5fe) | fix | inject migration not inserting generated code after super call in some cases ([#58393](https://github.com/angular/angular/pull/58393)) |
-| [616b411a6d9](https://github.com/angular/angular/commit/616b411a6d94d3dbc3e072b91c1194466c0a1add) | fix | properly migrate output aliases ([#58411](https://github.com/angular/angular/pull/58411)) |
-| [d504452e2f1](https://github.com/angular/angular/commit/d504452e2f193d3b494a0b2944cddb028c0a2231) | fix | properly replace imports across files ([#58414](https://github.com/angular/angular/pull/58414)) |
-### router
+| [d010e11b73](https://github.com/angular/angular/commit/d010e11b735562ded439989ddb84cc83c6c00e81) | feat | add event listener options to renderer ([#59092](https://github.com/angular/angular/pull/59092)) |
+| [30e676098d](https://github.com/angular/angular/commit/30e676098d72e9e11a6628b9716668df08f18c62) | fix | Fix a bug where snapshotted functions are being run twice if they return a nullish/falsey value. ([#59073](https://github.com/angular/angular/pull/59073)) |
+### platform-browser
| Commit | Type | Description |
| -- | -- | -- |
-| [a49c35ec769](https://github.com/angular/angular/commit/a49c35ec769461b9eb490719f0aa3e5aea8e243f) | fix | remove setter for `injector` on `OutletContext` ([#58343](https://github.com/angular/angular/pull/58343)) |
+| [52be35118f](https://github.com/angular/angular/commit/52be35118feee587d2efe5a6c55502c171caaa97) | fix | collect external component styles from server rendering ([#59031](https://github.com/angular/angular/pull/59031)) |
-
-# 18.2.10 (2024-10-30)
-### compiler
+
+# 19.0.4 (2024-12-12)
+### compiler-cli
| Commit | Type | Description |
| -- | -- | -- |
-| [69dce38e778](https://github.com/angular/angular/commit/69dce38e778cb4c15aa06347031765a84e3ac6a5) | fix | transform pseudo selectors correctly for the encapsulated view. ([#58417](https://github.com/angular/angular/pull/58417)) |
-### localize
+| [7e612171709](https://github.com/angular/angular/commit/7e6121717098462b4f53dc7212064243f2bcf024) | fix | consider pre-release versions when detecting feature support ([#59061](https://github.com/angular/angular/pull/59061)) |
+| [cd764a31152](https://github.com/angular/angular/commit/cd764a31152004d37aa621efc4990c090d86f1e0) | fix | error in unused standalone imports diagnostic ([#59064](https://github.com/angular/angular/pull/59064)) |
+### core
| Commit | Type | Description |
| -- | -- | -- |
-| [3b989ac5bd9](https://github.com/angular/angular/commit/3b989ac5bd951a3d28bcd0ada150fc81503a016a) | fix | Adding arb format to the list of valid formats in the localization extractor cli ([#58287](https://github.com/angular/angular/pull/58287)) |
+| [34ded10fa60](https://github.com/angular/angular/commit/34ded10fa6061a12531de8837a436cf0a1ac20b8) | fix | Fix a bug where snapshotted functions are being run twice if they return a nullish/falsey value. ([#59073](https://github.com/angular/angular/pull/59073)) |
+### platform-browser
+| Commit | Type | Description |
+| -- | -- | -- |
+| [ae0802d63c5](https://github.com/angular/angular/commit/ae0802d63c50307791e8a5d765573836dfe89075) | fix | collect external component styles from server rendering ([#59031](https://github.com/angular/angular/pull/59031)) |
-
-# 19.0.0-next.11 (2024-10-23)
-### common
-| Commit | Type | Description |
-| -- | -- | -- |
-| [24c6373820](https://github.com/angular/angular/commit/24c6373820231faf9d012a2e4d7ea945d3e8513b) | feat | add optional rounded transform support in cloudinary image loader ([#55364](https://github.com/angular/angular/pull/55364)) |
-| [13c13067bc](https://github.com/angular/angular/commit/13c13067bc3ed50cb80b0a86e62655448adb3051) | feat | disable keyvalue sorting using null compareFn ([#57487](https://github.com/angular/angular/pull/57487)) |
+
+# 19.1.0-next.2 (2024-12-04)
+
+
+
+
+# 19.0.3 (2024-12-04)
+
+
+
+
+# 19.1.0-next.1 (2024-12-04)
### compiler-cli
| Commit | Type | Description |
| -- | -- | -- |
-| [d0c74f3891](https://github.com/angular/angular/commit/d0c74f3891eed2feae913256ab15ac1e7435c379) | fix | report when NgModule imports or exports itself ([#58231](https://github.com/angular/angular/pull/58231)) |
+| [f280467398](https://github.com/angular/angular/commit/f280467398c6980878b5e755a78606251814447b) | fix | account for multiple generated namespace imports in HMR ([#58924](https://github.com/angular/angular/pull/58924)) |
### core
| Commit | Type | Description |
| -- | -- | -- |
-| [69fc5ae922](https://github.com/angular/angular/commit/69fc5ae9229b872a9ad70eb920087af2a378fead) | feat | Add incremental hydration public api ([#58249](https://github.com/angular/angular/pull/58249)) |
-| [8ebbae88ca](https://github.com/angular/angular/commit/8ebbae88ca48b8aa78cd85deedbed19d44b8227e) | feat | Add rxjs operator prevent app stability until an event ([#56533](https://github.com/angular/angular/pull/56533)) |
-| [19edf2c057](https://github.com/angular/angular/commit/19edf2c057f7587bc16812685d31a556521ad414) | feat | add syntactic sugar for initializers ([#53152](https://github.com/angular/angular/pull/53152)) |
-| [ab25a192ba](https://github.com/angular/angular/commit/ab25a192ba664863ad68d224b9b2df78da22769a) | feat | allow running output migration on a subset of paths ([#58299](https://github.com/angular/angular/pull/58299)) |
-| [18d8d44b1f](https://github.com/angular/angular/commit/18d8d44b1f3d56a4eda68f2cafded7529e08d0f1) | feat | experimental `resource()` API for async dependencies ([#58255](https://github.com/angular/angular/pull/58255)) |
-| [9762b24b5e](https://github.com/angular/angular/commit/9762b24b5e8d7ab3ed2321959492a77b01d8ae57) | feat | experimental impl of `rxResource()` ([#58255](https://github.com/angular/angular/pull/58255)) |
-| [ec386e7f12](https://github.com/angular/angular/commit/ec386e7f1216e0047392e75ab686b310b073eb42) | feat | introduce debugName optional arg to framework signal functions ([#57073](https://github.com/angular/angular/pull/57073)) |
-| [8311f00faa](https://github.com/angular/angular/commit/8311f00faaf282d1a5b1ddca29247a2fba94a692) | feat | introduce the reactive linkedSignal ([#58189](https://github.com/angular/angular/pull/58189)) |
-### forms
+| [e894a5daea](https://github.com/angular/angular/commit/e894a5daea401b4e1173b0e66557ae40140eb9a0) | feat | set kind field on template and effect nodes ([#58865](https://github.com/angular/angular/pull/58865)) |
+| [3b765367f3](https://github.com/angular/angular/commit/3b765367f31b6d1bb32406505f18151acdf1f2b2) | fix | Explicitly manage TracingSnapshot lifecycle and dispose of it once it's been used. ([#58929](https://github.com/angular/angular/pull/58929)) |
+### migrations
| Commit | Type | Description |
| -- | -- | -- |
-| [3e7d724037](https://github.com/angular/angular/commit/3e7d724037cca4d256b1442eda20d6c6ad91d279) | feat | add ability to clear a FormRecord ([#50750](https://github.com/angular/angular/pull/50750)) |
-| [18b6f3339f](https://github.com/angular/angular/commit/18b6f3339f46b37ee67fce2fa8a900cc73b2f23c) | fix | fix FormRecord type inference ([#50750](https://github.com/angular/angular/pull/50750)) |
-### http
+| [e31e52e177](https://github.com/angular/angular/commit/e31e52e1771ea565a6869b4ed252d6ff7097d4ad) | fix | class content being deleted in some edge cases ([#58959](https://github.com/angular/angular/pull/58959)) |
+| [508d3a1b3b](https://github.com/angular/angular/commit/508d3a1b3bc5770f18e3e46e2105bf0ba6178a87) | fix | correctly strip away parameters surrounded by comments in inject migration ([#58959](https://github.com/angular/angular/pull/58959)) |
+| [7191aa6e09](https://github.com/angular/angular/commit/7191aa6e09ca3b85efd3fd14a18944eac4384763) | fix | don't migrate classes with parameters that can't be injected ([#58959](https://github.com/angular/angular/pull/58959)) |
+| [a4924af6d5](https://github.com/angular/angular/commit/a4924af6d580c5bdaa185c4c97277c4effb55af9) | fix | inject migration aggressively removing imports ([#58959](https://github.com/angular/angular/pull/58959)) |
+| [35165d152d](https://github.com/angular/angular/commit/35165d152d7f9c3c8789ebdf792037aafdc1cc66) | fix | inject migration dropping code if everything except super is removed ([#58959](https://github.com/angular/angular/pull/58959)) |
+| [68e5ba7a3a](https://github.com/angular/angular/commit/68e5ba7a3a44c2f1647c4c6cc7ed66b010f85d15) | fix | preserve type literals and tuples in inject migrations ([#58959](https://github.com/angular/angular/pull/58959)) |
+### platform-server
| Commit | Type | Description |
| -- | -- | -- |
-| [4b9accdf16](https://github.com/angular/angular/commit/4b9accdf166f3990b3706de83ada15937fe786e2) | feat | promote `withRequestsMadeViaParent` to stable. ([#58221](https://github.com/angular/angular/pull/58221)) |
-### language-service
+| [1cfbfc66d3](https://github.com/angular/angular/commit/1cfbfc66d3a24b6c41abf13550e7c2911e20b550) | fix | remove peer dependency on animations ([#58997](https://github.com/angular/angular/pull/58997)) |
+
+
+
+
+# 19.0.2 (2024-12-04)
+### compiler-cli
| Commit | Type | Description |
| -- | -- | -- |
-| [6342befff8](https://github.com/angular/angular/commit/6342befff8ee491f37e8912cccb0099bbbf01042) | feat | support migrating full classes to signal queries ([#58263](https://github.com/angular/angular/pull/58263)) |
+| [9f99196d23](https://github.com/angular/angular/commit/9f99196d239479bcba0b42a18a5155ed5a1764ff) | fix | account for multiple generated namespace imports in HMR ([#58924](https://github.com/angular/angular/pull/58924)) |
+### core
+| Commit | Type | Description |
+| -- | -- | -- |
+| [4792db9a6d](https://github.com/angular/angular/commit/4792db9a6d3a7dc076c9b200cd31a53a4fd30683) | fix | Explicitly manage TracingSnapshot lifecycle and dispose of it once it's been used. ([#58929](https://github.com/angular/angular/pull/58929)) |
### migrations
| Commit | Type | Description |
| -- | -- | -- |
-| [dff4de0f75](https://github.com/angular/angular/commit/dff4de0f75741bc629462bb8da833b876c754453) | feat | add a combined migration for all signals APIs ([#58259](https://github.com/angular/angular/pull/58259)) |
-| [bb286f65e7](https://github.com/angular/angular/commit/bb286f65e7a38c21ae61807b9a7811908a9030ed) | feat | capture output migration stats ([#58321](https://github.com/angular/angular/pull/58321)) |
-| [2bfc64daf1](https://github.com/angular/angular/commit/2bfc64daf1cad9be8099759e8de7a361555ad5d1) | feat | expose output as function migration ([#58299](https://github.com/angular/angular/pull/58299)) |
-| [cf70d626cd](https://github.com/angular/angular/commit/cf70d626cdedfd978d058b973420d8f31980555d) | feat | print output migration stats in ng generate ([#58321](https://github.com/angular/angular/pull/58321)) |
-| [42607bf0f2](https://github.com/angular/angular/commit/42607bf0f28a2421a0d41809485c09dca26ea599) | fix | add outputs migration to combined shorthand ([#58318](https://github.com/angular/angular/pull/58318)) |
-| [00e2001351](https://github.com/angular/angular/commit/00e20013512f75327e5644ad5ac7829fc0e866d4) | fix | migrate more .next output usages ([#58282](https://github.com/angular/angular/pull/58282)) |
-### service-worker
+| [7b5bacc228](https://github.com/angular/angular/commit/7b5bacc2285803e6ac9691c2dae2361ddca9da9a) | fix | class content being deleted in some edge cases ([#58959](https://github.com/angular/angular/pull/58959)) |
+| [d1cbdd6acb](https://github.com/angular/angular/commit/d1cbdd6acb228773e0fb33958978a14e12be178f) | fix | correctly strip away parameters surrounded by comments in inject migration ([#58959](https://github.com/angular/angular/pull/58959)) |
+| [e17ff71c31](https://github.com/angular/angular/commit/e17ff71c318a1b32d5207b7516856f330f2bcf5a) | fix | don't migrate classes with parameters that can't be injected ([#58959](https://github.com/angular/angular/pull/58959)) |
+| [7c5f990001](https://github.com/angular/angular/commit/7c5f990001c4aac9f48c5461421579c398295356) | fix | inject migration aggressively removing imports ([#58959](https://github.com/angular/angular/pull/58959)) |
+| [4392ccedf9](https://github.com/angular/angular/commit/4392ccedf997e79486af7ad60172eea98ed3351f) | fix | inject migration dropping code if everything except super is removed ([#58959](https://github.com/angular/angular/pull/58959)) |
+| [9cbebc6dda](https://github.com/angular/angular/commit/9cbebc6dda89d2fdfc52799aef1ea895dcac2d00) | fix | preserve type literals and tuples in inject migrations ([#58959](https://github.com/angular/angular/pull/58959)) |
+### platform-server
| Commit | Type | Description |
| -- | -- | -- |
-| [8ddce80a0b](https://github.com/angular/angular/commit/8ddce80a0bab4ebbd0f7db1c85ee27e4f0249db9) | feat | allow specifying maxAge for entire application ([#49601](https://github.com/angular/angular/pull/49601)) |
+| [f3c388ecda](https://github.com/angular/angular/commit/f3c388ecda5e836946031a554827cdaee9801734) | fix | remove peer dependency on animations ([#58997](https://github.com/angular/angular/pull/58997)) |
-
-# 18.2.9 (2024-10-23)
-### compiler-cli
+
+# 18.2.13 (2024-11-26)
+### migrations
| Commit | Type | Description |
| -- | -- | -- |
-| [b0ab653965](https://github.com/angular/angular/commit/b0ab653965cf88fcfde23fc6a6cc78ce3121a30f) | fix | report when NgModule imports or exports itself ([#58231](https://github.com/angular/angular/pull/58231)) |
+| [06d70a25ea](https://github.com/angular/angular/commit/06d70a25ea7a6ef32f47516fcb8542d98ac45e14) | fix | take care of tests that import both HttpClientModule & HttpClientTestingModule. ([#58777](https://github.com/angular/angular/pull/58777)) |
-
-# 19.0.0-next.10 (2024-10-16)
-## Breaking Changes
+
+# 19.1.0-next.0 (2024-11-26)
+### common
+| Commit | Type | Description |
+| -- | -- | -- |
+| [e4c50b3bea](https://github.com/angular/angular/commit/e4c50b3bea22ca2afba74465893c36730952f4b9) | feat | expose component instance in NgComponentOutlet ([#58698](https://github.com/angular/angular/pull/58698)) |
### core
-- Angular directives, components and pipes are now standalone by default. Specify `standalone: false` for declarations that are currently declared in `@NgModule`s. `ng update` for v19 will take care of this automatically.
-### compiler
| Commit | Type | Description |
| -- | -- | -- |
-| [0c9d721ac1](https://github.com/angular/angular/commit/0c9d721ac157662b2602cf0278ba4b79325f6882) | feat | add support for the `typeof` keyword in template expressions. ([#58183](https://github.com/angular/angular/pull/58183)) |
-| [a3cb530d84](https://github.com/angular/angular/commit/a3cb530d846bf4d15802b9f42b6dee5c9a3a08ee) | fix | handle typeof expressions in serializer ([#58217](https://github.com/angular/angular/pull/58217)) |
-| [ba4340875a](https://github.com/angular/angular/commit/ba4340875ac8e338ff1390fc7897eecc704ef7c5) | fix | ignore placeholder-only i18n messages ([#58154](https://github.com/angular/angular/pull/58154)) |
+| [bd1f1294ae](https://github.com/angular/angular/commit/bd1f1294aeb0d47b24421b7b7a608988689a459f) | feat | support TypeScript 5.7 ([#58609](https://github.com/angular/angular/pull/58609)) |
+
+
+
+
+# 19.0.1 (2024-11-26)
### compiler-cli
| Commit | Type | Description |
| -- | -- | -- |
-| [231e6ff6ca](https://github.com/angular/angular/commit/231e6ff6ca0dae0289a03615bcaed29455c2d4b8) | feat | generate the HMR replacement module ([#58205](https://github.com/angular/angular/pull/58205)) |
-| [fb44323c51](https://github.com/angular/angular/commit/fb44323c51da5a86853aafd8a70ce0c25d6c0d7f) | fix | incorrectly generating relative file paths on case-insensitive platforms ([#58150](https://github.com/angular/angular/pull/58150)) |
+| [fb1fa8b0fc](https://github.com/angular/angular/commit/fb1fa8b0fc04c9cfac6551ca27bee89dcd7c72ac) | fix | more accurate diagnostics for host binding parser errors ([#58870](https://github.com/angular/angular/pull/58870)) |
### core
| Commit | Type | Description |
| -- | -- | -- |
-| [6b8c494d05](https://github.com/angular/angular/commit/6b8c494d05e545830fffb9626153480af6339ddc) | feat | flipping the default value for `standalone` to `true` ([#58169](https://github.com/angular/angular/pull/58169)) |
-| [3f1e7ab6ae](https://github.com/angular/angular/commit/3f1e7ab6ae984149004c449c04301b434ea64d2a) | feat | promote `outputFromObservable` & `outputToObservable` to stable. ([#58214](https://github.com/angular/angular/pull/58214)) |
-| [97c44a1d6c](https://github.com/angular/angular/commit/97c44a1d6c41be250d585fba5af2bc2af4d98ae2) | feat | Promote `takeUntilDestroyed` to stable. ([#58200](https://github.com/angular/angular/pull/58200)) |
-| [819ff034ce](https://github.com/angular/angular/commit/819ff034ce7cf014cedef60510b83af9340efa71) | feat | treat directives, pipes, components as by default ([#58229](https://github.com/angular/angular/pull/58229)) |
+| [502ee0e722](https://github.com/angular/angular/commit/502ee0e7221a9e7cfa0fa3bd92298d3b650a7713) | fix | correctly clear template HMR internal renderer cache ([#58724](https://github.com/angular/angular/pull/58724)) |
+| [99715104a1](https://github.com/angular/angular/commit/99715104a1a787c3899dfbfac6b44f28c7d24356) | fix | correctly perform lazy routes migration for components with additional decorators ([#58796](https://github.com/angular/angular/pull/58796)) |
+| [118803035f](https://github.com/angular/angular/commit/118803035f366acdffc577ec857b888f764bb338) | fix | Ensure _tick is always run within the TracingSnapshot. ([#58881](https://github.com/angular/angular/pull/58881)) |
+| [08b9452f01](https://github.com/angular/angular/commit/08b9452f012b2ef660f767c2f0a4bf86bb15bb61) | fix | Ensure resource sets an error ([#58855](https://github.com/angular/angular/pull/58855)) |
+| [84f45ea3ff](https://github.com/angular/angular/commit/84f45ea3ffe02003350c6c19fdafdc6f4d521ccb) | fix | make component id generation more stable between client and server builds ([#58813](https://github.com/angular/angular/pull/58813)) |
+| [d3491c7cee](https://github.com/angular/angular/commit/d3491c7cee3d110da1adb51f8047b4e1976ece71) | fix | Prevents race condition of cleanup for incremental hydration ([#58722](https://github.com/angular/angular/pull/58722)) |
+### forms
+| Commit | Type | Description |
+| -- | -- | -- |
+| [4dfe5b6cef](https://github.com/angular/angular/commit/4dfe5b6cefd7901a466b37b660f8b3a051a06cb3) | fix | work around TypeScript 5.7 issue ([#58731](https://github.com/angular/angular/pull/58731)) |
+### language-service
+| Commit | Type | Description |
+| -- | -- | -- |
+| [a983865bff](https://github.com/angular/angular/commit/a983865bffa828a982ef7e56204924d9c2989ead) | fix | add fix for individual unused imports ([#58719](https://github.com/angular/angular/pull/58719)) |
+| [e6e7a4e22b](https://github.com/angular/angular/commit/e6e7a4e22b0a654808e5eb88a30cd6effa383332) | fix | allow fixes to run without template info ([#58719](https://github.com/angular/angular/pull/58719)) |
+### migrations
+| Commit | Type | Description |
+| -- | -- | -- |
+| [5ce10264a4](https://github.com/angular/angular/commit/5ce10264a434ffc8e31cdc68208d2c3c7f8378ed) | fix | fix provide-initializer migration when using useFactory ([#58518](https://github.com/angular/angular/pull/58518)) |
+| [d4f5c85f60](https://github.com/angular/angular/commit/d4f5c85f60133550303d59b3f9e3e34f14ca63ce) | fix | handle parameters with initializers in inject migration ([#58769](https://github.com/angular/angular/pull/58769)) |
+| [a6d2d2dc10](https://github.com/angular/angular/commit/a6d2d2dc104608f14c3850b21bc23ba75ca04e4d) | fix | Mark hoisted properties as removed in inject migration ([#58804](https://github.com/angular/angular/pull/58804)) |
-
-# 19.0.0-next.9 (2024-10-10)
+
+# 19.0.0 (2024-11-19)
+
+Blog post: https://blog.angular.dev/meet-angular-v19-7b29dfd05b84
+
## Breaking Changes
### compiler
- `this.foo` property reads no longer refer to template context variables. If you intended to read the template variable, do not use `this.`.
+- changes to CSS selectors parsing where introduced, mainly to: pseudo selectors `:where()` and `:is()`,
+ parsing of `:host` and `host-context`, parsing selectors within pseudo selector arguments (for instance comma separated selectors).
+ These changes could lead to a different specificity of the resulting selectors and/or previously broken selectors being applied now,
+ for example `:where(:host)` used to transform to `:where()[ng-host]` and is being `:where([ng-host])` now. Unlike the previous outcome,
+ the new result can target elements and therefore could lead to breakages.
### core
+- Angular directives, components and pipes are now standalone by default.
+ * Specify `standalone: false` for declarations that are currently declared in `@NgModule`s.
+ * `ng update` for v19 will take care of this automatically.
+- TypeScript versions less than 5.5 are no longer supported.
+- Timing changes for `effect` API (in developer preview):
+
+ * effects which are triggered outside of change detection run as part of
+ the change detection process instead of as a microtask. Depending on the
+ specifics of application/test setup, this can result in them executing
+ earlier or later (or requiring additional test steps to trigger; see below
+ examples).
+
+ * effects which are triggered during change detection (e.g. by input
+ signals) run _earlier_, before the component's template.
+
+- `ExperimentalPendingTasks` has been renamed to `PendingTasks`.
+- The `autoDetect` feature of `ComponentFixture` will now
+ attach the fixture to the `ApplicationRef`. As a result, errors during
+ automatic change detection of the fixture be reported to the `ErrorHandler`.
+ This change may cause custom error handlers to observe new failures that were previously unreported.
+- `createComponent` will now render default fallback with empty `projectableNodes`.
+
+ * When passing an empty array to `projectableNodes` in the `createComponent` API, the default fallback content
+ of the `ng-content` will be rendered if present. To prevent rendering the default content, pass `document.createTextNode('')` as a `projectableNode`.
+
+ ```ts
+ // The first ng-content will render the default fallback content if present
+ createComponent(MyComponent. { projectableNodes: [[], [secondNode]] });
+
+ // To prevent projecting the default fallback content:
+ createComponent(MyComponent. { projectableNodes: [[document.createTextNode('')], [secondNode]] });
+
+ ```
+- Errors that are thrown during `ApplicationRef.tick`
+ will now be rethrown when using `TestBed`. These errors should be
+ resolved by ensuring the test environment is set up correctly to
+ complete change detection successfully. There are two alternatives to
+ catch the errors:
+
+ * Instead of waiting for automatic change detection to happen, trigger
+ it synchronously and expect the error. For example, a jasmine test
+ could write `expect(() => TestBed.inject(ApplicationRef).tick()).toThrow()`
+ * `TestBed` will reject any outstanding `ComponentFixture.whenStable` promises. A jasmine test,
+ for example, could write `expectAsync(fixture.whenStable()).toBeRejected()`.
+
+ As a last resort, you can configure errors to _not_ be rethrown by
+ setting `rethrowApplicationErrors` to `false` in `TestBed.configureTestingModule`.
+- The timers that are used for zone coalescing and hybrid
+ mode scheduling (which schedules an application state synchronization
+ when changes happen outside the Angular zone) will now run in the zone
+ above Angular rather than the root zone. This will mostly affect tests
+ which use `fakeAsync`: these timers will now be visible to `fakeAsync`
+ and can be affected by `tick` or `flush`.
- The deprecated `factories` property in `KeyValueDiffers` has been removed.
+### elements
+- as part of switching away from custom CD behavior to the
+ hybrid scheduler, timing of change detection around custom elements has
+ changed subtly. These changes make elements more efficient, but can cause
+ tests which encoded assumptions about how or when elements would be checked
+ to require updating.
### localize
-- The `name` option in the `ng add @localize` schematic has been removed in favor of the `project` option.
+- The `name` option in the `ng add `@localize`` schematic has been removed in favor of the `project` option.
### platform-browser
- The deprecated `BrowserModule.withServerTransition` method has been removed. Please use the `APP_ID` DI token to set the application id instead.
+### router
+- The `Router.errorHandler` property has been removed.
+ Adding an error handler should be configured in either
+ `withNavigationErrorHandler` with `provideRouter` or the `errorHandler`
+ property in the extra options of `RouterModule.forRoot`. In addition,
+ the error handler cannot be used to change the return value of the
+ router navigation promise or prevent it from rejecting. Instead, if you
+ want to prevent the promise from rejecting, use `resolveNavigationPromiseOnError`.
+- The return type of the `Resolve` interface now includes
+ `RedirectCommand`.
+### common
+| Commit | Type | Description |
+| -- | -- | -- |
+| [24c6373820](https://github.com/angular/angular/commit/24c6373820231faf9d012a2e4d7ea945d3e8513b) | feat | add optional rounded transform support in cloudinary image loader ([#55364](https://github.com/angular/angular/pull/55364)) |
+| [50f08e6c4b](https://github.com/angular/angular/commit/50f08e6c4bf1caeeb08d3505ce7fabd466b9c76b) | feat | automatically use sizes auto in NgOptimizedImage ([#57479](https://github.com/angular/angular/pull/57479)) |
+| [13c13067bc](https://github.com/angular/angular/commit/13c13067bc3ed50cb80b0a86e62655448adb3051) | feat | disable keyvalue sorting using null compareFn ([#57487](https://github.com/angular/angular/pull/57487)) |
### compiler
| Commit | Type | Description |
| -- | -- | -- |
+| [a2e4ee0cb3](https://github.com/angular/angular/commit/a2e4ee0cb3d40cadc05e28d58b06853973944456) | feat | add diagnostic for unused standalone imports ([#57605](https://github.com/angular/angular/pull/57605)) |
+| [0c9d721ac1](https://github.com/angular/angular/commit/0c9d721ac157662b2602cf0278ba4b79325f6882) | feat | add support for the `typeof` keyword in template expressions. ([#58183](https://github.com/angular/angular/pull/58183)) |
| [09f589f000](https://github.com/angular/angular/commit/09f589f0006f4b428b675b83c12c0dc8ebb7e45f) | fix | `this.a` should always refer to class property `a` ([#55183](https://github.com/angular/angular/pull/55183)) |
-| [e8d1944999](https://github.com/angular/angular/commit/e8d1944999e1fdfbd67630d475334c0d7f41a0eb) | fix | add multiple :host and nested selectors support ([#57796](https://github.com/angular/angular/pull/57796)) |
-| [82144b6d63](https://github.com/angular/angular/commit/82144b6d63d072d112d1a7f4dcc018a1d64bb994) | fix | allow combinators inside pseudo selectors ([#57796](https://github.com/angular/angular/pull/57796)) |
-| [292ea4714f](https://github.com/angular/angular/commit/292ea4714fb7e76cf1748d2f9059991e05c42574) | fix | fix comment typo ([#57796](https://github.com/angular/angular/pull/57796)) |
-| [69529d8873](https://github.com/angular/angular/commit/69529d8873fbd7888ab68fddc6e7c654c5065764) | fix | fix parsing of the :host-context with pseudo selectors ([#57796](https://github.com/angular/angular/pull/57796)) |
-| [2374b87b64](https://github.com/angular/angular/commit/2374b87b643e0373f85cf126d4b01b2fff785f64) | fix | preserve attributes attached to :host selector ([#57796](https://github.com/angular/angular/pull/57796)) |
-| [46a6324c82](https://github.com/angular/angular/commit/46a6324c82a41b69c16a4c8c9f3fc52d1ecf6917) | fix | scope :host-context inside pseudo selectors, do not decrease specificity ([#57796](https://github.com/angular/angular/pull/57796)) |
-| [bc5f1175e9](https://github.com/angular/angular/commit/bc5f1175e9f39dfa2699c4de19ee9af4ce4b50d1) | fix | transform pseudo selectors correctly for the encapsulated view ([#57796](https://github.com/angular/angular/pull/57796)) |
+| [98804fd4be](https://github.com/angular/angular/commit/98804fd4beb6292f5a50ce728424fdb33c47f654) | fix | add more specific matcher for hydrate never block ([#58360](https://github.com/angular/angular/pull/58360)) |
+| [b25121ee4a](https://github.com/angular/angular/commit/b25121ee4aba427954fef074a967b9332654be84) | fix | avoid having to duplicate core environment ([#58444](https://github.com/angular/angular/pull/58444)) |
+| [560282aa9b](https://github.com/angular/angular/commit/560282aa9b3204ad8311017905beed63072c7303) | fix | control flow nodes with root at the end projected incorrectly ([#58607](https://github.com/angular/angular/pull/58607)) |
+| [2be161d015](https://github.com/angular/angular/commit/2be161d015ce6bab0142b6e6c34a8ede6341f627) | fix | fix `:host` parsing in pseudo-selectors ([#58681](https://github.com/angular/angular/pull/58681)) |
+| [806a61b5a6](https://github.com/angular/angular/commit/806a61b5a619d98c0226ba6a566b1562f6e16e5a) | fix | fix multiline selectors ([#58681](https://github.com/angular/angular/pull/58681)) |
+| [a3cb530d84](https://github.com/angular/angular/commit/a3cb530d846bf4d15802b9f42b6dee5c9a3a08ee) | fix | handle typeof expressions in serializer ([#58217](https://github.com/angular/angular/pull/58217)) |
+| [ba4340875a](https://github.com/angular/angular/commit/ba4340875ac8e338ff1390fc7897eecc704ef7c5) | fix | ignore placeholder-only i18n messages ([#58154](https://github.com/angular/angular/pull/58154)) |
+| [e5d3abb298](https://github.com/angular/angular/commit/e5d3abb29842412f82a67562aceff245d493ec53) | fix | resolve `:host:host-context(.foo)` ([#58681](https://github.com/angular/angular/pull/58681)) |
+| [80f56954ce](https://github.com/angular/angular/commit/80f56954cecf763e36bdcfbbd592a82d693eeef7) | fix | transform chained pseudo-selectors ([#58681](https://github.com/angular/angular/pull/58681)) |
### compiler-cli
| Commit | Type | Description |
| -- | -- | -- |
-| [8d8c03abc4](https://github.com/angular/angular/commit/8d8c03abc40099da268d7301f029954f3e3f1c90) | fix | defer symbols only used in types ([#58104](https://github.com/angular/angular/pull/58104)) |
+| [d9687f43dd](https://github.com/angular/angular/commit/d9687f43dd2ccfcf7dd3ee4f9066ce727f3224c6) | feat | 'strictStandalone' flag enforces standalone ([#57935](https://github.com/angular/angular/pull/57935)) |
+| [9e87593055](https://github.com/angular/angular/commit/9e87593055a5314a67090bd15d5552c23b538050) | feat | ensure template style elements are preprocessed as inline styles ([#57429](https://github.com/angular/angular/pull/57429)) |
+| [231e6ff6ca](https://github.com/angular/angular/commit/231e6ff6ca0dae0289a03615bcaed29455c2d4b8) | feat | generate the HMR replacement module ([#58205](https://github.com/angular/angular/pull/58205)) |
+| [dbe612f2cd](https://github.com/angular/angular/commit/dbe612f2cd59adecdab3abb270b014c4b26e472c) | fix | disable standalone by default on older versions of Angular ([#58405](https://github.com/angular/angular/pull/58405)) |
+| [d4d76ead80](https://github.com/angular/angular/commit/d4d76ead802837bc6cc7908bc9ebfefa73eb9969) | fix | do not fail fatal when references to non-existent module are discovered ([#58515](https://github.com/angular/angular/pull/58515)) |
+| [33fe252c58](https://github.com/angular/angular/commit/33fe252c588ee94d6ef99e8070d35c483ec24fda) | fix | do not report unused declarations coming from an imported array ([#57940](https://github.com/angular/angular/pull/57940)) |
+| [fb44323c51](https://github.com/angular/angular/commit/fb44323c51da5a86853aafd8a70ce0c25d6c0d7f) | fix | incorrectly generating relative file paths on case-insensitive platforms ([#58150](https://github.com/angular/angular/pull/58150)) |
+| [22cd6869ef](https://github.com/angular/angular/commit/22cd6869ef453c342b206f84e857ef6c34922fa5) | fix | make the unused imports diagnostic easier to read ([#58468](https://github.com/angular/angular/pull/58468)) |
+| [9bbb01c85e](https://github.com/angular/angular/commit/9bbb01c85e763b0457456a2393a834db15008671) | fix | report individual diagnostics for unused imports ([#58589](https://github.com/angular/angular/pull/58589)) |
+| [4716c3b966](https://github.com/angular/angular/commit/4716c3b9660b01f4ef3642fb774270b7f4a13d1a) | perf | reduce duplicate component style resolution ([#57502](https://github.com/angular/angular/pull/57502)) |
### core
| Commit | Type | Description |
| -- | -- | -- |
+| [6ea8e1e9aa](https://github.com/angular/angular/commit/6ea8e1e9aae028572873cf97aa1949c8153f458f) | feat | Add a schematics to migrate to `standalone: false`. ([#57643](https://github.com/angular/angular/pull/57643)) |
+| [3ebe6b4ad4](https://github.com/angular/angular/commit/3ebe6b4ad401337e18619edc34477ae98226fa3e) | feat | Add async `run` method on `ExperimentalPendingTasks` ([#56546](https://github.com/angular/angular/pull/56546)) |
+| [69fc5ae922](https://github.com/angular/angular/commit/69fc5ae9229b872a9ad70eb920087af2a378fead) | feat | Add incremental hydration public api ([#58249](https://github.com/angular/angular/pull/58249)) |
+| [8ebbae88ca](https://github.com/angular/angular/commit/8ebbae88ca48b8aa78cd85deedbed19d44b8227e) | feat | Add rxjs operator prevent app stability until an event ([#56533](https://github.com/angular/angular/pull/56533)) |
+| [19edf2c057](https://github.com/angular/angular/commit/19edf2c057f7587bc16812685d31a556521ad414) | feat | add syntactic sugar for initializers ([#53152](https://github.com/angular/angular/pull/53152)) |
+| [c93b510f9b](https://github.com/angular/angular/commit/c93b510f9b2e23aa7a3848a04c05249fde14a9b1) | feat | allow passing `undefined` without needing to include it in the type argument of `input` ([#57621](https://github.com/angular/angular/pull/57621)) |
+| [ab25a192ba](https://github.com/angular/angular/commit/ab25a192ba664863ad68d224b9b2df78da22769a) | feat | allow running output migration on a subset of paths ([#58299](https://github.com/angular/angular/pull/58299)) |
+| [fc59e2a7b7](https://github.com/angular/angular/commit/fc59e2a7b7afa491a5ea740284a742574805eb36) | feat | change effect() execution timing & no-op `allowSignalWrites` ([#57874](https://github.com/angular/angular/pull/57874)) |
+| [8bcc663a53](https://github.com/angular/angular/commit/8bcc663a53888717cdf4ce0c23404caa00abb1b2) | feat | drop support for TypeScript 5.4 ([#57577](https://github.com/angular/angular/pull/57577)) |
+| [18d8d44b1f](https://github.com/angular/angular/commit/18d8d44b1f3d56a4eda68f2cafded7529e08d0f1) | feat | experimental `resource()` API for async dependencies ([#58255](https://github.com/angular/angular/pull/58255)) |
+| [9762b24b5e](https://github.com/angular/angular/commit/9762b24b5e8d7ab3ed2321959492a77b01d8ae57) | feat | experimental impl of `rxResource()` ([#58255](https://github.com/angular/angular/pull/58255)) |
+| [6b8c494d05](https://github.com/angular/angular/commit/6b8c494d05e545830fffb9626153480af6339ddc) | feat | flipping the default value for `standalone` to `true` ([#58169](https://github.com/angular/angular/pull/58169)) |
+| [e6e5d29e83](https://github.com/angular/angular/commit/e6e5d29e830a0a74d7677d5f2345f29391064853) | feat | initial version of the output migration ([#57604](https://github.com/angular/angular/pull/57604)) |
+| [be2e49639b](https://github.com/angular/angular/commit/be2e49639bda831831ad62d49253db942a83fd46) | feat | introduce `afterRenderEffect` ([#57549](https://github.com/angular/angular/pull/57549)) |
+| [ec386e7f12](https://github.com/angular/angular/commit/ec386e7f1216e0047392e75ab686b310b073eb42) | feat | introduce debugName optional arg to framework signal functions ([#57073](https://github.com/angular/angular/pull/57073)) |
+| [8311f00faa](https://github.com/angular/angular/commit/8311f00faaf282d1a5b1ddca29247a2fba94a692) | feat | introduce the reactive linkedSignal ([#58189](https://github.com/angular/angular/pull/58189)) |
+| [1b1519224d](https://github.com/angular/angular/commit/1b1519224d10c1cd25d05d7b958772b9adee1e1a) | feat | mark input, output and model APIs as stable ([#57804](https://github.com/angular/angular/pull/57804)) |
+| [a7eff3ffaa](https://github.com/angular/angular/commit/a7eff3ffaaecbcb3034130d475ff7b4e41a1e1cc) | feat | mark signal-based query APIs as stable ([#57921](https://github.com/angular/angular/pull/57921)) |
+| [a1f229850a](https://github.com/angular/angular/commit/a1f229850ad36da009f772faa831da173a60268c) | feat | migrate ExperimentalPendingTasks to PendingTasks ([#57533](https://github.com/angular/angular/pull/57533)) |
+| [3f1e7ab6ae](https://github.com/angular/angular/commit/3f1e7ab6ae984149004c449c04301b434ea64d2a) | feat | promote `outputFromObservable` & `outputToObservable` to stable. ([#58214](https://github.com/angular/angular/pull/58214)) |
+| [97c44a1d6c](https://github.com/angular/angular/commit/97c44a1d6c41be250d585fba5af2bc2af4d98ae2) | feat | Promote `takeUntilDestroyed` to stable. ([#58200](https://github.com/angular/angular/pull/58200)) |
+| [e5adf92965](https://github.com/angular/angular/commit/e5adf9296595644e415d5c147df08890be01ba77) | feat | stabilize `@let` syntax ([#57813](https://github.com/angular/angular/pull/57813)) |
+| [b063468027](https://github.com/angular/angular/commit/b0634680272569501146bb7a9cdfe53033e25971) | feat | support TypeScript 5.6 ([#57424](https://github.com/angular/angular/pull/57424)) |
+| [819ff034ce](https://github.com/angular/angular/commit/819ff034ce7cf014cedef60510b83af9340efa71) | feat | treat directives, pipes, components as by default ([#58229](https://github.com/angular/angular/pull/58229)) |
| [ee426c62f0](https://github.com/angular/angular/commit/ee426c62f07579ec7dc89ce9582972cc1e3471d4) | fix | allow signal write error ([#57973](https://github.com/angular/angular/pull/57973)) |
-| [67db4305c2](https://github.com/angular/angular/commit/67db4305c2261625fd54d284c29e94e26cb19488) | fix | clean up afterRender after it is executed ([#58119](https://github.com/angular/angular/pull/58119)) |
+| [c095679f92](https://github.com/angular/angular/commit/c095679f927ad67fec6c18cb140ea550ae02639e) | fix | avoid breaking change with apps using rxjs 6.x ([#58341](https://github.com/angular/angular/pull/58341)) |
+| [71ee81af2c](https://github.com/angular/angular/commit/71ee81af2c4c5854a54cf94a48d5829da41878a7) | fix | clean up event contract once hydration is done ([#58174](https://github.com/angular/angular/pull/58174)) |
+| [f03d274e87](https://github.com/angular/angular/commit/f03d274e87c919514a70d02c0699523957de7386) | fix | ComponentFixture autoDetect feature works like production ([#55228](https://github.com/angular/angular/pull/55228)) |
+| [950a5540f1](https://github.com/angular/angular/commit/950a5540f15118e7360506ad82ec9dab5a11f789) | fix | Ensure the `ViewContext` is retained after closure minification ([#57903](https://github.com/angular/angular/pull/57903)) |
+| [7b1e5be20b](https://github.com/angular/angular/commit/7b1e5be20b99c88246c6be78a4dcd64eb55cee1a) | fix | fallback to default ng-content with empty projectable nodes. ([#57480](https://github.com/angular/angular/pull/57480)) |
+| [0300dd2e18](https://github.com/angular/angular/commit/0300dd2e18f064f2f57f7371e0dc5c01218b5019) | fix | Fix fixture.detectChanges with autoDetect disabled and zoneless ([#57416](https://github.com/angular/angular/pull/57416)) |
+| [5fe57d4fbb](https://github.com/angular/angular/commit/5fe57d4fbb578c35a8e8ef037ae8c19c8a0e901c) | fix | fixes issues with control flow and incremental hydration ([#58644](https://github.com/angular/angular/pull/58644)) |
+| [51933ef5a6](https://github.com/angular/angular/commit/51933ef5a6ce62df37945fa22e87e3868288e318) | fix | prevent errors on contract cleanup ([#58614](https://github.com/angular/angular/pull/58614)) |
+| [fd7716440b](https://github.com/angular/angular/commit/fd7716440bec8f7ed042d79bafacf3048d45cd47) | fix | Prevents trying to trigger incremental hydration on CSR ([#58366](https://github.com/angular/angular/pull/58366)) |
| [656b5d3e78](https://github.com/angular/angular/commit/656b5d3e78004229a76488e0de1eb1d3508d8f6d) | fix | Re-assign error codes to be within core bounds (<1000) ([#53455](https://github.com/angular/angular/pull/53455)) |
+| [6e0af6dbbb](https://github.com/angular/angular/commit/6e0af6dbbbe5e9a9e2e5809ada0b7b5a7e456402) | fix | resolve forward-referenced host directives during directive matching ([#58492](https://github.com/angular/angular/pull/58492)) |
+| [468d3fb9b1](https://github.com/angular/angular/commit/468d3fb9b1c3dd6dff86afcb6d8f89cc4c29b24b) | fix | rethrow errors during ApplicationRef.tick in TestBed ([#57200](https://github.com/angular/angular/pull/57200)) |
+| [226a67dabb](https://github.com/angular/angular/commit/226a67dabba90a488ad09ce7bb026b8883c90d4a) | fix | Schedulers run in zone above Angular rather than root ([#57553](https://github.com/angular/angular/pull/57553)) |
| [97fb86d331](https://github.com/angular/angular/commit/97fb86d3310ae891ba4d894a8d3479eda08bd4c2) | perf | set encapsulation to `None` for empty component styles ([#57130](https://github.com/angular/angular/pull/57130)) |
| [c15ec36bd1](https://github.com/angular/angular/commit/c15ec36bd1dcff4c7c387337a5bcfd928994db2f) | refactor | remove deprecated `factories` Property in `KeyValueDiffers` ([#58064](https://github.com/angular/angular/pull/58064)) |
+### elements
+| Commit | Type | Description |
+| -- | -- | -- |
+| [fe5c4e086a](https://github.com/angular/angular/commit/fe5c4e086add655bf53315d71b0736ff758c7199) | fix | support `output()`-shaped outputs ([#57535](https://github.com/angular/angular/pull/57535)) |
+| [0cebfd7462](https://github.com/angular/angular/commit/0cebfd7462c6a7c6c3b0d66720c436a4b0eea19d) | fix | switch to `ComponentRef.setInput` & remove custom scheduler ([#56728](https://github.com/angular/angular/pull/56728)) |
+### forms
+| Commit | Type | Description |
+| -- | -- | -- |
+| [3e7d724037](https://github.com/angular/angular/commit/3e7d724037cca4d256b1442eda20d6c6ad91d279) | feat | add ability to clear a FormRecord ([#50750](https://github.com/angular/angular/pull/50750)) |
+| [18b6f3339f](https://github.com/angular/angular/commit/18b6f3339f46b37ee67fce2fa8a900cc73b2f23c) | fix | fix FormRecord type inference ([#50750](https://github.com/angular/angular/pull/50750)) |
+### http
+| Commit | Type | Description |
+| -- | -- | -- |
+| [4b9accdf16](https://github.com/angular/angular/commit/4b9accdf166f3990b3706de83ada15937fe786e2) | feat | promote `withRequestsMadeViaParent` to stable. ([#58221](https://github.com/angular/angular/pull/58221)) |
+| [057cf7fb6b](https://github.com/angular/angular/commit/057cf7fb6bd2ac37a7a30d3a143e6737e386247f) | fix | preserve all headers from Headers object ([#57802](https://github.com/angular/angular/pull/57802)) |
### language-service
| Commit | Type | Description |
| -- | -- | -- |
+| [8da9fb49b5](https://github.com/angular/angular/commit/8da9fb49b54e50de2d028691f73fb773def62ecd) | feat | add code fix for unused standalone imports ([#57605](https://github.com/angular/angular/pull/57605)) |
+| [1f067f4507](https://github.com/angular/angular/commit/1f067f4507b6e908fe991d5de0dc4d3a627ab2f9) | feat | add code reactoring action to migrate `@Input` to signal-input ([#57214](https://github.com/angular/angular/pull/57214)) |
+| [56ee47f2ec](https://github.com/angular/angular/commit/56ee47f2ec6e983e2ffdf59476ab29a92590811e) | feat | allow code refactorings to compute edits asynchronously ([#57214](https://github.com/angular/angular/pull/57214)) |
| [bc83fc1e2e](https://github.com/angular/angular/commit/bc83fc1e2ebac1a99b6e8ed63cea48f48dd7c863) | feat | support converting to signal queries in VSCode extension ([#58106](https://github.com/angular/angular/pull/58106)) |
+| [5c4305f024](https://github.com/angular/angular/commit/5c4305f0248ac3cc1adc76aebd3ef8af041039dc) | feat | support migrating full classes to signal inputs in VSCode ([#57975](https://github.com/angular/angular/pull/57975)) |
+| [6342befff8](https://github.com/angular/angular/commit/6342befff8ee491f37e8912cccb0099bbbf01042) | feat | support migrating full classes to signal queries ([#58263](https://github.com/angular/angular/pull/58263)) |
+| [7ecfd89592](https://github.com/angular/angular/commit/7ecfd8959219b6e2ec19e1244a6694711daf1782) | fix | The suppress diagnostics option should work for external templates ([#57873](https://github.com/angular/angular/pull/57873)) |
### localize
| Commit | Type | Description |
| -- | -- | -- |
@@ -213,19 +381,76 @@
### migrations
| Commit | Type | Description |
| -- | -- | -- |
-| [c1aa411cf1](https://github.com/angular/angular/commit/c1aa411cf13259d991c8f224a2bafc3e9763fe8d) | fix | properly resolve tsconfig paths on windows ([#58137](https://github.com/angular/angular/pull/58137)) |
-### platform-browser
+| [dff4de0f75](https://github.com/angular/angular/commit/dff4de0f75741bc629462bb8da833b876c754453) | feat | add a combined migration for all signals APIs ([#58259](https://github.com/angular/angular/pull/58259)) |
+| [b6bc93803c](https://github.com/angular/angular/commit/b6bc93803c246d47aac0d2d8619271d42b249a4a) | feat | add schematic to migrate to signal queries ([#58032](https://github.com/angular/angular/pull/58032)) |
+| [2bfc64daf1](https://github.com/angular/angular/commit/2bfc64daf1cad9be8099759e8de7a361555ad5d1) | feat | expose output as function migration ([#58299](https://github.com/angular/angular/pull/58299)) |
+| [59fe9bc772](https://github.com/angular/angular/commit/59fe9bc77236f1374427a851e55b0fa5216d9cf9) | feat | introduce signal input migration as `ng generate` schematic ([#57805](https://github.com/angular/angular/pull/57805)) |
+| [90c7ec39a0](https://github.com/angular/angular/commit/90c7ec39a06e5c14711e0a42e2d6a478cde2b9cc) | fix | inject migration always inserting generated variables before super call ([#58393](https://github.com/angular/angular/pull/58393)) |
+| [7a65cdd911](https://github.com/angular/angular/commit/7a65cdd911cbbf22445c916fc754d3a3304bc5fe) | fix | inject migration not inserting generated code after super call in some cases ([#58393](https://github.com/angular/angular/pull/58393)) |
+| [c1aa411cf1](https://github.com/angular/angular/commit/c1aa411cf13259d991c8f224a2bafc3e9763fe8d) | fix | properly resolve tsconfig paths on windows ([#58137](https://github.com/angular/angular/pull/58137)) |
+| [e26797b38e](https://github.com/angular/angular/commit/e26797b38efe0ac813601c10581f34b7591954c1) | fix | replace removed NgModules in tests with their exports ([#58627](https://github.com/angular/angular/pull/58627)) |
+### platform-browser
+| Commit | Type | Description |
+| -- | -- | -- |
+| [c36a1c023b](https://github.com/angular/angular/commit/c36a1c023b34f9b2056e1bef6364787e8495bfad) | fix | correctly add external stylesheets to ShadowDOM components ([#58482](https://github.com/angular/angular/pull/58482)) |
+| [5c61f46409](https://github.com/angular/angular/commit/5c61f46409855bb8fe66d71a9c16c00753032987) | refactor | remove deprecated `BrowserModule.withServerTransition` method ([#58062](https://github.com/angular/angular/pull/58062)) |
+### platform-server
+| Commit | Type | Description |
+| -- | -- | -- |
+| [9e82559de4](https://github.com/angular/angular/commit/9e82559de4e99a1aedf645a05b01fc08d3f4b1b1) | fix | destroy `PlatformRef` when error happens during the `bootstrap()` phase ([#58112](https://github.com/angular/angular/pull/58112)) |
+### router
+| Commit | Type | Description |
+| -- | -- | -- |
+| [f271021e19](https://github.com/angular/angular/commit/f271021e190ede70bfd181d46f0a468a8e7fa144) | feat | Add `routerOutletData` input to `RouterOutlet` directive ([#57051](https://github.com/angular/angular/pull/57051)) |
+| [b2790813a6](https://github.com/angular/angular/commit/b2790813a62e4dfdd77e27d1bb82201788476d06) | fix | Align RouterModule.forRoot errorHandler with provider error handler ([#57050](https://github.com/angular/angular/pull/57050)) |
+| [a49c35ec76](https://github.com/angular/angular/commit/a49c35ec769461b9eb490719f0aa3e5aea8e243f) | fix | remove setter for `injector` on `OutletContext` ([#58343](https://github.com/angular/angular/pull/58343)) |
+| [7436d3180e](https://github.com/angular/angular/commit/7436d3180ea5ad2c0b58d920bd45f8641a14cc8d) | fix | Update Resolve interface to include RedirectCommand like ResolveFn ([#57309](https://github.com/angular/angular/pull/57309)) |
+### service-worker
+| Commit | Type | Description |
+| -- | -- | -- |
+| [8ddce80a0b](https://github.com/angular/angular/commit/8ddce80a0bab4ebbd0f7db1c85ee27e4f0249db9) | feat | allow specifying maxAge for entire application ([#49601](https://github.com/angular/angular/pull/49601)) |
+| [1479af978c](https://github.com/angular/angular/commit/1479af978cd2bbe4ee9f1ca9682684b8e5135fa7) | feat | finish implementation of refreshAhead feature ([#53356](https://github.com/angular/angular/pull/53356)) |
+
+
+
+
+# 18.2.12 (2024-11-14)
+### compiler-cli
+| Commit | Type | Description |
+| -- | -- | -- |
+| [4c38160853](https://github.com/angular/angular/commit/4c3816085363614497eecf6b722a91e15e1b2051) | fix | correct extraction of generics from type aliases ([#58548](https://github.com/angular/angular/pull/58548)) |
+
+
+
+
+# 18.2.11 (2024-11-06)
+### core
+| Commit | Type | Description |
+| -- | -- | -- |
+| [5f2d98a1b1](https://github.com/angular/angular/commit/5f2d98a1b1262a9cca84143fdf9829537138fc5c) | fix | avoid slow stringification when checking for duplicates in dev mode ([#58521](https://github.com/angular/angular/pull/58521)) |
+| [3aa45a2fa1](https://github.com/angular/angular/commit/3aa45a2fa11ad568d12c622e0a9a94bbf1552118) | fix | resolve forward-referenced host directives during directive matching ([#58492](https://github.com/angular/angular/pull/58492)) ([#58500](https://github.com/angular/angular/pull/58500)) |
+
+
+
+
+# 18.2.10 (2024-10-30)
+### compiler
| Commit | Type | Description |
| -- | -- | -- |
-| [5c61f46409](https://github.com/angular/angular/commit/5c61f46409855bb8fe66d71a9c16c00753032987) | refactor | remove deprecated `BrowserModule.withServerTransition` method ([#58062](https://github.com/angular/angular/pull/58062)) |
-### platform-server
+| [69dce38e778](https://github.com/angular/angular/commit/69dce38e778cb4c15aa06347031765a84e3ac6a5) | fix | transform pseudo selectors correctly for the encapsulated view. ([#58417](https://github.com/angular/angular/pull/58417)) |
+### localize
| Commit | Type | Description |
| -- | -- | -- |
-| [9e82559de4](https://github.com/angular/angular/commit/9e82559de4e99a1aedf645a05b01fc08d3f4b1b1) | fix | destroy `PlatformRef` when error happens during the `bootstrap()` phase ([#58112](https://github.com/angular/angular/pull/58112)) |
-### service-worker
+| [3b989ac5bd9](https://github.com/angular/angular/commit/3b989ac5bd951a3d28bcd0ada150fc81503a016a) | fix | Adding arb format to the list of valid formats in the localization extractor cli ([#58287](https://github.com/angular/angular/pull/58287)) |
+
+
+
+
+# 18.2.9 (2024-10-23)
+### compiler-cli
| Commit | Type | Description |
| -- | -- | -- |
-| [1479af978c](https://github.com/angular/angular/commit/1479af978cd2bbe4ee9f1ca9682684b8e5135fa7) | feat | finish implementation of refreshAhead feature ([#53356](https://github.com/angular/angular/pull/53356)) |
+| [b0ab653965](https://github.com/angular/angular/commit/b0ab653965cf88fcfde23fc6a6cc78ce3121a30f) | fix | report when NgModule imports or exports itself ([#58231](https://github.com/angular/angular/pull/58231)) |
@@ -256,45 +481,6 @@
-
-# 19.0.0-next.8 (2024-10-02)
-### common
-| Commit | Type | Description |
-| -- | -- | -- |
-| [c3115b882e](https://github.com/angular/angular/commit/c3115b882ebbe4f971e1f06bb1ce2cdf43327bb0) | fix | execute checks and remove placeholder when image is already loaded ([#55444](https://github.com/angular/angular/pull/55444)) |
-| [b7bd429951](https://github.com/angular/angular/commit/b7bd42995130f80ea74ed5b905446f09a98a9480) | fix | prevent warning about oversize image twice ([#58021](https://github.com/angular/angular/pull/58021)) |
-| [e8b2d5fad8](https://github.com/angular/angular/commit/e8b2d5fad8aece3b2e3f4a7ed1356642f68ee275) | fix | skip checking whether SVGs are oversized ([#57966](https://github.com/angular/angular/pull/57966)) |
-### compiler-cli
-| Commit | Type | Description |
-| -- | -- | -- |
-| [d9687f43dd](https://github.com/angular/angular/commit/d9687f43dd2ccfcf7dd3ee4f9066ce727f3224c6) | feat | 'strictStandalone' flag enforces standalone ([#57935](https://github.com/angular/angular/pull/57935)) |
-| [39ccaf4cc4](https://github.com/angular/angular/commit/39ccaf4cc457894a3cf0455349e1c016a858751a) | fix | correctly get the type of nested function call expressions ([#57010](https://github.com/angular/angular/pull/57010)) |
-| [33fe252c58](https://github.com/angular/angular/commit/33fe252c588ee94d6ef99e8070d35c483ec24fda) | fix | do not report unused declarations coming from an imported array ([#57940](https://github.com/angular/angular/pull/57940)) |
-### core
-| Commit | Type | Description |
-| -- | -- | -- |
-| [3240598158](https://github.com/angular/angular/commit/32405981582030d7eb5d307f44b9c00fb384c480) | fix | provide flag to opt into manual cleanup for after render hooks ([#57917](https://github.com/angular/angular/pull/57917)) |
-### http
-| Commit | Type | Description |
-| -- | -- | -- |
-| [22dafa658b](https://github.com/angular/angular/commit/22dafa658bdf5536c3002e7f312efe0dfbc7236d) | fix | cleanup JSONP script listeners once loading completed ([#57877](https://github.com/angular/angular/pull/57877)) |
-| [057cf7fb6b](https://github.com/angular/angular/commit/057cf7fb6bd2ac37a7a30d3a143e6737e386247f) | fix | preserve all headers from Headers object ([#57802](https://github.com/angular/angular/pull/57802)) |
-### language-service
-| Commit | Type | Description |
-| -- | -- | -- |
-| [5c4305f024](https://github.com/angular/angular/commit/5c4305f0248ac3cc1adc76aebd3ef8af041039dc) | feat | support migrating full classes to signal inputs in VSCode ([#57975](https://github.com/angular/angular/pull/57975)) |
-### migrations
-| Commit | Type | Description |
-| -- | -- | -- |
-| [b6bc93803c](https://github.com/angular/angular/commit/b6bc93803c246d47aac0d2d8619271d42b249a4a) | feat | add schematic to migrate to signal queries ([#58032](https://github.com/angular/angular/pull/58032)) |
-| [ef577b2d2b](https://github.com/angular/angular/commit/ef577b2d2b62ba0a48a120b9631296812e9049d3) | fix | delete constructor if it only has super call ([#58013](https://github.com/angular/angular/pull/58013)) |
-### upgrade
-| Commit | Type | Description |
-| -- | -- | -- |
-| [5f56a65837](https://github.com/angular/angular/commit/5f56a6583753f5aaff8a43e1e5f9a376433d0c0c) | fix | support input signal bindings ([#57020](https://github.com/angular/angular/pull/57020)) |
-
-
-
# 18.2.7 (2024-10-02)
### common
@@ -326,80 +512,11 @@
-
-# 19.0.0-next.7 (2024-09-25)
-## Breaking Changes
-### core
-- Changes to effect timing which generally has two implications:
-
- * effects which are triggered outside of change detection run as part of
- the change detection process instead of as a microtask. Depending on the
- specifics of application/test setup, this can result in them executing
- earlier or later (or requiring additional test steps to trigger; see below
- examples).
-
- * effects which are triggered during change detection (e.g. by input
- signals) run _earlier_, before the component's template.
-
- We've seen a few common failure cases:
-
- * Tests which used to rely on the `Promise` timing of effects now need to
- `await whenStable()` or call `.detectChanges()` in order for effects to
- run.
-
- * Tests which use faked clocks may need to fast-forward/flush the clock to
- cause effects to run.
-
- * `effect()`s triggered during CD could rely on the application being fully
- rendered (for example, they could easily read computed styles, etc). With
- the change, they run before the component's updates and can get incorrect
- answers. The recent `afterRenderEffect()` API is a natural replacement for
- this style of effect.
-
- * `effect()`s which synchronize with the forms system are particularly
- timing-sensitive and might need to adjust their initialization timing.
-- `ExperimentalPendingTasks` has been renamed to
- `PendingTasks`.
-### core
-| Commit | Type | Description |
-| -- | -- | -- |
-| [fc59e2a7b7](https://github.com/angular/angular/commit/fc59e2a7b7afa491a5ea740284a742574805eb36) | feat | change effect() execution timing & no-op `allowSignalWrites` ([#57874](https://github.com/angular/angular/pull/57874)) |
-| [a7eff3ffaa](https://github.com/angular/angular/commit/a7eff3ffaaecbcb3034130d475ff7b4e41a1e1cc) | feat | mark signal-based query APIs as stable ([#57921](https://github.com/angular/angular/pull/57921)) |
-| [a1f229850a](https://github.com/angular/angular/commit/a1f229850ad36da009f772faa831da173a60268c) | feat | migrate ExperimentalPendingTasks to PendingTasks ([#57533](https://github.com/angular/angular/pull/57533)) |
-| [950a5540f1](https://github.com/angular/angular/commit/950a5540f15118e7360506ad82ec9dab5a11f789) | fix | Ensure the `ViewContext` is retained after closure minification ([#57903](https://github.com/angular/angular/pull/57903)) |
-### language-service
-| Commit | Type | Description |
-| -- | -- | -- |
-| [7ecfd89592](https://github.com/angular/angular/commit/7ecfd8959219b6e2ec19e1244a6694711daf1782) | fix | The suppress diagnostics option should work for external templates ([#57873](https://github.com/angular/angular/pull/57873)) |
-
-
-
# 18.2.6 (2024-09-25)
-
-# 19.0.0-next.6 (2024-09-18)
-### compiler-cli
-| Commit | Type | Description |
-| -- | -- | -- |
-| [f611faadfe](https://github.com/angular/angular/commit/f611faadfedd8dc2c3291da98e2c2c60fe3984bd) | fix | extended diagnostics not validating ICUs ([#57845](https://github.com/angular/angular/pull/57845)) |
-### core
-| Commit | Type | Description |
-| -- | -- | -- |
-| [3ebe6b4ad4](https://github.com/angular/angular/commit/3ebe6b4ad401337e18619edc34477ae98226fa3e) | feat | Add async `run` method on `ExperimentalPendingTasks` ([#56546](https://github.com/angular/angular/pull/56546)) |
-| [1b1519224d](https://github.com/angular/angular/commit/1b1519224d10c1cd25d05d7b958772b9adee1e1a) | feat | mark input, output and model APIs as stable ([#57804](https://github.com/angular/angular/pull/57804)) |
-| [e5adf92965](https://github.com/angular/angular/commit/e5adf9296595644e415d5c147df08890be01ba77) | feat | stabilize `@let` syntax ([#57813](https://github.com/angular/angular/pull/57813)) |
-| [4231e8f28f](https://github.com/angular/angular/commit/4231e8f28ffe8f55dddc2af0647b5b04fa8445d7) | fix | Handle `@let` declaration with array when `preparingForHydration` ([#57816](https://github.com/angular/angular/pull/57816)) |
-### migrations
-| Commit | Type | Description |
-| -- | -- | -- |
-| [59fe9bc772](https://github.com/angular/angular/commit/59fe9bc77236f1374427a851e55b0fa5216d9cf9) | feat | introduce signal input migration as `ng generate` schematic ([#57805](https://github.com/angular/angular/pull/57805)) |
-| [6144612940](https://github.com/angular/angular/commit/614461294041d7a2331bf7528907f37353205115) | fix | account for explicit standalone: false in migration ([#57803](https://github.com/angular/angular/pull/57803)) |
-
-
-
# 18.2.5 (2024-09-18)
### compiler-cli
@@ -417,15 +534,6 @@
-
-# 19.0.0-next.5 (2024-09-11)
-### core
-| Commit | Type | Description |
-| -- | -- | -- |
-| [c93b510f9b](https://github.com/angular/angular/commit/c93b510f9b2e23aa7a3848a04c05249fde14a9b1) | feat | allow passing `undefined` without needing to include it in the type argument of `input` ([#57621](https://github.com/angular/angular/pull/57621)) |
-
-
-
# 18.2.4 (2024-09-11)
### compiler
@@ -439,60 +547,6 @@
-
-# 19.0.0-next.4 (2024-09-09)
-### compiler
-| Commit | Type | Description |
-| -- | -- | -- |
-| [40ff18f87a](https://github.com/angular/angular/commit/40ff18f87a04fd1c00dea9fee1568bfe52acf25c) | fix | produce less noisy errors when parsing control flow ([#57711](https://github.com/angular/angular/pull/57711)) |
-### core
-| Commit | Type | Description |
-| -- | -- | -- |
-| [6ea8e1e9aa](https://github.com/angular/angular/commit/6ea8e1e9aae028572873cf97aa1949c8153f458f) | feat | Add a schematics to migrate to `standalone: false`. ([#57643](https://github.com/angular/angular/pull/57643)) |
-### migrations
-| Commit | Type | Description |
-| -- | -- | -- |
-| [cbec46a51d](https://github.com/angular/angular/commit/cbec46a51d22a1238cc8bf1ebdf343d031b8f0ba) | feat | migrate .pipe calls in outputs used in tests ([#57691](https://github.com/angular/angular/pull/57691)) |
-| [68e5370a66](https://github.com/angular/angular/commit/68e5370a66633f4b069d6adffa95c2ea94291820) | feat | remove complete calls for migrated outputs ([#57671](https://github.com/angular/angular/pull/57671)) |
-| [9da21f798d](https://github.com/angular/angular/commit/9da21f798de2033af9d39a8a9b255ef2fe74f948) | feat | replace .next usage on outputs ([#57654](https://github.com/angular/angular/pull/57654)) |
-| [71f5ef2aa5](https://github.com/angular/angular/commit/71f5ef2aa53a74bab7d0543f98870d81c44c4978) | fix | change imports to be G3 compatible ([#57654](https://github.com/angular/angular/pull/57654)) |
-| [3a264db866](https://github.com/angular/angular/commit/3a264db86611cba9b69780d7f01ee25787278320) | fix | properly handle comments in output migration ([#57691](https://github.com/angular/angular/pull/57691)) |
-| [fc95a9adff](https://github.com/angular/angular/commit/fc95a9adff42da53dfeee5df8c42be25e8559708) | fix | replace leftover modules with their exports during pruning ([#57684](https://github.com/angular/angular/pull/57684)) |
-
-
-
-
-# 19.0.0-next.3 (2024-09-04)
-## Breaking Changes
-### core
-- * TypeScript versions less than 5.5 are no longer supported.
-### compiler
-| Commit | Type | Description |
-| -- | -- | -- |
-| [a2e4ee0cb3](https://github.com/angular/angular/commit/a2e4ee0cb3d40cadc05e28d58b06853973944456) | feat | add diagnostic for unused standalone imports ([#57605](https://github.com/angular/angular/pull/57605)) |
-### core
-| Commit | Type | Description |
-| -- | -- | -- |
-| [8bcc663a53](https://github.com/angular/angular/commit/8bcc663a53888717cdf4ce0c23404caa00abb1b2) | feat | drop support for TypeScript 5.4 ([#57577](https://github.com/angular/angular/pull/57577)) |
-| [e6e5d29e83](https://github.com/angular/angular/commit/e6e5d29e830a0a74d7677d5f2345f29391064853) | feat | initial version of the output migration ([#57604](https://github.com/angular/angular/pull/57604)) |
-| [be2e49639b](https://github.com/angular/angular/commit/be2e49639bda831831ad62d49253db942a83fd46) | feat | introduce `afterRenderEffect` ([#57549](https://github.com/angular/angular/pull/57549)) |
-### elements
-| Commit | Type | Description |
-| -- | -- | -- |
-| [fe5c4e086a](https://github.com/angular/angular/commit/fe5c4e086add655bf53315d71b0736ff758c7199) | fix | support `output()`-shaped outputs ([#57535](https://github.com/angular/angular/pull/57535)) |
-### http
-| Commit | Type | Description |
-| -- | -- | -- |
-| [c2892fee58](https://github.com/angular/angular/commit/c2892fee58d28ffec0dfeaad6a5d6822c040cf03) | fix | Dynamicaly call the global fetch implementation ([#57531](https://github.com/angular/angular/pull/57531)) |
-### language-service
-| Commit | Type | Description |
-| -- | -- | -- |
-| [8da9fb49b5](https://github.com/angular/angular/commit/8da9fb49b54e50de2d028691f73fb773def62ecd) | feat | add code fix for unused standalone imports ([#57605](https://github.com/angular/angular/pull/57605)) |
-| [1f067f4507](https://github.com/angular/angular/commit/1f067f4507b6e908fe991d5de0dc4d3a627ab2f9) | feat | add code refactoring action to migrate `@Input` to signal-input ([#57214](https://github.com/angular/angular/pull/57214)) |
-| [56ee47f2ec](https://github.com/angular/angular/commit/56ee47f2ec6e983e2ffdf59476ab29a92590811e) | feat | allow code refactorings to compute edits asynchronously ([#57214](https://github.com/angular/angular/pull/57214)) |
-
-
-
# 18.2.3 (2024-09-04)
### http
@@ -502,67 +556,6 @@
-
-# 19.0.0-next.2 (2024-08-28)
-## Breaking Changes
-### core
-- Render default fallback with empty `projectableNodes`.
-
- When passing an empty array to `projectableNodes` in the `createComponent` API, the default fallback content of the `ng-content` will be rendered if present. To prevent rendering the default content, pass `document.createTextNode('')` as a `projectableNode`.
-
- For example:
-
- ```ts
- // The first ng-content will render the default fallback content if present
- createComponent(MyComponent. { projectableNodes: [[], [secondNode]] });
-
- // To prevent projecting the default fallback content:
- createComponent(MyComponent. { projectableNodes: [[document.createTextNode('')], [secondNode]] });
-
- ```
-- The timers that are used for zone coalescing and hybrid
- mode scheduling (which schedules an application state synchronization
- when changes happen outside the Angular zone) will now run in the zone
- above Angular rather than the root zone. This will mostly affect tests
- which use `fakeAsync`: these timers will now be visible to `fakeAsync`
- and can be affected by `tick` or `flush`.
-### elements
-- as part of switching away from custom CD behavior to the
- hybrid scheduler, timing of change detection around custom elements has
- changed subtly. These changes make elements more efficient, but can cause
- tests which encoded assumptions about how or when elements would be checked
- to require updating.
-### common
-| Commit | Type | Description |
-| -- | -- | -- |
-| [50f08e6c4bf](https://github.com/angular/angular/commit/50f08e6c4bf1caeeb08d3505ce7fabd466b9c76b) | feat | automatically use sizes auto in NgOptimizedImage ([#57479](https://github.com/angular/angular/pull/57479)) |
-### compiler-cli
-| Commit | Type | Description |
-| -- | -- | -- |
-| [4716c3b9660](https://github.com/angular/angular/commit/4716c3b9660b01f4ef3642fb774270b7f4a13d1a) | perf | reduce duplicate component style resolution ([#57502](https://github.com/angular/angular/pull/57502)) |
-### core
-| Commit | Type | Description |
-| -- | -- | -- |
-| [a3cdbfe87f5](https://github.com/angular/angular/commit/a3cdbfe87f5a8daef11a154ef3edb5a3a5c12f77) | fix | avoid leaking memory if component throws during creation ([#57546](https://github.com/angular/angular/pull/57546)) |
-| [7a99815146e](https://github.com/angular/angular/commit/7a99815146eb78074aa3ed6db73c6e87042df692) | fix | Do not bubble capture events. ([#57476](https://github.com/angular/angular/pull/57476)) |
-| [7b1e5be20b9](https://github.com/angular/angular/commit/7b1e5be20b99c88246c6be78a4dcd64eb55cee1a) | fix | fallback to default ng-content with empty projectable nodes. ([#57480](https://github.com/angular/angular/pull/57480)) |
-| [0300dd2e18f](https://github.com/angular/angular/commit/0300dd2e18f064f2f57f7371e0dc5c01218b5019) | fix | Fix fixture.detectChanges with autoDetect disabled and zoneless ([#57416](https://github.com/angular/angular/pull/57416)) |
-| [226a67dabba](https://github.com/angular/angular/commit/226a67dabba90a488ad09ce7bb026b8883c90d4a) | fix | Schedulers run in zone above Angular rather than root ([#57553](https://github.com/angular/angular/pull/57553)) |
-### elements
-| Commit | Type | Description |
-| -- | -- | -- |
-| [0cebfd7462c](https://github.com/angular/angular/commit/0cebfd7462c6a7c6c3b0d66720c436a4b0eea19d) | fix | switch to `ComponentRef.setInput` & remove custom scheduler ([#56728](https://github.com/angular/angular/pull/56728)) |
-### router
-| Commit | Type | Description |
-| -- | -- | -- |
-| [8f6308457f0](https://github.com/angular/angular/commit/8f6308457f0f03e9bbd09f4bc10d1c61fd41d22c) | fix | Do not unnecessarily run matcher twice on route matching ([#57530](https://github.com/angular/angular/pull/57530)) |
-### upgrade
-| Commit | Type | Description |
-| -- | -- | -- |
-| [c9d90786d0a](https://github.com/angular/angular/commit/c9d90786d0a6421bbb21b9d1649d031b34e3fa5d) | fix | Address Trusted Types violations in @angular/upgrade ([#57454](https://github.com/angular/angular/pull/57454)) |
-
-
-
# 18.2.2 (2024-08-28)
### core
@@ -601,75 +594,6 @@
-
-# 19.0.0-next.1 (2024-08-22)
-## Breaking Changes
-### core
-- The `autoDetect` feature of `ComponentFixture` will now
- attach the fixture to the `ApplicationRef`. As a result, errors during
- automatic change detection of the fixture be reported to the `ErrorHandler`.
- This change may cause custom error handlers to observe new failures that were previously unreported.
-### compiler-cli
-| Commit | Type | Description |
-| -- | -- | -- |
-| [9e87593055](https://github.com/angular/angular/commit/9e87593055a5314a67090bd15d5552c23b538050) | feat | ensure template style elements are preprocessed as inline styles ([#57429](https://github.com/angular/angular/pull/57429)) |
-### core
-| Commit | Type | Description |
-| -- | -- | -- |
-| [b063468027](https://github.com/angular/angular/commit/b0634680272569501146bb7a9cdfe53033e25971) | feat | support TypeScript 5.6 ([#57424](https://github.com/angular/angular/pull/57424)) |
-| [3b0dca75d6](https://github.com/angular/angular/commit/3b0dca75d6dab6039253edd00c436715775bd0dd) | fix | Allow zoneless scheduler to run inside `fakeAsync` ([#56932](https://github.com/angular/angular/pull/56932)) |
-| [f03d274e87](https://github.com/angular/angular/commit/f03d274e87c919514a70d02c0699523957de7386) | fix | ComponentFixture autoDetect feature works like production ([#55228](https://github.com/angular/angular/pull/55228)) |
-| [d4449fce21](https://github.com/angular/angular/commit/d4449fce21bebbb18f9e1341f1675cdbec7e83ac) | fix | handle hydration of components that project content conditionally ([#57383](https://github.com/angular/angular/pull/57383)) |
-### migrations
-| Commit | Type | Description |
-| -- | -- | -- |
-| [4ae66f25d0](https://github.com/angular/angular/commit/4ae66f25d01ffd603872b3df3faf5c5c555b6446) | fix | account for members with doc strings and no modifiers ([#57389](https://github.com/angular/angular/pull/57389)) |
-| [ac93839d69](https://github.com/angular/angular/commit/ac93839d694929fdf16c610994a369d4efb2823a) | fix | avoid migrating route component in tests ([#57317](https://github.com/angular/angular/pull/57317)) |
-| [58a79b6e43](https://github.com/angular/angular/commit/58a79b6e435f2a46a7ab17ff5538083e05340b6f) | fix | preserve type when using inject decorator ([#57389](https://github.com/angular/angular/pull/57389)) |
-
-
-
-
-# 19.0.0-next.0 (2024-08-14)
-## Breaking Changes
-### core
-- Errors that are thrown during `ApplicationRef.tick`
- will now be rethrown when using `TestBed`. These errors should be
- resolved by ensuring the test environment is set up correctly to
- complete change detection successfully. There are two alternatives to
- catch the errors:
-
- * Instead of waiting for automatic change detection to happen, trigger
- it synchronously and expect the error. For example, a jasmine test
- could write `expect(() => TestBed.inject(ApplicationRef).tick()).toThrow()`
- * `TestBed` will reject any outstanding `ComponentFixture.whenStable` promises. A jasmine test,
- for example, could write `expectAsync(fixture.whenStable()).toBeRejected()`.
-
- As a last resort, you can configure errors to _not_ be rethrown by
- setting `rethrowApplicationErrors` to `false` in `TestBed.configureTestingModule`.
-### router
-- The `Router.errorHandler` property has been removed.
- Adding an error handler should be configured in either
- `withNavigationErrorHandler` with `provideRouter` or the `errorHandler`
- property in the extra options of `RouterModule.forRoot`. In addition,
- the error handler cannot be used to change the return value of the
- router navigation promise or prevent it from rejecting. Instead, if you
- want to prevent the promise from rejecting, use `resolveNavigationPromiseOnError`.
-- The return type of the `Resolve` interface now includes
- `RedirectCommand`.
-### core
-| Commit | Type | Description |
-| -- | -- | -- |
-| [468d3fb9b1](https://github.com/angular/angular/commit/468d3fb9b1c3dd6dff86afcb6d8f89cc4c29b24b) | fix | rethrow errors during ApplicationRef.tick in TestBed ([#57200](https://github.com/angular/angular/pull/57200)) |
-### router
-| Commit | Type | Description |
-| -- | -- | -- |
-| [f271021e19](https://github.com/angular/angular/commit/f271021e190ede70bfd181d46f0a468a8e7fa144) | feat | Add `routerOutletData` input to `RouterOutlet` directive ([#57051](https://github.com/angular/angular/pull/57051)) |
-| [b2790813a6](https://github.com/angular/angular/commit/b2790813a62e4dfdd77e27d1bb82201788476d06) | fix | Align RouterModule.forRoot errorHandler with provider error handler ([#57050](https://github.com/angular/angular/pull/57050)) |
-| [7436d3180e](https://github.com/angular/angular/commit/7436d3180ea5ad2c0b58d920bd45f8641a14cc8d) | fix | Update Resolve interface to include RedirectCommand like ResolveFn ([#57309](https://github.com/angular/angular/pull/57309)) |
-
-
-
# 18.2.0 (2024-08-14)
### compiler
diff --git a/CONTRIBUTING.md b/CONTRIBUTING.md
index 9d69f1f8c89a..a8703ba25ab6 100644
--- a/CONTRIBUTING.md
+++ b/CONTRIBUTING.md
@@ -260,7 +260,7 @@ The `
-
-
-
@@ -35,12 +32,6 @@
-
-
-
-