Commit Graph

122 Commits

Author SHA1 Message Date
Matan Lurey
d77d7c3f36
Add a warning/additional handlers for parsingsynthetic-package. (#157934)
Closes https://github.com/flutter/flutter/issues/157928.
Closes https://github.com/flutter/flutter/issues/157929.

| Condition | Expectation |
| --------- | ------------ |
| `synthetic-packages: true` && `--implicit-pubpsec-resolution` | Generates `flutter_gen` with warning.
| `<no synthetic-packages key>` && `--implicit-pubspec-resolution` | Generates `flutter_gen` with warning.
| `synthetic-packages: false` && `--implicit-pubpsec-resolution` | Does not generate `flutter_gen`.
| `synthetic-packages: true` && `--no-implicit-pubpsec-resolution` | Error.
| `<no synthetic-packages key>` && `--no-implicit-pubspec-resolution` | Does not generate `flutter_gen`.
| `synthetic-packages: false` && `--no-implicit-pubpsec-resolution` | Generates `flutter_gen` with warning.
2024-11-01 00:45:07 +00:00
Matan Lurey
a9e94d9045
Do not silently fail pub get even if output-mode is "none" (#153596)
I am making an assumption `OutputMode.none` should _really_ mean
`OutputMode.failuresOnly`, that is, if we ever get a non-zero exit code,
we still want to know why. If I've somehow misunderstood that, LMK and
I'm happy to revert this PR or make adjustments.

This fixes the bug where if you were to do:

```sh
git clone https://github.com/myuser/fork-of-flutter
cd fork-of-flutter
./bin/flutter update-packages
```

You now get:

1. An actual error message, versus no output at all.
2. A warning that a common reason is not tracking a remote, with
instructions to fix it.

Closes https://github.com/flutter/flutter/issues/148569.
2024-08-22 09:12:54 -07:00
Matan Lurey
66367dd888
Remove message about pub cache that is not actionable (#143357)
... and neither the pub nor tools team think it's important.

Fixes https://github.com/flutter/flutter/issues/140628.
2024-02-13 11:15:15 -08:00
Alexander Dahlberg
f3ee371285
Fixed test in language_version_test.dart that failed when shuffling, … (#142904)
…and removed the no-shuffle tag.

This PR fixes #142376 by fixing the flaky test in language_version_test.dart and removes the no-shuffle tag.
 
## The Problem
The test expected the language version that is set at the top of the test file ('2.13' set in language_version_test.dart – line 14) but defaulted to the language version set in the file it is testing ('2.12' is set in language_version.dart).

This problem was hidden when some other test ran before this test and set up the language version correctly.
 
## The Fix
Make the test itself load the default language version we are testing against.
2024-02-05 20:25:39 +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
Zachary Anderson
4601341b50
Add no-shuffle to language_version_test.dart (#142378) 2024-01-27 10:57:39 -08:00
Andrew Kolos
295a9a2031
provide command to FakeCommand::onRun (#142206)
Part of work on [#101077](https://github.com/flutter/flutter/pull/141194). This is done as a separate PR to avoid a massive diff.

## Context
1. The `FakeCommand` class accepts a list of patterns that's used to match a command given to its `FakeProcessManager`. Since `FakeCommand` can match a list of patterns, not just specifically strings, it can be used to match commands where the exact value of some arguments can't (easily) known ahead of time. For example, a part of the tool may invoke a command with an argument that is the path of a temporarily file that has a randomly-generated basename.
2. The `FakeCommand` class provides on `onRun` parameter, which is a callback that is run when the `FakeProcessManager` runs a command that matches the `FakeCommand` in question.

## Issue
In the event that a `FakeCommand` is constructed using patterns, the test code can't know the exact values used for arguments in the command. This PR proposes changing the type of `onRun` from `VoidCallback?` to `void Function(List<String>)?`. When run, the value `List<String>` parameter will be the full command that the `FakeCommand` matched.

Example:
```dart
FakeCommand(
  command: <Pattern>[
    artifacts.getArtifactPath(Artifact.engineDartBinary),
    'run',
    'vector_graphics_compiler',
    RegExp(r'--input=/.*\.temp'),
    RegExp(r'--output=/.*\.temp'),
  ],
  onRun: (List<String> command) {
    final outputPath = (() { 
      // code to parse `--output` from `command`
    })();
    testFileSystem.file(outputPath).createSync(recursive: true);
  },
)
```
2024-01-25 07:51:25 +00:00
Christopher Fujino
1cee81c40a
[flutter_tools] fix language_version_test and enable shuffle (#142009)
Part of https://github.com/flutter/flutter/issues/85160
2024-01-23 20:31:53 +00:00
Dery Rahman Ahaddienata
6b5766d41e
Fix dart pub cache clean command on pub.dart (#128171)
Command instruction for clearing dart pub cache is somewhat wrong. Instead of `clear`, `clean` is the correct one. Ref: https://dart.dev/tools/pub/cmd/pub-cache

Fixes https://github.com/flutter/flutter/issues/128663

(Edited by @andrewkolos. Changed "related to" issue to "fixes" to link this PR to the issue).
2023-06-15 20:38:04 +00:00
Sigurd Meldgaard
7b54a30e31
Notify about existing caches when preloading (#122592) 2023-03-30 16:20:33 +02:00
Christopher Fujino
7d767270b2
[flutter_tools] replace --no-analytics with --suppress-analytics (#123133)
[flutter_tools] replace --no-analytics with --suppress-analytics
2023-03-21 19:18:57 +00:00
Sigurd Meldgaard
1fd84f88e9
Always use user-level pub cache (#121802)
Use the pub cache resolved by pub itself.
To add packages to the flutter.zip download they are packaged as tar.gz and added to the pub-cache on first run by using  `pub cache preload`.
2023-03-13 08:38:17 +01:00
Sigurd Meldgaard
7a28078509
Use dart pub instead of dart __deprecated pub (#121605) 2023-03-06 11:23:12 +01:00
Andrew Kolos
ee1c59d462
reduce pub output from flutter create (#118285)
* reduce pub output from flutter create

* fix fake Pub implementations

* fix tests

* Update pub.dart

* replace enum with simpler boolean

* fix tests

* Revert "fix tests"

This reverts commit 8a3182d3b9.

* Revert "replace enum with simpler boolean"

This reverts commit 445dbc443d.

* go back to using an enum
2023-01-12 21:42:02 +00:00
Sigurd Meldgaard
40bc6b55e4
Move debug error message from failed pub to logger.printTrace (#118379)
* Move debug error message from failed pub to logger.printTrace

* Update test
2023-01-12 19:24:20 +00:00
Sigurd Meldgaard
b7881e5b64
Align flutter pub get/upgrade/add/remove/downgrade (#117896)
* Align `flutter pub get/upgrade/add/remove/downgrade`

* Add final . to command description

* Remove trailing whitespace

* Don't print message that command is being run

* Update expectations

* Use relative path

* Remove duplicated line

* Improve function dartdoc
2023-01-10 23:29:09 +00:00
Nehal Patel
de2a42497f
Fix flutter update-packages regression by fixing parameters in "pub get" runner (#116687)
* Make pub get runner respect printProgress and retry parameters

* Fix typo

* Add regression test

* Improve test

* Fix implementation and test

* Test to fix flutter_drone tests

* Revert test

* Attempt #2 to fix flutter_drone tests

* Revert attempt

* Hack: Force printProgress to debug Windows tests

* Use ProcessUtils.run to avoid dangling stdout and stderr

* Update documentation

* Clean up retry argument
2023-01-06 00:08:05 +00:00
Michael Goderbauer
b308555ed1
Enable dangling_library_doc_comments and library_annotations lints (#117365) 2022-12-20 16:03:21 -08:00
Nehal Patel
3b15d6a501
Removes retries from "dart pub get" and un-buffers its stdout/stderr output (#115801)
* Removes retries from "pub get" and proxies its stdout output

* Fix issue where ErrorHandlingProcessManager does not forward "mode" parameter to backing ProcessManager's "start" method

* Make "pub get" use ProcessStartMode.inheritStdio instead of forwarding bytes to stdout and stderr

* Fix tests

* Remove unused env var

* Add back 'Running "flutter pub get"...' status log

* Fix indent

* Add Pub.test() constructor which lets tests mock stdio
2022-12-01 19:30:17 +00:00
Christopher Fujino
559d524ec1
improve debugging when dart pub get call fails (#112968) 2022-10-05 21:53:06 +00:00
Sigurd Meldgaard
d80e994a62
Reland: Show output from pub get in flutter pub get (#110851) 2022-09-08 15:13:23 +02:00
Zachary Anderson
0e195e9d46
Revert "Show output from pub get in flutter pub get (#106300)" (#110478)
This reverts commit 3802eb627e.
2022-08-29 08:02:50 -07:00
Sigurd Meldgaard
3802eb627e
Show output from pub get in flutter pub get (#106300) 2022-08-29 07:37:19 +00:00
Jesús S Guerrero
6048e07f47
[flutter_tools] join flutter specific with home cache (#105343) 2022-07-29 19:58:06 +00:00
Christopher Fujino
6abd3691c3
[flutter_tools] add more debugging when pub get fails (#108062) 2022-07-21 19:22:07 +00:00
Alexandre Ardhuin
07f1c20474
add missing trailing commas in list/set/map literals (#102585) 2022-04-27 09:15:35 +02:00
Ian Hickson
61a0add286
Enable avoid_redundant_argument_values lint (#91409) (#91462) 2021-10-08 09:25:14 -07:00
Zachary Anderson
b9d2177da0
Revert "Enable avoid_redundant_argument_values lint (#91409)" (#91461)
This reverts commit 5fd259be24.
2021-10-07 21:11:07 -07:00
Ian Hickson
5fd259be24
Enable avoid_redundant_argument_values lint (#91409) 2021-10-07 20:13:02 -07:00
Christopher Fujino
f753168cb6
[flutter_tools] add working directory to ProcessException when pub get fails (#91436) 2021-10-07 18:08:04 -07:00
Jason Simmons
cd19bc6007
Do not retry if pub get is run in offline mode (#90394) 2021-09-27 08:18:06 -07:00
Sigurd Meldgaard
bce366203a
Stop calling top level pub (#89032)
* Use `dart __deprecated_pub` instead of `pub` to invoke pub from tools

The top level `pub` commmand has been deprecated and will print
a message. It is however implemented via the __deprecated_pub command
that prints no message.
2021-08-30 10:40:10 -07:00
Jenn Magder
d550d497f1
Migrate some flutter_tools tests to null safety (#88850) 2021-08-25 16:21:04 -07:00
Zachary Anderson
b4e0472b04
Revert "Use dart pub instead of pub to invoke pub from tools (#88509)" (#88792)
This reverts commit 7c24ff2c5b.
2021-08-24 09:00:22 -07:00
Sigurd Meldgaard
7c24ff2c5b
Use dart pub instead of pub to invoke pub from tools (#88509)
Top level `pub` is being deprecated.
2021-08-24 15:51:08 +02:00
Greg Spencer
738ce43d97
Randomize tests, exclude tests that fail with randomization. (#86793)
* Randomize tests, exclude tests that fail with randomization.

* Disable some more tool tests
2021-07-26 23:40:49 -07:00
Remi Rousselet
1995da2c0c
Disable the automatic "pub get" if the project is using a third-party tool for linking dependencies. (#86177) 2021-07-19 08:06:03 -07:00
Jenn Magder
2bf0627dea
Migrate localizations and generate_synthetic_packages to null safety (#83310) 2021-05-25 11:09:02 -07:00
Jonah Williams
302e992ca7
[flutter_tools] throw a tool exit if pub cannot be run (#83293) 2021-05-24 14:34:02 -07:00
Michael Goderbauer
f7bcfa8e95
Be more helpful when l10n generation fails (#83134) 2021-05-21 17:19:02 -07:00
Alexandre Ardhuin
df3662b15e
use throwsA (#82238) 2021-05-11 10:19:01 -07:00
Phil Quitslund
61c30c41b2
fix sort_directives violations (#80817) 2021-04-21 13:49:03 -07:00
Jenn Magder
8d5f08fe02
Migrate pub in flutter_tools to null safety (#80548) 2021-04-16 17:23:00 -07:00
Jenn Magder
56c0002c47
Adopt FakeProcessManager.empty (#80480) 2021-04-15 14:19:02 -07:00
Jenn Magder
e11a1a83af
Remove mocks from fucshia_pm_test, reduce createMockProcess usage (#80321) 2021-04-13 13:53:18 -07:00
Jenn Magder
ff7b91b932
Migrate tools test fakes to null safety (#80154) 2021-04-09 17:32:54 -07:00
Jenn Magder
e8cd4827a0
Migrate fake_process_manager to null safety (#80018) 2021-04-08 15:19:07 -07:00
Jenn Magder
ec14cef060
Migrate more tool unit tests to null safety (#80002) 2021-04-08 15:18:52 -07:00
Sam Rawlins
68492c5b69
Remove "unnecessary" imports. (#78664) 2021-04-06 11:19:02 -07:00
Jonah Williams
35bd77bb08
[flutter_tools] separate concept of null safe language version from current language version (#79052) 2021-03-25 17:14:34 -07:00