Skip to content

chore: upgrade to flutter 3.44.1 - #2271

Merged
ethicnology merged 8 commits into
developfrom
chore/flutter-3.44.1
Jun 9, 2026
Merged

chore: upgrade to flutter 3.44.1#2271
ethicnology merged 8 commits into
developfrom
chore/flutter-3.44.1

Conversation

@ethicnology

Copy link
Copy Markdown
Member

⚠️ last version before we have to make various Android and iOS migrations

Follow-up #2268

The Flutter 3.44 migrator auto-added android.builtInKotlin=false and
android.newDsl=false to gradle.properties. Both are set to false to keep
the current external-KGP behavior; they are no-ops on the current AGP
8.12.2 and only take effect under AGP 9. No build impact now — this is
forward-compat scaffolding for the eventual AGP 9 / built-in Kotlin
migration (tracked separately).
@ethicnology ethicnology self-assigned this Jun 9, 2026
@claude

claude Bot commented Jun 9, 2026

Copy link
Copy Markdown

Claude finished @ethicnology's task in 3m 1s —— View job


Code Review: Flutter 3.44.1 upgrade

  • Read repo guidelines & gather context
  • Analyze diff vs origin/develop (324 files, +1083/−1783)
  • Verify the prefer_initializing_formals migration is behavior-preserving
  • Review config/version changes (pubspec, gradle, lock)
  • Post findings

Summary

The vast majority of this PR is a mechanical lint autofix (prefer_initializing_formals) collapsing constructor field assignments into initializing formals (required SettingsRepository x }) : _x = xrequired this._x), plus the Flutter 3.38.5 → 3.44.1 / Dart 3.12.1 version bump and Android migrator flags. I reviewed a representative cross-section (blocs, usecases, entities, datasources) and found no correctness bugs or regressions. The large deletion count is just the removed initializer lists, not logic.

One thing I specifically verified, since it's the load-bearing assumption of the whole diff: the conversion uses Dart 3.12's private initializing-formal-as-named-parameter feature, where the leading underscore is stripped at the call site. Confirmed against existing callers — e.g. electrum_server.dart:30 still calls ElectrumServer._(url: ...) against required this._url, and ElectrumSettings(stopGap: ...) callers are unchanged. So DI/call sites correctly need no edits. ✅ (CI was still in progress at review time; a green Analyze and Test run is the final confirmation that nothing failed to compile.)

Notes (non-blocking)

1. Exact SDK pin in pubspec.yamlpubspec.yaml

-  sdk: ">=3.10.0 <4.0.0"
+  sdk: "3.12.1"
+  flutter: "3.44.1"

A bare "3.12.1" is an exact constraint, not a range — any contributor or CI runner on a different patch (e.g. 3.12.2) will fail pub get. This is defensible for reproducibility given you use FVM, and pubspec.lock's sdks: now matches exactly. Just confirm this strictness is intentional rather than e.g. ^3.12.1.

2. Android migrator opt-out flagsandroid/gradle.properties

android.builtInKotlin=false
android.newDsl=false

These opt out of the new Gradle/Kotlin behavior as a temporary compatibility shim (consistent with the PR's "last version before various migrations" note). Worth tracking their removal in the follow-up #2268 so this debt doesn't get lost.

3. font_awesome_flutter 10.12.0 → 11.0.0pubspec.yaml / pubspec.lock
A major version bump (landed in a separate commit). Compile errors from removed/renamed icon constants will surface in the build, but silently changed glyphs would not — worth a quick visual smoke-test of icon-heavy screens. Other lock changes (matcher, material_color_utilities, meta, test) are SDK-driven transitives and look normal.

Nothing here blocks merge from a correctness standpoint.

Note: this action can't post inline review comments or a formal PR review, so findings are summarized here with file references.

@ethicnology
ethicnology merged commit b62a364 into develop Jun 9, 2026
1 check passed
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

2 participants