Lower minimum Flutter SDK to 3.22.0 and Dart to 3.4.0#1704
Merged
Conversation
The minimum versions were raised to Flutter 3.27.0 / Dart 3.6.0 as part of the v9.0.0 release, but neither the web support (package:web ^1.1.1 requires only Dart ^3.4.0) nor the freezed removal technically required those versions. This lowers the floor to allow users on older Flutter versions to use the SDK. Changes: - pubspec.yaml: sdk >=3.4.0, flutter >=3.22.0 - purchases_ui_flutter/pubspec.yaml: same - .circleci/config.yml: min version CI jobs test against 3.22.0 - CLAUDE.md, AGENTS.md, DEVELOPMENT.md: updated version references Co-Authored-By: Claude Opus 4.6 (1M context) <noreply@anthropic.com>
rickvdl
commented
Apr 1, 2026
| test: | ||
| description: "Run tests for Flutter" | ||
| docker: | ||
| - image: ghcr.io/cirruslabs/flutter:stable |
Member
Author
There was a problem hiding this comment.
These always run using flutter:stable instead of the min version we support, should we update these as well to keep them in sync?
Contributor
There was a problem hiding this comment.
I think this is intentional so we also test against the latest flutter version released. We could potentially add separate tests to run against the min version... But I think the min sdk versions that already exist are enough? Happy to chat more if you think we need those though!
Member
Author
There was a problem hiding this comment.
Discussed over Slack; we'll expand these to cover both the latest and min version in a follow up PR
tonidero
approved these changes
Apr 1, 2026
tonidero
left a comment
Contributor
There was a problem hiding this comment.
Nice! Thanks for doing this!
RCGitBot
added a commit
that referenced
this pull request
Apr 1, 2026
**This is an automatic release.** ## RevenueCat SDK ### ✨ New Features * Lower minimum Flutter SDK to 3.22.0 and Dart to 3.4.0 (#1704) via Rick (@rickvdl) ### 📦 Dependency Updates * [AUTOMATIC BUMP] Updates purchases-hybrid-common to 17.54.0 (#1703) via RevenueCat Git Bot (@RCGitBot) * [Android 9.28.1](https://github.com/RevenueCat/purchases-android/releases/tag/9.28.1) * [Android 9.28.0](https://github.com/RevenueCat/purchases-android/releases/tag/9.28.0) * [iOS 5.67.0](https://github.com/RevenueCat/purchases-ios/releases/tag/5.67.0) ### 🔄 Other Changes * Bump fastlane-plugin-revenuecat_internal from `9a6911b` to `f11fe40` (#1701) via dependabot[bot] (@dependabot[bot]) * security: pin GitHub Actions to SHA hashes (#1697) via Alfonso Embid-Desmet (@alfondotnet) * Bump activesupport from 7.2.3 to 7.2.3.1 (#1696) via dependabot[bot] (@dependabot[bot]) * Merge release PR after deploy (#1694) via Antonio Pallares (@ajpallares) * Require PR approval before release tagging (#1693) via Antonio Pallares (@ajpallares) <!-- CURSOR_SUMMARY --> --- > [!NOTE] > **Low Risk** > Primarily a coordinated version/release bump across Flutter, Android, iOS/macOS, and web with updated dependency versions and minimum SDK constraints; no functional logic changes beyond version metadata. > > **Overview** > Bumps the Flutter SDK release from `9.15.1` to `9.16.0` across package metadata (`.version`, `pubspec.yaml`, podspecs, Gradle files) and updates the embedded plugin version constants for Android/iOS/web. > > Updates release documentation (`CHANGELOG-LATEST.md`, `CHANGELOG.md`, `VERSIONS.md`) to include the `9.16.0` notes, including the lowered minimum Flutter/Dart requirements and the `purchases-hybrid-common` bump to `17.54.0` (with corresponding native iOS/Android version references). Also updates `purchases_ui_flutter` to depend on `purchases_flutter ^9.16.0`. > > <sup>Written by [Cursor Bugbot](https://cursor.com/dashboard?tab=bugbot) for commit c93cfb2. This will update automatically on new commits. Configure [here](https://cursor.com/dashboard?tab=bugbot).</sup> <!-- /CURSOR_SUMMARY -->
3 tasks
rickvdl
added a commit
that referenced
this pull request
Apr 2, 2026
…1707) Follow-up to #1704 which lowers the minimum Flutter SDK to 3.22.0. ## Summary Parameterize CI lint and test jobs to run against both `flutter:stable` and the minimum supported Flutter version (3.22.0). Replaces the old `test_main_sdk_min_version_compatibility` and `test_ui_sdk_min_version_compatibility` jobs which only verified dependency resolution. | Job | Flutter | What it does | |-----|---------|-------------| | `lint-test` | stable | analyze + test root SDK | | `lint-test-min-version` | 3.22.0 | analyze + test root SDK | | `lint-test-ui` | stable | analyze + test UI SDK | | `lint-test-ui-min-version` | 3.22.0 | analyze + test UI SDK | | `lint-sample-apps` | stable | resolve deps for example apps + api_tester | ## Test plan - [x] All CI jobs pass - [x] Min version jobs correctly use Flutter 3.22.0 - [x] Update required job list <!-- CURSOR_SUMMARY --> --- > [!NOTE] > **Low Risk** > Low risk: CI-only changes that adjust which CircleCI jobs run and which Flutter Docker images they use; main risk is longer runtimes or unexpected CI failures due to running tests on Flutter 3.22.0. > > **Overview** > Updates CircleCI to run **lint + unit tests** for both `purchases_flutter` and `purchases_ui_flutter` against `flutter:stable` and the minimum supported Flutter version (`3.22.0`) via parameterized `lint-test` and `lint-test-ui` jobs. > > Replaces the old min-version compatibility jobs (which only resolved dependencies) with a new `lint-sample-apps` job for dependency resolution of sample apps/`api_tester`, and simplifies jobs by removing the unused `build-flutter-project` command and using `flutter-get-dependencies` directly in integration test steps. > > <sup>Written by [Cursor Bugbot](https://cursor.com/dashboard?tab=bugbot) for commit ff2b112. This will update automatically on new commits. Configure [here](https://cursor.com/dashboard?tab=bugbot).</sup> <!-- /CURSOR_SUMMARY -->
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.
Summary
Test plan
test_main_sdk_min_version_compatibilitypasses with Flutter 3.22.0test_ui_sdk_min_version_compatibilitypasses with Flutter 3.22.0flutter analyze libpasses🤖 Generated with Claude Code
Note
Medium Risk
Moderate risk because it expands the supported toolchain and could surface incompatibilities with older Flutter/Dart versions despite passing CI. Changes are limited to version constraints, CI configuration, and documentation.
Overview
Lowers the minimum supported SDK versions to Flutter 3.22.0 and Dart 3.4.0 by updating the
environmentconstraints in bothpubspec.yamlfiles.Updates CI’s minimum-version compatibility jobs to run against Flutter
3.22.0, and aligns developer documentation (AGENTS.md,DEVELOPMENT.md) with the new support policy.Written by Cursor Bugbot for commit 3bf8e6c. This will update automatically on new commits. Configure here.