445 Commits

Author SHA1 Message Date
0aff69f746 [tool] Ignore GeneratedPluginRegistrant.swift for format (#6195)
This file fails `swift-format lint`, so including it in `format` causes lots of warnings when run locally.
2024-02-26 18:05:23 +00:00
cd5d7d88d2 [local_auth] Switch iOS endorsement to local_auth_darwin (#6107)
Updates to use `local_auth_darwin` instead of the discontinued `local_auth_ios`.
2024-02-21 15:39:20 +00:00
cc34b78a0c [ci/various] Update for 3.19 stable (#6147)
Does the steps from https://github.com/flutter/flutter/wiki/Updating-Packages-repo-for-a-stable-release to account for stable now being 3.19, and N-2 (and thus our minimum supported min version) being 3.13.

These changes are version-bump-exempt [by repo policy](https://github.com/flutter/flutter/wiki/Contributing-to-Plugins-and-Packages#version).
2024-02-16 17:34:11 +00:00
c56c12dd51 [tool] Add support for using a Kotlin test runner file (#6131) 2024-02-16 02:59:05 +00:00
dcbaee5389 Explicitly pass the web renderer into the tests. (#6140)
The web tests currently all assume to be using the html renderer. `flutter test` previously erroneously was serving files for the HTML renderer by default (which is not the intended behavior). After this was fixed, the tests started running on the CanvasKit renderer and some of them broke. If we are relying on the html renderer, we should explicitly pass it when running `flutter test`
2024-02-15 22:19:49 +00:00
cbb676a2b2 [tools] Ignore analysis options files in .symlinks (#6119)
When running `analyze` in a local tree that has done builds, there can be false positives of the "unexpected analysis options" check due to the .symlinks directory making other packages' analysis options show up in the check. This avoids following links to prevent those false positives.
2024-02-14 18:11:23 +00:00
abb04bb89c [ci] Allow dependencies on local_auth_ios (#6116)
We aren't quite ready to switch the endorsement to `local_auth_darwin`, so allow `local_auth_ios` for now.
2024-02-13 19:26:35 +00:00
7403992f15 [tool] Update to Dart 3 (#6030)
Updates the repo tooling to Dart 3, now that the N-2 version has Dart 3, which allows us to use Dart 3 features (e.g., records) going forward.

To allow the update:
- Removes `break` commands from `switch`es (all done automatically with `dart fix --apply`)
- Replaces mocking of `ProcessResult` with just creating an actual `ProcessResult` since it's a `final` data class and thus can't (but also doesn't need to be) mocked.
2024-02-06 19:31:48 +00:00
9382257ce7 [ci] Move tool_runner.sh (#6038)
`script/tool_runner.sh` has only been intended for CI usage for quite a while, but it still lives in a prominent non-CI location which has been a source of confusion for developers (e.g., people looking at how CI is running things, and reasonably assuming that since the script isn't in a CI-specific location, it's for general use). While running it for simple cases works, it conflicts with any package selection, which is common thing to want to control when running locally.

This makes the following changes:
- Move the script into the .ci directory
- Adds explicit comments that it's not designed for local use, with a pointer to the corresponding local command
- Removes a stale reference to external-to-the-repo use of tool_runner.sh, as that usage no longer exists
  - Also consolidates and updates the links to the external scripts
- Updates a couple of CONTRIBUTING.md comments that still said to run tool_runner.sh
- Opportunistically cleans up some tooling references to .cirrus.yml, found while cleaning up comments in tool_runner.sh and checking for other references.
2024-02-06 19:31:46 +00:00
cbaa34006b [tool] Add details to missing gradle coverage error (#6029)
When failing a package due to missing gradle coverage, explain what needs to be done to fix it.

Fixes https://github.com/flutter/flutter/issues/132453
2024-02-01 22:59:17 +00:00
60a1ffc2f7 [tool] Extend flutter test workaround to other desktops (#6024)
Expand the multiple-test-files workaround in `drive-examples` from macOS to all of the desktop platforms, now that we know it's not macOS-specific.

See https://github.com/flutter/flutter/issues/135673
2024-01-31 21:46:47 +00:00
95f2e500cd [tool] Exempt federated impl examples from CHANGELOG (#6018)
The example app of a federated example is effectively test-only code, so treat changes to it (other than the one published file) as dev-only for the purposes of deciding what to flag for CHANGELOGs.
2024-01-30 19:09:20 +00:00
8fbdf65d02 [webview_flutter] Use a local web server for legacy web integration tests (#5956)
Use a local web server for the legacy test, just as for the non-legacy version.

Also updates the repo tooling to ensure that this test file is found, so it's run regardless of whether tests are run by directory or by individual path.

Part of https://github.com/flutter/flutter/issues/95420
2024-01-23 19:36:28 +00:00
88b7d1677c [most on Android] Bump compile SDK version to 34 (#5783)
This PR does the following:

1. Bumps compile SDK version to 34 for all packages on Android besides `webview_flutter_android`, which is blocked by finishing https://github.com/flutter/flutter/issues/137082.
2. Bumps legacy all_packages app to 33 because compiling failed after completing 1 (see example of failing build [here](https://ci.chromium.org/ui/p/flutter/builders/try/Linux_android%20android_build_all_packages%20master/5159/overview)). There was a Flutter fix available, so I believe this bump is safe.
3. Replaces all deprecated `compileSdkVersion` usages with `compileSdk`.
2024-01-22 22:39:06 +00:00
2bb7d14d92 [pigeon] Support other hosts in generated file CI checks (#5944)
Reworks Pigeon's CI validation of generated files to support multiple hosts, rather than only Linux, with the ability to set specific languages per host, to allow us to run validation for each language on whatever host it is most convenient to set up a formatter for that language, rather than having to support all languages on Linux.

See discussion in https://github.com/flutter/packages/pull/5928

Part of https://github.com/flutter/flutter/issues/41129
2024-01-20 20:48:17 +00:00
44ee590f33 [ci] Run Swift formatter and linter during CI formatting (#5928)
Make `swift-format` CIPD package available on the `PATH` https://flutter-review.googlesource.com/c/recipes/+/54020

Run `format --no-clang-format --no-java --no-kotlin --no-dart`  on the macOS builder so it doesn't duplicate same `format` call run on Linux.

Filter out generated files until https://github.com/flutter/flutter/issues/141799 is done.

Also add `swift-format lint` call during `format` command.  Fix the one casing issue it found in a test file.

Failing run:
https://logs.chromium.org/logs/flutter/buildbucket/cr-buildbucket/8758535881172004177/+/u/Run_package_tests/Swift_format/stdout

Successful run:
https://logs.chromium.org/logs/flutter/buildbucket/cr-buildbucket/8758492350529121249/+/u/Run_package_tests/Swift_format/stdout

Fixes https://github.com/flutter/flutter/issues/41129
2024-01-19 22:38:11 +00:00
8ab9b253b6 [ci] Add flags to formatter command to decide which formatters to run (#5905)
Get ready for a world where `swift-format` is available on the `PATH` https://flutter-review.googlesource.com/c/recipes/+/54020

1. Add `format --clang-format --java --kotlin --swift --dart` flags to decide whether to run specific formatters, as opposed to using the `path`.  Keep `swift-format` optional but default the others to run.  This matches the current behavior on Linux.
2. Add `*-path` variants of each.

This will allow us to run `format --swift --no-clang-format --no-java --no-kotlin --no-dart`  on the macOS bot so it doesn't duplicate same `format` call run on Linux.

Part of https://github.com/flutter/flutter/issues/41129
2024-01-18 15:59:25 +00:00
14b94ff834 [google_maps_flutter] Drop iOS 11 support (#5873)
Now that the latest Flutter stable requires iOS 12, and will auto-adjust projects, we can drop iOS 11 support in this plugin without breaking users. Having a minimum of iOS 12 means that Cocoapods should not resolve to anything older than Google Maps 6.x, which is the version that add arm64 simulator support, so the workaround to explicitly not build that can be removed. This means `google_maps_flutter` will no longer force projects into the buggier Rosetta iOS simulator path.

This folds the iOS 11 and iOS 12 examples together, since (per `examples/README.md`) the iOS 11 version is the one containing most of the tests. To minimize the potential of losing tests due to mistakes, this was done by deleting the iOS *12* example, renaming the iOS 11 example, and then updating it to a minimum of 12.

Fixes https://github.com/flutter/flutter/issues/94491
2024-01-12 19:57:24 +00:00
d74d687dc0 [ci] Check repo-level package metadata (#5811)
Adds a new tool command (and runs it in CI) to check that each package:
- is listed correctly in the repo-level README.md table
- has a CODEOWNERS entry

In the future we could add other things (e.g., auto-label), but these were the main things we've had issues with recently.

Updates README.md and CODEOWNERS to fix failures it found:
- Adds a couple of missing CODEOWNERS
- Expands the web implementation CODEOWNERS to individual packages so that we don't have to special-case handling in the tool
- Fixes some minor mistakes in README.md
- URL-encodes all `:`s in the README.md links (which is why ever line shows as changed); it worked without that in practice, but it should really be encoded, and having it consistently encoded made things easier for the tooling.
2024-01-12 14:11:30 +00:00
c5349bc9a5 [various] Add iOS privacy manifests (#5846)
Adds privacy manifests to all iOS plugins.

While we only *need* to do the plugins listed [here](https://developer.apple.com/support/third-party-SDK-requirements/) for now, the wording of the page:
> The following are commonly used SDKs in apps on the App Store

suggests that the list of things for which this is required is just an arbitrary cutoff rather than a conceptual distinction, so it seems safest to just assume the list will grow over time and do all of them. To ensure that, this includes new repo tooling to check that a manifest is specified in the podspec.

The large caveat is that we do not currently know if this actually works. This is the method of inclusion that seems to be [the consensus among people using Cocoapods](https://github.com/CocoaPods/CocoaPods/issues/10325), as bundling it directly as a `resource` causes problems for clients who do not use `use_frameworks`. (In theory it seems like a manifest would not actually be *required* in that case since there is no framework, but it has the potential to actually stomp top-level resources.) Hopefully the automated analysis that Apple will eventually roll out will tolerate the file being bundled in a resource bundle in the framework rather than a top-level manifest file. If not, however, it's not clear how Cocoapods can be supported, so we can adopt this common approach for now under the assumption that eventually tooling will adapt to the reality of the ecosystem, and revisit the exact bundling later if necessary.

Only `shared_preferences` has a non-empty manifest, as it is our only plugin that uses a required reason API, and none of our plugins themselves collect private data. Ideally for that plugin we would instead use `C56D.1`, which is for wrappers, but as currently written we can't use it since it's exclusively a wrapper. If that changes in the future based on our pending request, we can revisit. For now, however, this reason should suffice since we don't currently allow reading from other app groups.

Fixes https://github.com/flutter/flutter/issues/131495
Fixes https://github.com/flutter/flutter/issues/139756
Fixes https://github.com/flutter/flutter/issues/139757
Fixes https://github.com/flutter/flutter/issues/139758
Fixes https://github.com/flutter/flutter/issues/139759
Fixes https://github.com/flutter/flutter/issues/139760
See also https://github.com/flutter/flutter/issues/139761
2024-01-12 04:27:39 +00:00
0744fe6fdb [quick_actions_android] Close system dialogs for integration test (#5853)
Fixes https://github.com/flutter/flutter/issues/141136

Temporary fix for https://github.com/flutter/flutter/issues/140987
2024-01-11 00:39:03 +00:00
17daabc6b7 [ci] Exclude quick_actions from Android emulators (#5847)
To address extreme flake in the tree.

See https://github.com/flutter/flutter/issues/141136
2024-01-09 00:25:29 +00:00
0009545dd2 [ci] Run 'flutter build --config-only for iOS and macOS during fetch deps (#5804)
For iOS and macOS move fetch deps from explicity running `pub get` and `pod install` to instead run `flutter build x --config-only` which smartly fetches deps and lays down the required native pieces.  I didn't guard it on whether certain files are present since the command already has similar guards, and runs pretty fast if the native code has already been generated.

This fixes an issue where `pod install` is run before the Flutter native bits and migrations are run.

Fixes issues seen in the Flutter roll https://github.com/flutter/packages/pull/5792#issuecomment-1876103613
```
Running command: "pod install" in /Volumes/Work/s/w/ir/x/w/packages/packages/camera/camera_avfoundation/example/ios
Analyzing dependencies
[!] CocoaPods could not find compatible versions for pod "Flutter":
  In Podfile:
    Flutter (from `Flutter`)

Specs satisfying the `Flutter (from `Flutter`)` dependency were found, but they required a higher minimum deployment target.

[!] Automatically assigning platform `iOS` with version `11.0` on target `Runner` because no platform was specified. Please specify a platform for this target in your Podfile. See `https://guides.cocoapods.org/syntax/podfile.html#platform`.
Unable to "pod install"
```

Caused by https://github.com/flutter/flutter/pull/140478
2024-01-05 00:45:12 +00:00
e57318508e [tool] Handle Flutter dev dependencies (#5775)
A non-Flutter package can have Flutter-based tests (e.g., cupertino_icons), in which case we need to use `flutter test` rather than `dart test` just like we would for a package with a non-dev Flutter dependency. This updates the `requiresFlutter` check to include dev dependencies as well as normal dependencies.
2024-01-04 19:55:17 +00:00
bb97da8ec6 [various] Sync lints with flutter/flutter (#5717)
Applying the latest analysis_options.yaml from flutter/flutter to this
repo. Most fixes were auto-generated by `dart fix`.
2024-01-03 15:16:49 -08:00
4c3bc496be Remove workarounds for check_podspecs needed for older version of Cocoapods (#5724)
CI has been updated to Cocoapods 1.13, which fixes previous issues with the plugin_lint_mac test. Remove workarounds added previously.

See https://github.com/flutter/flutter/issues/125812.
2023-12-20 17:39:02 +00:00
eeb2c66a5e [extension_google_sign_in_as_googleapis_auth] Adopt code excerpts in … (#5496)
…README

Updates the README to use a compiled excerpt source for its example of using google_sign_in plugin with the `googleapis` package.

Part of [flutter/flutter#102679](https://github.com/flutter/flutter/issues/102679)
2023-12-15 19:41:16 +00:00
d30bdd9f44 [ios_platform_images] Adopt code-excerpts (#5682)
Replaces the Dart example code with a code excerpt.

Part of https://github.com/flutter/flutter/issues/102679
2023-12-14 21:33:01 +00:00
ee593fd2c4 [tool] Add support for .java, .gradle, .sh, and .m files… (#5567)
… to `update-excerpts` tool

Need this tool to recognize `.java`, `.gradle`, and `.sh` files in order to complete [flutter/flutter#102679](https://github.com/flutter/flutter/issues/102679). The `README.md` for the `espresso` package contains code from `.java`, `.gradle`, and `.sh` files.

Support for `.m` files was requested by @tarrinneal.
2023-12-13 21:01:50 +00:00
2b53f7253d [Android] Bump Gradle version to 7.6.3 (#5522)
Part of fix for https://github.com/flutter/flutter/issues/138336 by bumping the Gradle version of all package example apps (plus `image_picker_android` plugin) to 7.6.3 from those that had a version below that to fix security vulnerability.

Also fixes a bug I found while using the `update-dependencies` packages tool command that caused it to not catch all of the `gradle-wrapper.properties` files when running with the `gradle` dependency + added a test for the fix.
2023-12-13 19:21:50 +00:00
12b3d59d18 [google_sign_in] Adopt code excerpts in README (#5521)
Improves README example and updates it to use code excerpts.

Part of [flutter/flutter#102679](https://github.com/flutter/flutter/issues/102679)
2023-12-13 19:07:53 +00:00
a0fadd00c2 [css_colors] Adopt code excerpts in README (#5478)
Updates the README to use a compiled excerpt source for its example of importing and using `CSSColors`.

Part of [flutter/flutter#102679](https://github.com/flutter/flutter/issues/102679)
2023-12-13 18:12:09 +00:00
8411522be7 [tools] Validate pubspec topic format (#5565)
Fixes https://github.com/flutter/flutter/issues/139305
2023-12-12 16:44:27 +00:00
cb6dbcdd23 [multicast_dns] Adjust README (#5529)
- Improves link targets to be more directly useful.
- Removes the unnecessary code sections showing an import, since the install tab already demonstrates that.
- Removes the no-longer-needed exemption from the excerpt requirement.

Part of https://github.com/flutter/flutter/issues/102679
2023-12-09 09:06:19 +00:00
51174d166d [tool] Use ^ for Dart SDK (#5623)
The update-min-sdk command has been using explicitly ranges for the Dart
SDK, because that used to be required. Current versions of `pub` no
longer require that, and using `^` for Dart ranges is okay, so this
updates the tooling to use that format in the future.

Also removes the special casing that changed the upper bound from 3 to
4, since we have passed the point where we are generating upper bounds
less than 4 anyway.

To minimize churn, this doesn't update the existing pubspecs. We can
incrementally adopt this going forward as we roll dependencies forward.

Fixes https://github.com/flutter/flutter/issues/139806
2023-12-08 20:38:30 -08:00
5e81fd5d67 [google_sign_in_web] Migrate to pkg:web. (#5612)
This PR updates `google_sign_in_web` to:

* Use the latest `google_identity_services_web` and `http`
* Use `package:web`

This should allow the package to compile to WASM.

## Issues

* Fixes https://github.com/flutter/flutter/issues/139169
* Needed to https://github.com/flutter/flutter/issues/139170 

## Tests

* All tests should pass (ran locally)
* Demo app compiled to WASM: https://dit-gis-test.web.app
2023-12-09 01:07:05 +00:00
15584a394d [gis_web] Migrate to package:web. (#5581)
* Migrates package to use `package:web` so it can be compiled with WASM.
* **Breaking change**: Addresses API mismatches with the latest JS SDK changes.
* Adds some tests to client configuration objects.

(See CHANGELOG.md for a more thorough list of changes)

## Issues

* Fixes: https://github.com/flutter/flutter/issues/138202
* Fixes: https://github.com/flutter/flutter/issues/139167
  * Part of: https://github.com/flutter/flutter/issues/139170

## Tests

* Ran unit/integration tests locally, added a couple more.
* Tested example apps with `flutter run`, both seem to work.
* Tested example apps with `--wasm`, both seem to work.
2023-12-07 06:55:27 +00:00
44a8ce1d55 [flutter_image] Adopt code excerpts in README (#5498)
Updates the README to use a compiled excerpt source for its example of using `NetworkImageWithRetry`.

Part of [flutter/flutter#102679](https://github.com/flutter/flutter/issues/102679)
2023-12-01 14:22:33 +00:00
14093051d0 [quick_actions_android] Run tests on AVDs running Android 34 (#5220)
Run `quick_actions_android` tests on AVDs running Android 34.
2023-11-27 15:10:06 +00:00
2102327ab9 [cross_file] adopt code excerpts in README (#5347)
Updates the README to use a compiled excerpt source for its example of instantiating an `XFile`.

Part of [flutter/flutter#102679](https://github.com/flutter/flutter/issues/102679)
2023-11-22 10:01:13 +00:00
639c5f05ed [ci] Roll minimum allowable Flutter to 3.10 (#5425)
Updates the repo for Flutter 3.16, making the minimum version that packages are allowed to support 3.10, following the process in https://github.com/flutter/flutter/wiki/Updating-Packages-repo-for-a-stable-release

Per https://github.com/flutter/flutter/wiki/Contributing-to-Plugins-and-Packages#version this does not bump versions.
2023-11-18 01:57:18 +00:00
bc145f4dd6 [path_provider_android] Run tests on AVDs running Android 34 (#5222)
Run `path_provider_android` tests on AVDs running Android 34.

Part of https://github.com/flutter/flutter/issues/137082.
2023-11-18 00:42:19 +00:00
42dbb7573a [file_selector_web] migrate to pkg:web (#5413)
This allows this package to be used in a web app compiled to Wasm.

Helps unblock https://github.com/flutter/devtools/issues/6606
2023-11-17 00:40:15 +00:00
07b4b298fa [script] use dart:io support for forwarding stdout/stderr (#5410) 2023-11-16 15:01:13 +00:00
72de224b08 [tool] Add Kotlin autoformatting (#5374)
Updates the tooling to fetch and use `ktfmt` for Kotlin code, the same way it currently does for the Google Java formatter, and applies that formatting (in the default mode; see discussion in the linked issue) to the repository.

In the future we could revisit the formatter or mode, but since this currently seems to be the most consistent with our other languages and to google3 formatting this is likely the option we'll want to stick with.

Fixes https://github.com/flutter/flutter/issues/118756
2023-11-13 16:18:25 +00:00
86b116807e [repo] Adjust error message layout for repo checks (#5241)
This tweaks the errors messages that provide info like how to override a repo check for versioning or changelog updates.
Basically added newlines, so the errors do not require scrolling far off to the right to get the message.
2023-11-07 20:40:35 +00:00
64dbd3a303 [tool] Add option for Android compile SDK version to update-dependencies command (#5010)
Adds option to `update-dependencies` command to update the compile SDK version of plugins or their example apps.
2023-10-31 22:15:01 +00:00
29a01642fb [file_selector_android] Run tests on AVDs running Android 34 (#5218)
Run `file_selector_android` tests on AVDs running Android 34.

Result of https://github.com/flutter/flutter/issues/135756.
2023-10-25 16:37:05 +00:00
3cc6e26ea8 [Android] Introduces API 34 emulators for subset of tests (#5105)
Introduces API 34 emulators for subset of tests not causing test failures in https://github.com/flutter/packages/pull/4804. Also changes linux_android version to 34v1.

Continuation of https://github.com/flutter/packages/pull/4820.
2023-10-24 17:25:52 +00:00
e73b364bc7 [tool] Add optional swift-format support (#5204)
Adds support for swift-format in the `format` command. For now this is optional, so is only triggered if the flag is explictly passed. In the future, once we have CI support for swift-format, we will likely want to make it on-by-default as with the other formatters.

Part of https://github.com/flutter/flutter/issues/41129
2023-10-23 16:10:19 +00:00