Skip to content

Releases: angular/angular

v17.3.1

20 Mar 19:49
Compare
Choose a tag to compare

17.3.1 (2024-03-20)

compiler

Commit Description
fix - c0788200e2 capture data bindings for content projection purposes in blocks (#54876)

compiler-cli

Commit Description
fix - 99e9474aa2 symbol feature detection for the compiler (#54711)

v18.0.0-next.0

14 Mar 15:44
Compare
Choose a tag to compare
v18.0.0-next.0 Pre-release
Pre-release

18.0.0-next.0 (2024-03-14)

compiler-cli

Commit Description
fix - 9b424d7224 preserve original reference to non-deferrable dependency (#54759)

core

Commit Description
fix - d888da4606 ApplicationRef.tick should respect OnPush for host bindings (#53718)
fix - 64f870c12b ApplicationRef.tick should respect OnPush for host bindings (#53718) (#53718)
fix - 8cad4e8cbe ComponentFixture autoDetect respects OnPush flag of host view (#54824)
fix - ba8e465974 Change Detection will continue to refresh views while marked for check (#54734)
fix - 24bc0ed4f2 ComponentFixture autodetect should detect changes within ApplicationRef.tick (#54733)
fix - 10c5cdb49c ensure change detection runs in a reasonable timeframe with zone coalescing (#54578)
fix - ad045efd4b Ensure views marked for check are refreshed during change detection (#54735)
fix - 700c0520bb Update ApplicationRef.tick loop to only throw in dev mode (#54848)

router

Commit Description
feat - 8735af08b9 Add ability to return UrlTree with NavigationBehaviorOptions from guards (#45023)

Breaking Changes

core

  • OnPush views at the root of the application need to
    be marked dirty for their host bindings to refresh. Previously, the host
    bindings were refreshed for all root views without respecting the
    OnPush change detection strategy.
  • OnPush views at the root of the application need to
    be marked dirty for their host bindings to refresh. Previously, the host
    bindings were refreshed for all root views without respecting the
    OnPush change detection strategy.
  • The ComponentFixture autoDetect feature will no
    longer refresh the component's host view when the component is OnPush
    and not marked dirty. This exposes existing issues in components which
    claim to be OnPush but do not correctly call markForCheck when they
    need to be refreshed. If this change causes test failures, the easiest
    fix is to change the component to ChangeDetectionStrategy.Default.
  • When Angular runs change detection, it will continue to
    refresh any views attached to ApplicationRef that are still marked for
    check after one round completes. In rare cases, this can result in infinite
    loops when certain patterns continue to mark views for check using
    ChangeDetectorRef.detectChanges. This will be surfaced as a runtime
    error with the NG0103 code.
  • The ComponentFixture.autoDetect feature now executes
    change detection for the fixture within ApplicationRef.tick. This more
    closely matches the behavior of how a component would refresh in
    production. The order of component refresh in tests may be slightly
    affected as a result, especially when dealing with additional components
    attached to the application, such as dialogs. Tests sensitive to this
    type of change (such as screenshot tests) may need to be updated.
    Concretely, this change means that the component will refresh before
    additional views attached to ApplicationRef (i.e. dialog components).
    Prior to this change, the fixture component would refresh after other
    views attached to the application.
  • The exact timing of change detection execution when
    using event or run coalescing with NgZone is now the first of either
    setTimeout or requestAnimationFrame. Code which relies on this
    timing (usually by accident) will need to be adjusted. If a callback
    needs to execute after change detection, we recommend afterNextRender
    instead of something like setTimeout.
  • Newly created and views marked for check and reattached
    during change detection are now guaranteed to be refreshed in that same
    change detection cycle. Previously, if they were attached at a location
    in the view tree that was already checked, they would either throw
    ExpressionChangedAfterItHasBeenCheckedError or not be refreshed until
    some future round of change detection. In rare circumstances, this
    correction can cause issues. We identified one instance that relied on
    the previous behavior by reading a value on initialization which was
    queued to be updated in a microtask instead of being available in the
    current change detection round. The component only read this value during
    initialization and did not read it again after the microtask updated it.

router

  • Guards can now return RedirectCommand for redirects
    in addition to UrlTree. Code which expects only boolean or UrlTree
    values in Route types will need to be adjusted.

v17.3.0

13 Mar 21:05
Compare
Choose a tag to compare

17.3.0 (2024-03-13)

compiler

Commit Description
feat - 1a6beae8a2 Enable template pipeline by default. (#54571)
fix - f386a04c9d handle two-way bindings to signal-based template variables in instruction generation (#54714)
fix - 1f129f114e not catching for loop empty tracking expressions (#54772)

compiler-cli

Commit Description
fix - 12dc4d074e account for as expression in docs extraction (#54414)
fix - da7fbb40f0 detect when the linker is working in unpublished angular and widen supported versions (#54439)
fix - 492e03f699 flag two-way bindings to non-signal values in templates (#54714)
fix - 5afa4f0ec1 support ModuleWithProviders literal detection with typeof (#54650)

core

Commit Description
feat - 331b16efd2 add API to inject attributes on the host node (#54604)
feat - fb540e169a add migration for invalid two-way bindings (#54630)
feat - c687b8f453 expose new output() API (#54650)
feat - c809069f21 introduce outputFromObservable() interop function (#54650)
feat - aff65fd1f4 introduce outputToObservable interop helper (#54650)
feat - 974958913c support TypeScript 5.4 (#54414)
fix - 39a50f9a8d ensure all initializer functions run in an injection context (#54761)
fix - 243ccce624 exclude class attribute intended for projection matching from directive matching (#54800)
fix - 2909e9817d prevent infinite loops in clobbered elements check (#54425)
fix - 7243c704cf return a readonly signal on asReadonly. (#54706)
perf - bb35414a38 speed up retrieval of DestroyRef in EventEmitter (#54748)

http

Commit Description
fix - 8d37ed035c exclude caching for authenticated HTTP requests (#54746)

router

Commit Description
feat - c1c7384e02 Add reusable types for router guards (#54580)
fix - 7225485311 Navigations triggered by cancellation events should cancel previous navigation (#54710)

v17.3.0-rc.0

06 Mar 19:40
Compare
Choose a tag to compare
v17.3.0-rc.0 Pre-release
Pre-release

17.3.0-rc.0 (2024-03-06)

compiler-cli

Commit Description
fix - 5afa4f0ec1 support ModuleWithProviders literal detection with typeof (#54650)
fix - ae7dbe42de unwrap expressions with type parameters in query read property (#54647)

core

Commit Description
feat - fb540e169a add migration for invalid two-way bindings (#54630)
feat - c687b8f453 expose new output() API (#54650)
feat - c809069f21 introduce outputFromObservable() interop function (#54650)
feat - aff65fd1f4 introduce outputToObservable interop helper (#54650)
fix - 33a6fab094 apply TestBed provider overrides to @defer dependencies (#54667)
fix - 78e69117f0 generic inference for signal inputs may break with --strictFunctionTypes (#54652)
fix - 7243c704cf return a readonly signal on asReadonly. (#54706)
fix - ffad7b8ea9 untrack various core operations (#54614)

router

Commit Description
feat - c1c7384e02 Add reusable types for router guards (#54580)

v17.2.4

06 Mar 19:28
Compare
Choose a tag to compare

17.2.4 (2024-03-06)

compiler-cli

Commit Description
fix - 917b9bdd2e unwrap expressions with type parameters in query read property (#54647)

core

Commit Description
fix - 586cc24a10 apply TestBed provider overrides to @defer dependencies (#54667)
fix - b558a01c84 generic inference for signal inputs may break with --strictFunctionTypes (#54652)
fix - 443e5f1591 return a readonly signal on asReadonly. (#54719)
fix - ffbafc7d4a untrack various core operations (#54614)

v17.3.0-next.1

28 Feb 00:12
Compare
Choose a tag to compare
v17.3.0-next.1 Pre-release
Pre-release

17.3.0-next.1 (2024-02-27)

common

Commit Description
perf - 707bfc9b32 AsyncPipe should not call markForCheck on subscription (#54554)

compiler

Commit Description
feat - 1a6beae8a2 Enable template pipeline by default. (#54571)

compiler-cli

Commit Description
fix - 12dc4d074e account for as expression in docs extraction (#54414)
fix - f578889ca2 catch function instance properties in interpolated signal diagnostic (#54325)
fix - f04ecc0cda identify aliased initializer functions (#54480)
fix - f5c566c079 identify aliased initializer functions (#54609)

core

Commit Description
feat - 331b16efd2 add API to inject attributes on the host node (#54604)
feat - 974958913c support TypeScript 5.4 (#54414)
fix - dcb9deb363 collect providers from NgModules while rendering @defer block (#52881)
fix - ff40c9f762 fix typo in injectors.svg file (#54596)

migrations

Commit Description
fix - 71e0c7df69 resolve infinite loop for a single line element with a long tag name and angle bracket on a new line (#54588)

v17.2.3

28 Feb 00:23
Compare
Choose a tag to compare

17.2.3 (2024-02-27)

common

Commit Description
perf - 1a526f2881 AsyncPipe should not call markForCheck on subscription (#54554)

compiler-cli

Commit Description
fix - 2aefed8763 catch function instance properties in interpolated signal diagnostic (#54325)
fix - 48aec63ee4 identify aliased initializer functions (#54480)
fix - daf7c611b2 identify aliased initializer functions (#54609)

core

Commit Description
fix - 57123524a2 collect providers from NgModules while rendering @defer block (#52881)
fix - 79a32816dc fix typo in injectors.svg file (#54596)

migrations

Commit Description
fix - dbe673b027 resolve infinite loop for a single line element with a long tag name and angle bracket on a new line (#54588)

v17.3.0-next.0

22 Feb 02:02
Compare
Choose a tag to compare
v17.3.0-next.0 Pre-release
Pre-release

17.3.0-next.0 (2024-02-21)

compiler-cli

Commit Description
fix - da7fbb40f0 detect when the linker is working in unpublished angular and widen supported versions (#54439)

v17.2.2

22 Feb 01:54
Compare
Choose a tag to compare

17.2.2 (2024-02-21)

common

Commit Description
fix - d34e3298db image placeholder not removed in OnPush component (#54515)

compiler

Commit Description
fix - 6447c0eecc adding the inert property to the "SCHEMA" array (#53148)

compiler-cli

Commit Description
fix - 0a3edfb543 correctly detect deferred dependencies across scoped nodes (#54499)
fix - 790f4f7c26 use correct symbol name for default imported symbols in defer blocks (#54495)

core

Commit Description
fix - 3bd5860c74 properly execute content queries for root components (#54457)

migrations

Commit Description
fix - bb57d34110 Fix cf migration regular expression to include underscores (#54533)

router

Commit Description
fix - 3e31f1a34e Clear internal transition when navigation finalizes (#54261)

v17.2.1

14 Feb 22:55
Compare
Choose a tag to compare

17.2.1 (2024-02-14)

compiler-cli

Commit Description
fix - 7234824228 fix broken version detection condition (#54443)