-
Notifications
You must be signed in to change notification settings - Fork 3k
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
[pigeon] Add an initial example app #3761
Conversation
You'll want to skip the first several commits when reviewing this; the first is just the initial |
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.
Not seeing anything disagreeable here.
Do you think there is benefit to be had in having additional integration testing here at all?
cppSourceOut: 'windows/runner/messages.g.cpp', | ||
kotlinOut: | ||
'android/app/src/main/kotlin/dev/flutter/pigeon_example_app/Messages.g.kt', | ||
// This file is also used by the macOS project. |
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.
Do you think having multiple outputs is something anyone would be interested in?
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.
Now that we have sharedDarwinSource
for plugins (which allows macOS and iOS to share the same source directory) I think it's less likely. The use cases are now:
- apps, as with this case, and
- plugins that support macOS and iOS, with the pigeon API, but with completely unrelated implementations.
I think it's fine to just wait and see if we get any real-world requests for it.
We'll probably want to add integration tests that cover other functionality you add for examples. E.g., if we add a FlutterApi to this, which seems likely, we should have a test for that too. |
auto label is removed for flutter/packages, pr: 3761, due to - The status or check suite repo_checks has failed. Please fix the issues identified (or deflake) before re-applying this label. |
auto label is removed for flutter/packages, pr: 3761, due to - The status or check suite linux-custom_package_tests CHANNEL:master has failed. Please fix the issues identified (or deflake) before re-applying this label. |
flutter/packages@88591be...746750e 2023-04-20 stuartmorgan@google.com [pigeon] Add an initial example app (flutter/packages#3761) 2023-04-20 imagipioneer@gmail.com [google_maps_flutter_web] Allow marker position updates (flutter/packages#3697) 2023-04-19 tarrinneal@gmail.com [Tool] [Code Excerpt] allow excerpts in example readme (flutter/packages#3758) 2023-04-19 47866232+chunhtai@users.noreply.github.com [go_router] migrates test for route information.location deprecation (flutter/packages#3763) 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,rmistry@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://bugs.chromium.org/p/skia/issues/entry?template=Autoroller+Bug Documentation for the AutoRoller is here: https://skia.googlesource.com/buildbot/+doc/main/autoroll/README.md
Post submit ci is failing and it seems related: https://logs.chromium.org/logs/flutter/buildbucket/cr-buildbucket/8783277295305779937/+/u/Run_package_tests/drive_examples/stdout?format=raw |
@keyonghan Did you track down what caused |
I'm re-running to see if it's an Apple-server-side flake issue. |
IIRC, after updating the runtime, the CI passed. I didn't get a chance to track down to the root cause though. |
This reverts commit 746750e.
Reverts #3761 It's failing on stable; is not yet clear why so referring while I investigate.
* main: (144 commits) Update test golden images for the latest Skia roll (flutter#3787) [various] Adds Android namespace (flutter#3791) [shared_preferences] Update gradle/agp in example apps (flutter#3809) [go_router] Adds name to TypedGoRoute (flutter#3702) [webview_flutter] Adds support to receive permission requests (flutter#3543) [google_sign_in] Fix Android Java warnings (flutter#3762) [local_auth] Fix enum return on Android (flutter#3780) [pigeon] Warn when trying to use enums in collections (flutter#3782) [webview_flutter_android] [webview_flutter_wkwebview] Platform implementations for supporting permission requests (flutter#3792) [pigeon] Update for compatibility with a future change to the analyzer. (flutter#3789) [camera_android] Fix Android lint warnings (flutter#3716) [webview_flutter_platform_interface] Adds method to receive permission requests (flutter#3767) [image_picker_ios] In unit test write and read kCGImagePropertyExifUserComment property (flutter#3783) [go_router_builder] Fixed the return value of the generated push method (flutter#3650) [image_picker] Mention `launchMode: singleInstance` in README (flutter#3759) Revert "[pigeon] Add an initial example app" (flutter#3785) [google_maps_flutter] Add examples for different iOS versions (flutter#3757) [pigeon] Add an initial example app (flutter#3761) [google_maps_flutter_web] Allow marker position updates (flutter#3697) [Tool] [Code Excerpt] allow excerpts in example readme (flutter#3758) ... # Conflicts: # packages/camera/camera/pubspec.yaml
Relands #3761, with the native runners re-created from `stable`. The important change was the principle class in the macOS Info.plist being NSApplication instead of `FlutterApplication`, since the latter doesn't exist on stable. (The pigeon versions also changed because when I re-created the app I re-ran pigeon, and had a slightly newer version.)
This creates an initial example app covering Android (Kotlin), iOS and macOS (Swift), and Windows, showing integration of Pigeon into an app directly, without using a plugin. This serves as both a simple runnable example for clients, and as a future source for snippet extraction for documentation. It includes a simple integration test so that CI will ensure that it's actually working. Since we can't demonstrate Java and Objective-C in the same application, we could consider adding a second example app covering those in the future. Currently it shows only host API, and only a single trivial method, but we can expand over time as is useful for documentation. Part of flutter/flutter#66511
Reverts flutter#3761 It's failing on stable; is not yet clear why so referring while I investigate.
Relands flutter#3761, with the native runners re-created from `stable`. The important change was the principle class in the macOS Info.plist being NSApplication instead of `FlutterApplication`, since the latter doesn't exist on stable. (The pigeon versions also changed because when I re-created the app I re-ran pigeon, and had a slightly newer version.)
This creates an initial example app covering Android (Kotlin), iOS and macOS (Swift), and Windows, showing integration of Pigeon into an app directly, without using a plugin. This serves as both a simple runnable example for clients, and as a future source for snippet extraction for documentation. It includes a simple integration test so that CI will ensure that it's actually working.
Since we can't demonstrate Java and Objective-C in the same application, we could consider adding a second example app covering those in the future.
Currently it shows only host API, and only a single trivial method, but we can expand over time as is useful for documentation.
Part of flutter/flutter#66511
Pre-launch Checklist
dart format
.)[shared_preferences]
pubspec.yaml
with an appropriate new version according to the pub versioning philosophy, or this PR is exempt from version changes.CHANGELOG.md
to add a description of the change, following repository CHANGELOG style.///
).