Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

Update angular to v19 (major) #45

Open
wants to merge 1 commit into
base: develop
Choose a base branch
from
Open

Conversation

wendlans
Copy link
Contributor

@wendlans wendlans commented Nov 20, 2024

This PR contains the following updates:

Package Change Age Adoption Passing Confidence
@angular-devkit/build-angular ^18.2.12 -> ^19.0.0 age adoption passing confidence
@angular/animations (source) ^18.2.13 -> ^19.0.0 age adoption passing confidence
@angular/cdk ^18.2.14 -> ^19.0.0 age adoption passing confidence
@angular/cli ^18.2.12 -> ^19.0.0 age adoption passing confidence
@angular/common (source) ^18.2.13 -> ^19.0.0 age adoption passing confidence
@angular/compiler (source) ^18.2.13 -> ^19.0.0 age adoption passing confidence
@angular/compiler-cli (source) ^18.2.13 -> ^19.0.0 age adoption passing confidence
@angular/core (source) ^18.2.13 -> ^19.0.0 age adoption passing confidence
@angular/forms (source) ^18.2.13 -> ^19.0.0 age adoption passing confidence
@angular/localize ^18.2.13 -> ^19.0.0 age adoption passing confidence
@angular/material ^18.2.14 -> ^19.0.0 age adoption passing confidence
@angular/platform-browser (source) ^18.2.13 -> ^19.0.0 age adoption passing confidence
@angular/platform-browser-dynamic (source) ^18.2.13 -> ^19.0.0 age adoption passing confidence
@angular/router (source) ^18.2.13 -> ^19.0.0 age adoption passing confidence

Release Notes

angular/angular-cli (@​angular-devkit/build-angular)

v19.0.2

Compare Source

@​schematics/angular
Commit Type Description
2f53e2af5 fix skip SSR routing prompt in webcontainer
@​angular/build
Commit Type Description
f9da163f8 fix minimize reliance on esbuild inject to prevent code reordering
c497749e6 fix prevent errors with parameterized routes when getPrerenderParams is undefined
@​angular/ssr
Commit Type Description
c8cd90e0f fix handle nested redirects not explicitly defined in router config

v19.0.1

Compare Source

@​angular-devkit/build-angular
Commit Type Description
b63123f20 fix use stylePreprocessorOptions
@​angular/build
Commit Type Description
74461da64 fix ensure accurate content length for server assets
1b4dcedd5 fix use sha256 instead of sha-256 as hash algorithm name
@​angular/ssr
Commit Type Description
8bd2b260e fix handle baseHref that start with ./

v19.0.0

Compare Source

Breaking Changes

@​schematics/angular
  • The app-shell schematic is no longer compatible with Webpack-based builders.
@​angular-devkit/build-angular
@​angular-devkit/core
  • The deprecated fileBuffer function is no longer available. Update your code to use stringToFileBuffer instead to maintain compatibility.

    Note: that this change does not affect application developers.

@​angular/build
  • The @angular/localize/init polyfill will no longer be added automatically to projects. To prevent runtime issues, ensure that this polyfill is manually included in the "polyfills" section of your "angular.json" file if your application relies on Angular localization features.
@​angular/ssr
  • The CommonEngine API now needs to be imported from @angular/ssr/node.

    Before

    import { CommonEngine } from '@​angular/ssr';

    After

    import { CommonEngine } from '@​angular/ssr/node';
@​angular-devkit/schematics-cli
Commit Type Description
37693c40e feat add package manager option to blank schematic
@​schematics/angular
Commit Type Description
a381a3db1 feat add option to export component as default
755f3a07f feat add option to setup new workspace or application as zoneless mode
cfca5442e feat integrate withEventReplay() in provideClientHydration for new SSR apps
292a4b7c2 feat update app-shell and ssr schematics to adopt new Server Rendering API
b1504c3bc fix component spec with export default
4b4e000dd fix don't show server routing prompt when using browser builder
4e2a5fe15 fix enable opt-in for new @angular/ssr feature
fcf7443d6 fix explicitly set standalone:false
7992218a9 fix remove declaration and sourceMap from default tsconfig
9e6ab1bf2 fix use default import for express
@​angular/cli
Commit Type Description
201b60e1d feat handle string key/value pairs, e.g. --define
b847d4460 fix recommend optional application update migration during v19 update
f249e7e85 perf enable Node.js compile code cache when available
ecc107d83 perf enable Node.js compile code cache when available
@​angular-devkit/architect
Commit Type Description
78f76485f feat merge object options from CLI
@​angular-devkit/build-angular
Commit Type Description
0a4ef3026 feat karma-coverage w/ app builder
dcbdca85c feat karma+esbuild+watch
54594b5ab feat support karma with esbuild
ea5ae68da fix bring back style tags in browser builder
476f94f51 fix fix --watch regression in karma
25d928b4f fix fix hanging terminal when browser-sync is not installed
2ec877dd0 fix handle basename collisions
ab6e19e1f fix handle main field
43e7aae22 fix remove double-watch in karma
1e37b5939 fix serve assets
9d7613db9 fix zone.js/testing + karma + esbuild
e40384e63 refactor remove deprecated browserTarget
62877bdf2 refactor remove Protractor builder and schematics
@​angular-devkit/core
Commit Type Description
0d8a1006d refactor remove deprecated fileBuffer function in favor of stringToFileBuffer
@​angular/build
Commit Type Description
b6951f448 feat add sass to stylePreprocessorOptions in application builder
efb434136 feat Auto-CSP support as a part of angular.json schema
816e3cb86 feat enable component stylesheet hot replacement by default
3b00fc908 feat introduce outputMode option to the application builder
7d883a152 feat introduce ssr.experimentalPlatform option
c48d6947e feat set development/production condition
f63072668 feat utilize ssr.entry during prerendering to enable access to local API routes
bbc290133 feat utilize ssr.entry in Vite dev-server when available
5a7a2925b fix add missing redirect in SSR manifest
06e5176c2 fix add warning when --prerendering or --app-shell are no-ops
ecaf870b5 fix always clear dev-server error overlay on non-error result
f8677f6a9 fix always record component style usage for HMR updates
099e477a8 fix avoid hashing development external component stylesheets
3602bbb77 fix avoid overwriting inline style bundling additional results
71534aadc fix check referenced files against native file paths
fed31e064 fix correctly use dev-server hmr option to control stylesheet hot replacement
b86bb080e fix disable dev-server websocket when live reload is disabled
7c50ba9e2 fix ensure index.csr.html is always generated when prerendering or SSR are enabled
efb2232df fix ensure accurate content size in server asset metadata
18a8584ea fix ensure SVG template URLs are considered templates with external stylesheets
7502fee28 fix Exclude known --import from execArgv when spawning workers
2551df533 fix fully disable component style HMR in JIT mode
c41529cc1 fix handle APP_BASE_HREF correctly in prerendered routes
87a90afd4 fix incomplete string escaping or encoding
1bb68ba68 fix move lmdb to optionalDependencies
a995c8ea6 fix prevent prerendering of catch-all routes
1654acf0f fix relax constraints on external stylesheet component id
0d4558ea5 fix set ngServerMode during vite prebundling
55d7f01b6 fix simplify disabling server features with --no-server via command line
cf0228b82 fix skip wildcard routes from being listed as prerendered routes
af52fb49b fix synchronize import/export conditions between bundler and TypeScript
6c618d495 fix update logic to support both internal and external SSR middlewares
bfa8fec9b fix use named export reqHandler for server.ts request handling
c8e1521a2 fix workaround Vite CSS ShadowDOM hot replacement
d6a34034d refactor remove automatic addition of @angular/localize/init polyfill and related warnings
@​angular/ssr
Commit Type Description
92209dd2e feat add createRequestHandler and createNodeRequestHandler utilities
41fb2ed86 feat Add getHeaders Method to AngularAppEngine and AngularNodeAppEngine for handling pages static headers
f346ee8a8 feat add isMainModule function
d66aaa3ca feat add server routing configuration API
bca568389 feat dynamic route resolution using Angular router
30c25bf68 feat export AngularAppEngine as public API
455b5700c feat expose writeResponseToNodeResponse and createWebRequestFromNodeRequest in public API
9692a9054 feat improve handling of aborted requests in AngularServerApp
576ff604c feat introduce AngularNodeAppEngine API for Node.js integration
3c9697a8c feat introduce new hybrid rendering API
4b09887a9 feat move CommonEngine API to /node entry-point
d43180af5 fix add missing peer dependency on @angular/platform-server
74b3e2d51 fix add validation to prevent use of provideServerRoutesConfig in browser context
2640bf7a6 fix correct route extraction and error handling
44077f54e fix designate package as side-effect free
df4e1d360 fix enable serving of prerendered pages in the App Engine
0793c78cf fix ensure wildcard RenderMode is applied when no Angular routes are defined
65b6e75a5 fix export RESPONSE_INIT, REQUEST, and REQUEST_CONTEXT tokens
4ecf63a77 fix export PrerenderFallback
50df63196 fix improve handling of route mismatches between Angular server routes and Angular router
3cf7a5223 fix initialize the DI tokens with null to avoid requiring them to be set to optional
85df4011b fix resolve bootstrap is not a function error
e9c9e4995 fix resolve circular dependency issue from main.server.js reference in manifest
64c52521d fix show error when multiple routes are set with RenderMode.AppShell
280ebbda4 fix support for HTTP/2 request/response handling
fb05e7f0a fix use wildcard server route configuration on the '/' route when the app router is empty
12ff37adb perf cache generated inline CSS for HTML
1d70e3b46 perf cache resolved entry-points
f460b91d4 perf integrate ETags for prerendered pages
e52ae7f6f perf prevent potential stampede in entry-points cache
angular/angular (@​angular/animations)

v19.0.1

Compare Source

compiler-cli
Commit Type Description
fb1fa8b0fc fix more accurate diagnostics for host binding parser errors (#​58870)
core
Commit Type Description
502ee0e722 fix correctly clear template HMR internal renderer cache (#​58724)
99715104a1 fix correctly perform lazy routes migration for components with additional decorators (#​58796)
118803035f fix Ensure _tick is always run within the TracingSnapshot. (#​58881)
08b9452f01 fix Ensure resource sets an error (#​58855)
84f45ea3ff fix make component id generation more stable between client and server builds (#​58813)
d3491c7cee fix Prevents race condition of cleanup for incremental hydration (#​58722)
forms
Commit Type Description
4dfe5b6cef fix work around TypeScript 5.7 issue (#​58731)
language-service
Commit Type Description
a983865bff fix add fix for individual unused imports (#​58719)
e6e7a4e22b fix allow fixes to run without template info (#​58719)
migrations
Commit Type Description
5ce10264a4 fix fix provide-initializer migration when using useFactory (#​58518)
d4f5c85f60 fix handle parameters with initializers in inject migration (#​58769)
a6d2d2dc10 fix Mark hoisted properties as removed in inject migration (#​58804)

v19.0.0

Compare Source

Blog post: https://blog.angular.dev/meet-angular-v19-7b29dfd05b84

Breaking Changes

compiler
  • this.foo property reads no longer refer to template context variables. If you intended to read the template variable, do not use this..
core
  • Angular directives, components and pipes are now standalone by default.

    • Specify standalone: false for declarations that are currently declared in @NgModules.
    • ng update for v19 will take care of this automatically.
  • TypeScript versions less than 5.5 are no longer supported.

  • Timing changes for effect API (in developer preview):

    • effects which are triggered outside of change detection run as part of
      the change detection process instead of as a microtask. Depending on the
      specifics of application/test setup, this can result in them executing
      earlier or later (or requiring additional test steps to trigger; see below
      examples).

    • effects which are triggered during change detection (e.g. by input
      signals) run earlier, before the component's template.

  • ExperimentalPendingTasks has been renamed to PendingTasks.

  • The autoDetect feature of ComponentFixture will now
    attach the fixture to the ApplicationRef. As a result, errors during
    automatic change detection of the fixture be reported to the ErrorHandler.
    This change may cause custom error handlers to observe new failures that were previously unreported.

  • createComponent will now render default fallback with empty projectableNodes.

    • When passing an empty array to projectableNodes in the createComponent API, the default fallback content
      of the ng-content will be rendered if present. To prevent rendering the default content, pass document.createTextNode('') as a projectableNode.
    // The first ng-content will render the default fallback content if present
    createComponent(MyComponent. { projectableNodes: [[], [secondNode]] });
    
    // To prevent projecting the default fallback content:
    createComponent(MyComponent. { projectableNodes: [[document.createTextNode('')], [secondNode]] });
  • Errors that are thrown during ApplicationRef.tick
    will now be rethrown when using TestBed. These errors should be
    resolved by ensuring the test environment is set up correctly to
    complete change detection successfully. There are two alternatives to
    catch the errors:

    • Instead of waiting for automatic change detection to happen, trigger
      it synchronously and expect the error. For example, a jasmine test
      could write expect(() => TestBed.inject(ApplicationRef).tick()).toThrow()
    • TestBed will reject any outstanding ComponentFixture.whenStable promises. A jasmine test,
      for example, could write expectAsync(fixture.whenStable()).toBeRejected().

    As a last resort, you can configure errors to not be rethrown by
    setting rethrowApplicationErrors to false in TestBed.configureTestingModule.

  • The timers that are used for zone coalescing and hybrid
    mode scheduling (which schedules an application state synchronization
    when changes happen outside the Angular zone) will now run in the zone
    above Angular rather than the root zone. This will mostly affect tests
    which use fakeAsync: these timers will now be visible to fakeAsync
    and can be affected by tick or flush.

  • The deprecated factories property in KeyValueDiffers has been removed.

elements
  • as part of switching away from custom CD behavior to the
    hybrid scheduler, timing of change detection around custom elements has
    changed subtly. These changes make elements more efficient, but can cause
    tests which encoded assumptions about how or when elements would be checked
    to require updating.
localize
  • The name option in the ng add @localize`` schematic has been removed in favor of the project option.
platform-browser
  • The deprecated BrowserModule.withServerTransition method has been removed. Please use the APP_ID DI token to set the application id instead.
router
  • The Router.errorHandler property has been removed.
    Adding an error handler should be configured in either
    withNavigationErrorHandler with provideRouter or the errorHandler
    property in the extra options of RouterModule.forRoot. In addition,
    the error handler cannot be used to change the return value of the
    router navigation promise or prevent it from rejecting. Instead, if you
    want to prevent the promise from rejecting, use resolveNavigationPromiseOnError.
  • The return type of the Resolve interface now includes
    RedirectCommand.
common
Commit Type Description
24c6373820 feat add optional rounded transform support in cloudinary image loader (#​55364)
50f08e6c4b feat automatically use sizes auto in NgOptimizedImage (#​57479)
13c13067bc feat disable keyvalue sorting using null compareFn (#​57487)
compiler
Commit Type Description
a2e4ee0cb3 feat add diagnostic for unused standalone imports (#​57605)
0c9d721ac1 feat add support for the typeof keyword in template expressions. (#​58183)
09f589f000 fix this.a should always refer to class property a (#​55183)
98804fd4be fix add more specific matcher for hydrate never block (#​58360)
b25121ee4a fix avoid having to duplicate core environment (#​58444)
560282aa9b fix control flow nodes with root at the end projected incorrectly (#​58607)
2be161d015 fix fix :host parsing in pseudo-selectors (#​58681)
806a61b5a6 fix fix multiline selectors (#​58681)
a3cb530d84 fix handle typeof expressions in serializer (#​58217)
ba4340875a fix ignore placeholder-only i18n messages (#​58154)
e5d3abb298 fix resolve :host:host-context(.foo) (#​58681)
80f56954ce fix transform chained pseudo-selectors (#​58681)
compiler-cli
Commit Type Description
d9687f43dd feat 'strictStandalone' flag enforces standalone (#​57935)
9e87593055 feat ensure template style elements are preprocessed as inline styles (#​57429)
231e6ff6ca feat generate the HMR replacement module (#​58205)
dbe612f2cd fix disable standalone by default on older versions of Angular (#​58405)
d4d76ead80 fix do not fail fatal when references to non-existent module are discovered (#​58515)
33fe252c58 fix do not report unused declarations coming from an imported array (#​57940)
fb44323c51 fix incorrectly generating relative file paths on case-insensitive platforms (#​58150)
22cd6869ef fix make the unused imports diagnostic easier to read (#​58468)
9bbb01c85e fix report individual diagnostics for unused imports (#​58589)
4716c3b966 perf reduce duplicate component style resolution (#​57502)
core
Commit Type Description
6ea8e1e9aa feat Add a schematics to migrate to standalone: false. (#​57643)
3ebe6b4ad4 feat Add async run method on ExperimentalPendingTasks (#​56546)
69fc5ae922 feat Add incremental hydration public api (#​58249)
8ebbae88ca feat Add rxjs operator prevent app stability until an event (#​56533)
19edf2c057 feat add syntactic sugar for initializers (#​53152)
c93b510f9b feat allow passing undefined without needing to include it in the type argument of input (#​57621)
ab25a192ba feat allow running output migration on a subset of paths (#​58299)
[fc59e2a7b7](https://redirect.github.com/angular/angular/commit/fc59e2a7b7afa491a5ea740284a7

Configuration

📅 Schedule: Branch creation - At any time (no schedule defined), Automerge - At any time (no schedule defined).

🚦 Automerge: Disabled by config. Please merge this manually once you are satisfied.

Rebasing: Whenever PR becomes conflicted, or you tick the rebase/retry checkbox.

🔕 Ignore: Close this PR and you won't be reminded about these updates again.


  • If you want to rebase/retry this PR, check this box

This PR has been generated by Renovate Bot.

@wendlans wendlans requested a review from a team November 20, 2024 01:16
@wendlans
Copy link
Contributor Author

wendlans commented Nov 20, 2024

⚠️ Artifact update problem

Renovate failed to update an artifact related to this branch. You probably do not want to merge this PR as-is.

♻ Renovate will retry this branch, including artifacts, only when one of the following happens:

  • any of the package files in this branch needs updating, or
  • the branch becomes conflicted, or
  • you click the rebase/retry checkbox if found above, or
  • you rename this PR's title to start with "rebase!" to trigger it manually

The artifact failure details are included below:

File name: package-lock.json
npm error code ERESOLVE
npm error ERESOLVE unable to resolve dependency tree
npm error
npm error While resolving: gb3-frontend@0.0.0
npm error Found: zone.js@0.14.10
npm error node_modules/zone.js
npm error   zone.js@"~0.14.2" from the root project
npm error
npm error Could not resolve dependency:
npm error peer zone.js@"~0.15.0" from @angular/core@19.0.1
npm error node_modules/@angular/core
npm error   @angular/core@"^19.0.0" from the root project
npm error   peer @angular/core@"^19.0.0 || ^20.0.0" from @angular/cdk@19.0.1
npm error   node_modules/@angular/cdk
npm error     @angular/cdk@"^19.0.0" from the root project
npm error   1 more (@angular/common)
npm error
npm error Fix the upstream dependency conflict, or retry
npm error this command with --force or --legacy-peer-deps
npm error to accept an incorrect (and potentially broken) dependency resolution.
npm error
npm error
npm error For a full report see:
npm error /tmp/renovate/cache/others/npm/_logs/2024-11-28T01_18_07_787Z-eresolve-report.txt
npm error A complete log of this run can be found in: /tmp/renovate/cache/others/npm/_logs/2024-11-28T01_18_07_787Z-debug-0.log

@Tugark
Copy link
Contributor

Tugark commented Nov 20, 2024

@TIL-EBP @wendlans This will not work, because a lot of dependent packages are not updated yet (like ngx-tour, ngrx), so we are forced to wait.

If it works, we also need to update zone.js and others; so this will be another manual update. Also note that they changed some things, so migrations do happen (e.g. the migration removes standalone: true and adds standalone: false to ALL components :)).

@wendlans wendlans force-pushed the renovate/major-angular branch from e3bf94c to 3417f2e Compare November 21, 2024 01:16
@wendlans
Copy link
Contributor Author

@TIL-EBP @wendlans This will not work, because a lot of dependent packages are not updated yet (like ngx-tour, ngrx), so we are forced to wait.

If it works, we also need to update zone.js and others; so this will be another manual update. Also note that they changed some things, so migrations do happen (e.g. the migration removes standalone: true and adds standalone: false to ALL components :)).

@Tugark @TIL-EBP True. I usually see those big Angular updates from Renovate just as a reminder. We have to update major Angular updates manually anyway.

@wendlans wendlans force-pushed the renovate/major-angular branch from 3417f2e to 244c71b Compare November 28, 2024 01:18
@gisbdzhch gisbdzhch force-pushed the renovate/major-angular branch from 244c71b to 0409fe5 Compare December 2, 2024 15:03
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