Repository navigation
Enable SPM by default on Stable - #184495
Merged
Merged
Conversation
okorohelijah
marked this pull request as ready for review
April 2, 2026 04:13
Contributor
There was a problem hiding this comment.
Code Review
This pull request enables the Swift Package Manager feature by default on the stable channel within the Flutter tools. Correspondingly, the unit tests have been updated to verify this new default behavior. I have no feedback to provide.
vashworth
approved these changes
Apr 2, 2026
engine-flutter-autoroll
added a commit
to engine-flutter-autoroll/packages
that referenced
this pull request
Apr 3, 2026
auto-submit Bot
pushed a commit
to flutter/packages
that referenced
this pull request
Apr 3, 2026
flutter/flutter@0f401ee...7245c3f 2026-04-03 [email protected] Roll Skia from c07c67045b6d to 5d847ba5c4aa (1 revision) (flutter/flutter#184570) 2026-04-03 [email protected] Roll Dart SDK from 3c7a79045b8b to 46f49142acd9 (1 revision) (flutter/flutter#184567) 2026-04-03 [email protected] Roll ICU from ee5f27adc28b to ff7995a708a1 (5 revisions) (flutter/flutter#184566) 2026-04-03 [email protected] Roll Skia from 9ae8231be181 to c07c67045b6d (4 revisions) (flutter/flutter#184562) 2026-04-03 [email protected] Roll Fuchsia Linux SDK from BFLjk6Uwd0gs_Hkdk... to PpL3Bn2YMb2h9LbdK... (flutter/flutter#184556) 2026-04-03 [email protected] Roll Skia from 0566b2f5f0d1 to 9ae8231be181 (1 revision) (flutter/flutter#184547) 2026-04-03 [email protected] Roll Dart SDK from 6008eaddd589 to 3c7a79045b8b (3 revisions) (flutter/flutter#184551) 2026-04-03 [email protected] Fix wide gamut macos integration test (flutter/flutter#184427) 2026-04-02 [email protected] forward an application name to DDS (flutter/flutter#184459) 2026-04-02 [email protected] Roll Skia from 973117cfa875 to 0566b2f5f0d1 (8 revisions) (flutter/flutter#184534) 2026-04-02 [email protected] Support different joins for stroked rects in uber_sdf, fix incorrect aa (flutter/flutter#184395) 2026-04-02 [email protected] [ Widget Preview ] Handle collections and records in custom preview annotations (flutter/flutter#184518) 2026-04-02 [email protected] Moves android_semantics_integration_test out of staging (flutter/flutter#184079) 2026-04-02 [email protected] Roll Packages from b3fcf14 to 66bf7ec (4 revisions) (flutter/flutter#184514) 2026-04-02 [email protected] Fix line breaks being lost when copying after selection gesture in SelectableRegion (flutter/flutter#184421) 2026-04-02 [email protected] Add plugin version to SwiftPM package symlink directory (flutter/flutter#183668) 2026-04-02 [email protected] Add our own wrapper for `CommonExtension` due to change in signature from 8.x->9.0 (flutter/flutter#184433) 2026-04-02 [email protected] [Android] Use EdgeToEdge.enable/WindowCompat for edge-to-edge mode instead of deprecated View flags (flutter/flutter#183072) 2026-04-02 [email protected] [data_assets] Cleanup tests (flutter/flutter#184209) 2026-04-02 [email protected] Enable SPM by default on Stable (flutter/flutter#184495) 2026-04-02 [email protected] Roll Dart SDK from d84bdfeb45eb to 6008eaddd589 (2 revisions) (flutter/flutter#184513) 2026-04-02 [email protected] Reland "Even more awaits" (flutter/flutter#184467) 2026-04-02 [email protected] Roll Skia from bb9fd8653739 to 973117cfa875 (2 revisions) (flutter/flutter#184498) 2026-04-02 [email protected] [ Widget Preview ] Use analysis server for widget preview detection (flutter/flutter#184473) 2026-04-02 [email protected] [web_ui] Fix avoid_type_to_string lint violation (flutter/flutter#184342) If this roll has caused a breakage, revert this CL and stop the roller using the controls here: https://autoroll.skia.org/r/flutter-packages Please CC [email protected],[email protected] on the revert to ensure that a human is aware of the problem. To file a bug in Packages: https://github.com/flutter/flutter/issues/new/choose To report a problem with the AutoRoller itself, please file a bug: https://issues.skia.org/issues/new?component=1389291&template=1850622 Documentation for the AutoRoller is here: https://skia.googlesource.com/buildbot/+doc/main/autoroll/README.md
mbcorona
pushed a commit
to mbcorona/flutter
that referenced
this pull request
Apr 15, 2026
Enable SPM by default on Stable Fixes flutter#184396 ## Pre-launch Checklist - [x] I read the [Contributor Guide] and followed the process outlined there for submitting PRs. - [x] I read the [AI contribution guidelines] and understand my responsibilities, or I am not using AI tools. - [x] I read the [Tree Hygiene] wiki page, which explains my responsibilities. - [x] I read and followed the [Flutter Style Guide], including [Features we expect every widget to implement]. - [x] I signed the [CLA]. - [x] I listed at least one issue that this PR fixes in the description above. - [ ] I updated/added relevant documentation (doc comments with `///`). - [ ] I added new tests to check the change I am making, or this PR is [test-exempt]. - [ ] I followed the [breaking change policy] and added [Data Driven Fixes] where supported. - [x] All existing and new tests are passing. If you need help, consider asking for advice on the #hackers-new channel on [Discord]. **Note**: The Flutter team is currently trialing the use of [Gemini Code Assist for GitHub](https://developers.google.com/gemini-code-assist/docs/review-github-code). Comments from the `gemini-code-assist` bot should not be taken as authoritative feedback from the Flutter team. If you find its comments useful you can update your code accordingly, but if you are unsure or disagree with the feedback, please feel free to wait for a Flutter team member's review for guidance on which automated comments should be addressed. <!-- Links --> [Contributor Guide]: https://github.com/flutter/flutter/blob/main/docs/contributing/Tree-hygiene.md#overview [AI contribution guidelines]: https://github.com/flutter/flutter/blob/main/docs/contributing/Tree-hygiene.md#ai-contribution-guidelines [Tree Hygiene]: https://github.com/flutter/flutter/blob/main/docs/contributing/Tree-hygiene.md [test-exempt]: https://github.com/flutter/flutter/blob/main/docs/contributing/Tree-hygiene.md#tests [Flutter Style Guide]: https://github.com/flutter/flutter/blob/main/docs/contributing/Style-guide-for-Flutter-repo.md [Features we expect every widget to implement]: https://github.com/flutter/flutter/blob/main/docs/contributing/Style-guide-for-Flutter-repo.md#features-we-expect-every-widget-to-implement [CLA]: https://cla.developers.google.com/ [flutter/tests]: https://github.com/flutter/tests [breaking change policy]: https://github.com/flutter/flutter/blob/main/docs/contributing/Tree-hygiene.md#handling-breaking-changes [Discord]: https://github.com/flutter/flutter/blob/main/docs/contributing/Chat.md [Data Driven Fixes]: https://github.com/flutter/flutter/blob/main/docs/contributing/Data-driven-Fixes.md
creatorpiyush
pushed a commit
to creatorpiyush/packages
that referenced
this pull request
Jun 10, 2026
…r#11427) flutter/flutter@0f401ee...7245c3f 2026-04-03 [email protected] Roll Skia from c07c67045b6d to 5d847ba5c4aa (1 revision) (flutter/flutter#184570) 2026-04-03 [email protected] Roll Dart SDK from 3c7a79045b8b to 46f49142acd9 (1 revision) (flutter/flutter#184567) 2026-04-03 [email protected] Roll ICU from ee5f27adc28b to ff7995a708a1 (5 revisions) (flutter/flutter#184566) 2026-04-03 [email protected] Roll Skia from 9ae8231be181 to c07c67045b6d (4 revisions) (flutter/flutter#184562) 2026-04-03 [email protected] Roll Fuchsia Linux SDK from BFLjk6Uwd0gs_Hkdk... to PpL3Bn2YMb2h9LbdK... (flutter/flutter#184556) 2026-04-03 [email protected] Roll Skia from 0566b2f5f0d1 to 9ae8231be181 (1 revision) (flutter/flutter#184547) 2026-04-03 [email protected] Roll Dart SDK from 6008eaddd589 to 3c7a79045b8b (3 revisions) (flutter/flutter#184551) 2026-04-03 [email protected] Fix wide gamut macos integration test (flutter/flutter#184427) 2026-04-02 [email protected] forward an application name to DDS (flutter/flutter#184459) 2026-04-02 [email protected] Roll Skia from 973117cfa875 to 0566b2f5f0d1 (8 revisions) (flutter/flutter#184534) 2026-04-02 [email protected] Support different joins for stroked rects in uber_sdf, fix incorrect aa (flutter/flutter#184395) 2026-04-02 [email protected] [ Widget Preview ] Handle collections and records in custom preview annotations (flutter/flutter#184518) 2026-04-02 [email protected] Moves android_semantics_integration_test out of staging (flutter/flutter#184079) 2026-04-02 [email protected] Roll Packages from b3fcf14 to 66bf7ec (4 revisions) (flutter/flutter#184514) 2026-04-02 [email protected] Fix line breaks being lost when copying after selection gesture in SelectableRegion (flutter/flutter#184421) 2026-04-02 [email protected] Add plugin version to SwiftPM package symlink directory (flutter/flutter#183668) 2026-04-02 [email protected] Add our own wrapper for `CommonExtension` due to change in signature from 8.x->9.0 (flutter/flutter#184433) 2026-04-02 [email protected] [Android] Use EdgeToEdge.enable/WindowCompat for edge-to-edge mode instead of deprecated View flags (flutter/flutter#183072) 2026-04-02 [email protected] [data_assets] Cleanup tests (flutter/flutter#184209) 2026-04-02 [email protected] Enable SPM by default on Stable (flutter/flutter#184495) 2026-04-02 [email protected] Roll Dart SDK from d84bdfeb45eb to 6008eaddd589 (2 revisions) (flutter/flutter#184513) 2026-04-02 [email protected] Reland "Even more awaits" (flutter/flutter#184467) 2026-04-02 [email protected] Roll Skia from bb9fd8653739 to 973117cfa875 (2 revisions) (flutter/flutter#184498) 2026-04-02 [email protected] [ Widget Preview ] Use analysis server for widget preview detection (flutter/flutter#184473) 2026-04-02 [email protected] [web_ui] Fix avoid_type_to_string lint violation (flutter/flutter#184342) If this roll has caused a breakage, revert this CL and stop the roller using the controls here: https://autoroll.skia.org/r/flutter-packages Please CC [email protected],[email protected] on the revert to ensure that a human is aware of the problem. To file a bug in Packages: https://github.com/flutter/flutter/issues/new/choose To report a problem with the AutoRoller itself, please file a bug: https://issues.skia.org/issues/new?component=1389291&template=1850622 Documentation for the AutoRoller is here: https://skia.googlesource.com/buildbot/+doc/main/autoroll/README.md
xvrh
added a commit
to flutterware/flutterware
that referenced
this pull request
Sep 27, 2026
The studio's macOS project drops CocoaPods. Every macOS plugin it uses is a Swift package, so the Podfile was wrapping nothing but FlutterMacOS in a `Pods_Runner` framework. It differed from Flutter's template only by `use_modular_headers!`, a 2022 leftover that no pod has needed since the last plugin pod left. That is why the SDK called it non-standard and asked for a manual migration. ## The change `pod deintegrate` in `app/macos`, then delete the Podfile and its lock, the `Pods-Runner` xcconfig includes and the Pods project in `Runner.xcworkspace`. The workspace now matches the SDK's own template byte for byte. The diff is deletions only. Nothing had to move into the Xcode project. The Podfile's `platform :osx, '12.0'` only ever applied to the Pods targets, and the project already sets `MACOSX_DEPLOYMENT_TARGET = 12.0`. The runner already has `@executable_path/../Frameworks` in its runpath. Nothing reads the `COCOAPODS=1` define. ## What it buys: a first run that needs no CocoaPods The launcher builds the studio in a fresh working copy on a user's first run (`DesktopGui.build`). With the Podfile present, that build ran `pod install`, and on a machine without CocoaPods it stopped: | Clean `flutter build macos --release` | before | after | |---|---|---| | CocoaPods installed | builds | builds | | No CocoaPods on `PATH` | **fails**: "CocoaPods not installed or not in valid state." | builds | `tool/publish/install_check.dart --gui` also passes locally with no CocoaPods on `PATH` and an empty flutter config. That is the hosted first-run path: pack, unpack, resolve, build the CLI, build the studio. CI never saw the failure because GitHub's macOS runners ship CocoaPods. ## Build time: the same within noise These were clean builds (`flutter clean`, `Pods/` removed as in a fresh copy), alternating the two trees to cancel out load drift. Load average on the machine was 13–34. | | runs (s) | median | |---|---|---| | before (CocoaPods) | 57.1, 56.9, 58.8 | 57.1 | | after (SwiftPM only) | 55.2, 56.2, 94.2* | 56.2 | \* The log is line for line the same as the 56 s run, so the extra time was other work on the machine. `pod install` itself took 0.42–0.47 s, because the only pod was FlutterMacOS. The SDK's "improve the project's build time" is about one second here. ## The Swift Package Manager setting - **Nothing needs to be set.** SwiftPM is on by default on stable since Flutter 3.44.0 (flutter/flutter#184495), and the package's floor is 3.47.0. A build with `enable-swift-package-manager` *(Not set)* uses Swift packages and needs no Podfile. Tested with an empty flutter config dir. - **An explicit opt-out still builds, the old way.** With `enable-swift-package-manager: false` set globally, the SDK writes a template Podfile into the working copy, re-integrates Pods, runs `pod install` and builds, so the plugins become pod frameworks. That is where every user was before this change. They need CocoaPods, and anyone who opted out of SwiftPM has it. - **The launcher cannot usefully pass the flag.** In `FlutterFeaturesConfig` the environment variable ranks *below* the global config (`pubspec ?? global ?? env ?? channel default`), even though a comment in `flutter_features.dart` says the opposite. Measured: a global opt-out plus `FLUTTER_SWIFT_PACKAGE_MANAGER=true` still ran `pod install`. The only override is `flutter: config: enable-swift-package-manager: true` in `app/pubspec.yaml`, which does win over the opt-out (tested). It is left out: it would override a choice the user made on purpose, to spare a case that already builds. ## Checked on the running studio - Studio (dev) launches on the migrated project with no CocoaPods warning and no plugin errors. - `url_launcher`: `canLaunchUrl` round trip, `true`. - `package_info_plus`: platform channel round trip, `dev.flutterware.studio 0.6.0`. - `file_selector`: *Save the screenshot as PNG…* presented its panel. There was no channel error, and the call stayed pending on it. - `webview_flutter`: this branch cherry-picked onto the Worlds mail-view work. A clean release build pulls `webview_flutter_wkwebview` in as a Swift package with no Podfile. In the running studio, *Pickup order* → *Mia orders a flat white* → *Mail* → *Read it* → *Page*, the live WKWebView held the rendered mail. Its text was read back from WebKit.
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.
Enable SPM by default on Stable
Fixes #184396
Pre-launch Checklist
///).If you need help, consider asking for advice on the #hackers-new channel on Discord.
Note: The Flutter team is currently trialing the use of Gemini Code Assist for GitHub. Comments from the
gemini-code-assistbot should not be taken as authoritative feedback from the Flutter team. If you find its comments useful you can update your code accordingly, but if you are unsure or disagree with the feedback, please feel free to wait for a Flutter team member's review for guidance on which automated comments should be addressed.