-
Notifications
You must be signed in to change notification settings - Fork 29.8k
[tool] fix android studio preview's version parsing #156293
New issue
Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.
By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.
Already on GitHub? Sign in to your account
[tool] fix android studio preview's version parsing #156293
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.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
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 flutter/packages/flutter_tools/test/general.shard/android/android_studio_test.dart Lines 76 to 87 in 2629eb0
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 |
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
LGTM with a nitpick
Thanks again for the well-written PR
63140bf to
c94fa0d
Compare
bkonyi
left a comment
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
LGTM!
| return null; | ||
| } | ||
|
|
||
| final int? major = int.tryParse('20${rawVersionMatch[0]}${rawVersionMatch[1]}'); |
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
This will break for Android Studio versions released starting in 2100 😉
be7ba27 to
7b0f373
Compare
Co-authored-by: Navaron Bracke <brackenavaron@gmail.com>
Co-authored-by: Navaron Bracke <brackenavaron@gmail.com>
Co-authored-by: Andrew Kolos <andrewrkolos@gmail.com>
Co-authored-by: Andrew Kolos <andrewrkolos@gmail.com>
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 git@github.com:Sameri11/flutter.git
� FLUTTER_GIT_URL = git@github.com: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.