[tool] fix android studio preview's version parsing#156293
[tool] fix android studio preview's version parsing#156293auto-submit[bot] merged 10 commits intoflutter:masterfrom
Conversation
b6e1084 to
22425b0
Compare
8e7252d to
43ddfaa
Compare
43ddfaa to
c64bb02
Compare
|
I verified that this works with Ladybug Feature Drop 2024.2.2 Canary 5 installed via JetBrains Toolbox on my M1 MacBook (the PR description includes verification, but I figured it would be nice to test this on another machine): Before: After: I'll be reviewing the diff shortly. |
There was a problem hiding this comment.
Thanks for well-written PR description and informative comment on the parent issue!
The approach looks good to me, especially when considering #121925 (comment).
I agree that relying on a un-documented version pattern isn't ideal, but the ideal fix of getting Android Studio to use legal values for CFBundleVersion is unlikely to happen, pragmatically speaking (context/prior effort: #121925 (comment)).
With this being said, I do think we should have at least one test that verifies that this parsing works when something like EAP AI-242.21829.142.2422.12358220 is encountered.
3acaf5a to
2629eb0
Compare
Thanks for review @andrewkolos ! Totally agree with the need of test, but isn't it tested here in As I said, I do not mind to add another test for these changes, but I just want our understanding of necessity to be in sync. |
|
Ah, I failed to realize that we already have a test for detecting EAP versions. Since you added an |
63140bf to
c94fa0d
Compare
| return null; | ||
| } | ||
|
|
||
| final int? major = int.tryParse('20${rawVersionMatch[0]}${rawVersionMatch[1]}'); |
There was a problem hiding this comment.
This will break for Android Studio versions released starting in 2100 😉
be7ba27 to
7b0f373
Compare
Co-authored-by: Navaron Bracke <[email protected]>
Co-authored-by: Navaron Bracke <[email protected]>
Co-authored-by: Andrew Kolos <[email protected]>
Co-authored-by: Andrew Kolos <[email protected]>
7b0f373 to
0cc0e2b
Compare
|
@andrewkolos @bkonyi thanks for your reviews guys, appreciate it! Now, when PR has 2 LGTMs, it is ready to merge as per tree hygiene, right? If so, would you be so kind to provide "autosubmit" label here, please? :) |
Yep! Just need to rerun that failing check. Hopefully it'll pass and should land on its own :) |
This PR willing to fix issue when `flutter doctor` validator can't determine version of Android Studio EAP.
These are before/after outputs of `flutter doctor -v` showcasing change in behaviour of validator. Each output has 3 `Android Studio` sections, 1 for stable and 2 for different EAP versions.
<details>
<summary>before, (stable, 3.24.3), 2 issues related to versions of Android Studio</summary>
```console
[�] Flutter (Channel stable, 3.24.3, on macOS 14.7 23H124 darwin-arm64, locale en-RU)
� Flutter version 3.24.3 on channel stable at /Users/samer/fvm/versions/stable
� Upstream repository https://github.com/flutter/flutter.git
� Framework revision 2663184 (4 weeks ago), 2024-09-11 16:27:48 -0500
� Engine revision 36335019a8
� Dart version 3.5.3
� DevTools version 2.37.3
[�] Android toolchain - develop for Android devices (Android SDK version 34.0.0)
� Android SDK at /Users/samer/Library/Android/sdk
� Platform android-35, build-tools 34.0.0
� Java binary at: /Users/samer/Library/Java/JavaVirtualMachines/jbr-17.0.7/Contents/Home/bin/java
� Java version OpenJDK Runtime Environment JBR-17.0.7+7-964.1-nomod (build 17.0.7+7-b964.1)
� All Android licenses accepted.
[�] Xcode - develop for iOS and macOS (Xcode 16.0)
� Xcode at /Applications/Xcode-16.0.app/Contents/Developer
� Build 16A242d
� CocoaPods version 1.15.2
[�] Chrome - develop for the web
� Chrome at /Applications/Google Chrome.app/Contents/MacOS/Google Chrome
[�] Android Studio (version 2024.1)
� Android Studio at /Users/samer/Applications/Android Studio Koala Feature Drop 2024.1.2.app/Contents
� Flutter plugin can be installed from:
� https://plugins.jetbrains.com/plugin/9212-flutter
� Dart plugin can be installed from:
� https://plugins.jetbrains.com/plugin/6351-dart
� Java version OpenJDK Runtime Environment (build 17.0.11+0-17.0.11b1207.24-11852314)
[!] Android Studio (version unknown)
� Android Studio at /Users/samer/Applications/Android Studio Ladybug Feature Drop 2024.2.2 Canary 2.app/Contents
� Flutter plugin can be installed from:
� https://plugins.jetbrains.com/plugin/9212-flutter
� Dart plugin can be installed from:
� https://plugins.jetbrains.com/plugin/6351-dart
� Unable to determine Android Studio version.
� Java version OpenJDK Runtime Environment (build 21.0.3+-79915917-b509.11)
[!] Android Studio (version unknown)
� Android Studio at /Users/samer/Applications/Android Studio.app/Contents
� Flutter plugin can be installed from:
� https://plugins.jetbrains.com/plugin/9212-flutter
� Dart plugin can be installed from:
� https://plugins.jetbrains.com/plugin/6351-dart
� Unable to determine Android Studio version.
� Java version OpenJDK Runtime Environment (build 21.0.3+-79915917-b509.11)
[�] IntelliJ IDEA Ultimate Edition (version EAP IU-243.12818.47)
� IntelliJ at /Users/samer/Applications/IntelliJ IDEA Ultimate.app
� Flutter plugin can be installed from:
� https://plugins.jetbrains.com/plugin/9212-flutter
� Dart plugin can be installed from:
� https://plugins.jetbrains.com/plugin/6351-dart
[�] VS Code (version 1.94.0)
� VS Code at /Applications/Visual Studio Code.app/Contents
� Flutter extension version 3.98.0
[�] Connected device (5 available)
� sdk gphone64 arm64 (mobile) � emulator-5554 � android-arm64 � Android 15 (API 35) (emulator)
� iPhone (�и�аил) (mobile) � 00008020-001254DA1E39002E � ios � iOS 17.6.1 21G93
� macOS (desktop) � macos � darwin-arm64 � macOS 14.7 23H124 darwin-arm64
� Mac Designed for iPad (desktop) � mac-designed-for-ipad � darwin � macOS 14.7 23H124 darwin-arm64
� Chrome (web) � chrome � web-javascript � Google Chrome 129.0.6668.90
! Error: Browsing on the local area network for �и�аил �ово�ел��ев�s iPad. Ensure the device is unlocked and attached with a cable or associated with the same local area network as this Mac.
The device must be opted into Developer Mode to connect wirelessly. (code -27)
[�] Network resources
� All expected network resources are available.
! Doctor found issues in 2 categories.
```
</details>
<details>
<summary>after, no issues regarding Android Studio</summary>
```console
[!] Flutter (Channel [user-branch], 3.26.0-1.0.pre.383, on macOS 14.7 23H124 darwin-arm64, locale en-RU)
! Flutter version 3.26.0-1.0.pre.383 on channel [user-branch] at /Users/samer/projects/flutter
Currently on an unknown channel. Run `flutter channel` to switch to an official channel.
If that doesn't fix the issue, reinstall Flutter by following instructions at https://flutter.dev/setup.
� Upstream repository [email protected]:Sameri11/flutter.git
� FLUTTER_GIT_URL = [email protected]:Sameri11/flutter.git
� Framework revision 852508425d (20 minutes ago), 2024-10-07 21:22:45 +0500
� Engine revision 683a14c
� Dart version 3.6.0 (build 3.6.0-326.0.dev)
� DevTools version 2.40.0
� If those were intentional, you can disregard the above warnings; however it is recommended to use "git" directly to perform update
checks and upgrades.
[�] Android toolchain - develop for Android devices (Android SDK version 34.0.0)
� Android SDK at /Users/samer/Library/Android/sdk
� Platform android-35, build-tools 34.0.0
� Java binary at: /Users/samer/Library/Java/JavaVirtualMachines/jbr-17.0.7/Contents/Home/bin/java
� Java version OpenJDK Runtime Environment JBR-17.0.7+7-964.1-nomod (build 17.0.7+7-b964.1)
� All Android licenses accepted.
[�] Xcode - develop for iOS and macOS (Xcode 16.0)
� Xcode at /Applications/Xcode-16.0.app/Contents/Developer
� Build 16A242d
� CocoaPods version 1.15.2
[�] Chrome - develop for the web
� Chrome at /Applications/Google Chrome.app/Contents/MacOS/Google Chrome
[�] Android Studio (version 2024.1)
� Android Studio at /Users/samer/Applications/Android Studio Koala Feature Drop 2024.1.2.app/Contents
� Flutter plugin can be installed from:
� https://plugins.jetbrains.com/plugin/9212-flutter
� Dart plugin can be installed from:
� https://plugins.jetbrains.com/plugin/6351-dart
� Java version OpenJDK Runtime Environment (build 17.0.11+0-17.0.11b1207.24-11852314)
[�] Android Studio (version 2024.2.2)
� Android Studio at /Users/samer/Applications/Android Studio Ladybug Feature Drop 2024.2.2 Canary 2.app/Contents
� Flutter plugin can be installed from:
� https://plugins.jetbrains.com/plugin/9212-flutter
� Dart plugin can be installed from:
� https://plugins.jetbrains.com/plugin/6351-dart
� Java version OpenJDK Runtime Environment (build 21.0.3+-79915917-b509.11)
[�] Android Studio (version 2024.2.1)
� Android Studio at /Users/samer/Applications/Android Studio.app/Contents
� Flutter plugin can be installed from:
� https://plugins.jetbrains.com/plugin/9212-flutter
� Dart plugin can be installed from:
� https://plugins.jetbrains.com/plugin/6351-dart
� Java version OpenJDK Runtime Environment (build 21.0.3+-79915917-b509.11)
[�] IntelliJ IDEA Ultimate Edition (version EAP IU-243.12818.47)
� IntelliJ at /Users/samer/Applications/IntelliJ IDEA Ultimate.app
� Flutter plugin can be installed from:
� https://plugins.jetbrains.com/plugin/9212-flutter
� Dart plugin can be installed from:
� https://plugins.jetbrains.com/plugin/6351-dart
[�] VS Code (version 1.94.0)
� VS Code at /Applications/Visual Studio Code.app/Contents
� Flutter extension version 3.98.0
[�] Connected device (5 available)
� sdk gphone64 arm64 (mobile) � emulator-5554 � android-arm64 � Android 15 (API 35) (emulator)
� iPhone (�и�аил) (mobile) � 00008020-001254DA1E39002E � ios � iOS 17.6.1 21G93
� macOS (desktop) � macos � darwin-arm64 � macOS 14.7 23H124 darwin-arm64
� Mac Designed for iPad (desktop) � mac-designed-for-ipad � darwin � macOS 14.7 23H124 darwin-arm64
� Chrome (web) � chrome � web-javascript � Google Chrome 129.0.6668.90
! Error: Browsing on the local area network for �и�аил �ово�ел��ев�s iPad. Ensure the device is unlocked and attached with a cable or
associated with the same local area network as this Mac.
The device must be opted into Developer Mode to connect wirelessly. (code -27)
[�] Network resources
� All expected network resources are available.
! Doctor found issues in 1 category.
```
</details>
Logic behind these changes explained in flutter#121925 (comment)
fixes flutter#121925
**Tests**: updated existing tests by adding version checking, but I don't mind writing new ones if necessary � please tell me if so.
This PR willing to fix issue when
flutter doctorvalidator can't determine version of Android Studio EAP.These are before/after outputs of
flutter doctor -vshowcasing change in behaviour of validator. Each output has 3Android Studiosections, 1 for stable and 2 for different EAP versions.before, (stable, 3.24.3), 2 issues related to versions of Android Studio
after, no issues regarding Android Studio
Logic behind these changes explained in #121925 (comment)
fixes #121925
Tests: updated existing tests by adding version checking, but I don't mind writing new ones if necessary – please tell me if so.
Pre-launch Checklist
///).If you need help, consider asking for advice on the #hackers-new channel on Discord.