245 Commits

Author SHA1 Message Date
Elias Yishak
d3b60d4649
Clean up lint ignores (#144229)
Fixes:
- https://github.com/dart-lang/tools/issues/234

Bumps the version for package:unified_analytics and removes TODOs and lint ignores
2024-02-27 23:21:03 +00:00
Lau Ching Jun
ac7879e2aa
Avoid depending on files from build_system/targets other than from top level entrypoints in flutter_tools. (#142760)
Add a new `BuildTargets` class that provides commonly used build targets. And avoid importing files from `build_system/targets` except from the top level entrypoints or from top level commands.

Also move `scene_importer.dart` and `shader_compiler.dart` into `build_system/tools` because they are not `Target` classes, but wrapper for certain tools.

With this change, we can ignore all files in `build_system/targets` internally and make PR #142709 easier to land internally. See cl/603434066 for the corresponding internal change.

Related to:
https://github.com/flutter/flutter/pull/142709
https://github.com/flutter/flutter/issues/142041

Also note that I have opted to add a new variable in `globals.dart` for `BuildTargets` in this PR, but I know that we are trying to get rid of globals. Several alternatives that I was considering:

1. Add a new field in `BuildSystem` that returns a `BuildTargets` instance. Since `BuildSystem` is already in `globals`, we can access build targets using `globals.buildSystem.buildTargets` without adding a new global variable.
2. Properly inject the `BuildTargetsImpl` instance from the top level `executable.dart` and top level commands.

Let me know if you want me to do one of the above instead. Thanks!
2024-02-02 18:23:08 +00:00
Matan Lurey
3b1e96e074
Remove duplicate code as suggested by natebosch. (#141988)
See https://github.com/flutter/flutter/pull/141821/files#r1462288131.
2024-01-22 13:08:36 -08:00
Matan Lurey
0b2269447f
Do not hang on test failures of tests within flutter_tools (#141821)
Fixes https://github.com/flutter/flutter/issues/141823

Before this change, when a test would fail, the terminal would hang (by default for 30s) until killed by the test runner.

Basically, [`runZonedGuarded`](https://api.flutter.dev/flutter/dart-async/runZonedGuarded.html) _does_ document (though not clearly) that a returned future should not be awaited:

```txt
The zone will always be an error-zone ([Zone.errorZone](https://api.flutter.dev/flutter/dart-async/Zone/errorZone.html)), so returning a future created inside the zone, and waiting for it outside of the zone, will risk the future not being seen to complete.
```

For example, you can see other places in Dart and Flutter that we circumvent that problem:

- 5987563e4a/packages/flutter_tools/test/general.shard/base/async_guard_test.dart (L279-L306)
- b04c9c127f/lib/src/dartdoc.dart (L258-L264)
- d1afda52d2/lib/web_ui/dev/browser_process.dart (L20-L22)

I'm open to suggestions on how to test this :)

/cc @natebosch @jakemac53 @lrhn if you have any color commentary for us.
2024-01-22 19:49:59 +00:00
Xilai Zhang
c1762215ad
[github actions] minor PR to test latest github actions (#140252)
Minor fix of a typo.

A merged PR on flutter/flutter with a newer base commit is needed to test the latest version of https://github.com/flutter/flutter/blob/master/.github/workflows/easy-cp.yml. (more details in https://github.com/flutter/flutter/pull/140191#issuecomment-1857169933).

This PR has a base commit that includes the latest updates to easy-cp.yml, and would be a good candidate for testing purposes when merged
2023-12-16 03:31:21 +00:00
Elias Yishak
56ae555992
Unified analytics events for doctor validators (#136647)
Related to tracking issue:
- https://github.com/flutter/flutter/issues/128251

This PR sends analytic events for each of the doctor validators.

This PR below will need to land first in `dart-lang/tools` before this merges.
2023-10-26 18:23:24 +00:00
Christopher Fujino
8a31a3a284
Flutter preview device (#135639)
Fixes https://github.com/flutter/flutter/issues/130277

This PR does two things:

1. introduce a hidden `flutter build _preview` command, that will build a debug windows desktop app and copy it into the SDK's binary cache. This command is only intended to be run during packaging.
2. introduce a new device type, called `PreviewDevice`, which relies on the prebuilt desktop debug app from step 1, copies it into the target app's assets build folder, and then hot reloads their dart code into it.
2023-10-18 00:27:54 +00:00
Christopher Fujino
0fa01b2156
[flutter_tools] allow tool integration tests to quit on SIGINT (#136271)
fixes https://github.com/flutter/flutter/issues/136270
2023-10-10 20:47:59 +00:00
Elias Yishak
ba1416954a
Update logic for getting Analytics instance from package:unified_analytics (#134756)
Part of:
- https://github.com/flutter/flutter/issues/128251

Currently, when we want to use the analytics instance from `package:unified_analytics`, we are just grabbing it from globals. However, with the legacy analytics instance, there are some things we check to return a no-op version of the instance.. for example, if we are running on bots or a non standard branch, we use a no-op instance

This PR uses the same previous checks for the new analytics instance
2023-09-29 16:20:16 +00:00
Victoria Ashworth
b39604e02d
Check for simulator runtime in flutter doctor (#131795)
Redo of https://github.com/flutter/flutter/pull/130728 - code is the same as before. That PR was stuck in Google testing and then I messed up the rebase so started over.

----

Starting in Xcode 15, the simulator is no longer included in Xcode and must be downloaded and installed separately. This adds a validation to `flutter doctor` to warn when the needed simulator runtime is missing.

Validation message looks like:
```
[!] Xcode - develop for iOS and macOS (Xcode 15.0)
    ! iOS 17.0 Simulator not installed; this may be necessary for iOS and macOS development.
      To download and install the platform, open Xcode, select Xcode > Settings > Platforms,
      and click the GET button for the required platform.

      For more information, please visit:
        https://developer.apple.com/documentation/xcode/installing-additional-simulator-runtimes
```

It may also show an error like this when something goes wrong when checking for the simulator:
```
[!] Xcode - develop for iOS and macOS (Xcode 15.0)
    ✗ Unable to find the iPhone Simulator SDK.
```

Note: I'm unsure of in the future if the SDK and the simulator runtime will need to match the exact version or just the major. For now, it only checks against the major version.

Part 3 of https://github.com/flutter/flutter/issues/129558.
2023-08-04 17:14:06 +00:00
Christopher Fujino
e310475fc7
[flutter_tools] only try to take a screenshot from flutter drive if the --screenshot flag is passed (#127150)
Fixes https://github.com/flutter/flutter/issues/123621
2023-05-19 19:14:17 +00:00
Jenn Magder
6b73885e2d
Increase Xcode minimum version to 14 (#125639)
Looks like CocoaPods 1.12.1 is incompatible with < Xcode 14 due to https://github.com/CocoaPods/CocoaPods/pull/11828 (see https://github.com/flutter/flutter/issues/123890 for context).

Bump the minimum Xcode version allowed by tooling to 14, released September 2022.

```
[!] Xcode - develop for iOS and macOS (Xcode 13.4)
    ✗ Flutter requires Xcode 14 or higher.
      Download the latest version or update via the Mac App Store.
```

Fixes https://github.com/flutter/flutter/issues/125286.
Previous bump at #97746.
2023-04-27 23:17:56 +00:00
Victoria Ashworth
fa01649a59
Update device selection to wait for wireless devices to load (#122932)
Update device selection to wait for wireless devices to load
2023-03-29 17:58:07 +00:00
Victoria Ashworth
27248d4b64
Separate attached and wireless devices (#122615)
Separate attached and wireless devices
2023-03-15 16:35:05 +00:00
Victoria Ashworth
ee42a302ec
Move target devices logic to its own classes and file (#121903)
Move target devices logic to its own classes and file
2023-03-13 16:14:21 +00:00
Victoria Ashworth
cc26a1aa0c
Update device filtering and introduce isConnected and connectionInterface (#121359)
Update device filtering and introduce isConnected and connectionInterface
2023-03-03 18:06:16 +00:00
Lau Ching Jun
2a73ce9b50
Refactor DeviceManager.findTargetDevices() and FlutterCommand.findAllTargetDevices(), and add a flag to not show prompt. (#112223) 2022-09-23 21:10:35 +00:00
Pierre-Louis
0c2f7bc2a2
Remove errant double spaces (#110758) 2022-09-02 04:00:58 +00:00
Christopher Fujino
b035ef1352
[flutter_tools] Remove more shuffles (#107759) 2022-07-26 05:43:05 +00:00
Alexandre Ardhuin
ccd33631e3
enable combinators_ordering (#107847) 2022-07-18 22:04:07 +00:00
Jonah Williams
2c15e3cae4
[flutter_tools] update test/src to null safety (#106064) 2022-06-16 16:48:03 -07:00
Jesús S Guerrero
32b22b85de
parse build version on xcodeproj (#105908) 2022-06-16 22:26:06 +00:00
Michael Goderbauer
3fa355c97d
Remove dead code in tools tests (#104567) 2022-05-25 12:48:17 -07:00
Jenn Magder
8f360c977a
Update minimum required version to Xcode 13 (#97746) 2022-03-01 16:26:11 -08:00
Lau Ching Jun
d7688ca093
Change all instance of throwing strings to throw specific error classes. (#97325) 2022-02-02 10:45:18 -08:00
Jenn Magder
31933af486
Update minimum required version to Xcode 12.3 (#93094) 2021-11-05 16:08:04 -07:00
Jenn Magder
9e88fe328e
Remove globals_null_migrated.dart, move into globals.dart (#92861) 2021-11-01 17:18:03 -07:00
Ian Hickson
f25b833f27
Enable avoid_print lint. (#91444) 2021-10-07 16:48:04 -07:00
Mouad Debbar
c2ea78d231
Revert "Enable avoid_print lint. (#91332)" (#91438)
This reverts commit cb378edc9e8dbcb451cc6e969161032cc08da52a.
2021-10-07 16:16:17 -04:00
Ian Hickson
cb378edc9e
Enable avoid_print lint. (#91332) 2021-10-07 09:53:03 -07:00
Ian Hickson
4315cdcf76
Some test cleanup for flutter_tools. (#90227) 2021-10-01 10:38:02 -07:00
Ian Hickson
989f864497
Enable avoid_setters_without_getters (#91067) 2021-10-01 00:58:05 -07:00
Christopher Fujino
a2cd16ba82
use test logger, which does not allow colors (#90010) 2021-09-14 11:22:02 -07:00
Jenn Magder
a69b3ca5d3
Exclude arm64 from iOS app archs if unsupported by plugins (#87244) 2021-07-30 10:54:34 -07:00
Jonah Williams
5ac54a6b89
[flutter_tools] remove mocks from simcontrol and context (#81433) 2021-04-28 19:14:02 -07:00
Jenn Magder
db3f49b1b4
Use cached Xcode build settings during iOS build (#80904) 2021-04-27 17:20:11 -07:00
Ian Hickson
6beafa7b16
Apply style guide regarding createTempSync pattern (#81090) 2021-04-27 14:59:03 -07:00
Jenn Magder
a99fba01f1
Move FakeOperatingSystemUtils from context.dart to fakes.dart (#80916) 2021-04-22 10:44:02 -07:00
Phil Quitslund
61c30c41b2
fix sort_directives violations (#80817) 2021-04-21 13:49:03 -07:00
Jenn Magder
f2417e6c1c
Launch Chrome natively on ARM macOS (#80758) 2021-04-20 19:39:58 -07:00
Jenn Magder
72976f552c
Migrate xcodeproj to null safety (#80549) 2021-04-16 17:22:46 -07:00
Jenn Magder
e29595d4b6
Remove crash_reporting and github_template from reporting library (#80139) 2021-04-09 15:24:15 -07:00
Jenn Magder
79f1689f6a
Migrate doctor_validator to null safety (#79682) 2021-04-05 11:54:54 -07:00
Jenn Magder
8ddc27e607
Split globals.dart into null sound and unsound libraries (#79016) 2021-03-31 16:55:20 -07:00
Jenn Magder
d165ea5c42
Migrate os to null safety (#78901) 2021-03-23 17:28:09 -07:00
Jonah Williams
721702717d
[flutter_tools] replace MockFlutterVersion usage with fake where possible, move from context (#77390) 2021-03-05 14:04:03 -08:00
Michael Goderbauer
7b251f5f37
Enable use_function_type_syntax_for_parameters lint (#77163) 2021-03-04 08:59:17 -08:00
Jenn Magder
67b2ca893e
Update minimum required version to Xcode 12 (#77025) 2021-03-03 11:00:35 -08:00
Jonah Williams
8df58eb650
[flutter_tools] use a single fake implementation of HttpClient (#75471) 2021-02-09 15:32:03 -08:00
Jenn Magder
faa1a251f8
Move FakeBotDetector to fakes (#75543) 2021-02-09 12:43:53 -08:00