Skip to content

build: update cross-repo angular dependencies - #3980

Open
angular-robot wants to merge 1 commit into
angular:mainfrom
angular-robot:ng-renovate/cross-repo-angular-dependencies
Open

angular-robot wants to merge 1 commit into
angular:mainfrom
angular-robot:ng-renovate/cross-repo-angular-dependencies

Conversation

@angular-robot

@angular-robot angular-robot commented Sep 16, 2026 •

Copy link
Copy Markdown
Contributor

This PR contains the following updates:

Package Change Age Adoption Passing Confidence
@angular/animations (source) 22.2.0-next.7 → 22.2.0-rc.0 age adoption passing confidence
@angular/build 22.2.0-next.7 → 22.2.0-rc.0 age adoption passing confidence
@angular/cdk 22.2.0-next.5 → 22.2.0-rc.0 age adoption passing confidence
@angular/cli 22.2.0-next.7 → 22.2.0-rc.0 age adoption passing confidence
@angular/common (source) 22.2.0-next.7 → 22.2.0-rc.0 age adoption passing confidence
@angular/compiler (source) 22.2.0-next.7 → 22.2.0-rc.0 age adoption passing confidence
@angular/compiler-cli (source) 22.2.0-next.7 → 22.2.0-rc.0 age adoption passing confidence
@angular/core (source) 22.2.0-next.7 → 22.2.0-rc.0 age adoption passing confidence
@angular/fire 21.0.0-rc.0 → 21.0.0-rc.1 age adoption passing confidence
@angular/forms (source) 22.2.0-next.7 → 22.2.0-rc.0 age adoption passing confidence
@angular/material 22.2.0-next.5 → 22.2.0-rc.0 age adoption passing confidence
@angular/platform-browser (source) 22.2.0-next.7 → 22.2.0-rc.0 age adoption passing confidence
@angular/router (source) 22.2.0-next.7 → 22.2.0-rc.0 age adoption passing confidence

  • If you want to rebase/retry this PR, check this box

Release Notes

angular/angular (@​angular/animations)

v22.2.0-rc.0: 22.2.0-rc.0

Compare Source

compiler
Commit Description
fix - 14dbbf9b68 wrap @for collection expression before appending non-null assertion
compiler-cli
Commit Description
feat - 312e1d8089 add strictUnclaimedEventNames option to catch misspelled output bindings
core
Commit Description
fix - cea6896a0f return null when getDirectiveMetadata is called with null or undefined
fix - a8233232f5 update FakeNavigation to match WHATWG HTML spec
forms
Commit Description
fix - 15bfc1a4be mark control as dirty before setting its value in FVC interop
router
Commit Description
fix - 2c6c67bee6 maintain frozen state on rollback until resource loading completes
fix - 2dcdf9aae6 mark router_resource module-level symbols as side-effect free
angular/angular-cli (@​angular/build)

v22.2.0-rc.0: 22.2.0-rc.0

Compare Source

@​angular/cli
Commit Description
perf - 6e7f809a7d skip eager yargs help message formatting during command execution
@​angular/build
Commit Description
fix - 978351af71 include inline component stylesheets in referenced watch files
fix - 72dc9677cf pass load cache to compiler plugin and escape extension regex in polyfills
fix - 31c045639e prevent stale bundler caching and correctly resolve load cache
perf - d97c8857c1 key Sass package resolutions without containing URL qualification
angular/components (@​angular/cdk)

v22.2.0-rc.0: 22.2.0-rc.0

Compare Source

material-luxon-adapter
Commit Description
feat - d3acf189e add option to set zone (#​33579)
material
Commit Description
fix - b0019f844 core: generate Material Symbols in schematic (#​33797)
fix - fd3f02826 icon: false positive in font detection (#​33805)
cdk
Commit Description
fix - a3936eabe table: update rows when row definitions change (#​33670)
fix - aad74d364 testing: use directive fixture onDestroy (#​33793)
angular/angularfire (@​angular/fire)

v21.0.0-rc.1

Compare Source

What's Changed

Upgrading to v21
  • fix: ng update @angular/fire updates your project's firebase dependency to the supported ^12.18.0, and ng add aligns it during setup, preventing duplicated-SDK installs by @​armando-navarro in #​3722
  • fix: require rxfire 6.2.0 or newer. Older rxfire versions ask for firebase 11, which can install a second Firebase SDK copy next to your firebase 12. by @​armando-navarro in #​3723
  • build: require firebase 12.18.0 or newer. AngularFire wraps four new Cloud Messaging functions: onRegistered, onUnregistered, register and unregister. by @​armando-navarro in #​3761
  • build: require Angular 21.2 or newer. Angular 21 is in long-term support, which ships only critical fixes and security patches, so 21.2 is the final 21.x minor line. Projects still on Angular 21.0 or 21.1 should run ng update @angular/core @angular/cli before updating AngularFire. by @​armando-navarro in #​3763
  • fix: drop the @angular/fire/ai import of the removed Imagen API, which made fresh installs fail to build against firebase 12.18.0. ng update warns remaining Imagen users with migration guidance. by @​armando-navarro in #​3750
  • feat: ng update @angular/fire rewrites imports from the removed Vertex AI module to its replacement, @angular/fire/ai (Firebase AI Logic), including the renamed symbols, and a new guide covers upgrading from AngularFire 20 to 21 by @​armando-navarro in #​3725
  • fix: ng update @angular/fire uses AgentPlatformBackend instead of the deprecated VertexAIBackend. Location defaults to global instead of us-central1. The migration warns for every file whose region changed. by @​armando-navarro in #​3762
Setting up (ng add)
  • feat: ng add @angular/fire warns when multiple versions of firebase are installed, and shows the dependency chain. Prevents various hard-to-diagnose bugs. by @​armando-navarro in #​3760
  • fix: ng add generates working @angular/fire/ai imports when the AI feature is selected, instead of imports from a removed module path. Docs updated to use the Firebase AI Logic naming. by @​coturiv in #​3685
  • fix: remove the @angular/platform-browser-dynamic peer dependency, which made ng add @angular/fire fail with ERESOLVE on Angular 20.1 and newer. by @​armando-navarro in #​3718
  • fix: ng add writes only accepted keys into the app config, which previously did not compile. The whole Firebase CLI response was inlined into initializeApp(), including management fields such as projectNumber that FirebaseOptions rejects, producing TS2769. by @​armando-navarro in #​3707
  • feat: ng add @angular/fire and selecting Firestore generates a .firebaserc file, a firestore.rules file, and a firestore.indexes.json file. by @​armando-navarro in #​3714
  • fix: ng add @angular/fire@next records prerelease installs as the exact installed version. Prevents later installs replacing your chosen AngularFire release candidate. by @​armando-navarro in #​3709
  • fix: ng add @angular/fire prints a helpful message when no features are selected. Previously, the setup ended silently, as if it had worked. by @​armando-navarro in #​3717
  • fix: log the caught error when dataconnect.yaml parsing fails, instead of discarding it by @​armando-navarro in #​3711
  • fix: accept firebase-tools 15. Eliminates peer dependency warnings on install for projects on the current Firebase CLI. by @​armando-navarro in #​3702
  • fix: update the firebase-tools version check error message. by @​Muneersahel in #​3662
Deploying (ng deploy)
  • fix: ng deploy no longer crashes on launch with ERR_INVALID_ARG_TYPE. The schematics ship as a CommonJS bundle, which turned the code's import.meta lookup into undefined before it reached any real work. by @​armando-navarro in #​3729
  • fix: the Cloud Function generated for SSR now asks for Node 22, instead of Node 14, a runtime Cloud Functions decommissioned in early 2025. by @​armando-navarro in #​3743
  • fix: the generated Cloud Function imports region from the firebase-functions/v1 subpath, where firebase-functions 6 moved it. Calling it from the package root threw on the function's first request. by @​armando-navarro in #​3743
  • fix: the Cloud Function generated for SSR now uses a public firebase-functions logger entry point, instead of an internal path that crashed the function at startup by @​armando-navarro in #​3730
  • fix: the package.json generated for SSR deployments declares firebase-admin with a real, installable range. It was omitted even though firebase-functions requires it at load time, so the deployed function could crash with Cannot find module 'firebase-admin/app-check'. by @​armando-navarro in #​3745
  • fix: declare the three packages the schematics require at runtime (jsonc-parser, @angular-devkit/core, @angular-devkit/architect). The published package.json never listed them, so ng deploy failed to resolve modules under pnpm's default layout and Yarn Plug'n'Play. by @​armando-navarro in #​3747
  • fix: ng deploy writes the generated entry paths with forward slashes regardless of the deploying machine. Running it from Windows with the Cloud Run SSR option wrote backslash paths, which the Linux-based Cloud Run runtime cannot resolve. by @​fr-esco in #​3274
Security hardening
  • fix: ng deploy no longer places values read from angular.json into shell commands, closing a command-injection hole by @​herdiyana256 in #​3738
  • fix: the code and Dockerfile that ng deploy generates for SSR now escape or validate the angular.json values they interpolate (output path, function name, Node version). A crafted value could previously place arbitrary code in the generated files. by @​herdiyana256 in #​3739
  • fix: ng deploy passes gcloud arguments as an array. It previously built the command as one string and re-split it on whitespace, so a deploy option containing a space (a region, project, or function name from angular.json) could smuggle extra flags into the gcloud invocation. by @​herdiyana256 in #​3726
  • fix: the provideDataConnect(...) call that ng add generates escapes the values it takes from your dataconnect.yaml/connector.yaml. A value containing a quote character could previously place arbitrary code in the generated file. by @​herdiyana256 in #​3727
CI and repository health
  • ci: upgrade the Java version used by the test emulators from 11 to 21. Current firebase-tools requires Java 21 or newer, so every emulator-backed CI job had been failing at emulator startup. This change is what turned the repo's test pipeline green again. by @​mwilman in #​3687
  • ci: resolve the zizmor security findings in the GitHub Actions workflows by @​jhuleatt in #​3700
Documentation
Sample app and code cleanup
  • chore: the sample app now runs on Angular 21 as the v21 CLI generates it (zoneless change detection, incremental hydration, Express 5), with a working Cloud Functions demo on Node 22 by @​markgoho in #​3671
  • build: classify which newer firebase functions AngularFire should wrap, and how. Adds a docs/zones.md section on what a call outside an injection context loses, and removes an ng update migration that did nothing. by @​armando-navarro in #​3759
  • refactor: derive the firebase-tools version message from a shared constant, so the message and the check cannot drift apart again by @​armando-navarro in #​3704
  • build: declare the ES2022 standard library in the tsconfigs by @​armando-navarro in #​3706
  • chore: fix a misspelled variable name in the deploy builder by @​Damiencastro in #​3567

New Contributors

Action required when upgrading: update firebase together with @angular/fire

AngularFire 21 requires firebase version 12.18.0 or newer. If your project's own package.json still requests firebase 11 (typical for apps coming from AngularFire 20), npm will not report a conflict. It silently installs BOTH SDK versions side by side, and the two copies reject each other's objects at runtime. This one situation caused the three most-reported rc.0 bugs: the Firestore Expected type 'Query' crash (#​3684), the Timestamp.toDate() type error (#​3681), and the Realtime Database too much recursion error (#​3682).

  • ng update @angular/fire fixes this automatically: the #​3722 migration updates your firebase dependency to ^12.18.0 and reinstalls.
  • Upgrading by hand? Run npm install firebase@^12 together with the AngularFire update, then check npm ls firebase shows a single version.

Thanks to everyone who tested rc.0 and reported issues. The reports on #​3684, #​3681, and #​3682 are what identified the duplicated-SDK cause, and they are why ng update can correct it for you.

Full Changelog: angular/angularfire@21.0.0-rc.0...21.0.0-rc.1

@angular-robot angular-robot added action: merge The PR is ready for merge by the caretaker area: build & ci Related the build and CI infrastructure of the project target: automation This PR is targeted to only merge into the branch defined in Github [bot use only] labels Sep 16, 2026

@gemini-code-assist gemini-code-assist Bot left a comment

Copy link
Copy Markdown

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Code Review

This pull request updates various Angular dependencies, including @angular/cdk, @angular/material, @angular/build, and @angular/cli, from pre-release next versions to the 22.2.0-rc.0 release candidate across multiple package files and workspaces. It also updates the corresponding lockfiles (pnpm-lock.yaml), which includes upgrading transitive dependencies such as Babel, Sass, Vite, and Zod. There are no review comments to address, and I have no additional feedback to provide.

@angular-robot
angular-robot force-pushed the ng-renovate/cross-repo-angular-dependencies branch 3 times, most recently from fdd7dc5 to 34bc011 Compare September 22, 2026 13:55
@angular-robot angular-robot changed the title build: update cross-repo angular dependencies to v22.2.0-rc.0 build: update cross-repo angular dependencies Sep 22, 2026
@angular-robot
angular-robot force-pushed the ng-renovate/cross-repo-angular-dependencies branch 2 times, most recently from 3778dd6 to cf8da96 Compare September 22, 2026 14:56
See associated pull request for more information.
@angular-robot
angular-robot force-pushed the ng-renovate/cross-repo-angular-dependencies branch from cf8da96 to 31710bf Compare September 24, 2026 12:43
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

action: merge The PR is ready for merge by the caretaker area: build & ci Related the build and CI infrastructure of the project target: automation This PR is targeted to only merge into the branch defined in Github [bot use only]

Projects

None yet

Development

Successfully merging this pull request may close these issues.

1 participant