Skip to content

build(deps)!: upgrade angular to v22 - #2661

Merged
madhavilosetty-intel merged 1 commit into
mainfrom
build/upgrade-angular-22
Oct 12, 2026
Merged

madhavilosetty-intel merged 1 commit into
mainfrom
build/upgrade-angular-22

Conversation

@madhavilosetty-intel

Copy link
Copy Markdown
Contributor

Upgrade @angular/core, @angular/cli, @angular/build and @angular/cdk to 22, ng-packagr to 22 and TypeScript to 6.0 with ng update.

  • Adapt tsconfig to TypeScript 6: set strict to false, which the components rely on, and remove the deprecated baseUrl with its unused ider/kvm path aliases.
  • Adopt the Angular 22 defaults: components use OnPush change detection and strict templates are on. SOL's deviceState is now a signal so its template refreshes under OnPush.
  • Fix the KVM canvas bindings, which bound the width and height signal functions instead of their values.
  • Declare rxjs as a peer dependency. @angular/core is not declared as a peer: the partially compiled output links in Angular 21 and 22 apps, so the host application's Angular version is not constrained by this package.
  • Drop the esbuild override, which pinned 0.28.1 below the 0.28.2 that @angular/build 22 ships with. Remove the unused @angular/cdk and ts-node devDependencies.

Resolves: #2636

PR Checklist

  • Unit Tests have been added for new changes
  • API tests have been updated if applicable
  • All commented code has been removed
  • If you've added a dependency, you've ensured license is compatible with Apache 2.0 and clearly outlined the added dependency.

What are you changing?

Anything the reviewer should know when reviewing this PR?

If the there are associated PRs in other repositories, please link them here (i.e. device-management-toolkit/repo#365 )

Copilot AI 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.

🟡 Changes recommended

Strict template checking and OnPush configuration remain incomplete, and the IDER deviceState API change may break existing consumers.

3 open findings
What changed in this PR

Upgrades the Angular toolchain to v22 and adapts components for signal-based state and bindings.

Changes:

  • Updates Angular, TypeScript, ng-packagr, and dependency declarations.
  • Converts component state to signals and fixes KVM canvas bindings.
  • Refreshes compiler configuration and related tests.
File Summary
tsconfig.json Updates compiler configuration and removes deprecated path settings.
sol/​src/​terminal/​terminal.component.ts Makes the terminal input required.
sol/​src/​sol.component.ts Adds signal-based device state and lifecycle updates.
sol/​src/​sol.component.spec.ts Updates and expands SOL tests.
sol/​src/​sol.component.html Updates signal and terminal rendering bindings.
package.json Upgrades toolchain dependencies and adds RxJS as a peer dependency.
kvm/​src/​kvm.component.spec.ts Tests canvas sizing behavior.
kvm/​src/​kvm.component.html Evaluates canvas dimension signals correctly.
ider/​src/​ider.component.ts Adds signal-based device state.

🧠 Review effort: Lite


💡 Add a code-review agent skill or configure MCP servers for context-aware, tailored reviews. Learn more in the docs.

Comment thread ider/src/ider.component.ts
Comment thread sol/src/sol.component.ts
Comment thread ider/src/ider.component.ts
Upgrade @angular/core, @angular/cli and @angular/build to 22,
ng-packagr to 22 and TypeScript to 6.0 with ng update.

- Adopt TypeScript 6 strict mode: the component fields that are
  created lazily on connect are declared nullable, the terminal
  input is required, and the deprecated baseUrl with its unused
  ider/kvm path aliases is removed. TypeScript is pinned to ~6.0.3,
  the range the Angular 22 compiler accepts.
- Adopt the Angular 22 defaults: components use OnPush change
  detection and strict templates are on. SOL's and IDER's
  deviceState are now read-only signals so templates refresh under
  OnPush; IDER's previously never changed from 0.
- Fix the KVM canvas bindings, which bound the width and height
  signal functions instead of their values.
- Declare rxjs as a peer dependency. @angular/core is not declared
  as a peer: the partially compiled output links in Angular 21 and
  22 apps, so the host application's Angular version is not
  constrained by this package.
- Drop the esbuild override, which pinned 0.28.1 below the 0.28.2
  that @angular/build 22 ships with. Remove the unused @angular/cdk
  and ts-node devDependencies.

BREAKING CHANGE: SOLComponent.deviceState and IDERComponent.deviceState
    are now read-only signals. Read them as deviceState() instead of
    deviceState.

Resolves: #2636
@madhavilosetty-intel
madhavilosetty-intel merged commit b667882 into main Oct 12, 2026
7 checks passed
@madhavilosetty-intel
madhavilosetty-intel deleted the build/upgrade-angular-22 branch October 12, 2026 22:28
RosieAMT pushed a commit that referenced this pull request Oct 12, 2026
# [12.0.0](v11.1.9...v12.0.0) (2026-10-12)

* build(deps)!: upgrade angular to v22 ([#2661](#2661)) ([b667882](b667882)), closes [#2636](#2636)

### BREAKING CHANGES

* SOLComponent.deviceState and IDERComponent.deviceState
    are now read-only signals. Read them as deviceState() instead of
    deviceState.
@RosieAMT

Copy link
Copy Markdown

🎉 This PR is included in version 12.0.0 🎉

The release is available on:

Your semantic-release bot 📦🚀

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

Projects

None yet

Development

Successfully merging this pull request may close these issues.

Upgrade ui-toolkit-angular from Angular 21 to Angular 22

4 participants