Skip to content

build: require Angular 21.2 and compile with its toolchain - #3763

Open
armando-navarro wants to merge 2 commits into
angular:mainfrom
armando-navarro:angular-minimum-21.2
Open

build: require Angular 21.2 and compile with its toolchain#3763
armando-navarro wants to merge 2 commits into
angular:mainfrom
armando-navarro:angular-minimum-21.2

Conversation

@armando-navarro

Copy link
Copy Markdown
Collaborator

Checklist

  • Issue number for this PR: none, release coordination for the 21.0.0-rc.1 cut
  • Docs included?: no, dependency manifests and the build script only
  • Test units included?: no new specs. The existing suite passes (331 specs, 0 failures) and the build's own schematics-load check covers the new build step.
  • In a clean directory, yarn install, yarn test run successfully?: yes

Description

Raises the minimum supported Angular to 21.2, the final 21.x minor line. Angular 21 is in long-term support, which receives only critical fixes and security patches, so ^21.2.0 admits every 21.x release still to come. The raise is release coordination for the TransferState work (#3757), whose signal-based reading functions build on resourceFromSnapshots, absent from @angular/core until 21.2.

Changes

  • The four Angular peer entries in src/package.json move to ^21.2.0.
  • The repo's own Angular build packages move to ^21.2.0, @angular-devkit/architect moves to ~0.2102.0 because the 21.2 CLI needs a devkit version the old ~0.2100.0 range rejects (lockfile regenerated).
    • The two @angular-eslint entries stay at ^21.0.0, since that project's 21.x minors do not track Angular's.
  • Deletes the "type": "module" field that ng-packagr 21.2 adds to package.json (a default introduced in ng-packagr#3263).
    • Otherwise, Node reads the CommonJS schematics bundles as ES modules, breaking ng add and ng deploy.
    • The schematics-load check runs after the deletion so a regression fails the build.
    • This maintains the manifest's status quo that every published release has carried.

Verification

  • Full build passes, and the built package.json carries no type field.
  • The regenerated entry points are byte-identical under the 21.2 compiler, so the published surface does not change.
  • 331 specs, 0 failures, lint clean.
  • The 21.2 tools require Node ^20.19.0 || ^22.12.0 || >=24.0.0, which CI's Node 20, 22 and 24 matrix satisfies.
  • The sample app already installs @angular/core 21.2.18, so it needs no change to satisfy the new peer range.

Angular 21 is in long-term support.
… module type field

ng-packagr 21.2 adds "type": "module" to the generated
package.json, which breaks the CommonJS schematics bundles at require
time. The build now deletes the field and its schematics-load check
runs after the deletion.
@armando-navarro armando-navarro added bump: patch comp: build/pipeline Build, bundling, packaging, release pipeline. type: chore Maintenance with no user-facing behavior change. labels Sep 9, 2026
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

bump: patch comp: build/pipeline Build, bundling, packaging, release pipeline. type: chore Maintenance with no user-facing behavior change.

Projects

None yet

Development

Successfully merging this pull request may close these issues.

1 participant