Skip to content

GSoC Angular Modernisation + AI activites merge to main - #591

Draft
sawankshrma wants to merge 125 commits into
mainfrom
gsoc2026
Draft

GSoC Angular Modernisation + AI activites merge to main#591
sawankshrma wants to merge 125 commits into
mainfrom
gsoc2026

Conversation

@sawankshrma

Copy link
Copy Markdown
Collaborator

No description provided.

Remove redundant ?. on non-nullable types across 4 template files & Add *ngIf guards for info[infoTitle] in teams template
Remove unnecessary await fixture.whenStable() that blocks on unresolved MDC animation tasks in headless Chrome. The component data is set synchronously via @input, so no async wait is needed.
wrap mat-icon in span with matListItemIcon to prevent MDC from overriding color=primary. After upgrading to Material 16, the icons became grey from the primary color they were
The --prod flag was deprecated in Angular CLI v12 and removed in later versions. Replaced with --configuration=production and dropped redundant --aot flag (AOT is default for production builds).
Removed eslint-config-standard-with-typescript and its peer deps (eslint-plugin-import, eslint-plugin-n, eslint-plugin-promise) — these were never referenced in .eslintrc.json and caused ERESOLVE peer dependency conflicts during the Angular 17 upgrade, as they pulled in incompatible ESLint/TypeScript version constraints that clashed with @angular-eslint v17. Also bumped eslint-config-prettier from ^8.5.0 to pinned 9.1.0 (v8.10.1 and v9.1.1 were compromised in a July 2025 supply chain attack), eslint-plugin-prettier to ^5.2.0, and prettier to ^3.3.0.
vbakke and others added 28 commits July 21, 2026 14:24
chore: Angular 20 -> 21 migration + Dependency Audits
- Convert 10 mutable properties to signal(), hasTeamsFilter to computed()
- Replace ngOnInit/requestAnimationFrame with afterNextRender
- Replace theme$ RxJS subscription with effect()
- Dissolve destroy$/takeUntil in favor of DestroyRef
- Fix order-sensitive group highlight (set-based comparison)
- Fix group selection wipe (new object refs via .set())
- Prevent group chip deselection via per-chip selectionChange guard
- Convert allTeams, dataStore, searchTerms in MappingComponent to signal()
- Convert meta, dataStoreMaxLevel, selectedMaxLevel, selectedMaxLevelCaption, editingProgressDefinitions, remoteReleaseCheck, selectedDateFormat in SettingsComponent to signal()
- Refactor checkForLatestRelease to build state via local vars + single .set()/.update() instead of mutating remoteReleaseCheck fields directly
- Remove unused GithubReleaseInfo import and dead checkingLatest/latestReleaseInfo/etc. fields
- Convert dataStore, canEdit, teams, teamGroups, progressTitleImplemented, infoTitle, infoTeams, info, allColumnNames, progressColumnNames in TeamsComponent to signal()
- Rework onSelectionChanged/onTeamsChanged to derive new info/currentInfo objects and .set() instead of mutating in place
- Update mapping/settings/teams templates and specs to call signals as functions
Signal migration: CircularHeatmap, Settings, Mappings and Teams Components
Ran `ng update @angular/core@22 @angular/cli@22`.
Auto-applied migrations:
- Core packages 21.x → 22.1.0, TypeScript 5.9 → 6.0
- Karma → Vitest test runner (angular.json, tsconfig.spec.json)
- ChangeDetectionStrategy.Eager on all components (default is now OnPush)
- withXhr() added to provideHttpClient calls
- $safeNavigationMigration() wrappers for ?. semantic change
- Suppress nullishCoalescingNotNullable/optionalChainNotNullable diagnostics
- @angular-devkit/build-angular → @angular/build (application builder)
- Replace .eslintrc.json with eslint.config.js
- Add angular-eslint and typescript-eslint packages
- Remove unnecessary eslint-disable comments
Finish what ng update's auto-migration left incomplete:
- Migrate Jasmine APIs → Vitest: spyOn → vi.spyOn,
  toHaveSize → toHaveLength, toBeTrue → toBe(true),
  jasmine.createSpyObj → vi.fn() mock objects
- Remove setupFiles ref to legacy src/test.ts (double init crash)
- Remove deprecated withXhr() from main.ts and all specs
- Remove dead devDeps: @types/jasmine, jasmine-core,
  karma, karma-*, istanbul-lib-instrument
- Add jsdom for Vitest DOM environment
- Restore pnpm-workspace.yaml with allowBuilds configuration

- Remove uuid override from package.json

- Regenerate package-lock.json following Angular 22 upgrade
- Bump CI Node.js from 20.19.6 to 24.19.0
- Drop --browsers=ChromeHeadless from CI test command (no longer
  needed now that tests run under Vitest instead of Karma)
- Pin @typescript-eslint/utils and vitest to exact versions
  (8.65.0, 4.0.8) instead of caret ranges
TS2304: Cannot find name 'Disposable' — @vitest/spy's type
declarations use the Disposable global (TS 5.2 explicit resource
management), which isn't included in ES2022's default lib set.
…t_migration

chore: Angular 21->22 + Karma to Vitest test-runner migration
Ran docker pull wurstbrot/dsomm-yaml-generation:5.0.0
docker create --name tmp-yaml wurstbrot/dsomm-yaml-generation:5.0.0
docker cp tmp-yaml:/var/www/html/generated/model.yaml src/assets/YAML/default/model.yaml
docker rm tmp-yaml
Split dimension labels exceeding 18 characters at the nearest word
boundary and render them on two concentric arcs (outer for line 1,
inner for line 2). Short labels stay on the inner arc close to the
chart. Replaces the single-line rendering with a forEach loop that
only creates DOM elements for lines with actual content.
Fixed clipping off the outer label text.
Adjusted the controlling variables, and removed the previous fudge factor
@sawankshrma
sawankshrma marked this pull request as ready for review August 19, 2026 13:00
@sawankshrma
sawankshrma marked this pull request as draft August 19, 2026 13:00
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

3 participants