Skip to content
Boring Doc

Version Comparison Studio

Choose two real stable releases. Boring Doc lists every indexed change between them with its evidence, impact and migration instructions, and can fetch the verified source diff from GitHub.

Categories
Platform
Explain

2.2.3 → 2.5.3Jul 1, 2021 → Oct 15, 2021 · 4 releases in range

Changes in range
21
Breaking / removed
9
8 with migration guides
Deprecations
1
plan before they are removed
Official evidence
21
10 official migration guide, 11 official changelog

What changed?

21 indexed changes across 4 versions: 8 breaking change, 1 removed, 1 deprecated api, 11 bug fix.

Will this affect my application?

9 high-impact items. Start with: Default drag scrolling devices; Change the enterText method to move the caret to the end of the input text; GestureRecognizer cleanup; ….

What action should I take?

Read the 8 official migration guides first, apply `dart fix` where available, then upgrade and run your test suite. Deprecations can be scheduled; removals cannot.

How do I migrate safely?

Prefer stepping through stable series sequentially; each breaking-change page has a checklist, before/after code and the official guide. Verify with `flutter analyze`, `flutter test` and a profile-mode run on each target platform.

What this comparison covers
  • Release-note items are indexed for the most recent series only. For 2.5 this comparison shows official breaking-change guides and hotfix notes.
  • Release-note items are classified from PR titles (heuristic); breaking-change guides are classified from the official index.
  1. 2.5.0
    Sep 8, 2021
    10 changes
  2. 2.5.1
    Sep 17, 2021
    5 changes
  3. 2.5.2
    Sep 30, 2021
    3 changes
  4. 2.5.3
    Oct 15, 2021
    3 changes
Verified source diff1849 commits · 300 files · +14785 / −2447GitHub API truncated (250 commits / 300 files max)Full diff on GitHub

A source diff proves code changed; it does not by itself show that a public API is breaking. Use it to corroborate the announcements above.

dev/infra 281other 12tooling 7
Commits (250)
  • 3d47dd8Roll Engine from f0325b6a3d6d to 19f853d5a733 (14 revisions) (#86725)
  • 4ab29deCancel DraggableScrollableSheet ballistic animation if a new activity begins (#86614)
  • d8cdabainit (#82348)
  • f3d8562Roll Engine from 19f853d5a733 to 9b270621e479 (8 revisions) (#86743)
  • b0e51dbFixes for upcoming changes to avoid_classes_with_only_static_members (#86744)
  • 5acf7e9Manually close the tree for issue #86754 (#86755)
  • b6419e8Revert "Manually close the tree for issue #86754 (#86755)" (#86803)
  • f568d92[gen_l10n] Support plurals and selects inside string (#86167)
  • 50ee8d8Roll Engine from 9b270621e479 to 224fa96049e1 (14 revisions) (#86768)
  • cf3d940Reland: Make LiveTestWidgetsFlutterBinding work with setSurfaceSize and live tests (#86739)
  • 0a8c03dShow warning when an app or plugin uses the V1 Android embedding (#86750)
  • 8d47505Roll Engine from 224fa96049e1 to f64ea172d52a (4 revisions) (#86805)
  • c2f3cc9Roll Engine from f64ea172d52a to ff7b6e8ea9bb (5 revisions) (#86813)
  • b311f0cFix driver test to run locally. (#86816)
  • 883cdfbRemove unused flutter_gallery_instrumentation_test (#86812)
  • f50e231Remove unused build_mode_test (#86808)
  • 24ad608Revert "Reland: Make LiveTestWidgetsFlutterBinding work with setSurfaceSize and live tests (#86739)" (#86823)
  • b175561Roll Engine from ff7b6e8ea9bb to 0c943571acc5 (4 revisions) (#86818)
  • becd5ecRemove unused tiles_scroll_perf_iphonexs__timeline_summary (#86822)
  • c2c920aRoll Engine from 0c943571acc5 to 9970b947935d (4 revisions) (#86825)
  • ae851a7Remove obsolete plugin_test_win (#86826)
  • b0faa05Remove unused flutter_run_test (#86828)
  • 70ee176Remove unused web_incremental_test (#86829)
  • 0073b8c5475b4960 Roll Skia from ac747ca18f46 to 7a0d3c3f1219 (2 revisions) (flutter/engine#27633) (#86831)
  • 4fa63d02c9000e28 Roll Skia from 7a0d3c3f1219 to 4d5708c46464 (1 revision) (flutter/engine#27635) (#86835)
  • af200d9Remove obsolete textfield_perf test (#86827)
  • 84c3b56Update dwds (and other packages) (#86832)
  • 7f26dbe[flutter] remove elevation checker (#86837)
  • ea4589f269082c33 Roll Skia from 4d5708c46464 to 5e332c8afc4d (1 revision) (flutter/engine#27637) (#86843)
  • c2f09e00507a3793 Roll Skia from 5e332c8afc4d to e3f2a63db7a8 (1 revision) (flutter/engine#27638) (#86849)
  • 87eddcbd6c05fe88 Roll Skia from e3f2a63db7a8 to bc6d93397f9c (1 revision) (flutter/engine#27640) (#86853)
  • a321515Make frame_number tests as bringup tests (#86870)
  • 10e53e9Skip "newly added code executes during hot restart - canvaskit" (#86885)
  • 751262cRoll Engine from d6c05fe8847a to 6699f74f04f3 (5 revisions) (#86876)
  • fd3e03cRoll Engine from 6699f74f04f3 to a6c4cdd0ff99 (2 revisions) (#86893)
  • eb62bceAdded 'exclude' parameter to 'testWidgets()'. (#86397)
  • 81aeb33Increase Flutter framework minimum iOS version to 9.0 (#86840)
  • fdb80f9update packages to the latest (#86880)
  • 03de616Update codegen_integration_test name & ownership (#86889)
  • 93b358ffix cast error in codesign sub-command (#86890)
  • 9492e13Reland [flutter_tools] show only supported sub commands (#86153)
  • def18c7Roll Engine from a6c4cdd0ff99 to 53a3aef5aabc (2 revisions) (#86898)
  • bf132da[gen_l10n] correct variable name when the placeholder requiresFormatting (#86842)
  • 3823e011402e4387 Roll Skia from 8e51bad14f7f to ad858e76e339 (3 revisions) (flutter/engine#27654) (#86903)
  • b81165drefactor the widget rebuild service protocol event format (#86896)
  • 5671a97Scale selection handles for rich text on iOS (#85789)
  • 2134ee8Add entries in ci for `plugin_dependencies_test` and `gradle_java8_compile_test` (#86904)
  • 6d8ab06Roll Engine from 1402e4387154 to fbbb3b3f7b6a (3 revisions) (#86907)
  • 60a072bAdded Checkbox support for MaterialStateBorderSide (#86910)
  • 2dc11a8Close the exit port used by the compute isolate utility function (#86591)
  • 20d3f6fRoll Engine from fbbb3b3f7b6a to 39f9a27ef572 (2 revisions) (#86913)
  • 9314654Roll Engine from 39f9a27ef572 to deee99578395 (9 revisions) (#86953)
  • aeaadc5Remove default expectation for UserTag (#86877)
  • 930e5c2392974077 Roll Skia from 747c32192285 to 885482935157 (1 revision) (flutter/engine#27667) (#86954)
  • 8fcace1Migrate devicelab tests and test runners to null safety. (#85999)
  • 6881fcaRespect plugin excluded iOS architectures (#86905)
  • 403e92bRoll Engine from 3929740772a5 to 288983cea003 (3 revisions) (#86961)
  • f673c5cRemove obsolete codegen_integration tests (#86962)
  • aa89a6eRoll Engine from 288983cea003 to 9394c9702053 (2 revisions) (#86967)
  • e7a9adeRemove AndroidX workarounds (#86911)
  • a490289Roll Engine from 9394c9702053 to 522a8e298d68 (4 revisions) (#86969)
  • f802cd677710c5e8 Windows: Implement GetPreferredLanguages for UWP and support l18n (flutter/engine#27311) (#86976)
  • 5885a6491ce888ac Roll Dart SDK from e1e2ab3a7acb to 344338e1b540 (1 revision) (flutter/engine#27681) (#86977)
  • 41497f9Roll Engine from 91ce888ac819 to 4a1bc7329e71 (2 revisions) (#86980)
  • 547847005884794d Roll Dart SDK from 7fbb06c714b1 to 5938b787c27d (1 revision) (flutter/engine#27686) (#86991)
  • ff49d35420fa3a18 Roll Skia from feb459a1fb51 to 9304aa532594 (1 revision) (flutter/engine#27688) (#86994)
  • 184e587Roll Engine from 420fa3a18fd4 to a877f6fed68e (5 revisions) (#87035)
  • 90b8a54Only stop search for upstream character if we hit a newline (#86960)
  • 46933f6add devtools_profile_start_test (#86973)
  • ccc72faMarks Mac_android integration_ui_frame_number to be unflaky (#87049)
  • db0b249Add label widget parameter to InputDecoration (#86810)
  • 06a7b9dMarks Mac_android microbenchmarks to be unflaky (#87050)
  • 0e7e7bcMarks Mac_ios flutter_gallery_ios_sksl_warmup__transition_perf to be unflaky (#87051)
  • 2dc9edfMarks Mac_ios cubic_bezier_perf_ios_sksl_warmup__timeline_summary to be unflaky (#87052)
  • ef9208fMarks Mac_ios integration_ui_ios_frame_number to be unflaky (#87053)
  • 019f033Roll Engine from a877f6fed68e to 00693c565de1 (2 revisions) (#87055)
  • 5f792baKeyboard events (#83752)
  • 152c2edSkip test audit for animation tests. (#87063)
  • a8fdec3Roll Engine from 00693c565de1 to dd149fee9749 (4 revisions) (#87068)
  • cf4ba2fMarks Linux gradle_java8_compile_test to be unflaky (#87045)
  • 57224f8Fix analysis script to run from anywhere (#86683)
  • c4cf6f1Expose minThumbLength, crossAxisMargin, and minOverscrollLength on RawScrollbar (#85338)
  • 781c359RawKeyEventData classes support diagnostic and equality (#86679)
  • 4873f66Roll Engine from dd149fee9749 to e6d6f2d9187d (4 revisions) (#87074)
  • 37a2086350534d24 Handle MaskFilter with 0 sigma (flutter/engine#27710) (#87077)
  • 1f1c275Roll Engine from 350534d24866 to 717d55cdd42e (3 revisions) (#87081)
  • 738ce43Randomize tests, exclude tests that fail with randomization. (#86793)
  • 83a215eAllow for customizing and theming of extended FAB content padding (#87062)
  • 20c6d50Roll Engine from 717d55cdd42e to 6fec4a07eb60 (2 revisions) (#87110)
  • f8d261553b6d6763 Roll Skia from 6cce9615a0e1 to e33845317bf2 (2 revisions) (flutter/engine#27725) (#87115)
  • ea1182eWIP - Reland "Override MediaQuery for WidgetsApp (#81295)" (#85298)
  • a9fcfd1Update the call to analyze the plugins repo (#87121)
  • 5f65fbeMarks Linux plugin_dependencies_test to be unflaky (#87046)
  • e886f30Marks Windows plugin_dependencies_test to be unflaky (#87048)
  • 889ab83Roll Engine from 53b6d67639bf to 66ae7a368c7e (5 revisions) (#87123)
  • 79f377d[devicelab] Only upload results on master (#87125)
  • cc03623Roll Engine from 66ae7a368c7e to e92c10d7609c (3 revisions) (#87128)
  • 93de096Add TooltipTriggerMode and provideTriggerFeedback to allow users to c… (#84434)
  • 2d07436[flutter_tools] Port xcode backend to dart (#86753)
  • b50991dReland 2: Make LiveTestWidgetsFlutterBinding work with setSurfaceSize and live tests (#86912)
  • c6a24e3[gen_keycodes] Move GLFW keys to logical_key_data (#87086)
  • 3b6a071Roll Plugins from 758c55e42064 to 2727efc5ba3a (12 revisions) (#87131)
  • bb12ddaRoll Engine from e92c10d7609c to 5a95896ccf89 (2 revisions) (#87134)
  • caa5528Roll Plugins from 2727efc5ba3a to d2f5c33e9429 (3 revisions) (#87141)
  • 05e8425Update the skipped test for gestures. (#87130)
  • 32c2e2bPerform no shader warm-up by default (#87126)
  • 89637e4Replace iOS physical/simulator bools with enum (#87138)
  • 96570c6Roll Engine from 5a95896ccf89 to f2109435e69a (7 revisions) (#87142)
  • ec068ffRoll Engine from f2109435e69a to 7fd00c4ee875 (2 revisions) (#87150)
  • 8881922Roll Engine from 7fd00c4ee875 to 0eac13180e7a (2 revisions) (#87153)
  • e4ce79c95a40884c Roll Skia from 32e07ae6bc26 to dc409946e9f0 (1 revision) (flutter/engine#27752) (#87156)
  • 863c42aRoll Engine from 95a40884c738 to 3cc37d3b4d87 (2 revisions) (#87159)
  • 2f4f170Revert "Keyboard events (#83752)" (#87171)
  • 574dde3Revert "Roll Engine from 95a40884c738 to 3cc37d3b4d87 (2 revisions) (#87159)" (#87191)
  • fca9583Restore the WidgetTester's original surface size after testing setSurfaceSize (#87202)
  • 10152dbAdd thumb color customization to CupertinoSwitch (#86775)
  • f8f79be08c9b40d0 Expand camera platform interface to support pausing the camera preview. (flutter/plugins#4191) (#87161)
  • f55aab9b8786d3ef Rebuild camera preview when camera value changes (flutter/plugins#4197) (#87209)
  • 8a139c0Re-land"[new feature]introduce `ScrollMetricsNotification`" (#85499)
  • a1d6a95Roll Plugins from b8786d3ef601 to 1b7c4fbce750 (2 revisions) (#87212)
  • be71266Roll Engine from 95a40884c738 to 0ed62a16f363 (10 revisions) (#87213)
  • daa721fFix leading overscroll for RenderShrinkWrappingViewport (#87143)
  • 0fa3661Add test ownership for firebase tests and docs tests (#87145)
  • 984056cd8a5f4039 [web] Code cleanup (flutter/engine#27766) (#87218)
  • e89747afix numpadEnter default shortcut (#87019)
  • 0bab360Make the startup lock message print to stderr. (#86520)
  • 5b80d32Revert "Reland 2: Make LiveTestWidgetsFlutterBinding work with setSurfaceSize and live tests (#86912)" (#87233)
  • 1a2a4f1Roll Engine from d8a5f4039fb2 to d21cfd90ad19 (2 revisions) (#87227)
  • 960463eRemove "unnecessary" imports. (#85736)
  • 246f3131eeb722a6 [ci.yaml] Fix open_jdk dep naming (flutter/engine#27776) (#87241)
  • 2f91679Show Android SDK path in doctor on partial installation (#87232)
  • 7707f42Restores surface size in the postTest of test binding (#87240)
  • 221705bAvoid passive clipboard read on Android (#86791)
  • 9a983f774121a42b Roll Skia from 17eaf6216046 to 8cd8e27c2ceb (12 revisions) (flutter/engine#27779) (#87248)
  • 8d8959fRoll Engine from 74121a42bc7b to 40451453ab11 (2 revisions) (#87250)
  • ccf6f03Revert "Restores surface size in the postTest of test binding (#87240)" (#87258)
  • 6a4d5d8Revert "Roll Engine from 74121a42bc7b to 40451453ab11 (2 revisions) (#87250)" (#87275)
  • f226c1eAdded parameters boxHeightStyle, boxWidthStyle to RenderParagraph.getBoxesForSelection (#87183)
  • f9aa584[tools] Fix Android Studio Arctic Fox Java path on macOS (#87267)
  • cb4bc11Roll Engine from 74121a42bc7b to 0ceee4d68386 (4 revisions) (#87276)
  • 63b6197Fix inconsistencies when calculating start/end handle rects for selection handles (#87236)
  • 6406c6dRoll Engine from 0ceee4d68386 to 884e9dacb919 (3 revisions) (#87283)
  • a82255b[flutter_conductor] updates (#86452)
  • caf876cReland: Keyboard events (#87174)
  • a76212fDeprecate ThemeData.fixTextFieldOutlineLabel (#87281)
  • 884158aReland 3: Make LiveTestWidgetsFlutterBinding work with setSurfaceSize and live tests (#87239)
  • c451b6bRevert "Perform no shader warm-up by default (#87126)" (#87238)
  • a7899c1[gen_keycodes] Remove nonexistent Web keys and improve their emulation (#87098)
  • c5866c5Explicitly set affinity when moving left/right by line (#87133)
  • 26c30feAdded BottomNavigationBar landscapeLayout parameter (#87211)
  • 33fd4f1Fix race causing null dereference on getStack in web_tool_tests and CI flakes (#87278)
  • c5573ea[Keyboard] Accept empty events (#87152)
  • ed6c932Enable lock-thread based on github actions. (#81528)
  • ade9f6a[flutter_tools] Improve toolexit error messages for `flutter upgrade` (#86351)
  • 9c32e5aAdd enableIMEPersonalizedLearning flag to TextField and TextFormField (#87002)
  • ece0c24Roll Engine from 884e9dacb919 to 72c8e5521b62 (14 revisions) (#87331)
  • 6f5f0a3232f7e2e5 Roll Skia from d31b15da6e33 to 8adb6255053f (1 revision) (flutter/engine#27813) (#87340)
  • 5b0fd2f[ci.yaml] Prefix devicelab targets with the phone used (#87304)
  • a69b3caExclude arm64 from iOS app archs if unsupported by plugins (#87244)
  • c863c01Use FLUTTER_VIEW_ID to find the Flutter view (#87324)
  • ee06781Add no-response workflow. (#87318)
  • 70d2497Add config for animation_with_microtasks test (#87346)
  • e4cf7a03be118d24 Roll Skia from 8adb6255053f to 14d87226b3ad (5 revisions) (flutter/engine#27814) (#87347)
  • 1f067ae[ci.yaml] presubmit docs renamed to docs_test (#87214)
  • bdca339Revert "Add no-response workflow. (#87318)" (#87361)
  • 46f160dupdate the scrollbar (#82687)
  • 1da3fc8Roll Engine from 3be118d2486c to f18a930f7322 (5 revisions) (#87368)
  • 39b3515Roll Plugins from 1b7c4fbce750 to 477a13d8b0af (5 revisions) (#87369)
  • ab6ce71[flutter_test/integration_test] added setSurfaceSize test coverage (#82712)
  • 6823a56Enable viewport_test.dart's shuffling (#87319)
  • 9072bacMark devtools_profile_start_test unflaky (#87355)
  • 7424db4Exclude arm64 from iOS app archs if unsupported by plugins on x64 Macs (#87362)
  • 38a6c8aRe-land no-reponse bot. (#87372)
  • 3ca8d7bRevert "Re-land no-reponse bot. (#87372)" (#87377)
  • 67cee63Add string attribute api to text span (#86667)
  • da93ab3[flutter_conductor] auto-generate PR title and description via query params (#87313)
  • c11efb5Re-lands the change to enable the no-response bot (#87381)
  • a8c5c52Enable test ownership validation test in pre-submit (#87310)
  • aae28e6Roll Engine from f18a930f7322 to 29f9df723f97 (7 revisions) (#87384)
  • 0abf02fDo not run web shard during tool_tests when subshard is missing (#87385)
  • 4697e25disable analyze linux on Cirrus (#87518)
  • 2971bf6Mark hot_mode_dev_cycle_linux__benchmark flaky to unblock tree (#87524)
  • 92e0245Handle reserved Kotlin keywords (#86518)
  • 962f57fUpdated skipped tests for foundation directory. (#87293)
  • 22436ccRevert "Avoid passive clipboard read on Android (#86791)" (#87375)
  • 37c414dAllow for customizing and theming extended FAB's TextStyle (#87498)
  • 4073956Bump cocoapods from 1.10.1 to 1.10.2 in /dev/ci/mac (#87525)
  • 8322e17Revert "Added 'exclude' parameter to 'testWidgets()'. (#86397)" (#87515)
  • faf774eUpdated the skipped tests for cupertino package. (#87289)
  • 9664a10Revert "Updated the skipped tests for cupertino package. (#87289)" (#87537)
  • b375059Updated the skipped tests for cupertino package. (reland) (#87538)
  • 5bdc698Updated skipped tests for material directory. (#87328)
  • 52bf9dbupdate ScrollMetricsNotification (#87421)
  • 31fd0f7[flutter_driver] Remove `runUnsynchronized` in `VMServiceFlutterDriver` (#87467)
  • 08320a8Roll Engine from 29f9df723f97 to eb1d87d805f5 (24 revisions) (#87541)
  • cf0be0a[ci.yaml] Remove builder, sort by name (#87522)
  • 0151359Fix some errors in snippets (#87528)
  • f61074cFix Cuptertino dialog test to check correct fade transition (#87533)
  • d1eff7fAdd Cupterino button animation test (#87535)
  • 44d9af8Flutter_tools for web: report error messages with stacks on exit (#87386)
  • fb6a816[ci.yaml] Add hot_mode_dev_cycle_win_target__benchmark and Linux gradle_plugin_light_apk_test (#87366)
  • 1b77fcaUpdated skipped tests for painting directory. (#87546)
  • 9c3cd40Skip test audit for dev tests. (#87147)
  • 8550efad6ddc3154 Added assertion up to cv99 for FontFeature.characterVariant (flutter/engine#27745) (#87550)
  • fcca654updated readme.md (#84525)
  • 01d5b62rebase (#87570)
  • 6f9de0aRoll Plugins from 477a13d8b0af to c59b32ce495c (3 revisions) (#87585)
  • 0d3b44e[flutter] replace 'checked mode' with 'debug mode' (#87408)
  • e147052Roll Engine from d6ddc31542b4 to 85cd2dd4f9af (11 revisions) (#87586)
  • fe52e56Adding a timeout and retry to upload results step. (#87306)
  • 79d3287fix the DropdownButtonFormField's label display bug when the `hint` is non-null (#87104)
  • b0ba49bRoll Plugins from c59b32ce495c to 643c928c2f2f (2 revisions) (#87587)
  • 1a76a01Skip flaky test (#87589)
  • acd0db9[ci.yaml] Add LUCI config information (#87583)
  • 9a9b8f0Roll Engine from 85cd2dd4f9af to a474664cf546 (5 revisions) (#87594)
  • cc63c81Update all packages (#87579)
  • 169bb1bFix the sample code analyzer to properly handle `missing_identifier` errors (#87593)
  • 640c08dRun lock workflow only in flutter/flutter. (#87601)
  • 536e7a2Roll Engine from a474664cf546 to ae8071be209b (2 revisions) (#87605)
  • 5a48a41Update some Focus docs (#87561)
  • 675135aMark 'Mac plugin_dependencies_test' unflaky (#87354)
  • 014abf7Roll Engine from ae8071be209b to b84d9fc6f649 (2 revisions) (#87612)
  • 8d6ba79mark flaky (#87606)
  • 788aea4498df33f7 [flutter_plugin_tools] Track and log exclusions (flutter/plugins#4205) (#87613)
  • 95217ebAdd new hook for setupHotReload and after updating devFS is complete (#87532)
  • 3cf4002Mark Windows plugin_dependencies_test as unflaky (#87617)
  • ff4e693ddec16deb Roll Skia from 6ff2b7a4e556 to 38d9e0e812ca (1 revision) (flutter/engine#27876) (#87620)
  • 8212b58f7f57a737 Add configuration for windows android aot. (flutter/engine#27877) (#87624)
  • 36a2178Roll Engine from f7f57a7376f2 to a1187633594e (2 revisions) (#87640)
  • 725f48f601009084 Don't use 'flutter upgrade' on Cirrus (flutter/plugins#4213) (#87651)
  • e7fd092🔋 Enhance cupertino button fade in and fade out (#87139)
  • 36cee18Revert "mark flaky (#87606)" (#87668)
  • 6490a4eAdd SerialTapGestureRecognizer (#83082)
  • c5f4f58Skip flaky test debugger_stepping_test (#87670)
  • 8847015Roll Engine from a1187633594e to 0ea039e23989 (4 revisions) (#87674)
  • 0f4e1db[Focus] defer autofocus resolution to `_applyFocusChange` (#85562)
  • dc69130changed Scrollbar to StatelessWidget (#87647)
  • d841dd400697cd65 Roll Skia from af844c79d535 to cef047a4904e (1 revision) (flutter/engine#27888) (#87679)
  • f134f03added autofocus and test (#87591)
  • 3391c7ea0d89b1a5 Roll Skia from cef047a4904e to 40b82c6b5c2c (3 revisions) (flutter/engine#27889) (#87687)
  • 28f311a[Documentation] Add `AlignTransition` interactive example (#87021)
  • c38feb3Router replaces browser history entry if state changes (#83509)
  • 0f465e5Revert "update ScrollMetricsNotification (#87421)" (#87693)
  • 65cf7de[flutter_releases] Flutter beta 2.5.0-5.0.pre Framework Cherrypicks (#88062)
  • 19c61fe[flutter_releases] Flutter beta 2.5.0-5.2.pre Framework Cherrypicks (#88476)
  • a7fb06d[flutter_releases] Flutter beta 2.5.0-5.3.pre Framework Cherrypicks (#89345)
  • 4cc385b[flutter_releases] Flutter stable 2.5.0 Framework Cherrypicks (#89625)
  • ffb2ece[flutter_releases] Flutter stable 2.5.1 Framework Cherrypicks (#90281)
  • 3595343[flutter_releases] Flutter stable 2.5.2 Framework Cherrypicks (#91047)
  • 1811693'Update Engine revision to d3ea636dc5d16b56819f3266241e1f708979c233 for stable release 2.5.3' (#91871)

Breaking Breaking change 8

BreakingHigh impact2.5.0 migration guide

Default drag scrolling devices

`ScrollBehavior`s now allow or disallow drag scrolling from specified `PointerDeviceKind`s. `ScrollBehavior.dragDevices`, by default, allows scrolling widgets to be dragged by all `PointerDeviceKind`s except for `PointerDeviceKind.mouse`.

Official migration guideVerified classificationFrameworkSource Details
BreakingHigh impact2.5.0 migration guide

GestureRecognizer cleanup

`OneSequenceGestureRecognizer.addAllowedPointer()` was changed to take a `PointerDownEvent`, like its superclass. Previously, it accepted the more general `PointerEvent` type, which was incorrect.

Official migration guideVerified classificationFrameworkSource Details
BreakingHigh impact2.5.0 migration guide

Introducing package:flutter_lints

The `package:flutter_lints` defines the latest set of recommended lints that encourage good coding practices for Flutter apps, packages, and plugins. Projects created with `flutter create` using Flutter version 2.5 or newer are already enabled to use the latest set of recommended lints. Projects created prior to that version can upgrade to it with the instructions in this guide.

Official migration guideVerified classificationFrameworkSource Details
BreakingHigh impact2.5.0web migration guide

Using HTML slots to render platform views in the web

Flutter now renders all web platform views in a consistent location of the DOM, as direct children of `flt-glass-pane` (regardless of the rendering backend: `html` or `canvaskit`). Platform views are then _"slotted"_ into the correct position of the App's DOM with standard HTML features.

Official migration guideVerified classificationFrameworkSource Details

Removed Removed 1

RemovedHigh impact2.5.0

Deprecated API removed after v2.2

In accordance with Flutter's Deprecation Policy, deprecated APIs that reached end of life after the 2.2 stable release have been removed.

Official migration guideVerified classificationFrameworkSource Details

Deprecated Deprecated API 1

Bug fix Bug fix 11

AI explanationAI-generated · grounded in cited sources
AI explanations are not configured
Set AI_PROVIDER (for example to openai-compatible with a local Ollama or LM Studio endpoint) to enable grounded explanations. Everything else on this page works without an AI provider.
Was this useful?