1. 20 Sep, 2023 1 commit
    • Camille Simon's avatar
      [Android] Add Java/AGP/Gradle incompatibility warning to `flutter create` (#131444) · 594ff98a
      Camille Simon authored
      Adds warning to `flutter create` command that checks if detected Java version is compatible with the template AGP and template Gradle versions. If a developer is building for Android and their Java version is incompatible with either the AGP or Gradle versions that Flutter currently supports by default for new Flutter projects, then
      
      - a warning will show noting the incompatibility and
      - steps will be shown to fix the issue, the recommended option being to configure a new compatible Java version given that Flutter knows we can support the template Gradle/AGP versions and updating them manually may be risky (feedback on this approach would be greatly appreciated!)
      
      Given that the template AGP and Gradle versions are compatible, this PR assumes that the detected Java version may only conflict with one of the template AGP or Gradle versions because:
       - the minimum Java version for a given AGP version is less than the maximum Java version compatible for the minimum Gradle version required for that AGP version (too low a Java version will fail AGP compatibility test, but not Gradle compatibility).
      - the maximum Java version compatible with minimum Gradle version for a given AGP version is higher than minimum Java version required for that AGP version (too high a Java version will fail Gradle compatibility test, but not AGP compatibility test).
      
      Fixes https://github.com/flutter/flutter/issues/130515 in the sense that `flutter create foo`; `cd foo`; `flutter run` should always be successful.
      594ff98a
  2. 03 May, 2023 1 commit
  3. 01 May, 2023 1 commit
  4. 27 Apr, 2023 1 commit
  5. 13 Apr, 2023 1 commit
  6. 07 Apr, 2023 1 commit
    • Reid Baker's avatar
      Update getGradleVersion to ignore commented out lines (#124260) · 7a791b5d
      Reid Baker authored
      https://github.com/flutter/flutter/issues/123917
      Missed feedback from https://github.com/flutter/flutter/pull/123916 
      
      - Handle commented out lines in gradle-wrapper.properties
      
      This is 1 of 2 prs to handle missed feedback. Formatting will be done in
      the second whereas this one captures a weakness missed in the last pr.
      
      ## 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] All existing and new tests are passing.
      7a791b5d
  7. 05 Apr, 2023 1 commit
    • Reid Baker's avatar
      Add Java-Gradle-AGP validation to flutter analyze (#123916) · 2383400f
      Reid Baker authored
      https://github.com/flutter/flutter/issues/123917
      
      Doc covering a broad set of issues related to android studio updating. 
      
      https://docs.google.com/document/d/1hTXkjbUrBnXgu8NQsth1c3aEqo77rWoEj8CcsQ39wwQ/edit?pli=1#
      
      Specifically this pr: 
      - Adds new functions to find a projects AGP, Gradle and java versions,
      and tests.
      - Adds new functions that take versions and parse if the versions are
      compatible with each other, and tests.
      - Adds validator for `flutter analyze --suggestions` that evaluates the
      java/gradle/agp versions and checks if they are compatible, and
      integration test.
      - Updates the version of gradle used by
      dev/integration_tests/flutter_gallery/ to the minimum supported by java
      18 so that the integration tests pass (It is unknown why the java
      version is 18.9 instead of 11)
      - Moves `isWithinVersionRange` to version.dart, and tests. 
      - Adds FakeAndroidStudio to fakes to be used in multiple tests but does
      not remove existing copies.
      
      Metrics will be included as part of the definition of done for this bug
      but not as part of this cl. It is already too big.
      
      Known work still left in this pr: 
      * Understand why analyze integration tests are failing. 
      
      
      Example output if Java and gradle are not compatible: 
      ```
      ┌───────────────────────────────────────────────────────────────────┐
      │ General Info                                                      │
      │ [✓] App Name: espresso_example                                    │
      │ [✓] Supported Platforms: android                                  │
      │ [✓] Is Flutter Package: yes                                       │
      │ [✓] Uses Material Design: yes                                     │
      │ [✓] Is Plugin: no                                                 │
      │ [✗] Java/Gradle/Android Gradle Plugin:                            │
      │                                                                   │
      │ Incompatible Java/Gradle versions.                                │
      │                                                                   │
      │ Java Version: 17.0.6, Gradle Version: 7.0.2                       │
      │                                                                   │
      │ See the link below for more information.                          │
      │ https://docs.gradle.org/current/userguide/compatibility.html#java │
      │                                                                   │
      └───────────────────────────────────────────────────────────────────┘
      ```
      Example output if Gradle and AGP are not compatible
      ```
      ┌─────────────────────────────────────────────────────────────────────────────┐
      │ General Info                                                                │
      │ [✓] App Name: espresso_example                                              │
      │ [✓] Supported Platforms: android                                            │
      │ [✓] Is Flutter Package: yes                                                 │
      │ [✓] Uses Material Design: yes                                               │
      │ [✓] Is Plugin: no                                                           │
      │ [✗] Java/Gradle/Android Gradle Plugin: Incompatible Gradle/AGP versions.    │
      │                                                                             │
      │ Gradle Version: 7.0.2, AGP Version: 7.4.2                                   │
      │                                                                             │
      │ Update gradle to at least "7.5".                                            │
      │ See the link below for more information:                                    │
      │ https://developer.android.com/studio/releases/gradle-plugin#updating-gradle │
      │                                                                             │
      │ Incompatible Java/Gradle versions.                                          │
      │                                                                             │
      │ Java Version: 17.0.6, Gradle Version: 7.0.2                                 │
      │                                                                             │
      │ See the link below for more information:                                    │
      │ https://docs.gradle.org/current/userguide/compatibility.html#java           │
      │                                                                             │
      └─────────────────────────────────────────────────────────────────────────────┘
      ```
      Example output if Java/Gradle/Agp are not compatible. 
      ```
      
      ┌─────────────────────────────────────────────────────────────────────────────┐
      │ General Info                                                                │
      │ [✓] App Name: espresso_example                                              │
      │ [✓] Supported Platforms: android                                            │
      │ [✓] Is Flutter Package: yes                                                 │
      │ [✓] Uses Material Design: yes                                               │
      │ [✓] Is Plugin: no                                                           │
      │ [✗] Java/Gradle/Android Gradle Plugin: Incompatible Gradle/AGP versions.    │
      │                                                                             │
      │ Gradle Version: 7.0.2, AGP Version: 7.4.2                                   │
      │                                                                             │
      │ Update gradle to at least "7.5".                                            │
      │ See the link below for more information:                                    │
      │ https://developer.android.com/studio/releases/gradle-plugin#updating-gradle │
      │                                                                             │
      │ Incompatible Java/Gradle versions.                                          │
      │                                                                             │
      │ Java Version: 17.0.6, Gradle Version: 7.0.2                                 │
      │                                                                             │
      │ See the link below for more information:                                    │
      │ https://docs.gradle.org/current/userguide/compatibility.html#java           │
      │                                                                             │
      └─────────────────────────────────────────────────────────────────────────────┘
      ```
      
      Commit messages
      - Add function to gradle_utils.dart that gets the gradle version from
      wrapper or system and add a test for each situation
      - Add method to get agp version, add method to validate agp against
      gradle version, update documentation, add tests for agp validation.
      - Update dart doc for validateGradleAndAgp to describe where the info
      came from and corner case behavior, create function to validate java and
      gradle and hardcode return to false
      - Fill out and test java gradle compatibility function in gradle_utils
      - Hook up java gradle evaluateion to hasValidJavaGradleAgpVersions with
      hardcoded java version
      - Add java --version output parsing and tests
      - Add getJavaBinary test
      - Update comment in android_sdk for mac behavior with java_home -v
      
      ## 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].
      - [ ] All existing and new tests are passing.
      2383400f
  8. 29 Jul, 2022 1 commit
  9. 27 Jul, 2022 3 commits
  10. 26 Jul, 2022 2 commits
  11. 25 Jul, 2022 1 commit
  12. 31 Mar, 2022 1 commit
  13. 08 Oct, 2021 4 commits
  14. 07 Oct, 2021 1 commit
  15. 03 Jun, 2021 1 commit
  16. 27 Apr, 2021 1 commit
  17. 22 Apr, 2021 1 commit
  18. 17 Feb, 2021 1 commit
  19. 08 Feb, 2021 1 commit
  20. 04 Feb, 2021 1 commit
    • Jonah Williams's avatar
      [flutter_tools] move process manager into tool (#75350) · 8b6baae4
      Jonah Williams authored
      Our current top crasher is an unclear error when ProcessManager fails to resolve an executable path. To fix this, we'd like to being adjusting the process resolution logic and adding more instrumentation to track failures. In order to begin the process, the ProcessManager has been folded back into the flutter tool
      8b6baae4
  21. 27 Jan, 2021 1 commit
  22. 02 Dec, 2020 1 commit
  23. 23 Nov, 2020 1 commit
  24. 20 Nov, 2020 1 commit
  25. 06 Nov, 2020 1 commit
  26. 30 Sep, 2020 1 commit
  27. 05 Mar, 2020 1 commit
  28. 11 Feb, 2020 1 commit
  29. 06 Jan, 2020 1 commit
  30. 18 Dec, 2019 1 commit
  31. 12 Dec, 2019 1 commit
  32. 27 Nov, 2019 1 commit
    • Ian Hickson's avatar
      License update (#45373) · 449f4a66
      Ian Hickson authored
      * Update project.pbxproj files to say Flutter rather than Chromium
      
      Also, the templates now have an empty organization so that we don't cause people to give their apps a Flutter copyright.
      
      * Update the copyright notice checker to require a standard notice on all files
      
      * Update copyrights on Dart files. (This was a mechanical commit.)
      
      * Fix weird license headers on Dart files that deviate from our conventions; relicense Shrine.
      
      Some were already marked "The Flutter Authors", not clear why. Their
      dates have been normalized. Some were missing the blank line after the
      license. Some were randomly different in trivial ways for no apparent
      reason (e.g. missing the trailing period).
      
      * Clean up the copyrights in non-Dart files. (Manual edits.)
      
      Also, make sure templates don't have copyrights.
      
      * Fix some more ORGANIZATIONNAMEs
      449f4a66
  33. 31 Oct, 2019 1 commit