chore(flutter): support Flutter 3.47.2 while keeping 3.27 and 3.35 working. - #2359
Open
TheNoumanDev wants to merge 6 commits into
Open
chore(flutter): support Flutter 3.47.2 while keeping 3.27 and 3.35 working.#2359TheNoumanDev wants to merge 6 commits into
TheNoumanDev wants to merge 6 commits into
Conversation
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment
Add this suggestion to a batch that can be applied as a single commit.This suggestion is invalid because no changes were made to the code.Suggestions cannot be applied while the pull request is closed.Suggestions cannot be applied while viewing a subset of changes.Only one suggestion per line can be applied in a batch.Add this suggestion to a batch that can be applied as a single commit.Applying suggestions on deleted lines is not supported.You must change the existing code in this line in order to create a valid suggestion.Outdated suggestions cannot be applied.This suggestion has been applied or marked resolved.Suggestions cannot be applied from pending reviews.Suggestions cannot be applied on multi-line comments.Suggestions cannot be applied while the pull request is queued to merge.Suggestion cannot be applied right now. Please check back later.
Support Flutter 3.47.2
Upgrades the monorepo to Flutter 3.47.2 / Dart 3.13.2, without dropping the older SDKs
consuming apps still run.
--web-renderer html)On 3.27.4,
melos bootstrapreports thatmodules/auth/chat/ensemble_bluetoothwould needtheir
collection/metaconstraints downgraded. Those were left as-is — they are opt-in modulesthe core runtime does not depend on, and the constraints predate this PR.
modules/ensemblenow declaresflutter: ">=3.27.0"(verified manually on all three above).CI
build.ymlbuilds the starter on 3.38.7 + 3.47.2 (was["3.38.7"]); every other workflow ispinned to 3.47.2 (was 3.32.5 / floating
stable).What was blocking
intlcapped at<=0.20.2in 4 pubspecs — 3.47.2'sflutter_localizationsneeds^0.20.3, so nothing resolved.describeEnumremoved in 3.47 — called inframework/device.dart.font_awesome_flutter10.x subclassesIconData, which 3.44 madefinal— 8 compile errors, broke 32 of 38 test files.What was fixed
intl→">=0.17.0 <=0.20.3"(spans 3.27's0.19.0, 3.35's0.20.2and 3.47's^0.20.3).describeEnum(x)→x.name.font_awesome_flutter→">=10.9.0 <12.0.0"+ a_fa()shim so one file compiles against both 10.x (IconData) and 11.x (FaIconData.data). Pub picks 10.9.1 on Dart 3.6, 11.0.0 on Dart ≥3.9.dialogBackgroundColor,ThemeData.indicatorColor,ColorScheme.background/onBackground/surfaceVariant,dataRowHeight,copyWith(useMaterial3:),Color.alpha,share_plus,firebase_app_checkproviders.build.ymlmatrix widened to["3.38.7", "3.47.2"].resolvedWebViewCookieBaseUrldidn't trim, failing its own test.Deliberately kept deprecated where the replacement needs a newer SDK than we support —
cacheExtent,Matrix4.translate/scale,Color.value— each behind// ignore:+ aTODO(flutter-upgrade)naming the version that unlocks it. Same reasonRadio→RadioGroupisnot done:
RadioGroupdoesn't exist before 3.35, and we have to support 3.27; that's why these are not upgraded yet, and nothing is breaking currently.Testing
--web-renderer htmlon 3.27.4), iOS.Follow-ups (tickets)
dart:html/package:js→package:web(12 files markedTODO(web-wasm)); once 3.27 support is dropped.Radio→RadioGroup, once 3.27 support is dropped.