-
Notifications
You must be signed in to change notification settings - Fork 3.6k
[path_provider] Revert iOS/macOS to plugin-based implementation #10517
New issue
Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.
By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.
Already on GitHub? Sign in to your account
[path_provider] Revert iOS/macOS to plugin-based implementation #10517
Conversation
bparrishMines
left a comment
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
LGTM
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
Code Review
This pull request reverts the path_provider_foundation package from an FFI-based implementation back to a more traditional plugin-based approach using Pigeon. This change is a response to several blocking issues encountered with the FFI implementation. The modifications include removing FFI-related code, dependencies, and build configurations, while reintroducing native Swift code for the plugin logic, Pigeon message definitions, and updated Dart implementation and tests. Overall, the revert is well-executed and addresses the stated goals. My review includes a few suggestions to improve code safety by handling optionals more robustly in the Swift code to prevent potential crashes, and fixing a minor typo in the changelog.
packages/path_provider/path_provider_foundation/darwin/RunnerTests/RunnerTests.swift
Show resolved
Hide resolved
...on/darwin/path_provider_foundation/Sources/path_provider_foundation/PathProviderPlugin.swift
Show resolved
Hide resolved
Co-authored-by: gemini-code-assist[bot] <176961590+gemini-code-assist[bot]@users.noreply.github.com>
|
Detected the If you add the The "Merge" button is also unlocked. To bypass presubmits as well as the tree status, press the GitHub "Add to Merge Queue". |
1 similar comment
|
Detected the If you add the The "Merge" button is also unlocked. To bypass presubmits as well as the tree status, press the GitHub "Add to Merge Queue". |
…ter#10517) Reverts to the plugin-based implementation of `path_provider_foundation` while issues are being sorted out: - 2.5.0 (the FFI version) had to be retracted due to flutter/flutter#178915 - Releasing a new FFI version that would fix that issue is blocked on dart-lang/native#2824 - Our tree is also closed on dart-lang/native#2824 as an OOB failure due to the `objective_c` 9.2.0 release. - Depending on `objective_c` 9.2.0 also appears to add new toolchain requirements for running Dart unit tests, which we will a) need to figure out in our CI, and b) decide if we are okay pushing onto users (flutter/flutter#178715). This effectively reverts flutter#9762 (except for the changes allowing `ffigen` and `objective_c`, as Dart-team-owned dependencies). It was created by checking out the pre-9762 state of all the files in that directory, then applying `dart fix --apply` and `dart format` to pick up the changes for the new analyzer rules. Because of that PR landing, we can't just do a clean revert. Fixes flutter/flutter#178915 ## Pre-Review Checklist [^1]: Regular contributors who have demonstrated familiarity with the repository guidelines only need to comment if the PR is not auto-exempted by repo tooling.
flutter/packages@cc3dca6...5d8d954 2025-11-26 stuartmorgan@google.com [video_player_avfoundation] Create a Dart player instance (flutter/packages#10490) 2025-11-25 49699333+dependabot[bot]@users.noreply.github.com [dependabot]: Bump com.google.maps.android:android-maps-utils from 3.6.0 to 3.19.1 in /packages/google_maps_flutter/google_maps_flutter_android/android (flutter/packages#10390) 2025-11-25 stuartmorgan@google.com [path_provider] Revert iOS/macOS to plugin-based implementation (flutter/packages#10517) 2025-11-25 stuartmorgan@google.com [google_maps_flutter] Replace deprecated APIs (flutter/packages#10474) 2025-11-25 stuartmorgan@google.com [tool] Remove code analysis from podspec-check (flutter/packages#10484) 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-flutter-autoroll Please CC flutter-ecosystem@google.com on the revert to ensure that a human is aware of the problem. To file a bug in Flutter: 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
Reverts to the plugin-based implementation of
path_provider_foundationwhile issues are being sorted out:objective_c9.2.0 release.objective_c9.2.0 also appears to add new toolchain requirements for running Dart unit tests, which we will a) need to figure out in our CI, and b) decide if we are okay pushing onto users (Running flutter tests on linux might require clang and lld even if the app does not target linux since 3.38 flutter#178715).This effectively reverts #9762 (except for the changes allowing
ffigenandobjective_c, as Dart-team-owned dependencies). It was created by checking out the pre-9762 state of all the files in that directory, then applyingdart fix --applyanddart formatto pick up the changes for the new analyzer rules. Because of that PR landing, we can't just do a clean revert.Fixes flutter/flutter#178915
Pre-Review Checklist
[shared_preferences]pubspec.yamlwith an appropriate new version according to the pub versioning philosophy, or I have commented below to indicate which version change exemption this PR falls under1.CHANGELOG.mdto add a description of the change, following repository CHANGELOG style, or I have commented below to indicate which CHANGELOG exemption this PR falls under1.///).Footnotes
Regular contributors who have demonstrated familiarity with the repository guidelines only need to comment if the PR is not auto-exempted by repo tooling. ↩ ↩2 ↩3