1. 19 May, 2023 1 commit
  2. 15 Apr, 2023 1 commit
    • Andrew Kolos's avatar
      [flutter_tools] Remove `Version.unknown` (#124771) · 68ec71f4
      Andrew Kolos authored
      Fixes #124756 by removing the concept of `Version.unknown`.
      
      `Version` fields that needed the ability to represent an unknown version have been made nullable. Assigning `null` to them represents an unknown version.
      68ec71f4
  3. 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
  4. 21 Jan, 2022 1 commit
  5. 20 Oct, 2021 1 commit
  6. 01 Jun, 2021 1 commit
  7. 21 Apr, 2021 1 commit
  8. 17 Apr, 2021 1 commit
  9. 08 Apr, 2021 1 commit
  10. 27 Jan, 2021 1 commit
  11. 25 Jan, 2021 1 commit
  12. 24 Aug, 2020 1 commit
  13. 30 Mar, 2020 1 commit
  14. 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
  15. 24 Nov, 2019 1 commit
  16. 29 Oct, 2019 1 commit
  17. 13 Sep, 2019 1 commit
  18. 13 Jul, 2019 1 commit
  19. 06 Mar, 2019 1 commit
  20. 30 Oct, 2018 1 commit
  21. 11 Oct, 2018 1 commit
    • Greg Spencer's avatar
      Re-land text wrapping/color PR (#22831) · 081d2a7a
      Greg Spencer authored
      This attempts to re-land #22656.
      
      There are two changes from the original:
      
      I turned off wrapping completely when not sending output to a terminal. Previously I had defaulted to wrapping at and arbitrary 100 chars in that case, just to keep long messages from being too long, but that turns out the be a bad idea because there are tests that are relying on the specific form of the output. It's also pretty arbitrary, and mostly people sending output to a non-terminal will want unwrapped text.
      
      I found a better way to terminate ANSI color/bold sequences, so that they can be embedded within each other without needed quite as complex a dance with removing redundant sequences.
      
      As part of these changes, I removed the Logger.supportsColor setter so that the one source of truth for color support is in AnsiTerminal.supportsColor.
      
      *     Turn on line wrapping again in usage and status messages, adds ANSI color to doctor and analysis messages. (#22656)
      
          This turns on text wrapping for usage messages and status messages. When on a terminal, wraps to the width of the terminal. When writing to a non-terminal, wrap lines at a default column width (currently defined to be 100 chars). If --no-wrap is specified, then no wrapping occurs. If --wrap-column is specified, wraps to that column (if --wrap is on).
      
          Adds ANSI color to the doctor and analysis output on terminals. This is in this PR with the wrapping, since wrapping needs to know how to count visible characters in the presence of ANSI sequences. (This is just one more step towards re-implementing all of Curses for Flutter. :-)) Will not print ANSI sequences when sent to a non-terminal, or of --no-color is specified.
      
          Fixes ANSI color and bold sequences so that they can be combined (bold, colored text), and a small bug in indentation calculation for wrapping.
      
          Since wrapping is now turned on, also removed many redundant '\n's in the code.
      081d2a7a
  22. 06 Oct, 2018 2 commits
    • Greg Spencer's avatar
      Revert "Turn on line wrapping in usage and status messages, adds ANSI color to... · 2d81adf7
      Greg Spencer authored
      Revert "Turn on line wrapping in usage and status messages, adds ANSI color to doctor and analysis messages. (#22656)" (#22759)
      
      This reverts commit e4386321
      because it breaks 160 benchmarks, and several devicelab tests,
      due to changing the format of the output.
      2d81adf7
    • Greg Spencer's avatar
      Turn on line wrapping in usage and status messages, adds ANSI color to doctor... · e4386321
      Greg Spencer authored
      Turn on line wrapping in usage and status messages, adds ANSI color to doctor and analysis messages. (#22656)
      
      This turns on text wrapping for usage messages and status messages. When on a terminal, wraps to the width of the terminal. When writing to a non-terminal, wrap lines at a default column width (currently defined to be 100 chars). If --no-wrap is specified, then no wrapping occurs. If --wrap-column is specified, wraps to that column (if --wrap is on).
      
      Adds ANSI color to the doctor and analysis output on terminals. This is in this PR with the wrapping, since wrapping needs to know how to count visible characters in the presence of ANSI sequences. (This is just one more step towards re-implementing all of Curses for Flutter. :-)) Will not print ANSI sequences when sent to a non-terminal, or of --no-color is specified.
      
      Fixes ANSI color and bold sequences so that they can be combined (bold, colored text), and a small bug in indentation calculation for wrapping.
      
      Since wrapping is now turned on, also removed many redundant '\n's in the code.
      e4386321
  23. 05 Oct, 2018 1 commit
  24. 12 Sep, 2018 1 commit
  25. 28 Aug, 2018 1 commit
  26. 16 Aug, 2018 1 commit
  27. 15 Aug, 2018 3 commits
  28. 02 Aug, 2018 1 commit
  29. 27 Jul, 2018 1 commit
  30. 23 Jul, 2018 1 commit
  31. 16 Jul, 2018 2 commits
  32. 01 Aug, 2017 1 commit
  33. 04 Mar, 2017 1 commit
  34. 24 Feb, 2017 1 commit
    • Jakob Andersen's avatar
      Relax Android Studio version check. (#8389) · 7f9a53b1
      Jakob Andersen authored
      It's not just $HOME/.AndroidStudio2.2, it might also be
      .AndroidStudioPreview2.3, or .AndroidStudioFooBar1.7, or whatever.
      
      Made the Version parser less throw-happy, and relaxed the directory name
      checks to allow for the above.
      
      Fixes #8353.
      7f9a53b1
  35. 22 Feb, 2017 1 commit
    • Jakob Andersen's avatar
      Fix bug parsing Gradle version. (#8326) · 3676ffe4
      Jakob Andersen authored
      * Fix bug parsing Gradle version.
      
      Version from pub_semver requires versions of the format X.Y.Z. Gradle
      doesn't follow semantic versioning, though, so version parsing would
      fail on versions like '3.2'. Fixed by writing a custom Version class.
      
      Also removed a check for apksigner when building Gradle-based projects.
      
      Fixes #8298
      3676ffe4
  36. 10 Feb, 2017 1 commit