-
Notifications
You must be signed in to change notification settings - Fork 29.7k
Move app link settings task configuration to kotlin #165819
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
Move app link settings task configuration to kotlin #165819
Conversation
d79f97c to
0b33d8e
Compare
reidbaker
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.
I dont like how deep the nesting gets in the main method. My primary focus was getting this code working structure and naming improvements welcomed.
| internal fun addTasksForOutputsAppLinkSettings(project: Project) { | ||
| // Integration test for AppLinkSettings task defined in | ||
| // flutter/flutter/packages/flutter_tools/test/integration.shard/android_gradle_outputs_app_link_settings_test.dart | ||
| val android = getAndroidExtensionOrNull(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.
I think you can just use the existing getAndroidExtension here, right? It will throw if we can't find it, but I think that is also what would happen in the groovy code (the cast would error).
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.
I cant, Even if we were ok with a semantics change in this pr. BaseExtension does not have applicationVariants as a object to do work on. I can rename the function though so they are not confused. Additionally I have updated the comment next to the todo that indicates we could use a typed search or remove the call in favor of BaseExtension (along with a refactor for how variant outputs are configured.
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.
Ah yes sorry it would beed to be an AbstractAppExtension. I'm doing the same thing in addTaskForPrintBuildVariants. We could add a getAndroidExtensionAsApplication or something. But not a big deal
| } | ||
|
|
||
| private fun findProcessResources(baseVariantOutput: BaseVariantOutput): ProcessAndroidResources { | ||
| // Semantic change from flutter.groovy source, baseVariant does not have a hasProperty |
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.
I think this is a good note but I don't know that we should leave it as a code comment. I think it won't make sense in a couple months and doesn't point at future work (and it is making me realize I may have left similar comments).
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.
Also on what the actual code was doing, I think every object in groovy has a hasProperty method https://docs.groovy-lang.org/latest/html/groovy-jdk/java/lang/Object.html#hasProperty(java.lang.String)
And then also objects automatically have properties generated for things that they have getters and/or setters for, I believe. So that's probably what was happening. I think the actual Kotlin equivalent would be to use reflection to check method names or something like that, assuming it is possible. But I think this conversion works because I think that that method exists on all AGP versions inside our support range.
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.
I can remove the comment. Want me to leave the fallback logic even though it may not be used for our version ranges? Or do you think using reflection to do something similar to hasProperty is the right decision here.
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.
I think just leave the fallback, and leave as is for now. We can clean it up after the conversion is done.
packages/flutter_tools/gradle/src/main/kotlin/FlutterPluginUtils.kt
Outdated
Show resolved
Hide resolved
packages/flutter_tools/gradle/src/test/kotlin/FlutterPluginUtilsTest.kt
Outdated
Show resolved
Hide resolved
packages/flutter_tools/gradle/src/test/kotlin/FlutterPluginUtilsTest.kt
Outdated
Show resolved
Hide resolved
packages/flutter_tools/gradle/src/test/kotlin/FlutterPluginUtilsTest.kt
Outdated
Show resolved
Hide resolved
…on, reorginize test to have companion object at the top
gmackall
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.
L(more)GTM with the nesting level reduction from createAppLinkSettings
| return project.extensions.findByType(BaseExtension::class.java)!! | ||
| } | ||
|
|
||
| // TODO: https://github.com/flutter/flutter/issues/165882 |
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.
Can we use the same style guides for todo's as we do for dart?
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.
Done
| android.applicationVariants.configureEach { | ||
| val variant = this | ||
| project.tasks.register("output${FlutterPluginUtils.capitalize(variant.name)}AppLinkSettings") { | ||
| val task = this |
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.
It doesn't seem like we're using this task anywhere else.
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.
We are not but when parsing this code I found that renaming "this" was a pattern that makes the code significantly more readable.
| task.description = | ||
| "stores app links settings for the given build variant of this Android project into a json file." | ||
| variant.outputs.configureEach { | ||
| val baseVariantOutput = this |
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.
Same here but for baseVariantOutput
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.
see above
| * Extracts app deeplink information from the Android manifest file of a variant then returns | ||
| * an AppLinkSettings object. | ||
| * | ||
| * @receiver BaseVariantOutput The output of a specific build variant (e.g., debug, release). |
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 should be @param
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.
Done
| node is Node && node.name() == "application" | ||
| } as Node? | ||
|
|
||
| applicationNode?.let { appNode -> |
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.
Let's do an early return if the applicationNode is null instead of a ?.let
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.
Done.
|
|
||
| applicationNode?.let { appNode -> | ||
| val activities: List<Any?> = | ||
| appNode.children().filter { item -> |
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 sure if .filterIsInstance is available here, but you can try using .filterIsInstance and then chain it with another filter to check the name. That way, you can avoid the second is Node check below.
Same goes for rest of the is Node checks below.
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.
Thank you for this recommendation. It alone removed maybe 6 layers of nesting.
@gmackall fyi .filterIsInstance exists.
| // TODO exit out early per intent filter action view. | ||
| actionItems.forEach { action -> | ||
| if (action is Node) { | ||
| if (action.attribute("android:name") == "android.intent.action.VIEW") { |
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.
Can we make treat these magic values as private constants outside this function?
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.
We can but for most of the constants I think it makes it less readable not more. Specifically for the keys/values we are checking that are not used in multiple locations.
I did turn android:name and android:value and "true" into keys. Name and value might change when modify xml parsers depending on how the new parser handles custom schema. If they change it would change everywhere. For value the code does not need to know or care if it is "true" or "True" so that also makes sense.
But for values like scheme and path pattern I think the strings are more readable.
| dataItems.forEach { data -> | ||
| if (data is Node) { | ||
| data.attributes().forEach { entry -> | ||
| when ((entry.key)) { |
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.
Double parenthesis here
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.
fixed.
|
|
||
| val devDependency: Map<String?, Any?> = | ||
| mapOf( | ||
| Pair("name", "grays_fun_dev_dependency"), |
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.
Instead of constructing Pair's like this, we can also construct them using the to DSL. Like this:
"path" to "/Users/someuser/.pub-cache/hosted/pub.dev/grays_fun_dev_dependency-1.1.1/"
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.
In this case I would like to leave this alone. These lines are a move unrelated to this pr where I just pulled the companion object to the top of the file.
@gmackall fyi.
| every { mockProject.logger } returns mockLogger | ||
| every { mockLogger.info(any()) } returns Unit | ||
| every { mockLogger.warn(any()) } returns Unit |
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.
We should be able to clean this up a little more by moving these mock building code into their own builder functions and also using a hierarchical pattern. See https://mockk.io/#hierarchical-mocking
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.
done for a good number of these.
Manual roll Flutter from 1d954f4 to 05b5e79 (225 revisions) Manual roll requested by [email protected] flutter/flutter@1d954f4...05b5e79 2025-03-29 [email protected] Roll Dart SDK from bcb7649e965a to b9c35e05feb5 (1 revision) (flutter/flutter#166202) 2025-03-29 [email protected] Roll Dart SDK from a7701559f616 to bcb7649e965a (1 revision) (flutter/flutter#166189) 2025-03-29 [email protected] Roll Dart SDK from 30ea8c4e622f to a7701559f616 (1 revision) (flutter/flutter#166185) 2025-03-29 [email protected] [fuchsia][sysmem2] switch to sysmem2 tokens (flutter/flutter#166120) 2025-03-29 [email protected] Roll Dart SDK from 65fe9906a916 to 30ea8c4e622f (2 revisions) (flutter/flutter#166181) 2025-03-29 [email protected] move around shaders in vertices uber 1/2 (flutter/flutter#166180) 2025-03-29 [email protected] [Impeller] optimize drawImageRect with blend and matrix color filter. (flutter/flutter#165998) 2025-03-28 [email protected] Add drawRSuperellipse support to mock_canvas. (flutter/flutter#165744) 2025-03-28 [email protected] Started clamping scaled antialias lines size (flutter/flutter#166149) 2025-03-28 [email protected] Roll Dart SDK from 4494ffead9af to 65fe9906a916 (7 revisions) (flutter/flutter#166162) 2025-03-28 [email protected] Remove bringup flag for customer tests (flutter/flutter#166161) 2025-03-28 [email protected] Add the ios-reviewers review team (flutter/flutter#166034) 2025-03-28 [email protected] [impeller] refactored LineContents to make it more testable, added tests (flutter/flutter#166035) 2025-03-28 [email protected] [Widget Inspector] Jump to source code of implementation widgets from Flutter Inspector (flutter/flutter#165924) 2025-03-28 [email protected] Make sure `LayoutBuilder` rebuild in an inactive route (flutter/flutter#154681) 2025-03-28 [email protected] [Impeller] allow newer powervr gpu to use Vulkan. (flutter/flutter#165520) 2025-03-28 [email protected] [web] Remove package:js in favor of dart:js_interop (flutter/flutter#165324) 2025-03-28 [email protected] [ Widget Previews ] Default to using Flutter Web for the widget preview environment (flutter/flutter#166091) 2025-03-28 [email protected] Mark Linux coverage as bringup (flutter/flutter#166144) 2025-03-28 [email protected] Roll Fuchsia Linux SDK from djUjSTaAtl0ETQSBR... to v7PGvypiiWLO8PbsZ... (flutter/flutter#166136) 2025-03-28 [email protected] [Impeller] split vertices uber into 2 shaders. (flutter/flutter#165938) 2025-03-28 [email protected] [flutter_tools] Fix VS Code package.json path on macOS with case-sensitive file system (flutter/flutter#163409) 2025-03-28 [email protected] Delete some verbose vm service logging (flutter/flutter#162709) 2025-03-28 [email protected] Get analytics welcome message under test (flutter/flutter#162627) 2025-03-28 [email protected] [ios][pv]fully revert the UIScreen.main deprecated API change (flutter/flutter#166080) 2025-03-28 [email protected] Roll Skia from b5b6f29d690f to 10f4cf9a817d (8 revisions) (flutter/flutter#166111) 2025-03-28 [email protected] [CI] remove check for exact golden files. (flutter/flutter#166031) 2025-03-28 [email protected] Move OpenGL context management to FlOpenGLManager (flutter/flutter#166025) 2025-03-27 [email protected] [android] only release background image readers on Android 14. (flutter/flutter#165942) 2025-03-27 [email protected] Refactor: Migrate Date picker from MaterialState and MaterialStateProperty (flutter/flutter#164972) 2025-03-27 [email protected] Mark Linux customer tests as flaky (flutter/flutter#166103) 2025-03-27 [email protected] Move app link settings task configuration to kotlin (flutter/flutter#165819) 2025-03-27 [email protected] Make iOS Flutter framework extension-safe (flutter/flutter#165346) 2025-03-27 [email protected] [ Widget Preview ] Display an error widget when an exception is thrown while defining the widget tree (flutter/flutter#166005) 2025-03-27 [email protected] Removed not working hyperlinks to ScriptCategory values (flutter/flutter#165395) 2025-03-27 [email protected] add PointerDeviceKind to ScaleStartDetails (flutter/flutter#165096) 2025-03-27 [email protected] Fix build_android_host_app_with_module_source device lab tests (flutter/flutter#166077) 2025-03-27 [email protected] Roll Skia from 11375a498f6b to b5b6f29d690f (4 revisions) (flutter/flutter#166060) 2025-03-27 [email protected] [Impeller] Move to the new location before rendering a stroke path contour containing only one point (flutter/flutter#165940) 2025-03-27 [email protected] Scale aa lines (flutter/flutter#165917) 2025-03-27 [email protected] Reapply "[ Device Lab ] Upgrade Device Lab projects to Java 18" (#166016) (flutter/flutter#166059) 2025-03-27 [email protected] Roll Fuchsia Linux SDK from iScQOaYHg2aJcF1LX... to djUjSTaAtl0ETQSBR... (flutter/flutter#166055) 2025-03-27 [email protected] Roll Skia from 67a236832d64 to 11375a498f6b (2 revisions) (flutter/flutter#166046) 2025-03-27 [email protected] [flutter_tool] Handle RPCErrorKind.kConnectionDisposed (flutter/flutter#164299) ...
… (#8960) Manual roll Flutter from 1d954f4e96bd to 05b5e7910544 (225 revisions) Manual roll requested by [email protected] flutter/flutter@1d954f4...05b5e79 2025-03-29 [email protected] Roll Dart SDK from bcb7649e965a to b9c35e05feb5 (1 revision) (flutter/flutter#166202) 2025-03-29 [email protected] Roll Dart SDK from a7701559f616 to bcb7649e965a (1 revision) (flutter/flutter#166189) 2025-03-29 [email protected] Roll Dart SDK from 30ea8c4e622f to a7701559f616 (1 revision) (flutter/flutter#166185) 2025-03-29 [email protected] [fuchsia][sysmem2] switch to sysmem2 tokens (flutter/flutter#166120) 2025-03-29 [email protected] Roll Dart SDK from 65fe9906a916 to 30ea8c4e622f (2 revisions) (flutter/flutter#166181) 2025-03-29 [email protected] move around shaders in vertices uber 1/2 (flutter/flutter#166180) 2025-03-29 [email protected] [Impeller] optimize drawImageRect with blend and matrix color filter. (flutter/flutter#165998) 2025-03-28 [email protected] Add drawRSuperellipse support to mock_canvas. (flutter/flutter#165744) 2025-03-28 [email protected] Started clamping scaled antialias lines size (flutter/flutter#166149) 2025-03-28 [email protected] Roll Dart SDK from 4494ffead9af to 65fe9906a916 (7 revisions) (flutter/flutter#166162) 2025-03-28 [email protected] Remove bringup flag for customer tests (flutter/flutter#166161) 2025-03-28 [email protected] Add the ios-reviewers review team (flutter/flutter#166034) 2025-03-28 [email protected] [impeller] refactored LineContents to make it more testable, added tests (flutter/flutter#166035) 2025-03-28 [email protected] [Widget Inspector] Jump to source code of implementation widgets from Flutter Inspector (flutter/flutter#165924) 2025-03-28 [email protected] Make sure `LayoutBuilder` rebuild in an inactive route (flutter/flutter#154681) 2025-03-28 [email protected] [Impeller] allow newer powervr gpu to use Vulkan. (flutter/flutter#165520) 2025-03-28 [email protected] [web] Remove package:js in favor of dart:js_interop (flutter/flutter#165324) 2025-03-28 [email protected] [ Widget Previews ] Default to using Flutter Web for the widget preview environment (flutter/flutter#166091) 2025-03-28 [email protected] Mark Linux coverage as bringup (flutter/flutter#166144) 2025-03-28 [email protected] Roll Fuchsia Linux SDK from djUjSTaAtl0ETQSBR... to v7PGvypiiWLO8PbsZ... (flutter/flutter#166136) 2025-03-28 [email protected] [Impeller] split vertices uber into 2 shaders. (flutter/flutter#165938) 2025-03-28 [email protected] [flutter_tools] Fix VS Code package.json path on macOS with case-sensitive file system (flutter/flutter#163409) 2025-03-28 [email protected] Delete some verbose vm service logging (flutter/flutter#162709) 2025-03-28 [email protected] Get analytics welcome message under test (flutter/flutter#162627) 2025-03-28 [email protected] [ios][pv]fully revert the UIScreen.main deprecated API change (flutter/flutter#166080) 2025-03-28 [email protected] Roll Skia from b5b6f29d690f to 10f4cf9a817d (8 revisions) (flutter/flutter#166111) 2025-03-28 [email protected] [CI] remove check for exact golden files. (flutter/flutter#166031) 2025-03-28 [email protected] Move OpenGL context management to FlOpenGLManager (flutter/flutter#166025) 2025-03-27 [email protected] [android] only release background image readers on Android 14. (flutter/flutter#165942) 2025-03-27 [email protected] Refactor: Migrate Date picker from MaterialState and MaterialStateProperty (flutter/flutter#164972) 2025-03-27 [email protected] Mark Linux customer tests as flaky (flutter/flutter#166103) 2025-03-27 [email protected] Move app link settings task configuration to kotlin (flutter/flutter#165819) 2025-03-27 [email protected] Make iOS Flutter framework extension-safe (flutter/flutter#165346) 2025-03-27 [email protected] [ Widget Preview ] Display an error widget when an exception is thrown while defining the widget tree (flutter/flutter#166005) 2025-03-27 [email protected] Removed not working hyperlinks to ScriptCategory values (flutter/flutter#165395) 2025-03-27 [email protected] add PointerDeviceKind to ScaleStartDetails (flutter/flutter#165096) 2025-03-27 [email protected] Fix build_android_host_app_with_module_source device lab tests (flutter/flutter#166077) 2025-03-27 [email protected] Roll Skia from 11375a498f6b to b5b6f29d690f (4 revisions) (flutter/flutter#166060) 2025-03-27 [email protected] [Impeller] Move to the new location before rendering a stroke path contour containing only one point (flutter/flutter#165940) 2025-03-27 [email protected] Scale aa lines (flutter/flutter#165917) 2025-03-27 [email protected] Reapply "[ Device Lab ] Upgrade Device Lab projects to Java 18" (#166016) (flutter/flutter#166059) 2025-03-27 [email protected] Roll Fuchsia Linux SDK from iScQOaYHg2aJcF1LX... to djUjSTaAtl0ETQSBR... (flutter/flutter#166055) 2025-03-27 [email protected] Roll Skia from 67a236832d64 to 11375a498f6b (2 revisions) (flutter/flutter#166046) 2025-03-27 [email protected] [flutter_tool] Handle RPCErrorKind.kConnectionDisposed (flutter/flutter#164299) ...
…8960) Manual roll Flutter from 1d954f4 to 05b5e79 (225 revisions) Manual roll requested by [email protected] flutter/flutter@1d954f4...05b5e79 2025-03-29 [email protected] Roll Dart SDK from bcb7649e965a to b9c35e05feb5 (1 revision) (flutter/flutter#166202) 2025-03-29 [email protected] Roll Dart SDK from a7701559f616 to bcb7649e965a (1 revision) (flutter/flutter#166189) 2025-03-29 [email protected] Roll Dart SDK from 30ea8c4e622f to a7701559f616 (1 revision) (flutter/flutter#166185) 2025-03-29 [email protected] [fuchsia][sysmem2] switch to sysmem2 tokens (flutter/flutter#166120) 2025-03-29 [email protected] Roll Dart SDK from 65fe9906a916 to 30ea8c4e622f (2 revisions) (flutter/flutter#166181) 2025-03-29 [email protected] move around shaders in vertices uber 1/2 (flutter/flutter#166180) 2025-03-29 [email protected] [Impeller] optimize drawImageRect with blend and matrix color filter. (flutter/flutter#165998) 2025-03-28 [email protected] Add drawRSuperellipse support to mock_canvas. (flutter/flutter#165744) 2025-03-28 [email protected] Started clamping scaled antialias lines size (flutter/flutter#166149) 2025-03-28 [email protected] Roll Dart SDK from 4494ffead9af to 65fe9906a916 (7 revisions) (flutter/flutter#166162) 2025-03-28 [email protected] Remove bringup flag for customer tests (flutter/flutter#166161) 2025-03-28 [email protected] Add the ios-reviewers review team (flutter/flutter#166034) 2025-03-28 [email protected] [impeller] refactored LineContents to make it more testable, added tests (flutter/flutter#166035) 2025-03-28 [email protected] [Widget Inspector] Jump to source code of implementation widgets from Flutter Inspector (flutter/flutter#165924) 2025-03-28 [email protected] Make sure `LayoutBuilder` rebuild in an inactive route (flutter/flutter#154681) 2025-03-28 [email protected] [Impeller] allow newer powervr gpu to use Vulkan. (flutter/flutter#165520) 2025-03-28 [email protected] [web] Remove package:js in favor of dart:js_interop (flutter/flutter#165324) 2025-03-28 [email protected] [ Widget Previews ] Default to using Flutter Web for the widget preview environment (flutter/flutter#166091) 2025-03-28 [email protected] Mark Linux coverage as bringup (flutter/flutter#166144) 2025-03-28 [email protected] Roll Fuchsia Linux SDK from djUjSTaAtl0ETQSBR... to v7PGvypiiWLO8PbsZ... (flutter/flutter#166136) 2025-03-28 [email protected] [Impeller] split vertices uber into 2 shaders. (flutter/flutter#165938) 2025-03-28 [email protected] [flutter_tools] Fix VS Code package.json path on macOS with case-sensitive file system (flutter/flutter#163409) 2025-03-28 [email protected] Delete some verbose vm service logging (flutter/flutter#162709) 2025-03-28 [email protected] Get analytics welcome message under test (flutter/flutter#162627) 2025-03-28 [email protected] [ios][pv]fully revert the UIScreen.main deprecated API change (flutter/flutter#166080) 2025-03-28 [email protected] Roll Skia from b5b6f29d690f to 10f4cf9a817d (8 revisions) (flutter/flutter#166111) 2025-03-28 [email protected] [CI] remove check for exact golden files. (flutter/flutter#166031) 2025-03-28 [email protected] Move OpenGL context management to FlOpenGLManager (flutter/flutter#166025) 2025-03-27 [email protected] [android] only release background image readers on Android 14. (flutter/flutter#165942) 2025-03-27 [email protected] Refactor: Migrate Date picker from MaterialState and MaterialStateProperty (flutter/flutter#164972) 2025-03-27 [email protected] Mark Linux customer tests as flaky (flutter/flutter#166103) 2025-03-27 [email protected] Move app link settings task configuration to kotlin (flutter/flutter#165819) 2025-03-27 [email protected] Make iOS Flutter framework extension-safe (flutter/flutter#165346) 2025-03-27 [email protected] [ Widget Preview ] Display an error widget when an exception is thrown while defining the widget tree (flutter/flutter#166005) 2025-03-27 [email protected] Removed not working hyperlinks to ScriptCategory values (flutter/flutter#165395) 2025-03-27 [email protected] add PointerDeviceKind to ScaleStartDetails (flutter/flutter#165096) 2025-03-27 [email protected] Fix build_android_host_app_with_module_source device lab tests (flutter/flutter#166077) 2025-03-27 [email protected] Roll Skia from 11375a498f6b to b5b6f29d690f (4 revisions) (flutter/flutter#166060) 2025-03-27 [email protected] [Impeller] Move to the new location before rendering a stroke path contour containing only one point (flutter/flutter#165940) 2025-03-27 [email protected] Scale aa lines (flutter/flutter#165917) 2025-03-27 [email protected] Reapply "[ Device Lab ] Upgrade Device Lab projects to Java 18" (#166016) (flutter/flutter#166059) 2025-03-27 [email protected] Roll Fuchsia Linux SDK from iScQOaYHg2aJcF1LX... to djUjSTaAtl0ETQSBR... (flutter/flutter#166055) 2025-03-27 [email protected] Roll Skia from 67a236832d64 to 11375a498f6b (2 revisions) (flutter/flutter#166046) 2025-03-27 [email protected] [flutter_tool] Handle RPCErrorKind.kConnectionDisposed (flutter/flutter#164299) ...
- **Inital conversion and single test case** - **Task registered with name** - **Test can handle multiple variants** - **configuration for baseOutput setup** - **Test passing** - **formatting** - **Use constant with upppercase** - **Replace flutter.groovy version of addTasksForOutputsAppLinkSettings** Fixes flutter#164393 Helpful commands: ` JAVA_HOME=/opt/homebrew/opt/openjdk@17/libexec/openjdk.jdk/Contents/Home/ ./gradlew test --info --tests "com.flutter.gradle.FlutterPluginUtilsTest"` from packages/flutter_tools/gradle `flutter test test/integration.shard/android_gradle_outputs_app_link_settings_test.dart` from packages/flutter_tools ## Pre-launch Checklist - [x] I read the [Contributor Guide] and followed the process outlined there for submitting PRs. - [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. - [x] I updated/added relevant documentation (doc comments with `///`). - [x] I added new tests to check the change I am making, or this PR is [test-exempt]. - [x] I followed the [breaking change policy] and added [Data Driven Fixes] where supported. - [x] All existing and new tests are passing.
…8960) Manual roll Flutter from 1d954f4 to 05b5e79 (225 revisions) Manual roll requested by [email protected] flutter/flutter@1d954f4...05b5e79 2025-03-29 [email protected] Roll Dart SDK from bcb7649e965a to b9c35e05feb5 (1 revision) (flutter/flutter#166202) 2025-03-29 [email protected] Roll Dart SDK from a7701559f616 to bcb7649e965a (1 revision) (flutter/flutter#166189) 2025-03-29 [email protected] Roll Dart SDK from 30ea8c4e622f to a7701559f616 (1 revision) (flutter/flutter#166185) 2025-03-29 [email protected] [fuchsia][sysmem2] switch to sysmem2 tokens (flutter/flutter#166120) 2025-03-29 [email protected] Roll Dart SDK from 65fe9906a916 to 30ea8c4e622f (2 revisions) (flutter/flutter#166181) 2025-03-29 [email protected] move around shaders in vertices uber 1/2 (flutter/flutter#166180) 2025-03-29 [email protected] [Impeller] optimize drawImageRect with blend and matrix color filter. (flutter/flutter#165998) 2025-03-28 [email protected] Add drawRSuperellipse support to mock_canvas. (flutter/flutter#165744) 2025-03-28 [email protected] Started clamping scaled antialias lines size (flutter/flutter#166149) 2025-03-28 [email protected] Roll Dart SDK from 4494ffead9af to 65fe9906a916 (7 revisions) (flutter/flutter#166162) 2025-03-28 [email protected] Remove bringup flag for customer tests (flutter/flutter#166161) 2025-03-28 [email protected] Add the ios-reviewers review team (flutter/flutter#166034) 2025-03-28 [email protected] [impeller] refactored LineContents to make it more testable, added tests (flutter/flutter#166035) 2025-03-28 [email protected] [Widget Inspector] Jump to source code of implementation widgets from Flutter Inspector (flutter/flutter#165924) 2025-03-28 [email protected] Make sure `LayoutBuilder` rebuild in an inactive route (flutter/flutter#154681) 2025-03-28 [email protected] [Impeller] allow newer powervr gpu to use Vulkan. (flutter/flutter#165520) 2025-03-28 [email protected] [web] Remove package:js in favor of dart:js_interop (flutter/flutter#165324) 2025-03-28 [email protected] [ Widget Previews ] Default to using Flutter Web for the widget preview environment (flutter/flutter#166091) 2025-03-28 [email protected] Mark Linux coverage as bringup (flutter/flutter#166144) 2025-03-28 [email protected] Roll Fuchsia Linux SDK from djUjSTaAtl0ETQSBR... to v7PGvypiiWLO8PbsZ... (flutter/flutter#166136) 2025-03-28 [email protected] [Impeller] split vertices uber into 2 shaders. (flutter/flutter#165938) 2025-03-28 [email protected] [flutter_tools] Fix VS Code package.json path on macOS with case-sensitive file system (flutter/flutter#163409) 2025-03-28 [email protected] Delete some verbose vm service logging (flutter/flutter#162709) 2025-03-28 [email protected] Get analytics welcome message under test (flutter/flutter#162627) 2025-03-28 [email protected] [ios][pv]fully revert the UIScreen.main deprecated API change (flutter/flutter#166080) 2025-03-28 [email protected] Roll Skia from b5b6f29d690f to 10f4cf9a817d (8 revisions) (flutter/flutter#166111) 2025-03-28 [email protected] [CI] remove check for exact golden files. (flutter/flutter#166031) 2025-03-28 [email protected] Move OpenGL context management to FlOpenGLManager (flutter/flutter#166025) 2025-03-27 [email protected] [android] only release background image readers on Android 14. (flutter/flutter#165942) 2025-03-27 [email protected] Refactor: Migrate Date picker from MaterialState and MaterialStateProperty (flutter/flutter#164972) 2025-03-27 [email protected] Mark Linux customer tests as flaky (flutter/flutter#166103) 2025-03-27 [email protected] Move app link settings task configuration to kotlin (flutter/flutter#165819) 2025-03-27 [email protected] Make iOS Flutter framework extension-safe (flutter/flutter#165346) 2025-03-27 [email protected] [ Widget Preview ] Display an error widget when an exception is thrown while defining the widget tree (flutter/flutter#166005) 2025-03-27 [email protected] Removed not working hyperlinks to ScriptCategory values (flutter/flutter#165395) 2025-03-27 [email protected] add PointerDeviceKind to ScaleStartDetails (flutter/flutter#165096) 2025-03-27 [email protected] Fix build_android_host_app_with_module_source device lab tests (flutter/flutter#166077) 2025-03-27 [email protected] Roll Skia from 11375a498f6b to b5b6f29d690f (4 revisions) (flutter/flutter#166060) 2025-03-27 [email protected] [Impeller] Move to the new location before rendering a stroke path contour containing only one point (flutter/flutter#165940) 2025-03-27 [email protected] Scale aa lines (flutter/flutter#165917) 2025-03-27 [email protected] Reapply "[ Device Lab ] Upgrade Device Lab projects to Java 18" (#166016) (flutter/flutter#166059) 2025-03-27 [email protected] Roll Fuchsia Linux SDK from iScQOaYHg2aJcF1LX... to djUjSTaAtl0ETQSBR... (flutter/flutter#166055) 2025-03-27 [email protected] Roll Skia from 67a236832d64 to 11375a498f6b (2 revisions) (flutter/flutter#166046) 2025-03-27 [email protected] [flutter_tool] Handle RPCErrorKind.kConnectionDisposed (flutter/flutter#164299) ...
- **Inital conversion and single test case** - **Task registered with name** - **Test can handle multiple variants** - **configuration for baseOutput setup** - **Test passing** - **formatting** - **Use constant with upppercase** - **Replace flutter.groovy version of addTasksForOutputsAppLinkSettings** Fixes flutter#164393 Helpful commands: ` JAVA_HOME=/opt/homebrew/opt/openjdk@17/libexec/openjdk.jdk/Contents/Home/ ./gradlew test --info --tests "com.flutter.gradle.FlutterPluginUtilsTest"` from packages/flutter_tools/gradle `flutter test test/integration.shard/android_gradle_outputs_app_link_settings_test.dart` from packages/flutter_tools ## Pre-launch Checklist - [x] I read the [Contributor Guide] and followed the process outlined there for submitting PRs. - [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. - [x] I updated/added relevant documentation (doc comments with `///`). - [x] I added new tests to check the change I am making, or this PR is [test-exempt]. - [x] I followed the [breaking change policy] and added [Data Driven Fixes] where supported. - [x] All existing and new tests are passing.
Fixes #164393
Helpful commands:
JAVA_HOME=/opt/homebrew/opt/openjdk@17/libexec/openjdk.jdk/Contents/Home/ ./gradlew test --info --tests "com.flutter.gradle.FlutterPluginUtilsTest"from packages/flutter_tools/gradleflutter test test/integration.shard/android_gradle_outputs_app_link_settings_test.dartfrom packages/flutter_toolsPre-launch Checklist
///).