Skip to content

Commit 392c661

Browse files
authored
Update breaking change index for 3.38 (#12625)
1 parent d3066cd commit 392c661

File tree

8 files changed

+88
-68
lines changed

8 files changed

+88
-68
lines changed

site/lib/src/style_hash.dart

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -2,4 +2,4 @@
22
// dart format off
33

44
/// The generated hash of the `main.css` file.
5-
const generatedStylesHash = 'nvTevrLjFn98';
5+
const generatedStylesHash = 'zhB0VEJdy4va';

src/content/release/breaking-changes/deprecate-focusable.md

Lines changed: 19 additions & 16 deletions
Original file line numberDiff line numberDiff line change
@@ -12,36 +12,39 @@ The `SemanticsProperties.focusable` and `SemanticsConfiguration.isFocusable`
1212
parameters were deprecated in favor of the `SemanticsProperties.focused` and
1313
`SemanticsConfiguration.isFocused` parameters.
1414

15-
The `focused` parameter is now nullable. Setting it to `true` or `false`
16-
automatically sets `isFocusable` to `true`, while setting it to `null`
17-
sets `isFocusable` to `false`.
15+
The `focused` parameter is now nullable.
16+
Setting it to `true` or `false` automatically
17+
sets `isFocusable` to `true`, while
18+
setting it to `null` sets `isFocusable` to `false`.
1819

1920
## Context
2021

21-
The `SemanticsConfiguration.isFocusable` property is a boolean that indicates
22-
whether the semantics node can have input focus, and
23-
22+
The `SemanticsConfiguration.isFocusable` property is a boolean that
23+
indicates whether the semantics node can have input focus.
2424
`SemanticsConfiguration.isFocused` is a boolean that indicates if the
2525
semantics node has input focus.
2626

27-
This change also applies to `SemanticsProperties.focusable` and `SemanticsProperties.focused`.
27+
This change also applies to
28+
`SemanticsProperties.focusable` and `SemanticsProperties.focused`.
2829

2930
We deprecated `isFocusable` because its functionality is covered by `isFocused`.
3031
The `isFocused` property is now stored as a tristate flag in the engine,
3132
and this change makes the framework consistent with the engine.
3233

3334
## Description of change
3435

35-
The `SemanticsConfiguration.isFocusable` property is deprecated in
36-
favor of `SemanticsConfiguration.isFocused`. This property is a nullable
37-
boolean; setting it to `true` or `false` automatically sets `isFocusable` to
38-
`true`, and setting it to `null` sets `isFocusable` to `false`.
36+
The `SemanticsConfiguration.isFocusable` property is
37+
deprecated in favor of `SemanticsConfiguration.isFocused`.
38+
This property is a nullable boolean; setting it to `true` or `false`
39+
automatically sets `isFocusable` to `true`, and
40+
setting it to `null` sets `isFocusable` to `false`.
3941

4042
## Migration guide
4143

42-
Replace `SemanticsConfiguration.isFocusable` with `SemanticsConfiguration.isFocused`.
44+
Replace `SemanticsConfiguration.isFocusable` with
45+
`SemanticsConfiguration.isFocused`.
4346

44-
### Example 1: setting `isFocused` to `true` automatically sets `isFocusable` to `true`.
47+
### Example 1: Setting `isFocused` to `true` automatically sets `isFocusable` to `true`
4548

4649
Code before migration:
4750

@@ -60,7 +63,7 @@ void describeSemanticsConfiguration(SemanticsConfiguration config) {
6063
}
6164
```
6265

63-
### Example 2: setting `isFocused` to null automatically sets `isFocusable` to `false`.
66+
### Example 2: Setting `isFocused` to `null` automatically sets `isFocusable` to `false`
6467

6568
Code before migration:
6669

@@ -82,8 +85,8 @@ void describeSemanticsConfiguration(SemanticsConfiguration config) {
8285

8386
## Timeline
8487

85-
Landed in version: 3.37.0-0.0.pre
86-
In stable release: Not yet
88+
Landed in version: 3.37.0-0.0.pre<br>
89+
In stable release: 3.38
8790

8891

8992
## References

src/content/release/breaking-changes/deprecate-overlay-portal-targets-root.md

Lines changed: 11 additions & 9 deletions
Original file line numberDiff line numberDiff line change
@@ -13,18 +13,20 @@ replaced with `overlayLocation`.
1313

1414
## Context
1515

16-
A parameter `overlayLocation` was added to the OverlayPortal default constructor to
17-
control where the overlay child renders. As the result, the constructor
18-
`OverlayPortal.targetsRootOverlay` was no longer useful.
16+
A `overlayLocation` parameter was added to
17+
the `OverlayPortal` default constructor to
18+
control where the overlay child renders.
19+
As a result, the `OverlayPortal.targetsRootOverlay` constructor is
20+
no longer useful.
1921

2022
## Description of change
2123

22-
The `OverlayPortal.targetsRootOverlay` was deprecated.
24+
The `OverlayPortal.targetsRootOverlay` constructor is deprecated.
2325

2426
## Migration guide
2527

26-
If you are using `OverlayPortal.targetsRootOverlay`, you can use `OverlayPortal` with
27-
`overlayLocation` instead.
28+
If you are using `OverlayPortal.targetsRootOverlay`,
29+
use `OverlayPortal` with `overlayLocation` instead.
2830

2931
### Case 1: trivial case
3032

@@ -42,7 +44,7 @@ Widget build(BuildContext context) {
4244

4345
Code after migration:
4446

45-
```dart
47+
```dart highlightLines=3
4648
Widget build(BuildContext context) {
4749
return OverlayPortal(
4850
overlayLocation: OverlayChildLocation.rootOverlay,
@@ -55,8 +57,8 @@ Widget build(BuildContext context) {
5557

5658
## Timeline
5759

58-
Landed in version: 3.35.0-0.0.pre<br>
59-
In stable release: TBD
60+
Landed in version: 3.38.0-0.1.pre<br>
61+
In stable release: 3.38
6062

6163
## References
6264

src/content/release/breaking-changes/font-weight-variation.md

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -56,7 +56,7 @@ to restore the font's default weight, set `fontWeight` to `FontWeight.normal`.
5656

5757
## Timeline
5858

59-
Landed in version: 3.38.0-0.0.pre
59+
Landed in version: 3.39.0-0.0.pre<br>
6060
In stable release: Not yet
6161

6262
## References

src/content/release/breaking-changes/index.md

Lines changed: 15 additions & 10 deletions
Original file line numberDiff line numberDiff line change
@@ -36,25 +36,30 @@ They're sorted by release and listed in alphabetical order:
3636

3737
### Not yet released to stable
3838

39+
* [`FontWeight` also controls the weight attribute of variable fonts][]
40+
* [UISceneDelegate adoption][]
41+
* [`$FLUTTER_ROOT/version` replaced by `$FLUTTER_ROOT/bin/cache/flutter.version.json`][]
42+
* [Stop generating `AssetManifest.json`][]
43+
* [Deprecate `TextField.canRequestFocus`][]
44+
45+
[`FontWeight` also controls the weight attribute of variable fonts]: /release/breaking-changes/font-weight-variation
46+
[UISceneDelegate adoption]: /release/breaking-changes/uiscenedelegate
47+
[Stop generating `AssetManifest.json`]: /release/breaking-changes/asset-manifest-dot-json
48+
[`$FLUTTER_ROOT/version` replaced by `$FLUTTER_ROOT/bin/cache/flutter.version.json`]: /release/breaking-changes/flutter-root-version-file
49+
[Deprecate `TextField.canRequestFocus`]: /release/breaking-changes/can-request-focus
50+
51+
<a id="released-in-flutter-338" aria-hidden="true"></a>
52+
### Released in Flutter 3.38
53+
3954
* [`CupertinoDynamicColor` wide gamut support][]
4055
* [Deprecate `OverlayPortal.targetsRootOverlay`][]
4156
* [Deprecate `SemanticsProperties.focusable` and `SemanticsConfiguration.isFocusable`][]
42-
* [Deprecate `TextField.canRequestFocus`][]
43-
* [`$FLUTTER_ROOT/version` replaced by `$FLUTTER_ROOT/bin/cache/flutter.version.json`][]
44-
* [`FontWeight` also controls the weight attribute of variable fonts][]
4557
* [SnackBar with action no longer auto-dismisses][]
46-
* [Stop generating `AssetManifest.json`][]
47-
* [UISceneDelegate adoption][]
4858

4959
[`CupertinoDynamicColor` wide gamut support]: /release/breaking-changes/wide-gamut-cupertino-dynamic-color
5060
[Deprecate `OverlayPortal.targetsRootOverlay`]: /release/breaking-changes/deprecate-overlay-portal-targets-root
5161
[Deprecate `SemanticsProperties.focusable` and `SemanticsConfiguration.isFocusable`]: /release/breaking-changes/deprecate-focusable
52-
[Deprecate `TextField.canRequestFocus`]: /release/breaking-changes/can-request-focus
53-
[`$FLUTTER_ROOT/version` replaced by `$FLUTTER_ROOT/bin/cache/flutter.version.json`]: /release/breaking-changes/flutter-root-version-file
54-
[`FontWeight` also controls the weight attribute of variable fonts]: /release/breaking-changes/font-weight-variation
5562
[SnackBar with action no longer auto-dismisses]: /release/breaking-changes/snackbar-with-action-behavior-update
56-
[Stop generating `AssetManifest.json`]: /release/breaking-changes/asset-manifest-dot-json
57-
[UISceneDelegate adoption]: /release/breaking-changes/uiscenedelegate
5863

5964
<a id="released-in-flutter-335" aria-hidden="true"></a>
6065
### Released in Flutter 3.35

src/content/release/breaking-changes/snackbar-with-action-behavior-update.md

Lines changed: 24 additions & 19 deletions
Original file line numberDiff line numberDiff line change
@@ -9,37 +9,42 @@ description: >-
99

1010
## Summary
1111

12-
The default behavior of a [`SnackBar`][] with an action has changed. Previously, a
13-
`SnackBar` with an action would not auto-dismiss if talkback was enabled.
14-
Now, all `SnackBar`s with an action default to a non-dismissible state until the
15-
user interacts with the action button.
12+
The default behavior of a [`SnackBar`][] with an action has changed.
13+
Previously, a `SnackBar` with an action wouldn't
14+
auto-dismiss if talkback was enabled.
15+
Now, all `SnackBar` widgets with an action default to
16+
a non-dismissible state until the user interacts with the action button.
1617

1718
## Context
1819

19-
A `SnackBar` with an action button is now treated as a more persistent
20-
notification that requires user interaction. This change improves accessibility
21-
and user experience by ensuring that critical notifications remain on the screen
22-
until they are acknowledged.
20+
A `SnackBar` with an action button is now treated as
21+
a more persistent notification that requires user interaction.
22+
This change improves accessibility and user experience by ensuring that
23+
critical notifications remain on the screen until they are acknowledged.
2324

2425
## Description of change
2526

26-
This change aligns with the Material 3 design specifications for `SnackBar`s:
27+
This change aligns with the Material 3 design specification for
28+
the `SnackBar` component:
29+
2730
* Old behavior: A `SnackBar` with an action button would auto-dismiss after a
2831
duration unless talkback was enabled.
2932
* New behavior: A `SnackBar` with an action button won't auto-dismiss;
30-
it remains on screen until dismissed by the user.
33+
it remains on screen until dismissed by the user.
3134

3235
To override this behavior, an optional `persist` property has
33-
been added to `SnackBar`. When `persist` is true, the `SnackBar` won't auto-dismiss
34-
and remains on screen until manually dismissed by the user. When false, the
35-
`SnackBar` auto-dismisses after its standard duration, regardless of the
36-
presence of an action. When null, the `SnackBar` follows the default
37-
behavior, which won't auto-dismiss if an action is present.
36+
been added to `SnackBar`.
37+
When `persist` is `true`, the `SnackBar` won't auto-dismiss and
38+
remains on screen until manually dismissed by the user.
39+
When `false`, the `SnackBar` auto-dismisses after its standard duration,
40+
regardless of the presence of an action.
41+
When `null`, the `SnackBar` follows the default behavior,
42+
which won't auto-dismiss if an action is present.
3843

3944
## Migration guide
4045

4146
To restore the old auto-dismiss behavior for a SnackBar with an action, set
42-
`persist` to false.
47+
`persist` to `false`.
4348

4449
Code before migration:
4550

@@ -59,7 +64,7 @@ ScaffoldMessenger.of(context).showSnackBar(
5964

6065
Code after migration:
6166

62-
```dart
67+
```dart highlightLines=4
6368
ScaffoldMessenger.of(context).showSnackBar(
6469
SnackBar(
6570
content: const Text('This is a snackbar with an action.'),
@@ -76,8 +81,8 @@ ScaffoldMessenger.of(context).showSnackBar(
7681

7782
## Timeline
7883

79-
Landed in version: TBD
80-
In stable release: TBD
84+
Landed in version: 3.37.0-0.0.pre
85+
In stable release: 3.38
8186

8287
## References
8388

src/content/release/breaking-changes/wide-gamut-cupertino-dynamic-color.md

Lines changed: 12 additions & 12 deletions
Original file line numberDiff line numberDiff line change
@@ -15,10 +15,10 @@ added in [Flutter 3.27][Migration guide for wide gamut Color].
1515

1616
## Context
1717

18-
The `Color` class was updated to support wide gamut color spaces, but some
19-
corresponding deprecations were not initially applied to
20-
`CupertinoDynamicColor` due to its implementation rather than due to
21-
the extension of `Color`.
18+
The `Color` class was updated to support wide gamut color spaces,
19+
but some corresponding deprecations were not initially applied to
20+
`CupertinoDynamicColor` due to its implementation rather than
21+
due to the extension of `Color`.
2222

2323
## Description of change
2424

@@ -55,12 +55,12 @@ final intBlue = _floatToInt8(color.b);
5555

5656
### Opacity
5757

58-
Before Flutter 3.27, `Color` had the concept of "opacity", which showed up in the
59-
methods `opacity` and `withOpacity()`. Since Flutter 3.27, alpha is stored as a
60-
floating-point value. Using `.a` and `.withValues()` will give the full
61-
expression of a floating-point value and won't be quantized (restricted to a
62-
limited range). That means "alpha" expresses the intent of "opacity" more
63-
correctly.
58+
Before Flutter 3.27, `Color` had the concept of "opacity", which
59+
showed up in the methods `opacity` and `withOpacity()`.
60+
Since Flutter 3.27, the alpha channel has been stored as a floating-point value.
61+
Using `.a` and `.withValues()` will give the full expression of
62+
a floating-point value and won't be quantized (restricted to a limited range).
63+
That means "alpha" expresses the intent of "opacity" more correctly.
6464

6565
#### Migrate `opacity`
6666

@@ -85,8 +85,8 @@ final x = color.withValues(alpha: 0.5);
8585

8686
## Timeline
8787

88-
Landed in version: Not yet<br>
89-
Stable release: Not yet
88+
Landed in version: 3.36.0-0.1.pre<br>
89+
Stable release: 3.38
9090

9191
## References
9292

src/content/release/release-notes/index.md

Lines changed: 5 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -12,6 +12,10 @@ For information about bug-fix releases,
1212
check out the Flutter [CHANGELOG][].
1313
:::
1414

15+
* 3.38.0 _(Tentative)_
16+
{% comment %} * [3.38.0 announcement][] {% endcomment %}
17+
{% comment %} * [3.38.0 release notes & change log][] {% endcomment %}
18+
* [3.38.0 breaking changes & migrations][]
1519
* 3.35.0
1620
* [3.35.0 announcement][]
1721
* [3.35.0 release notes & change log][]
@@ -101,6 +105,7 @@ check out the Flutter [CHANGELOG][].
101105
* Earlier
102106
* [Archived release notes][]
103107

108+
[3.38.0 breaking changes & migrations]: /release/breaking-changes#released-in-flutter-3-38
104109
[3.35.0 announcement]: {{site.flutter-blog}}/whats-new-in-flutter-3-35-c58ef72e3766
105110
[3.35.0 release notes & change log]: /release/release-notes/release-notes-3.35.0
106111
[3.35.0 breaking changes & migrations]: /release/breaking-changes#released-in-flutter-3-35

0 commit comments

Comments
 (0)