-
Notifications
You must be signed in to change notification settings - Fork 3.6k
[google_maps_flutter] Create SDK 9 and 10 packages for iOS #10852
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
base: main
Are you sure you want to change the base?
[google_maps_flutter] Create SDK 9 and 10 packages for iOS #10852
Conversation
|
Review note: I had to do a bunch of squashing to reconcile the combined branch with what I split out into #10839, and accidentally destroyed the separation between "create _sdk9 as a direct copy that doesn't need review" and "edit _sdk9 to change what needs to be changed". aeaecee is the version of that for making _sdk10 from _sdk9 though, which shows what the diffs mostly looked like. Vanilla to _sdk9 also had some extra podspec changes to make the podspec version-specific in the first place, and created Swift.package entirely, so those two files should be reviewed in full. Other than those diffs, you should be able to essentially ignore _sdk9 and _sdk10 files in review, as they are copies. |
8828baa to
1ff53a3
Compare
| # google_maps_flutter_ios_sdk10 to ensure that they don't conflict at build | ||
| # time (if they did, it would be impossible to select the SDK-specific | ||
| # version). | ||
| - google_maps_flutter_ios |
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.
This is the same thing we used to do for camera_android. It only affects the build-all test; we still build each individual package's example, so we are getting full coverage that each variant is buildable.
|
Sorry for the churn; I should have started it as a draft while I ironed out the bits I missed locally. This is now passing CI and ready for review. |
Implements approach E.1b from the design doc about SwiftPM support. The main changes are:
google_maps_flutter_ios_shared_codedirectory which has an exact copy of almost all of the code files fromgoogle_maps_flutter_ios.tooldirectory togoogle_maps_flutter_ios(and the shared code, so that it stays in sync) with two command scripts:run_tests.dart, which is automatically run by existing repo tool logic, as part of the custom tests task. This validates that for every file ingoogle_maps_flutter_ios_shared_code, the corresponding file ingoogle_maps_flutter_iosis identical (modulo some expected package name differences in specific cases). It lists all the files checked, to allow for easy auditing in CI output or locally about what is being shared.sync_shared_files.dart, which is a helper script for local use that copies all files in the current package that have changes relative to their shared code counterparts, both to the shared copy and all other copies. This is to make the local development process less painful; for most changes, all someone has to do is work in one of the packages, and then run this script when they are done to sync those changes to all the other copies. It also logs any code files that aren't shared, to remind people adding files to take the step of adding those to the shared copy if they should be shared.google_maps_flutter_ios,..._sdk9and..._sdk10'which are direct copies ofgoogle_maps_ioswith very minor changes:There are some minor supporting changes:
google_maps_flutter_iosREADME has been adjusted to reflect the new set of options.#ifand explanation in each file.sync_shared_files.dartlater; I left it this way to minimize the number of files we have to do rewriting in, but I'm fine with either option.)fluttershould only allow one of the implementations to be registered.)Once this lands and the new packages are published, I will do a follow-up PR to add a
google_maps_flutterREADME discussion of how and why to use these new packages.Mostly completes flutter/flutter#146920
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