Skip to content

[Re-re-land] Enforce a policy on supported Gradle, Java, AGP, and KGP versions#143341

Merged
auto-submit[bot] merged 5 commits intoflutter:masterfrom
gmackall:re_re_land_policy
Feb 13, 2024
Merged

[Re-re-land] Enforce a policy on supported Gradle, Java, AGP, and KGP versions#143341
auto-submit[bot] merged 5 commits intoflutter:masterfrom
gmackall:re_re_land_policy

Conversation

@gmackall
Copy link
Member

@gmackall gmackall commented Feb 12, 2024

This is a direct revert of (the revert of (the reland of (the policy pr))): #143132.

The only change is:

  1. to put a conditional all on one line, because the packages repository has a test that uses an old flutter project to make sure nothing regresses. The old project uses an old gradle version, and the old gradle version bundles an old groovy version, and the old groovy version has a bug where lines that start with && don't always work: https://issues.apache.org/jira/browse/GROOVY-7218 (I enjoy that the revert reason ends up providing another strong justification to go forward with the policy). Also thanks to @reidbaker for pointing out this bug.
  2. I also made a slight formatting change to the messages that print when out of the support bounds, which I think looks slightly better.

I tested this with on a branch that included a revert of #142008, and was able to recreate the failure and verify that it was resolved by 1).

Pre-launch Checklist

  • I read the Contributor Guide and followed the process outlined there for submitting PRs.
  • I read the Tree Hygiene wiki page, which explains my responsibilities.
  • I read and followed the Flutter Style Guide, including Features we expect every widget to implement.
  • I signed the CLA.
  • I listed at least one issue that this PR fixes in the description above.
  • I updated/added relevant documentation (doc comments with ///).
  • I added new tests to check the change I am making, or this PR is test-exempt.
  • All existing and new tests are passing.

If you need help, consider asking for advice on the #hackers-new channel on Discord.

@github-actions github-actions bot added the tool Affects the "flutter" command-line tool. See also t: labels. label Feb 12, 2024
@gmackall gmackall changed the title Re re land policy [Re-re-land] Enforce a policy on supported Gradle, Java, AGP, and KGP versions Feb 12, 2024
@gmackall gmackall marked this pull request as ready for review February 12, 2024 23:26
@reidbaker
Copy link
Contributor

I believe the root cause but if it is easy can you add links to the documentation you used to prove that the legacy test was using a groovy version that has the bug?

@gmackall
Copy link
Member Author

gmackall commented Feb 12, 2024

I believe the root cause but if it is easy can you add links to the documentation you used to prove that the legacy test was using a groovy version that has the bug?

I just modified the top level build.gradle in the legacy app to include

task version { 
  doLast {
    println "Gradle version: " + project.getGradle().getGradleVersion()
    println "Groovy version: " + GroovySystem.getVersion()
  }
}

(idea from https://stackoverflow.com/questions/16527384/checking-groovy-version-gradle-is-using)

when I run ./gradlew -q version, I get

Gradle version: 6.7
Groovy version: 2.5.12

And the fix is included in an alpha version of 2.6.0, according to https://issues.apache.org/jira/browse/GROOVY-7218.

I couldn't find any easy documentation explaining the bundled groovy version, but on the compatibility matrix for Gradle 6.7 (the version the legacy project uses), we can see it says tested with 1.5.8-2.5.12, which is all below the fix range.

edit: It looks like gradle also has a built in --v option which also prints the version, (still 2.5.12), so the hack suggested by the stack overflow post isn't needed

Copy link
Member

@bartekpacia bartekpacia left a comment

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

third time lucky (hopefully)

@reidbaker reidbaker added the autosubmit Merge PR when tree becomes green via auto submit App label Feb 13, 2024
@auto-submit auto-submit bot merged commit 8ba086a into flutter:master Feb 13, 2024
engine-flutter-autoroll added a commit to engine-flutter-autoroll/packages that referenced this pull request Feb 13, 2024
engine-flutter-autoroll added a commit to engine-flutter-autoroll/packages that referenced this pull request Feb 13, 2024
engine-flutter-autoroll added a commit to engine-flutter-autoroll/packages that referenced this pull request Feb 13, 2024
engine-flutter-autoroll added a commit to engine-flutter-autoroll/packages that referenced this pull request Feb 14, 2024
engine-flutter-autoroll added a commit to engine-flutter-autoroll/packages that referenced this pull request Feb 14, 2024
engine-flutter-autoroll added a commit to engine-flutter-autoroll/packages that referenced this pull request Feb 14, 2024
auto-submit bot pushed a commit to flutter/packages that referenced this pull request Feb 14, 2024
Roll Flutter from eb5d0a4 to a628814 (72 revisions)

flutter/flutter@eb5d0a4...a628814

2024-02-13 [email protected] Allow deprecated members from the Dart SDK and Flutter Engine to roll in (flutter/flutter#143347)
2024-02-13 [email protected] [Re-re-land] Enforce a policy on supported Gradle, Java, AGP, and KGP versions (flutter/flutter#143341)
2024-02-13 [email protected] Roll Packages from 0a69259 to 9385bbb (7 revisions) (flutter/flutter#143366)
2024-02-13 [email protected] Fix `InputDecorator`s `suffix` and `prefix` widgets are tappable when hidden (flutter/flutter#143308)
2024-02-13 [email protected] Pass-Through `inputFormatters` in `DropdownMenu` (flutter/flutter#143250)
2024-02-13 [email protected] Fix `insetPadding` parameter nullability for dialogs (flutter/flutter#143305)
2024-02-12 [email protected] Revert "Migrate integration_test plugin to Gradle Kotlin DSL (#142008)" (flutter/flutter#143329)
2024-02-12 [email protected] Badge class doc typo - missing [ (flutter/flutter#143318)
2024-02-12 98614782+auto-submit[bot]@users.noreply.github.com Reverts "Roll Flutter Engine from 1c3ecee77350 to a19077503a0c (8 revisions) (#143322)" (flutter/flutter#143338)
2024-02-12 [email protected] Roll Flutter Engine from 1c3ecee77350 to a19077503a0c (8 revisions) (flutter/flutter#143322)
2024-02-12 [email protected] [web] Move JS interop to extension types (flutter/flutter#143274)
2024-02-12 [email protected] Add documentation for best practices for `StreamBuilder` like `FutureBuilder`  (flutter/flutter#143295)
2024-02-12 [email protected] Roll Flutter Engine from 8806987182a3 to 1c3ecee77350 (1 revision) (flutter/flutter#143315)
2024-02-12 [email protected] Fix dual focus issue in CheckboxListTile, RadioListTile and SwitchListTile (flutter/flutter#143213)
2024-02-12 [email protected] Revert "[Re-land] Enforce a policy on supported Gradle, Java, AGP, and KGP versions" (flutter/flutter#143314)
2024-02-12 [email protected] Update integration_test iOS FTL README script to remove targeted version (flutter/flutter#143248)
2024-02-12 [email protected] Remove unnecessary 'debugLabel: null'. (flutter/flutter#143253)
2024-02-12 [email protected] Introduce `iconAlignment` for the buttons with icon (flutter/flutter#137348)
2024-02-12 [email protected] Roll Packages from 11152d2 to 0a69259 (4 revisions) (flutter/flutter#143306)
2024-02-12 [email protected] Roll Flutter Engine from 4f119619dfa8 to 8806987182a3 (1 revision) (flutter/flutter#143304)
2024-02-12 [email protected] Roll Flutter Engine from b0753c0e25f8 to 4f119619dfa8 (1 revision) (flutter/flutter#143291)
2024-02-11 [email protected] Roll Flutter Engine from 936495d94cc6 to b0753c0e25f8 (1 revision) (flutter/flutter#143282)
2024-02-11 [email protected] Roll Flutter Engine from b06b3e0d75ad to 936495d94cc6 (1 revision) (flutter/flutter#143280)
2024-02-11 [email protected] Roll Flutter Engine from 1478f4e75dd9 to b06b3e0d75ad (1 revision) (flutter/flutter#143275)
2024-02-10 [email protected] Fix text painter longest line resizing logic for `TextWidthBasis.longestLine` (flutter/flutter#143024)
2024-02-10 [email protected] Roll Flutter Engine from e6ceb3504f50 to 1478f4e75dd9 (1 revision) (flutter/flutter#143273)
2024-02-10 [email protected] Move Windows arm64 tests to bringup true (flutter/flutter#143272)
2024-02-10 [email protected] Roll Flutter Engine from 3c5149ccde38 to e6ceb3504f50 (1 revision) (flutter/flutter#143267)
2024-02-10 [email protected] Roll Flutter Engine from c587bd69985f to 3c5149ccde38 (2 revisions) (flutter/flutter#143266)
2024-02-10 [email protected] Roll Flutter Engine from e08b6c899c42 to c587bd69985f (1 revision) (flutter/flutter#143265)
2024-02-10 [email protected] Roll Flutter Engine from 1b8f23bbd099 to e08b6c899c42 (2 revisions) (flutter/flutter#143264)
2024-02-10 [email protected] Roll Flutter Engine from 41daa5b913b9 to 1b8f23bbd099 (2 revisions) (flutter/flutter#143261)
2024-02-10 [email protected] Roll Flutter Engine from f969c52f133a to 41daa5b913b9 (1 revision) (flutter/flutter#143258)
2024-02-10 [email protected] Roll Flutter Engine from 6a3b0216ff5b to f969c52f133a (3 revisions) (flutter/flutter#143256)
2024-02-09 [email protected] Roll Flutter Engine from 8c521eb24171 to 6a3b0216ff5b (4 revisions) (flutter/flutter#143251)
2024-02-09 [email protected] Upgrade leak_tracker. (flutter/flutter#143236)
2024-02-09 [email protected] Fix: performance improvement on golden test comparison (flutter/flutter#142913)
2024-02-09 [email protected] Implementing `switch` expressions in `lib/src/material/` (flutter/flutter#142793)
2024-02-09 [email protected] Add position data to `OnDragEnd` callback (flutter/flutter#140378)
2024-02-09 [email protected] Roll Flutter Engine from 1232d598f7c4 to 8c521eb24171 (2 revisions) (flutter/flutter#143237)
2024-02-09 [email protected] Roll Flutter Engine from 7a5390c6b3bd to 1232d598f7c4 (1 revision) (flutter/flutter#143235)
2024-02-09 [email protected] Set plugin template minimum iOS version to 12.0 (flutter/flutter#143167)
2024-02-09 [email protected] Roll Flutter Engine from 7a241130fcf8 to 7a5390c6b3bd (1 revision) (flutter/flutter#143231)
2024-02-09 [email protected] Migrate integration_test plugin to Gradle Kotlin DSL (flutter/flutter#142008)
2024-02-09 [email protected] Roll Flutter Engine from dcac9863a1fc to 7a241130fcf8 (1 revision) (flutter/flutter#143222)
2024-02-09 [email protected] Roll Flutter Engine from 1508b11bf791 to dcac9863a1fc (1 revision) (flutter/flutter#143220)
...
auto-submit bot pushed a commit to flutter/packages that referenced this pull request Apr 23, 2024
… to 7.0.2 (#6591)

Upgrades legacy all_packages project AGP version to 7.0.0 and Gradle version to 7.0.2 as Flutter will begin enforcing supported versions for these Android dependencies.

This was prompted by dependabot AGP version upgrades like #6522 that are failing due to a what a clear warning* describes as a potential issue:

```
Warning: Flutter support for your project's Gradle version (6.7.1) will soon be dropped. Please upgrade your Gradle version to a version of at least 7.0.2 soon.
Alternatively, use the flag "--android-skip-build-dependency-validation" to bypass this check.

Potential fix: Your project's gradle version is typically defined in the gradle wrapper file. By default, this can be found at /b/s/w/ir/x/w/packages/legacy/all_packages/android/gradle/wrapper/gradle-wrapper.properties. 
For more information, see https://docs.gradle.org/current/userguide/gradle_wrapper.html.

Warning: Flutter support for your project's Android Gradle Plugin version (4.1.0) will soon be dropped. Please upgrade your Android Gradle Plugin version to a version of at least 7.0.0 soon.
Alternatively, use the flag "--android-skip-build-dependency-validation" to bypass this check.

Potential fix: Your project's AGP version is typically defined the plugins block of the `settings.gradle` file (/b/s/w/ir/x/w/packages/legacy/all_packages/android/settings.gradle), by a plugin with the id of com.android.application. 
If you don't see a plugins block, your project was likely created with an older template version. In this case it is most likely defined in the top-level build.gradle file (/b/s/w/ir/x/w/packages/legacy/all_packages/android/build.gradle) by the following line in the dependencies block of the buildscript: "classpath 'com.android.tools.build:gradle:<version>'".
```

Other dependabot upgrades that I believe are blocked by this change:
#6585
#6534
#6530
#6528
#6526

*Added in flutter/flutter#143341
auto-submit bot added a commit to flutter/packages that referenced this pull request Apr 24, 2024
…e version to 7.0.2 (#6591)" (#6605)

Reverts: #6591
Initiated by: camsim99
Reason for reverting: Warning about unsupported Android dependency versions (added in flutter/flutter#143341) not in stable.
Original PR Author: camsim99

Reviewed By: {reidbaker, gmackall}

This change reverts the following previous change:
Upgrades legacy all_packages project AGP version to 7.0.0 and Gradle version to 7.0.2 as Flutter will begin enforcing supported versions for these Android dependencies.

This was prompted by dependabot AGP version upgrades like #6522 that are failing due to a what a clear warning* describes as a potential issue:

```
Warning: Flutter support for your project's Gradle version (6.7.1) will soon be dropped. Please upgrade your Gradle version to a version of at least 7.0.2 soon.
Alternatively, use the flag "--android-skip-build-dependency-validation" to bypass this check.

Potential fix: Your project's gradle version is typically defined in the gradle wrapper file. By default, this can be found at /b/s/w/ir/x/w/packages/legacy/all_packages/android/gradle/wrapper/gradle-wrapper.properties. 
For more information, see https://docs.gradle.org/current/userguide/gradle_wrapper.html.

Warning: Flutter support for your project's Android Gradle Plugin version (4.1.0) will soon be dropped. Please upgrade your Android Gradle Plugin version to a version of at least 7.0.0 soon.
Alternatively, use the flag "--android-skip-build-dependency-validation" to bypass this check.

Potential fix: Your project's AGP version is typically defined the plugins block of the `settings.gradle` file (/b/s/w/ir/x/w/packages/legacy/all_packages/android/settings.gradle), by a plugin with the id of com.android.application. 
If you don't see a plugins block, your project was likely created with an older template version. In this case it is most likely defined in the top-level build.gradle file (/b/s/w/ir/x/w/packages/legacy/all_packages/android/build.gradle) by the following line in the dependencies block of the buildscript: "classpath 'com.android.tools.build:gradle:<version>'".
```

Other dependabot upgrades that I believe are blocked by this change:
#6585
#6534
#6530
#6528
#6526

*Added in flutter/flutter#143341
engine-flutter-autoroll added a commit to engine-flutter-autoroll/packages that referenced this pull request May 14, 2024
TecHaxter pushed a commit to TecHaxter/flutter_packages that referenced this pull request May 22, 2024
… to 7.0.2 (flutter#6591)

Upgrades legacy all_packages project AGP version to 7.0.0 and Gradle version to 7.0.2 as Flutter will begin enforcing supported versions for these Android dependencies.

This was prompted by dependabot AGP version upgrades like flutter#6522 that are failing due to a what a clear warning* describes as a potential issue:

```
Warning: Flutter support for your project's Gradle version (6.7.1) will soon be dropped. Please upgrade your Gradle version to a version of at least 7.0.2 soon.
Alternatively, use the flag "--android-skip-build-dependency-validation" to bypass this check.

Potential fix: Your project's gradle version is typically defined in the gradle wrapper file. By default, this can be found at /b/s/w/ir/x/w/packages/legacy/all_packages/android/gradle/wrapper/gradle-wrapper.properties. 
For more information, see https://docs.gradle.org/current/userguide/gradle_wrapper.html.

Warning: Flutter support for your project's Android Gradle Plugin version (4.1.0) will soon be dropped. Please upgrade your Android Gradle Plugin version to a version of at least 7.0.0 soon.
Alternatively, use the flag "--android-skip-build-dependency-validation" to bypass this check.

Potential fix: Your project's AGP version is typically defined the plugins block of the `settings.gradle` file (/b/s/w/ir/x/w/packages/legacy/all_packages/android/settings.gradle), by a plugin with the id of com.android.application. 
If you don't see a plugins block, your project was likely created with an older template version. In this case it is most likely defined in the top-level build.gradle file (/b/s/w/ir/x/w/packages/legacy/all_packages/android/build.gradle) by the following line in the dependencies block of the buildscript: "classpath 'com.android.tools.build:gradle:<version>'".
```

Other dependabot upgrades that I believe are blocked by this change:
flutter#6585
flutter#6534
flutter#6530
flutter#6528
flutter#6526

*Added in flutter/flutter#143341
TecHaxter pushed a commit to TecHaxter/flutter_packages that referenced this pull request May 22, 2024
…e version to 7.0.2 (flutter#6591)" (flutter#6605)

Reverts: flutter#6591
Initiated by: camsim99
Reason for reverting: Warning about unsupported Android dependency versions (added in flutter/flutter#143341) not in stable.
Original PR Author: camsim99

Reviewed By: {reidbaker, gmackall}

This change reverts the following previous change:
Upgrades legacy all_packages project AGP version to 7.0.0 and Gradle version to 7.0.2 as Flutter will begin enforcing supported versions for these Android dependencies.

This was prompted by dependabot AGP version upgrades like flutter#6522 that are failing due to a what a clear warning* describes as a potential issue:

```
Warning: Flutter support for your project's Gradle version (6.7.1) will soon be dropped. Please upgrade your Gradle version to a version of at least 7.0.2 soon.
Alternatively, use the flag "--android-skip-build-dependency-validation" to bypass this check.

Potential fix: Your project's gradle version is typically defined in the gradle wrapper file. By default, this can be found at /b/s/w/ir/x/w/packages/legacy/all_packages/android/gradle/wrapper/gradle-wrapper.properties. 
For more information, see https://docs.gradle.org/current/userguide/gradle_wrapper.html.

Warning: Flutter support for your project's Android Gradle Plugin version (4.1.0) will soon be dropped. Please upgrade your Android Gradle Plugin version to a version of at least 7.0.0 soon.
Alternatively, use the flag "--android-skip-build-dependency-validation" to bypass this check.

Potential fix: Your project's AGP version is typically defined the plugins block of the `settings.gradle` file (/b/s/w/ir/x/w/packages/legacy/all_packages/android/settings.gradle), by a plugin with the id of com.android.application. 
If you don't see a plugins block, your project was likely created with an older template version. In this case it is most likely defined in the top-level build.gradle file (/b/s/w/ir/x/w/packages/legacy/all_packages/android/build.gradle) by the following line in the dependencies block of the buildscript: "classpath 'com.android.tools.build:gradle:<version>'".
```

Other dependabot upgrades that I believe are blocked by this change:
flutter#6585
flutter#6534
flutter#6530
flutter#6528
flutter#6526

*Added in flutter/flutter#143341
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

autosubmit Merge PR when tree becomes green via auto submit App tool Affects the "flutter" command-line tool. See also t: labels.

Projects

None yet

Development

Successfully merging this pull request may close these issues.

3 participants