chore: align CI Flutter to 3.44.1 and resolve analyzer 7→8 toolchain split#612
chore: align CI Flutter to 3.44.1 and resolve analyzer 7→8 toolchain split#612AndreaDiazCorreia wants to merge 2 commits into
Conversation
- Bump Flutter version from 3.35.7 to 3.44.1 across .fvmrc and all GitHub workflow files - Upgrade Gradle wrapper from 8.9 to 8.14.3 - Upgrade Android Gradle Plugin from 8.6.0 to 8.11.1 - Upgrade Kotlin from 2.1.0 to 2.2.20 - Add Android build flags (builtInKotlin=false, newDsl=false) to gradle.properties - Replace deprecated lucide_icons package with lucide_icons_flutter (0.257.0 → 3.1.14) - Replace deprecated cacheExtent with scrollCache
chore: migrate to Flutter's built-in Kotlin support and update Kotlin configuration - Remove explicit kotlin-android plugin from app/build.gradle (now provided by Flutter) - Move kotlinOptions from android block to top-level kotlin.compilerOptions block - Update jvmTarget syntax to use org.jetbrains.kotlin.gradle.dsl.JvmTarget.JVM_11 - Update comment to clarify KGP is declared in settings.gradle with apply false ```
|
No actionable comments were generated in the recent review. 🎉 ℹ️ Recent review info⚙️ Run configurationConfiguration used: Organization UI Review profile: CHILL Plan: Pro Run ID: ⛔ Files ignored due to path filters (1)
📒 Files selected for processing (28)
WalkthroughFlutter toolchain, Android Gradle infrastructure, and icon dependencies are upgraded to resolve analyzer 7→8 compatibility. CI version moves to 3.44.1; Gradle wrapper, plugin versions, and Kotlin configuration modernized; lucide_icons package swapped for lucide_icons_flutter; ListView caching API updated. ChangesFlutter 3.44 upgrade and dependency migration
Estimated code review effort🎯 2 (Simple) | ⏱️ ~12 minutes Possibly related PRs
Suggested reviewers
🚥 Pre-merge checks | ✅ 5✅ Passed checks (5 passed)
✏️ Tip: You can configure your own custom pre-merge checks in the settings. ✨ Finishing Touches🧪 Generate unit tests (beta)
Thanks for using CodeRabbit! It's free for OSS, and your support helps us grow. If you like it, consider giving us a shout-out. Comment |
There was a problem hiding this comment.
💡 Codex Review
Here are some automated review suggestions for this pull request.
Reviewed commit: 6eae3e4a35
ℹ️ About Codex in GitHub
Your team has set up Codex to review pull requests in this repo. Reviews are triggered when you
- Open a pull request for review
- Mark a draft as ready
- Comment "@codex review".
If Codex has suggestions, it will comment; otherwise it will react with 👍.
Codex can also answer questions or update the PR. Try commenting "@codex address that feedback".
|
Tested this on my machine since I'm one of the people who hit the original build_runner failure on 3.44. Confirming it resolves it. Environment: Flutter 3.44.0 stable (Dart 3.12.0) on Ubuntu/WSL2 note slightly behind the PR's pinned 3.44.1. Results:
One caveat, not caused by this PR: flutter analyze reports 1 error in integration_test/test_helpers.dart (a FlutterSecureStorage fake missing the getListeners getter). That file isn't touched by #612, and the error is a flutter_secure_storage API/version-skew thing likely because I'm on 3.44.0 with a pub get that resolved a slightly different secure_storage than the pinned lock on 3.44.1. Worth a quick check on exact-3.44.1 to confirm it stays at the 0 issues you reported, but it's unrelated to the toolchain change here. LGTM from a 'does it build and run' standpoint. |
There was a problem hiding this comment.
I reviewed the current head and I do see one real blocking issue before merge.
Blocking issue:
- The toolchain floor appears to have moved in the lockfile (
pubspec.locknow recordsdart: ">=3.10.0-0 <4.0.0"), but I do not see the project constraints updated coherently inpubspec.yaml. - As-is, this can leave the repo in an inconsistent state where the resolved dependency set requires a newer Dart/Flutter toolchain than the project manifest clearly declares.
- CI may pass because it is pinned to the newer toolchain, but contributors and local environments rely on the manifest constraints to know what is actually supported.
Why I think this is a blocker:
- This PR is explicitly about aligning toolchains. If the lockfile and the declared project constraints diverge, the alignment is incomplete and can fail reproducibility outside CI.
- A dependency resolution that only works because CI is newer than the manifest says is exactly the kind of split this PR is supposed to eliminate.
What I would want:
- Make the SDK/toolchain declaration consistent in the project manifests with the actually required floor for this dependency set.
- In other words, if Dart 3.10 / Flutter 3.44.1 is now required, declare that clearly in the manifest layer, not only indirectly through the generated lockfile.
Aside from that consistency issue, the general direction of aligning the Flutter/Gradle/Kotlin stack makes sense.
|
@AndreaDiazCorreia Can you check what Mostronator said? It's already been merged the Riverpod PR #613 , which depended on this PR, to merge this ASAP. |
Closes #611
Closes #606
What
Aligns the whole toolchain on the analyzer-8 side of the Flutter 3.41→3.44 boundary so local code generation works on current Flutter stable, matching CI.
Changes
3.44.1in all workflows (main,release,flutter,desktop) and.fvmrc.pubspec.lockon analyzer 8 —source_gen3.1.0 → 4.2.3(drops the removedDartObjectImpl.getInvocation()call that brokebuild_runner, fixes Dart run build_runner build fails on Flutter 3.44.0, source_gen 3.1.0 incompatible with analyzer 8.x #606). Nopubspec.yamlconstraint changes for this.lucide_icons ^0.257.0(abandoned, breaks on the nowfinalIconData) to the maintained forklucide_icons_flutter ^3.1.14; update imports in 17 files (all 42 icons map 1:1).cacheExtentwithscrollCacheExtent: ScrollCacheExtent.pixels(...)inchat_messages_list.8.9 → 8.14.3, AGP8.6.0 → 8.11.1, Kotlin2.1.0 → 2.2.20, and migrate the app to Built-in Kotlin.Validation
flutter analyze— 0 issuesflutter test— 449 passingdart run build_runner build -d— OKflutter build webandflutter build apk --debug— OKNotes
file_picker,mobile_scanner,share_plus,shared_preferences_android; it is upstream (plugin-side) and non-blocking.Summary by CodeRabbit
Release Notes
Chores
Improvements