Skip to content

Releases: angular/angular

v19.0.0-next.7

25 Sep 17:14
Compare
Choose a tag to compare
v19.0.0-next.7 Pre-release
Pre-release

19.0.0-next.7 (2024-09-25)

core

Commit Description
feat - fc59e2a7b7 change effect() execution timing & no-op allowSignalWrites (#57874)
feat - a7eff3ffaa mark signal-based query APIs as stable (#57921)
feat - a1f229850a migrate ExperimentalPendingTasks to PendingTasks (#57533)
fix - 950a5540f1 Ensure the ViewContext is retained after closure minification (#57903)

language-service

Commit Description
fix - 7ecfd89592 The suppress diagnostics option should work for external templates (#57873)

Breaking Changes

core

  • Generally this PR has two implications:

    • 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.

    We've seen a few common failure cases:

    • Tests which used to rely on the Promise timing of effects now need to
      await whenStable() or call .detectChanges() in order for effects to
      run.

    • Tests which use faked clocks may need to fast-forward/flush the clock to
      cause effects to run.

    • effect()s triggered during CD could rely on the application being fully
      rendered (for example, they could easily read computed styles, etc). With
      the change, they run before the component's updates and can get incorrect
      answers. The recent afterRenderEffect() API is a natural replacement for
      this style of effect.

    • effect()s which synchronize with the forms system are particularly
      timing-sensitive and might need to adjust their initialization timing.

  • ExperimentalPendingTasks has been renamed to
    PendingTasks.

v18.2.6

25 Sep 17:00
Compare
Choose a tag to compare

18.2.6 (2024-09-25)

v19.0.0-next.6

18 Sep 15:38
Compare
Choose a tag to compare
v19.0.0-next.6 Pre-release
Pre-release

19.0.0-next.6 (2024-09-18)

compiler-cli

Commit Description
fix - f611faadfe extended diagnostics not validating ICUs (#57845)

core

Commit Description
feat - 3ebe6b4ad4 Add async run method on ExperimentalPendingTasks (#56546)
feat - 1b1519224d mark input, output and model APIs as stable (#57804)
feat - e5adf92965 stabilize @let syntax (#57813)
fix - 4231e8f28f Handle @let declaration with array when preparingForHydration (#57816)

migrations

Commit Description
feat - 59fe9bc772 introduce signal input migration as ng generate schematic (#57805)
fix - 6144612940 account for explicit standalone: false in migration (#57803)

v18.2.5

18 Sep 15:29
Compare
Choose a tag to compare

18.2.5 (2024-09-18)

compiler-cli

Commit Description
fix - e685ed883a extended diagnostics not validating ICUs (#57845)

core

Commit Description
fix - 76709d5d6e Handle @let declaration with array when preparingForHydration (#57816)

migrations

Commit Description
fix - 5c866942a1 account for explicit standalone: false in migration (#57803)

v19.0.0-next.5

11 Sep 20:27
Compare
Choose a tag to compare
v19.0.0-next.5 Pre-release
Pre-release

19.0.0-next.5 (2024-09-11)

core

Commit Description
feat - c93b510f9b allow passing undefined without needing to include it in the type argument of input (#57621)

v18.2.4

11 Sep 19:59
Compare
Choose a tag to compare

18.2.4 (2024-09-11)

compiler

Commit Description
fix - b619d6987e produce less noisy errors when parsing control flow (#57711)

migrations

Commit Description
fix - 9895e4492f replace leftover modules with their exports during pruning (#57684)

v19.0.0-next.4

09 Sep 18:15
Compare
Choose a tag to compare
v19.0.0-next.4 Pre-release
Pre-release

19.0.0-next.4 (2024-09-09)

compiler

Commit Description
fix - 40ff18f87a produce less noisy errors when parsing control flow (#57711)

core

Commit Description
feat - 6ea8e1e9aa Add a schematics to migrate to standalone: false. (#57643)

migrations

Commit Description
feat - cbec46a51d migrate .pipe calls in outputs used in tests (#57691)
feat - 68e5370a66 remove complete calls for migrated outputs (#57671)
feat - 9da21f798d replace .next usage on outputs (#57654)
fix - 71f5ef2aa5 change imports to be G3 compatible (#57654)
fix - 3a264db866 properly handle comments in output migration (#57691)
fix - fc95a9adff replace leftover modules with their exports during pruning (#57684)

v19.0.0-next.3

04 Sep 15:32
Compare
Choose a tag to compare
v19.0.0-next.3 Pre-release
Pre-release

19.0.0-next.3 (2024-09-04)

compiler

Commit Description
feat - a2e4ee0cb3 add diagnostic for unused standalone imports (#57605)

core

Commit Description
feat - 8bcc663a53 drop support for TypeScript 5.4 (#57577)
feat - e6e5d29e83 initial version of the output migration (#57604)
feat - be2e49639b introduce afterRenderEffect (#57549)

elements

Commit Description
fix - fe5c4e086a support output()-shaped outputs (#57535)

http

Commit Description
fix - c2892fee58 Dynamicaly call the global fetch implementation (#57531)

language-service

Commit Description
feat - 8da9fb49b5 add code fix for unused standalone imports (#57605)
feat - 1f067f4507 add code reactoring action to migrate @Input to signal-input (#57214)
feat - 56ee47f2ec allow code refactorings to compute edits asynchronously (#57214)

Breaking Changes

core

    • TypeScript versions less than 5.5 are no longer supported.

v18.2.3

04 Sep 15:25
Compare
Choose a tag to compare

18.2.3 (2024-09-04)

http

Commit Description
fix - de68e049e4 Dynamicaly call the global fetch implementation (#57531)

v19.0.0-next.2

28 Aug 21:38
Compare
Choose a tag to compare
v19.0.0-next.2 Pre-release
Pre-release

19.0.0-next.2 (2024-08-28)

common

Commit Description
feat - 50f08e6c4bf automatically use sizes auto in NgOptimizedImage (#57479)

compiler-cli

Commit Description
perf - 4716c3b9660 reduce duplicate component style resolution (#57502)

core

Commit Description
fix - a3cdbfe87f5 avoid leaking memory if component throws during creation (#57546)
fix - 7a99815146e Do not bubble capture events. (#57476)
fix - 7b1e5be20b9 fallback to default ng-content with empty projectable nodes. (#57480)
fix - 0300dd2e18f Fix fixture.detectChanges with autoDetect disabled and zoneless (#57416)
fix - 226a67dabba Schedulers run in zone above Angular rather than root (#57553)

elements

Commit Description
fix - 0cebfd7462c switch to ComponentRef.setInput & remove custom scheduler (#56728)

http

Commit Description
fix - 21445a29322 Dynamicaly call the global fetch implementation (#57531)

router

Commit Description
fix - 8f6308457f0 Do not unnecessarily run matcher twice on route matching (#57530)

upgrade

Commit Description
fix - c9d90786d0a Address Trusted Types violations in @angular/upgrade (#57454)

Breaking Changes

core

  • 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.

    For example:

    // 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]] });
  • 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.

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.