Skip to content

Conversation

@devin-ai-integration
Copy link

Upgrade Angular from v9.0.1 to v19

Summary

Upgraded the Angular application from version 9.0.1 to 19.2.15 (latest) using a milestone-based approach to handle the 10 major version jump. The upgrade was completed in three milestones:

Milestone 1: Angular 9 → 12

  • Upgraded through Angular 10, 11, and 12
  • Updated TypeScript to 4.2
  • Migrated build configuration to remove deprecated options

Milestone 2: Angular 12 → 15

  • Upgraded through Angular 13, 14, and 15
  • Updated TypeScript to 4.9.5
  • Removed IE polyfills and updated to modern browser targets

Milestone 3: Angular 15 → 19

  • Upgraded through Angular 16, 17, 18, and 19
  • Updated TypeScript to 5.8.3
  • Added standalone: false declarations to all components (Angular 19 migration)

All builds verified successfully at each version milestone. The app now uses:

  • Angular 19.2.15 (all core packages)
  • Angular CLI 19.2.19
  • TypeScript 5.8.3
  • zone.js 0.15.1

Review & Testing Checklist for Human

This is a major upgrade spanning 10 versions with limited automated testing. Please verify:

  • Production build: Run yarn build with production configuration and verify output is correct
  • Runtime testing: Start the dev server (yarn start) and manually test:
    • Feed pages load correctly (top, new, show, ask, jobs)
    • Item details page works with comments
    • User profile pages display properly
    • Navigation and routing work as expected
    • Service worker registration and caching behavior
  • Bundle size check: Compare production bundle sizes to baseline to ensure no unexpected increases
  • Cross-browser testing: Test in Chrome, Firefox, Safari, and Edge to verify compatibility
  • Service worker: Verify PWA functionality works correctly (offline mode, caching, updates)

Notes

Build Configuration Changes:

  • Removed deprecated options: aot, extractCss (now defaults)
  • Updated browserTargetbuildTarget (Angular 12+ standard)
  • Removed TSLint configuration (deprecated tool)
  • Build defaults updated for Angular 19 standards

Known Limitations:

  • Unit tests were not run due to pre-existing issues in the codebase
  • Only build verification was performed at each milestone
  • SASS deprecation warnings remain (non-critical, related to division operators and @import usage)

Dependencies:

  • rxjs-compat is still included (consider removal in future if not needed)
  • All Angular packages use ^ prefix for semver ranges
  • Dev dependencies (karma, jasmine, protractor) updated to compatible versions

Link to Devin run: https://app.devin.ai/sessions/35a96f7989fb4ad08b6459dc270b2f46
Requested by: Kevin Tang (@kevintang513)

devin-ai-integration bot and others added 3 commits October 30, 2025 15:28
- Upgraded from Angular 9.0.1 to Angular 12.2.18
- Upgraded through intermediate versions: 9 → 10 → 11 → 12
- Updated all @angular/* packages to version 12
- Updated zone.js to 0.11.x
- Updated tslint to version 6
- Removed deprecated options from angular.json
- Updated TypeScript compiler options in tsconfig.json
- Updated relativeLinkResolution in app.routes.ts
- Renamed browserslist to .browserslistrc
- Removed emitDecoratorMetadata from tsconfig.json
- All automated migrations completed successfully
- Production build verified and working

Co-Authored-By: Kevin Tang <kevin.tang513@gmail.com>
- Upgraded from Angular 12.2.18 to Angular 15.2.10
- Upgraded through intermediate versions: 12 → 13 → 14 → 15
- Updated all @angular/* packages to version 15
- Updated TypeScript from 4.3.5 to 4.9.5
- Updated zone.js to 0.11.x
- Updated .gitignore to include '.angular/cache'
- Removed deprecated options from angular.json
- Removed relativeLinkResolution from router config
- Updated TypeScript compilation target to ES2022
- Removed IE-specific polyfills (no longer needed)
- Updated test configuration for Angular 13+ teardown behavior
- Changed dependency version prefix from '~' to '^'
- All automated migrations completed successfully
- Production build verified and working

Co-Authored-By: Kevin Tang <kevin.tang513@gmail.com>
Co-Authored-By: Kevin Tang <kevin.tang513@gmail.com>
@devin-ai-integration
Copy link
Author

🤖 Devin AI Engineer

I'll be helping with this pull request! Here's what you should know:

✅ I will automatically:

  • Address comments on this PR. Add '(aside)' to your comment to have me ignore it.
  • Look at CI failures and help fix them

Note: I can only respond to comments from users who have write access to this repository.

⚙️ Control Options:

  • Disable automatic comment and CI monitoring

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.

1 participant