Commit Graph

273 Commits

Author SHA1 Message Date
stuartmorgan
61c198e766
Switch Linux to the GTK embedding (#59287)
Updates the tooling to use the GTK embedding, rather than the GLFW embedding:
- Adds new requirements to `doctor`
- Updates the app and plugin templates to make GTK-based runners and plugins
- Stops downloading and installing the GLFW artifacts

Final part of #54860, other than cleanup.
2020-06-16 13:31:24 -07:00
Jenn Magder
5eb4917d73
Release cache lock for commands after required artifacts are downloaded (#59012) 2020-06-08 17:18:02 -07:00
Jesse
2da08f4c10
Fix typo in 'flutter create --list-samples' help (#57005) 2020-05-14 14:37:03 -07:00
xster
72986f7bcf
remove intellij references to the v1 embedding jars now that the v2 embeddings are referenced via maven (#55353) 2020-04-22 13:33:13 -07:00
Jenn Magder
457972b757
Move doctor into globals (#54912)
* Move doctor into globals

* Fix tests
2020-04-15 19:44:42 -07:00
Jonah Williams
4605b51a7e
[flutter_tools] use package Uuid consistently (#53492) 2020-03-30 12:46:06 -07:00
Jenn Magder
ce40fbaf51
Include metadata in GitHub crash template (#53118) 2020-03-27 16:21:45 -07:00
stuartmorgan
685e9d1e47
Add pre-stable support for create on Windows (#51895)
Adds initial support for flutter create of apps and plugins. This is derived from the current FDE example app and sample plugin, adding template values where relevant.

Since the APIs/tooling/template aren't stable yet, the app template includes a version marker, which will be updated each time there's a breaking change. The build now checks that the template version matches the version known by that version of the tool, and gives a specific error message when there's a mismatch, which improves over the current breaking change experience of hitting whatever build failure the breaking change causes and having to figure out that the problem is that the runner is out of date. It also adds a warning to the create output about the fact that it won't be stable.

Plugins don't currently have a version marker since in practice this is not a significant problem for plugins yet the way it is for runners; we can add it later if that changes.

Fixes #30704
2020-03-23 10:42:26 -07:00
Emmanuel Garcia
4049889d9e
Make --androidx flag a noop in flutter create (#52340) 2020-03-10 20:05:41 -07:00
Zachary Anderson
78b45fb1b2
[flutter_tools] Throw a tool exit when samples fetch fails (#52355) 2020-03-10 15:21:02 -07:00
Zachary Anderson
6c408a0567
Reland: [flutter_tool] Where possible, catch only subtypes of Exception (#52021)
* Reland: [flutter_tool] Where possible, catch only subtypes of Exception

* Add armv7f to getIOSArchForName
2020-03-06 10:22:12 -08:00
Jenn Magder
cbbb7ec5a7
Revert "Reland: [flutter_tool] Where possible, catch only subtypes of Exception (#51774)" (#51960)
This reverts commit 57c6721cd5.
2020-03-04 12:40:15 -08:00
Flutter GitHub Bot
57c6721cd5
Reland: [flutter_tool] Where possible, catch only subtypes of Exception (#51774) 2020-03-04 11:41:02 -08:00
stuartmorgan
8d8439f8e3
Add pre-stable support for create on Linux (#51832)
Adds initial support for `flutter create` of apps and plugins. This is derived from the current FDE example app and sample plugin, with a few changes:
- Added template values where it makes sense.
- Moved some likely-to-change values into separate files for now, to simplify the delete/recreate cycle that will be necessary until it's stable.
- Added some minor Makefile flag handling improvements

Since the APIs/tooling/template aren't stable yet, the app template includes a version marker, which will be updated each time there's a breaking change. The build now checks that the template version matches the version known by that version of the tool, and gives a specific error message when there's a mismatch, which improves over the current breaking change experience of hitting whatever build failure the breaking change causes and having to figure out that the problem is that the runner is out of date. It also adds a warning to the `create` output about the fact that it won't be stable.
2020-03-03 22:42:52 +01:00
Greg Spencer
1ba4f1f509
Add Linux and Windows target platforms (#51519)
This PR adds the linux and windows target platform enum values, along with automatically setting the defaultTargetPlatform to the appropriate value on those platforms.

Fixes #31366
2020-03-03 04:38:04 -08:00
Zachary Anderson
b32ee2f15c
Revert "Reland: [flutter_tool] Where possible, catch only subtypes of Exception (#51567)" (#51616)
This reverts commit 9de7787f25.
2020-02-27 22:57:13 -08:00
stuartmorgan
33bb1faf5b
Reland: Always use new plugin schema for plugin template (#49832)
Now that the new schema is supported on the stable channel, and the old
schema is considered legacy, the template should always create plugins
using the new schema.
2020-02-27 22:48:25 -08:00
Zachary Anderson
9de7787f25
Reland: [flutter_tool] Where possible, catch only subtypes of Exception (#51567) 2020-02-27 22:46:23 -08:00
Zachary Anderson
483f49962c
Revert "[flutter_tool] Where possible, catch only subtypes of Exception (#51440)" (#51539)
This reverts commit f1cd47ef5c.
2020-02-26 23:42:19 -08:00
Zachary Anderson
f1cd47ef5c
[flutter_tool] Where possible, catch only subtypes of Exception (#51440) 2020-02-26 21:45:02 -08:00
Zachary Anderson
2c51efef29
[flutter_tools] Make Config context-free (#49834) 2020-01-31 12:51:20 -08:00
Greg Spencer
6ee8b6546b
Revert "Always use new plugin schema for plugin template (#48258)" (#49827)
This reverts commit 9d4a35b because it appears to break

the gradle_non_android_plugin_test.
2020-01-30 12:46:12 -08:00
stuartmorgan
9d4a35ba8b
Always use new plugin schema for plugin template (#48258)
Now that the new schema is supported on the stable channel, and the old
schema is considered legacy, the template should always create plugins
using the new schema.
2020-01-30 11:30:31 -08:00
Zachary Anderson
92f7e16312
[flutter_tools] Make OperatingSystemUtils context-free (#49740) 2020-01-29 17:51:31 -08:00
Zachary Anderson
74c1be6ff1 [flutter_tool] Make base/net.dart context free (#49575) 2020-01-27 17:53:02 -08:00
Jenn Magder
7f715628b0 Replace FlutterVersion.instance with FlutterVersion context fetch in global.dart (#49462) 2020-01-27 17:38:01 -08:00
Alexandre Ardhuin
3800bb7b10 fix missing spaces in adjacent strings (#49159) 2020-01-21 16:43:03 -08:00
Zachary Anderson
29490887e0
Reland: [flutter_tools] File system utilities (#48757)
* Reland: [flutter_tools] File system utilities

* Remove unused imports
2020-01-14 09:40:39 -08:00
Zachary Anderson
ef62092b9b
Revert "[flutter_tools] File system utilities (#48738)" (#48755)
This reverts commit 0349660622.
2020-01-13 14:30:37 -08:00
Zachary Anderson
0349660622
[flutter_tools] File system utilities (#48738) 2020-01-13 13:17:45 -08:00
Emmanuel Garcia
ec2d58335a Make subcommands return success instead of null (#48100) 2020-01-10 11:28:01 -08:00
Alexandre Ardhuin
4f9b6cf017
enable lint prefer_final_in_for_each (#47724) 2020-01-07 16:32:04 +01:00
Jonah Williams
ee7a37f1d3
[flutter_tools] Ensure that global variables are easily identifiable (#47398) 2020-01-06 11:04:20 -08:00
Jonah Williams
0a2d8e0cce
[flutter_tool] Remove direct usage of package:linter in the flutter_tools (#47174) 2019-12-16 18:37:20 -08:00
Jonah Williams
0b2bf99491
Reland: Update macOS configuration settings (#45966) 2019-12-03 08:13:08 -08:00
Jonah Williams
8a9897c84c
Revert "update macOS configuration settings (#45920)" (#45965)
This reverts commit 3b2042a028.
2019-12-02 21:34:41 -08:00
Jonah Williams
3b2042a028
update macOS configuration settings (#45920) 2019-12-02 21:06:38 -08:00
Ian Hickson
449f4a6673
License update (#45373)
* 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
2019-11-27 15:04:02 -08:00
Greg Spencer
245d1b51ce
Add macOS to TargetPlatform (#43457)
This PR adds TargetPlatform.macOS to the TargetPlatform enum. This allows us to begin implementation of some adaptive UI based on which target platform is desired.

I haven't updated the tests here, that will come in a follow-up PR.
2019-11-26 18:32:34 -08:00
Christopher Fujino
dc68d5700b
Fix flutter run cache (#45267) 2019-11-26 09:02:34 -08:00
Alexandre Ardhuin
adc7351046
implicit-casts:false on flutter_tools/lib (#44447)
* implicit-casts:false on flutter_tools/lib

* address review comments

* use castStringKeyedMap

* introduce {bool,string,strings}Arg

* fix ci
2019-11-19 07:57:42 +01:00
Jenn Magder
e57ab1f263
Add module to create template help text (#44638) 2019-11-13 18:28:45 -08:00
Afzaal Ahmad Zeeshan
9492dcc7cc Update create.dart (#43764)
Changed the placements of the operands to make it more readable.
2019-11-07 10:17:03 -08:00
Emmanuel Garcia
175b37247d
Refactor gradle.dart (#43479) 2019-10-31 13:19:15 -07:00
Emmanuel Garcia
08c645b3b2
Test the Android embedding v2 (#42708)
* Test the Android embedding v2

* Update integration tests

* Split into shards
2019-10-16 21:26:10 -07:00
Jonah Williams
fde267516b
Make Pub an interface in the flutter tool (#42257) 2019-10-08 14:53:28 -07:00
Emmanuel Garcia
5961bcc505
Generate projects using the new Android embedding (#41666)
* Generate projects using the new Android embedding

* Add comment about usesNewEmbedding:true

* Feedback

* Rework way to detect new embedding in new apps
2019-10-04 06:23:03 -07:00
Emmanuel Garcia
48ce60824a
Revert "Revert "Use AndroidX in new projects by default (#40925)" (#40995)" (#41001)
This reverts commit 8e23179627.
2019-09-24 16:55:09 -07:00
Emmanuel Garcia
8e23179627
Revert "Use AndroidX in new projects by default (#40925)" (#40995) 2019-09-20 13:37:10 -07:00
Emmanuel Garcia
f7173dcc60
Use AndroidX in new projects by default (#40925) 2019-09-20 08:29:21 -07:00
stuartmorgan
0412977e48
Support create for macOS (app and plugin) (#40851)
Adds macOS support for `flutter create`:
- Currently it is behind a hidden flag.
- Adds a TargetPlatform workaround to lib/main.dart in the standard app template when enabled.
- Supports `app` and `plugin`; `module` support doesn't yet exist for macOS in general.

This will eliminate the need to use FDE's examples as templates on macOS. The templates are based on the current state of FDE's examples, with templating support added (and with adoption of the new application delegate in the app, which hadn't been done yet in FDE, eliminating some boilerplate from the template).

Fixes #30703
2019-09-19 17:06:18 -07:00
Alexandre Ardhuin
df4bf453ab
more UI-as-code (#35516) 2019-09-17 16:23:44 +02:00
Zachary Anderson
8a33d2446d
[flutter_tool] Remove the synchronous -showBuildSettings (#40435) 2019-09-16 07:51:50 -07:00
Zachary Anderson
e2340c641d
[flutter_tool] Use curly braces around single statment control structures (#40446) 2019-09-13 14:51:35 -07:00
Jonah Williams
76ebcc8a14
remove web flag from create (#39756) 2019-09-03 11:53:27 -07:00
Emmanuel Garcia
4a1c62c28b
Add missing files in the Gradle wrapper directory (#39145) 2019-08-28 14:52:08 -07:00
Zachary Anderson
398ac1f6c8
[flutter_tool] Remove some async file io (#38654) 2019-08-20 13:15:08 -07:00
Zachary Anderson
e24a27d374
[flutter_tool] Flip create language defaults to swift and kotlin (#38339) 2019-08-15 12:13:28 -07:00
Zachary Anderson
ef146f63bb
[flutter_tool] Clean up usage events and custom dimensions (#36785) 2019-07-29 07:24:02 -07:00
Jonah Williams
3fedb8cb5a
Reland: use flutter features for web and desktop (#36699) 2019-07-22 15:34:03 -07:00
Jonah Williams
8eae2dfb92
Revert "Use FlutterFeatures to configure web and desktop devices (#36465)" (#36654)
This reverts commit bd52a78c71.
2019-07-21 21:47:43 -07:00
Jonah Williams
bd52a78c71
Use FlutterFeatures to configure web and desktop devices (#36465) 2019-07-21 18:21:15 -07:00
Todd Volkert
aa9a115181
Move reporting files to reporting/ (#36017)
Slight cleanup of file locations in flutter_tools
to make it easier to see which files are responsible
for data reporting.
2019-07-16 13:21:06 -07:00
Jonah Williams
a1d3edc446
Twiggle bit to exclude dev and beta from desktop and web (#35221) 2019-06-27 19:04:02 -07:00
Jonah Williams
bd413bff1b
Add flutter create for the web (#34018) 2019-06-07 13:15:38 -07:00
Josh Burton
d0e45a2369 Adds support for generating projects that use AndroidX support libraries (#31028) 2019-05-31 18:33:02 -07:00
Emmanuel Garcia
3bbdf017c4
Add to app measurement (#33458) 2019-05-29 20:56:28 -07:00
Jonah Williams
8e3e0a89f4
Revert "Instrument add to app flows (#33297)" (#33449)
This reverts commit faec4ca361.
2019-05-28 12:52:58 -07:00
Emmanuel Garcia
faec4ca361
Instrument add to app flows (#33297) 2019-05-28 11:11:20 -07:00
Michael Thomsen
7ae3caf309
Rename flutter packages to flutter pub (#33041) 2019-05-21 16:38:58 +02:00
Devon Carew
50a9c31f5e
reduce retry attempts for flutter creatte --list-samples (#32833) 2019-05-16 18:20:30 -07:00
Jonah Williams
4ff467191b
make FlutterProject synchronous (#31757) 2019-04-29 08:21:32 -07:00
Jonah Williams
be73969657
Add more context to flutter create sample (#31434) 2019-04-22 22:22:46 -07:00
Jonah Williams
a476a08e62
check if project exists before regenerating platform specific tooling (#31342) 2019-04-22 15:18:15 -07:00
Tim Sneath
529189791c
Replace flutter.io with flutter.dev (#30562) 2019-04-05 11:39:30 -07:00
Jonah Williams
7d678f2adc
Lazy cache 5: The Empire Strikes Back (#29986) 2019-03-27 13:54:09 -07:00
Jonah Williams
164dae3bf1
Revert "Lazy cache 4 (#29785)" (#29985) 2019-03-26 10:01:22 -07:00
Jonah Williams
d71f324e48
Lazy cache 4 (#29785) 2019-03-26 08:45:29 -07:00
Danny Tuppeny
126c58ef7c
Add a flutter create --list-samples command (#28938)
* Add a `flutter create --list-samples` command

* Add some comments/docs

* Tweak text
2019-03-12 11:47:17 +00:00
Jonah Williams
8c0cf1ddf7
Revert "Lazily download artifacts (III) (#27903)" (#29064)
This reverts commit 3fd36200d9.
2019-03-08 13:31:51 -08:00
Jonah Williams
3fd36200d9
Lazily download artifacts (III) (#27903) 2019-03-08 13:15:50 -08:00
Phil Quitslund
802eca29d2
set literal conversions (#27811) 2019-03-06 11:05:16 -08:00
Alexandre Ardhuin
387f885481
Add missing trailing commas (#28673)
* add trailing commas on list/map/parameters

* add trailing commas on Invocation with nb of arg>1

* add commas for widget containing widgets

* add trailing commas if instantiation contains trailing comma

* revert bad change
2019-03-01 08:17:55 +01:00
Greg Spencer
b316940051
Fix the length of the valueHelp on the --sample option for the create command, and turn on wrapping. (#28264)
The wrapping for some commands was never actually turned on, so this turns it on.

Also, it shortens the `valueHelp` for the `--sample` option to be just "id" instead of "the sample ID of the desired sample from the API documentation website (http://docs.flutter.io)", which was causing the line to get far too long.

Fixes #23074
2019-02-21 15:56:59 -08:00
Alexandre Ardhuin
5169ab5974
format parameter list (#27261) 2019-02-21 09:27:07 +01:00
Jonah Williams
a5af29e83c
Revert "Lazily download artifacts (Part II) (#27735)" (#27895)
This reverts commit 76061c4fa9.
2019-02-13 11:59:51 -08:00
Jonah Williams
76061c4fa9
Lazily download artifacts (Part II) (#27735) 2019-02-13 11:04:28 -08:00
KyleWong
199ebaa677 Refactor ios bundleid/android application process logic. (#27471)
When creating a flutter project,
Make sure: applicationid for android conforms to: https://developer.android.com/studio/build/application-id

Make sure: bundleid for ios conforms to:
https://developer.apple.com/library/archive/documentation/FileManagement/Conceptual/understanding_utis/understand_utis_conc/understand_utis_conc.html
(Not only the name,but also the organization, as it's a check for whole bundleid.)
2019-02-12 19:40:53 -08:00
Jonah Williams
7cdb30fba2
Revert "Lazily download artifacts (#27374)" (#27705)
This reverts commit 98971f3c64.
2019-02-08 15:50:18 -08:00
Jonah Williams
98971f3c64
Lazily download artifacts (#27374) 2019-02-08 15:24:09 -08:00
Jonah Williams
91fd89e8b3
Wrap dart:convert to track utf8 decode failures (#26650) 2019-01-25 16:16:26 -08:00
Greg Spencer
dca8d36d62
Change flutter create to use master-docs.flutter.io instead of firebase URL. (#25516)
Now that we have our DNS mapping we should refer to the master docs site that way everywhere.
2019-01-10 12:55:57 -08:00
Greg Spencer
f9c6f30576
Allow users to create samples using flutter create. (#23584)
This adds flutter create --sample which allows users to execute a command which will create a working sample app from samples embedded in the API docs.

The command looks something like this:

flutter create --sample=chip.DeletableChipAttributes.onDeleted mysample
2018-10-30 16:01:14 -07:00
Sebastian Roth
b95b67a66b allow command line option "--project-name" in flutter create (#22022)
Simple convenience function if users create flutter projects in custom folder structures and but want to specify a custom project name.
2018-10-17 08:25:46 -07:00
Greg Spencer
081d2a7a86
Re-land text wrapping/color PR (#22831)
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.
2018-10-10 18:17:56 -07:00
Greg Spencer
0ff9e8a928
Rename 'application' back to 'module', and make 'app' the default again for templates. (#22888)
We decided that redefining the default for templates was premature. We're going to go back to having "module" in experimental land again, and we'll try again when we have the feature set fully baked.

This keeps the writing of the .metadata files, and writing the template type to them, because that was a good improvement, and there are still a bunch of added tests that improve our coverage.
2018-10-10 11:01:40 -07:00
Greg Spencer
e0b182e61a
Fix gradle error in devicelab tests (#22814)
Fixes a gradle error where it was failing to find a plugin because of an absolute path in the .flutter-plugins file instead of a relative path.

I had originally removed this variable because I thought it was redundant with the projectDir, but apparently I was wrong about that (one resolves to a relative path, and one resolves to an absolute path).

This PR reverts that part of the change and reintroduces the (not really) redundant variable.
2018-10-08 09:38:37 -07:00
Greg Spencer
2d81adf74c
Revert "Turn on line wrapping in usage and status messages, adds ANSI color to doctor and analysis messages. (#22656)" (#22759)
This reverts commit e438632165
because it breaks 160 benchmarks, and several devicelab tests,
due to changing the format of the output.
2018-10-05 22:29:37 -07:00
Greg Spencer
e438632165
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.
2018-10-05 20:00:11 -07:00
Greg Spencer
21a32fdd0c
Fixes the project detection logic when creating new projects over existing directories. (#22744)
This all happened because I was trying to be a little too helpful...

Part of the job of the "create" command is to recreate missing pieces of existing projects, and now that the default has changed, I wanted to make it so that if someone had created a default flutter create project before, that they could run a default flutter create there again, and not have it trashed by using the new default template (application) over the old one (app).

This meant I had to detect what type of project it was. Unfortunately, in the past we didn't write anything in the .metadata file to identify the type of project, and since the goal was regenerating missing files, I can't count on anything existing, so it's just a heuristic match.

This simplifies the heuristics down to just detecting the difference between "app" and "application" projects, and only detect the other types if they're explicitly listed in the .metadata file (I changed the code in my original PR to add the project type to the .metadata file). People used to have to specify the type for those anyhow, so it shouldn't be a surprise to users.

So, the main difference in the new heuristics from my last attempt is that if you have a directory that has some other stuff it (like maybe a "plugin" project), then we'll recreate (pronounced "mess up") the project using the "application" template, but that was true before (except it would use the "app" template).

Fixes #22726
2018-10-05 15:49:53 -07:00