From 63f4b40a9a97da4b47070467dae4550b73c0d431 Mon Sep 17 00:00:00 2001 From: Alan Agius <17563226+alan-agius4@users.noreply.github.com> Date: Fri, 29 May 2026 06:16:18 +0000 Subject: [PATCH] fix(@angular/cli): expand package groups for newly added peer dependencies in update schematic Previously, the package group stabilization loop ran completely before the peer dependencies resolution loop. If a peer dependency was newly added during the peer dependencies loop (e.g., @angular/core), its corresponding package group members (e.g., @angular/router) were never expanded, leaving them at outdated versions. Now, wrap the package group and peer dependencies stabilization logic in a single outer loop so that newly added peer dependencies are also stabilized and their package groups are correctly expanded. --- .../cli/src/commands/update/schematic/index.ts | 16 +++++++++------- 1 file changed, 9 insertions(+), 7 deletions(-) diff --git a/packages/angular/cli/src/commands/update/schematic/index.ts b/packages/angular/cli/src/commands/update/schematic/index.ts index e110480d09a5..0b2761313899 100644 --- a/packages/angular/cli/src/commands/update/schematic/index.ts +++ b/packages/angular/cli/src/commands/update/schematic/index.ts @@ -884,14 +884,16 @@ export default function (options: UpdateSchema): Rule { let lastPackagesSize; do { lastPackagesSize = packages.size; - npmPackageJsonMap.forEach((npmPackageJson) => { - _addPackageGroup(tree, packages, npmDeps, npmPackageJson, logger); - }); - } while (packages.size > lastPackagesSize); - // This is done in seperate loop to ensure that package groups are added before peer dependencies. - do { - lastPackagesSize = packages.size; + let lastGroupSize; + do { + lastGroupSize = packages.size; + npmPackageJsonMap.forEach((npmPackageJson) => { + _addPackageGroup(tree, packages, npmDeps, npmPackageJson, logger); + }); + } while (packages.size > lastGroupSize); + + // This is done in seperate loop to ensure that package groups are added before peer dependencies. npmPackageJsonMap.forEach((npmPackageJson) => { _addPeerDependencies(tree, packages, npmDeps, npmPackageJson, npmPackageJsonMap, logger); });