Skip to content

Commit

Permalink
Update breaking changes for next stable release (flutter#10131)
Browse files Browse the repository at this point in the history
  • Loading branch information
parlough authored and atsansone committed Feb 15, 2024
1 parent 232044a commit 952fdc0
Show file tree
Hide file tree
Showing 10 changed files with 114 additions and 97 deletions.
2 changes: 1 addition & 1 deletion src/release/breaking-changes/3-16-deprecations.md
Original file line number Diff line number Diff line change
Expand Up @@ -273,4 +273,4 @@ be announced again when it comes.

## Timeline

In stable release: TBD
In stable release: 3.19.0
11 changes: 8 additions & 3 deletions src/release/breaking-changes/flutter-gradle-plugin-apply.md
Original file line number Diff line number Diff line change
@@ -1,8 +1,8 @@
---
title: Deprecated imperative apply of Flutter's Gradle plugins
description: >
How to migrate your Android app's Gradle build files to the new, declarative
format.
How to migrate your Flutter app's Android Gradle build files to the
new, declarative format.
---

## Summary
Expand All @@ -11,7 +11,7 @@ To build a Flutter app for Android, Flutter's Gradle plugins must be applied.
Historically, this was done imperatively with Gradle's
[legacy, imperative apply script method][].

In Flutter 3.16, support has been added for applying these plugins with Gradle's
In Flutter 3.16, support was added for applying these plugins with Gradle's
[declarative plugins {} block][] (also called the Plugin DSL) and it is
now the recommended approach. Since Flutter 3.16, projects generated with
`flutter create` use the Plugin DSL to apply Gradle plugins. Projects created
Expand Down Expand Up @@ -195,6 +195,11 @@ and the following lines to `<app-src>/android/app/build.gradle`:
}
```

## Timeline

Support in stable release: 3.16.0
Recommended in stable release: 3.19.0

## References

Gradle build files generated by `flutter create` differ across Flutter versions.
Expand Down
13 changes: 7 additions & 6 deletions src/release/breaking-changes/flutter-memory-allocations.md
Original file line number Diff line number Diff line change
@@ -1,15 +1,15 @@
---
title: Deprecate MemoryAllocations in favor of FlutterMemoryAllocations
description: >-
MemoryAllocations is renamed to FlutterMemoryAllocations
MemoryAllocations is renamed to FlutterMemoryAllocations.
---

## Summary

Disposables in pure Dart projects cannot use MemoryAllocations in Flutter.
So, to be leak trackable they need a Dart-only class.
MemoryAllocations in Flutter is renamed to release the name
for Dart-only class.
Disposables in pure Dart projects can't use `MemoryAllocations` in Flutter.
So, to be leak-trackable they need a Dart-only class.
`MemoryAllocations` in Flutter is renamed to make the name
available to a non-Flutter, Dart project.

## Migration guide

Expand Down Expand Up @@ -39,7 +39,8 @@ if (kFlutterMemoryAllocationsEnabled) {

## Timeline

Landed in version: 3.19.0-2.0.pre
Landed in version: 3.19.0-2.0.pre<br>
Landed in stable: Not yet

## References

Expand Down
28 changes: 16 additions & 12 deletions src/release/breaking-changes/index.md
Original file line number Diff line number Diff line change
Expand Up @@ -31,24 +31,28 @@ release, and listed in alphabetical order:

### Not yet released to stable

* [Migrate RawKeyEvent/RawKeyboard system to KeyEvent/HardwareKeyboard system][]
* [Rename `MemoryAllocations` to `FlutterMemoryAllocations`][]
* [Deprecate `TextField.canRequestFocus`][]
* [Accessibility traversal order of tooltip changed][]
* [Default multitouch scrolling][]
* [Deprecate imperative apply of Flutter's Gradle plugins][]
* [Rename MemoryAllocations to FlutterMemoryAllocations][]
* [Deprecated API removed after v3.16][]
* [Nullable PageView.controller][]

[Migrate RawKeyEvent/RawKeyboard system to KeyEvent/HardwareKeyboard system]: {{site.url}}/release/breaking-changes/key-event-migration
[Rename `MemoryAllocations` to `FlutterMemoryAllocations`]: {{site.url}}/release/breaking-changes/flutter-memory-allocations
[Deprecate `TextField.canRequestFocus`]: {{site.url}}/release/breaking-changes/can-request-focus
[Accessibility traversal order of tooltip changed]: {{site.url}}/release/breaking-changes/tooltip-semantics-order
[Default multitouch scrolling]: {{site.url}}/release/breaking-changes/multi-touch-scrolling
[Deprecate imperative apply of Flutter's Gradle plugins]: {{site.url}}/release/breaking-changes/flutter-gradle-plugin-apply
[Rename MemoryAllocations to FlutterMemoryAllocations]: {{site.url}}/release/breaking-changes/flutter-memory-allocations
[Deprecated API removed after v3.16]: {{site.url}}/release/breaking-changes/3-16-deprecations
[Nullable PageView.controller]: {{site.url}}/release/breaking-changes/pageview-controller

### Released in Flutter 3.19

* [Deprecated API removed after v3.16][]
* [Migrate RawKeyEvent/RawKeyboard system to KeyEvent/HardwareKeyboard system][]
* [Deprecate imperative apply of Flutter's Gradle plugins][]
* [Default multitouch scrolling][]
* [Accessibility traversal order of tooltip changed][]

[Deprecated API removed after v3.16]: {{site.url}}/release/breaking-changes/3-16-deprecations
[Migrate RawKeyEvent/RawKeyboard system to KeyEvent/HardwareKeyboard system]: {{site.url}}/release/breaking-changes/key-event-migration
[Deprecate imperative apply of Flutter's Gradle plugins]: {{site.url}}/release/breaking-changes/flutter-gradle-plugin-apply
[Default multitouch scrolling]: {{site.url}}/release/breaking-changes/multi-touch-scrolling
[Accessibility traversal order of tooltip changed]: {{site.url}}/release/breaking-changes/tooltip-semantics-order

### Released in Flutter 3.16

* [Migrating to Material 3][]
Expand Down
108 changes: 54 additions & 54 deletions src/release/breaking-changes/key-event-migration.md
Original file line number Diff line number Diff line change
Expand Up @@ -221,7 +221,7 @@ Check both `KeyDownEvent` and `KeyRepeatEvent`.
## Timeline

Landed in version: 3.18.0-7.0.pre<br>
In stable release: not yet (Not in 3.18)
In stable release: 3.19.0

## References

Expand All @@ -248,58 +248,58 @@ Relevant PRs:

* [Deprecate RawKeyEvent, et al. and exempt uses in the framework.][]

[`debugKeyEventSimulatorTransitModeOverride`]: {{site.main-api}}/flutter/services/debugKeyEventSimulatorTransitModeOverride-class.html
[`Focus.onKey`]: {{site.main-api}}/flutter/services/Focus/onKey.html
[`FocusNode.attach`]: {{site.main-api}}/flutter/services/FocusNode/attach.html
[`FocusNode.onKey`]: {{site.main-api}}/flutter/services/FocusNode/onKey.html
[`FocusOnKeyCallback`]: {{site.main-api}}/flutter/services/FocusOnKeyCallback-class.html
[`FocusScope.onKey`]: {{site.main-api}}/flutter/services/FocusScope/onKey.html
[`FocusScopeNode.onKey`]: {{site.main-api}}/flutter/services/FocusScopeNode/onKey.html
[`GLFWKeyHelper`]: {{site.main-api}}/flutter/services/GLFWKeyHelper-class.html
[`GtkKeyHelper`]: {{site.main-api}}/flutter/services/GtkKeyHelper-class.html
[`KeyboardSide`]: {{site.main-api}}/flutter/services/KeyboardSide-class.html
[`KeyDataTransitMode`]: {{site.main-api}}/flutter/services/KeyDataTransitMode-class.html
[`KeyEventManager`]: {{site.main-api}}/flutter/services/KeyEventManager-class.html
[`KeyHelper`]: {{site.main-api}}/flutter/services/KeyHelper-class.html
[`KeyMessage`]: {{site.main-api}}/flutter/services/KeyMessage-class.html
[`KeyMessageHandler`]: {{site.main-api}}/flutter/services/KeyMessageHandler-class.html
[`KeySimulatorTransitModeVariant`]: {{site.main-api}}/flutter/services/KeySimulatorTransitModeVariant-class.html
[`ModifierKey`]: {{site.main-api}}/flutter/services/ModifierKey-class.html
[`RawKeyboard`]: {{site.main-api}}/flutter/services/RawKeyboard-class.html
[`RawKeyboardListener`]: {{site.main-api}}/flutter/services/RawKeyboardListener-class.html
[`RawKeyDownEvent`]: {{site.main-api}}/flutter/services/RawKeyDownEvent-class.html
[`RawKeyEvent`]: {{site.main-api}}/flutter/services/RawKeyEvent-class.html
[`RawKeyEventData`]: {{site.main-api}}/flutter/services/RawKeyEventData-class.html
[`RawKeyEventDataAndroid`]: {{site.main-api}}/flutter/services/RawKeyEventDataAndroid-class.html
[`RawKeyEventDataFuchsia`]: {{site.main-api}}/flutter/services/RawKeyEventDataFuchsia-class.html
[`RawKeyEventDataIos`]: {{site.main-api}}/flutter/services/RawKeyEventDataIos-class.html
[`RawKeyEventDataLinux`]: {{site.main-api}}/flutter/services/RawKeyEventDataLinux-class.html
[`RawKeyEventDataMacOs`]: {{site.main-api}}/flutter/services/RawKeyEventDataMacOs-class.html
[`RawKeyEventDataWeb`]: {{site.main-api}}/flutter/services/RawKeyEventDataWeb-class.html
[`RawKeyEventDataWindows`]: {{site.main-api}}/flutter/services/RawKeyEventDataWindows-class.html
[`RawKeyEventHandler`]: {{site.main-api}}/flutter/services/RawKeyEventHandler-class.html
[`RawKeyUpEvent`]: {{site.main-api}}/flutter/services/RawKeyUpEvent-class.html
[`ServicesBinding.keyEventManager`]: {{site.main-api}}/flutter/services/ServicesBinding/keyEventManager.html
[`Focus.onKeyEvent`]: {{site.main-api}}/flutter/services/Focus/onKeyEvent.html
[`FocusNode.onKeyEvent`]: {{site.main-api}}/flutter/services/FocusNode/onKeyEvent.html
[`FocusOnKeyEventCallback`]: {{site.main-api}}/flutter/services/FocusOnKeyEventCallback-class.html
[`FocusScope.onKeyEvent`]: {{site.main-api}}/flutter/services/FocusScope/onKeyEvent.html
[`FocusScopeNode.onKeyEvent`]: {{site.main-api}}/flutter/services/FocusScopeNode/onKeyEvent.html
[`HardwareKeyboard`]: {{site.main-api}}/flutter/services/HardwareKeyboard-class.html
[`HardwareKeyboard.isLogicalKeyPressed`]: {{site.main-api}}/flutter/services/HardwareKeyboard/isLogicalKeyPressed.html
[`KeyboardListener`]: {{site.main-api}}/flutter/services/KeyboardListener-class.html
[`KeyDownEvent`]: {{site.main-api}}/flutter/services/KeyDownEvent-class.html
[`KeyRepeatEvent`]: {{site.main-api}}/flutter/services/KeyRepeatEvent-class.html
[`KeyEvent`]: {{site.main-api}}/flutter/services/KeyEvent-class.html
[`KeyEventHandler`]: {{site.main-api}}/flutter/services/KeyEventHandler-class.html
[`KeyUpEvent`]: {{site.main-api}}/flutter/services/KeyUpEvent-class.html
[`RawKeyEvent.isKeyPressed`]: {{site.main-api}}/flutter/services/RawKeyEvent/isKeyPressed.html
[`RawKeyEvent.isControlPressed`]: {{site.main-api}}/flutter/services/RawKeyEvent/isControlPressed.html
[`RawKeyEvent.isShiftPressed`]: {{site.main-api}}/flutter/services/RawKeyEvent/isShiftPressed.html
[`RawKeyEvent.isAltPressed`]: {{site.main-api}}/flutter/services/RawKeyEvent/isAltPressed.html
[`RawKeyEvent.isMetaPressed`]: {{site.main-api}}/flutter/services/RawKeyEvent/isMetaPressed.html
[`RawKeyEvent.repeat`]: {{site.main-api}}/flutter/services/RawKeyEvent/repeat.html
[`RawKeyEventDataAndroid.eventSource`]: {{site.main-api}}/flutter/services/RawKeyEventDataAndroid/eventSource.html
[`KeyEvent.deviceType`]: {{site.main-api}}/flutter/services/KeyEvent/deviceType.html
[`debugKeyEventSimulatorTransitModeOverride`]: {{site.api}}/flutter/services/debugKeyEventSimulatorTransitModeOverride-class.html
[`Focus.onKey`]: {{site.api}}/flutter/services/Focus/onKey.html
[`FocusNode.attach`]: {{site.api}}/flutter/services/FocusNode/attach.html
[`FocusNode.onKey`]: {{site.api}}/flutter/services/FocusNode/onKey.html
[`FocusOnKeyCallback`]: {{site.api}}/flutter/services/FocusOnKeyCallback-class.html
[`FocusScope.onKey`]: {{site.api}}/flutter/services/FocusScope/onKey.html
[`FocusScopeNode.onKey`]: {{site.api}}/flutter/services/FocusScopeNode/onKey.html
[`GLFWKeyHelper`]: {{site.api}}/flutter/services/GLFWKeyHelper-class.html
[`GtkKeyHelper`]: {{site.api}}/flutter/services/GtkKeyHelper-class.html
[`KeyboardSide`]: {{site.api}}/flutter/services/KeyboardSide-class.html
[`KeyDataTransitMode`]: {{site.api}}/flutter/services/KeyDataTransitMode-class.html
[`KeyEventManager`]: {{site.api}}/flutter/services/KeyEventManager-class.html
[`KeyHelper`]: {{site.api}}/flutter/services/KeyHelper-class.html
[`KeyMessage`]: {{site.api}}/flutter/services/KeyMessage-class.html
[`KeyMessageHandler`]: {{site.api}}/flutter/services/KeyMessageHandler-class.html
[`KeySimulatorTransitModeVariant`]: {{site.api}}/flutter/services/KeySimulatorTransitModeVariant-class.html
[`ModifierKey`]: {{site.api}}/flutter/services/ModifierKey-class.html
[`RawKeyboard`]: {{site.api}}/flutter/services/RawKeyboard-class.html
[`RawKeyboardListener`]: {{site.api}}/flutter/services/RawKeyboardListener-class.html
[`RawKeyDownEvent`]: {{site.api}}/flutter/services/RawKeyDownEvent-class.html
[`RawKeyEvent`]: {{site.api}}/flutter/services/RawKeyEvent-class.html
[`RawKeyEventData`]: {{site.api}}/flutter/services/RawKeyEventData-class.html
[`RawKeyEventDataAndroid`]: {{site.api}}/flutter/services/RawKeyEventDataAndroid-class.html
[`RawKeyEventDataFuchsia`]: {{site.api}}/flutter/services/RawKeyEventDataFuchsia-class.html
[`RawKeyEventDataIos`]: {{site.api}}/flutter/services/RawKeyEventDataIos-class.html
[`RawKeyEventDataLinux`]: {{site.api}}/flutter/services/RawKeyEventDataLinux-class.html
[`RawKeyEventDataMacOs`]: {{site.api}}/flutter/services/RawKeyEventDataMacOs-class.html
[`RawKeyEventDataWeb`]: {{site.api}}/flutter/services/RawKeyEventDataWeb-class.html
[`RawKeyEventDataWindows`]: {{site.api}}/flutter/services/RawKeyEventDataWindows-class.html
[`RawKeyEventHandler`]: {{site.api}}/flutter/services/RawKeyEventHandler-class.html
[`RawKeyUpEvent`]: {{site.api}}/flutter/services/RawKeyUpEvent-class.html
[`ServicesBinding.keyEventManager`]: {{site.api}}/flutter/services/ServicesBinding/keyEventManager.html
[`Focus.onKeyEvent`]: {{site.api}}/flutter/services/Focus/onKeyEvent.html
[`FocusNode.onKeyEvent`]: {{site.api}}/flutter/services/FocusNode/onKeyEvent.html
[`FocusOnKeyEventCallback`]: {{site.api}}/flutter/services/FocusOnKeyEventCallback-class.html
[`FocusScope.onKeyEvent`]: {{site.api}}/flutter/services/FocusScope/onKeyEvent.html
[`FocusScopeNode.onKeyEvent`]: {{site.api}}/flutter/services/FocusScopeNode/onKeyEvent.html
[`HardwareKeyboard`]: {{site.api}}/flutter/services/HardwareKeyboard-class.html
[`HardwareKeyboard.isLogicalKeyPressed`]: {{site.api}}/flutter/services/HardwareKeyboard/isLogicalKeyPressed.html
[`KeyboardListener`]: {{site.api}}/flutter/services/KeyboardListener-class.html
[`KeyDownEvent`]: {{site.api}}/flutter/services/KeyDownEvent-class.html
[`KeyRepeatEvent`]: {{site.api}}/flutter/services/KeyRepeatEvent-class.html
[`KeyEvent`]: {{site.api}}/flutter/services/KeyEvent-class.html
[`KeyEventHandler`]: {{site.api}}/flutter/services/KeyEventHandler-class.html
[`KeyUpEvent`]: {{site.api}}/flutter/services/KeyUpEvent-class.html
[`RawKeyEvent.isKeyPressed`]: {{site.api}}/flutter/services/RawKeyEvent/isKeyPressed.html
[`RawKeyEvent.isControlPressed`]: {{site.api}}/flutter/services/RawKeyEvent/isControlPressed.html
[`RawKeyEvent.isShiftPressed`]: {{site.api}}/flutter/services/RawKeyEvent/isShiftPressed.html
[`RawKeyEvent.isAltPressed`]: {{site.api}}/flutter/services/RawKeyEvent/isAltPressed.html
[`RawKeyEvent.isMetaPressed`]: {{site.api}}/flutter/services/RawKeyEvent/isMetaPressed.html
[`RawKeyEvent.repeat`]: {{site.api}}/flutter/services/RawKeyEvent/repeat.html
[`RawKeyEventDataAndroid.eventSource`]: {{site.api}}/flutter/services/RawKeyEventDataAndroid/eventSource.html
[`KeyEvent.deviceType`]: {{site.api}}/flutter/services/KeyEvent/deviceType.html
[`RawKeyEvent` and `RawKeyboard`, et al should be deprecated and removed (Issue 136419)]: {{site.repo.flutter}}/issues/136419
[Deprecate RawKeyEvent, et al. and exempt uses in the framework.]: {{site.repo.flutter}}/pull/136677
6 changes: 3 additions & 3 deletions src/release/breaking-changes/multi-touch-scrolling.md
Original file line number Diff line number Diff line change
@@ -1,8 +1,8 @@
---
title: Default multitouch scrolling
description: >
ScrollBehaviors will now configure how Scrollables respond to multitouch
gestures.
ScrollBehaviors will now configure how Scrollables respond to
multitouch gestures.
---

## Summary
Expand Down Expand Up @@ -151,7 +151,7 @@ ScrollConfiguration(
## Timeline

Landed in version: 3.18.0-4.0.pre<br>
In stable release: TBD
In stable release: 3.19.0

## References

Expand Down
10 changes: 6 additions & 4 deletions src/release/breaking-changes/pageview-controller.md
Original file line number Diff line number Diff line change
@@ -1,13 +1,14 @@
---
title: Make PageView.controller nullable
description: >-
PageView.controller converted to be nullable.
PageView.controller is now nullable.
---

## Summary

If a controller isn't provided in the constructor, the `controller` member is `null`.
This makes `PageviewController` consistent with other widgets.
If a controller isn't provided in the constructor,
the `controller` member is `null`. This makes
`PageView` and its `controller` property consistent with other widgets.

## Migration guide

Expand All @@ -25,7 +26,8 @@ pageView.controller!.page

## Timeline

Landed in version: 3.19.0
Landed in version: 3.19.0-12.0.pre<br>
In stable release: Not yet

## References

Expand Down
8 changes: 4 additions & 4 deletions src/release/breaking-changes/shortcut-key-event-migration.md
Original file line number Diff line number Diff line change
Expand Up @@ -165,9 +165,9 @@ Relevant PRs:

* [Prepare ShortcutActivator and ShortcutManager to migrate to KeyEvent from RawKeyEvent.][]

[`KeyEvent`]: {{site.main-api}}/flutter/services/KeyEvent-class.html
[`HardwareKeyboard`]: {{site.main-api}}/flutter/services/HardwareKeyboard-class.html
[`ShortcutActivator`]: {{site.main-api}}/flutter/widgets/ShortcutActivator-class.html
[`ShortcutManager`]: {{site.main-api}}/flutter/widgets/ShortcutManager-class.html
[`KeyEvent`]: {{site.api}}/flutter/services/KeyEvent-class.html
[`HardwareKeyboard`]: {{site.api}}/flutter/services/HardwareKeyboard-class.html
[`ShortcutActivator`]: {{site.api}}/flutter/widgets/ShortcutActivator-class.html
[`ShortcutManager`]: {{site.api}}/flutter/widgets/ShortcutManager-class.html
[`RawKeyEvent` and `RawKeyboard`, et al should be deprecated and removed (Issue 136419)]: {{site.repo.flutter}}/issues/136419
[Prepare ShortcutActivator and ShortcutManager to migrate to KeyEvent from RawKeyEvent.]: {{site.repo.flutter}}/pull/136854
22 changes: 12 additions & 10 deletions src/release/breaking-changes/tooltip-semantics-order.md
Original file line number Diff line number Diff line change
Expand Up @@ -7,8 +7,8 @@ description: >-

## Summary

During accessibility focus traversal, `Tooltip.message` is visited immediately
after `Tooltip.child`.
During accessibility focus traversal, `Tooltip.message` is
visited immediately after `Tooltip.child`.

## Background

Expand All @@ -25,9 +25,10 @@ As a result, `Tooltip.message` was not immediately after
## Migration guide

This change moved the tooltip message in the semantics tree.
You may see accessibility test failures if your tests expect a tooltip message to
appear in a specific location in the semantics tree, when it is visible.
Update your failing accessibility tests to adopt the new tooltip semantics order.
You might see accessibility test failures if
your tests expect a tooltip message to appear in a
specific location in the semantics tree, when it is visible.
Update any failing accessibility tests to adopt the new tooltip semantics order.

For example, if you constructed the following widget tree in your test:

Expand Down Expand Up @@ -57,8 +58,8 @@ Directionality(
);
```

When the tooltip message is visible, the corresponding semantics tree before this
change should look like this:
When the tooltip message is visible, the corresponding semantics tree before
this change should look like this:

```dart
SemanticsNode#0
Expand Down Expand Up @@ -90,8 +91,9 @@ SemanticsNode#0
textDirection: ltr
```

After this change, the same widget tree generates a slightly different semantics
tree, as shown below. Node #6 becomes a child of node #3, instead of node #0.
After this change, the same widget tree generates a
slightly different semantics tree, as shown below.
Node #6 becomes a child of node #3, instead of node #0.

```dart
SemanticsNode#0
Expand Down Expand Up @@ -126,7 +128,7 @@ SemanticsNode#0
## Timeline

Landed in version: 3.16.0-11.0.pre<br>
In stable release: not yet
In stable release: 3.19.0

## References

Expand Down
3 changes: 3 additions & 0 deletions src/release/release-notes/index.md
Original file line number Diff line number Diff line change
Expand Up @@ -12,6 +12,8 @@ releases to the stable channel.
[Hotfixes to the Stable Channel][] on the Flutter wiki.
{{site.alert.end}}

* 3.19.0
* [3.19.0 breaking changes & migrations][]
* 3.16.0
* [3.16.0 announcement][]
* [3.16.0 release notes & change log][]
Expand Down Expand Up @@ -73,6 +75,7 @@ releases to the stable channel.
* Earlier
* [Archived release notes][]

[3.19.0 breaking changes & migrations]: {{site.url}}/release/breaking-changes#released-in-flutter-319
[3.16.0 announcement]: {{site.flutter-medium}}/whats-new-in-flutter-3-16-dba6cb1015d1
[3.16.0 release notes & change log]: {{site.url}}/release/release-notes/release-notes-3.16.0
[3.16.0 breaking changes & migrations]: {{site.url}}/release/breaking-changes#released-in-flutter-316
Expand Down

0 comments on commit 952fdc0

Please sign in to comment.