From 64c808b7c837ba4381820aa68d8958cbc6d5be8a Mon Sep 17 00:00:00 2001 From: Gray Mackall <34871572+gmackall@users.noreply.github.com> Date: Wed, 22 Jan 2025 16:41:08 -0800 Subject: [PATCH] Add a README with instructions for editing and running tests for the FGP (#161830) Add a readme with some info. ## 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]. - [ ] 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. - [ ] All existing and new tests are passing. If you need help, consider asking for advice on the #hackers-new channel on [Discord]. [Contributor Guide]: https://github.com/flutter/flutter/blob/main/docs/contributing/Tree-hygiene.md#overview [Tree Hygiene]: https://github.com/flutter/flutter/blob/main/docs/contributing/Tree-hygiene.md [test-exempt]: https://github.com/flutter/flutter/blob/main/docs/contributing/Tree-hygiene.md#tests [Flutter Style Guide]: https://github.com/flutter/flutter/blob/main/docs/contributing/Style-guide-for-Flutter-repo.md [Features we expect every widget to implement]: https://github.com/flutter/flutter/blob/main/docs/contributing/Style-guide-for-Flutter-repo.md#features-we-expect-every-widget-to-implement [CLA]: https://cla.developers.google.com/ [flutter/tests]: https://github.com/flutter/tests [breaking change policy]: https://github.com/flutter/flutter/blob/main/docs/contributing/Tree-hygiene.md#handling-breaking-changes [Discord]: https://github.com/flutter/flutter/blob/main/docs/contributing/Chat.md [Data Driven Fixes]: https://github.com/flutter/flutter/blob/main/docs/contributing/Data-driven-Fixes.md --------- Co-authored-by: Gray Mackall Co-authored-by: Reid Baker --- packages/flutter_tools/gradle/README.md | 32 +++++++++++++++++++++++++ 1 file changed, 32 insertions(+) create mode 100644 packages/flutter_tools/gradle/README.md diff --git a/packages/flutter_tools/gradle/README.md b/packages/flutter_tools/gradle/README.md new file mode 100644 index 0000000000..c36e148742 --- /dev/null +++ b/packages/flutter_tools/gradle/README.md @@ -0,0 +1,32 @@ +## The Flutter Gradle Plugin + +This directory contains Gradle code used to by the Flutter tool to build Flutter apps for Android, +primarily the Flutter Gradle Plugin (FGP) - a Gradle plugin built on top of Gradle and the Android +Gradle Plugin (AGP). + +### Editing in Android Studio + +To get code completion in Android Studio, you must open a new Android Studio window with this +directory as the root. Code completion will not work when navigating to files +in an Android Studio window opened at the root of the entire Flutter repo. + +### Contributing + +The Flutter Gradle Plugin is [currently being re-written](https://github.com/flutter/flutter/issues/121541) from Groovy to Kotlin +(Kotlin source specifically, i.e. not `.kts`). As such, outside of critical bug fixes, +new contributions will only be accepted in `src/main/kotlin` (and `src/test/kotlin`). + +### Testing + +Tests can be run in Android Studio, or directly with Gradle: `./gradle test` +(note that this directory does not contain a version controlled Gradle file. You can find one in +the engines `third_party` directory at +`/engine/src/flutter/third_party/gradle/bin/gradle`). + +Alternatively, you can run all the tests in one file by passing in the fully qualified class name, +e.g. `./gradlew test --tests com.flutter.gradle.BaseApplicationNameHandlerTest`, or one test in +one file by passing in the fully qualified class name followed by the method name, +e.g `./gradlew test --tests "com.flutter.gradle.BaseApplicationNameHandlerTest.setBaseName respects Flutter tool property"`. + +Sometimes changing a test name and then running it will cause an IDE error. To get Android Studio back +to a good state on Mac, run `Help > "Repair IDE"`, and then in the popup window `"Rescan project indexes > Everything works now."`