first commit
This commit is contained in:
commit
19a982ede6
17025 changed files with 3794277 additions and 0 deletions
37
.flutter/.autoroller-preupload.sh
Executable file
37
.flutter/.autoroller-preupload.sh
Executable file
|
|
@ -0,0 +1,37 @@
|
|||
#!/usr/bin/env bash
|
||||
# Copyright 2014 The Flutter Authors. All rights reserved.
|
||||
# Use of this source code is governed by a BSD-style license that can be
|
||||
# found in the LICENSE file.
|
||||
|
||||
set -e
|
||||
|
||||
# This is executed by the skia autoroller after the roll has happened but before
|
||||
# the PR is uploaded. Previously this logic was hardcoded into the autoroller
|
||||
# and was reserved for updating the LICENSE file. Now the autoroller delegates
|
||||
# to this script.
|
||||
# See also:
|
||||
# - https://skia-review.googlesource.com/c/buildbot/+/1025936
|
||||
# - https://issues.skia.org/issues/433551375
|
||||
|
||||
REPO_PATH=$(dirname "$(readlink -f "$0")")
|
||||
PROFILE_PATH="$REPO_PATH/engine/src/out/host_profile"
|
||||
GN="$REPO_PATH/engine/src/flutter/tools/gn"
|
||||
LICENSE_CPP="$REPO_PATH/engine/src/out/host_profile/licenses_cpp"
|
||||
WORKING_DIR="$REPO_PATH/engine/src"
|
||||
LICENSES_PATH="$REPO_PATH/engine/src/flutter/sky/packages/sky_engine/LICENSE"
|
||||
DATA_PATH="$REPO_PATH/engine/src/flutter/tools/licenses_cpp/data"
|
||||
|
||||
cd "$REPO_PATH/engine/src"
|
||||
./tools/dart/create_updated_flutter_deps.py
|
||||
cd "$REPO_PATH"
|
||||
gclient sync -D
|
||||
|
||||
# This calls `gn gen`.
|
||||
"$GN" --runtime-mode profile --no-goma --no-rbe --enable-minimal-linux
|
||||
ninja -C "$PROFILE_PATH" licenses_cpp
|
||||
"$LICENSE_CPP" \
|
||||
--working_dir="$WORKING_DIR" \
|
||||
--licenses_path="$LICENSES_PATH" \
|
||||
--data_dir="$DATA_PATH" \
|
||||
--root_package="flutter" \
|
||||
--v=1
|
||||
7136
.flutter/.ci.yaml
Normal file
7136
.flutter/.ci.yaml
Normal file
File diff suppressed because it is too large
Load diff
21
.flutter/.gemini/config.yaml
Normal file
21
.flutter/.gemini/config.yaml
Normal file
|
|
@ -0,0 +1,21 @@
|
|||
# Minimize verbosity.
|
||||
have_fun: false
|
||||
code_review:
|
||||
# For now, use the default of MEDIUM for testing. Based on desired verbosity,
|
||||
# we can change this to LOW or HIGH in the future.
|
||||
comment_severity_threshold: MEDIUM
|
||||
pull_request_opened:
|
||||
# Explicitly set help to false in case the default changes in the future, as
|
||||
# having a help message on every PR would be spammy.
|
||||
help: false
|
||||
# These tend to be verbose, and since we expect PR authors to clearly
|
||||
# describe their PRs this would be at best duplicative.
|
||||
summary: false
|
||||
include_drafts: false
|
||||
ignore_patterns:
|
||||
# Avoid code reviews on rolls.
|
||||
- DEPS
|
||||
- "bin/internal/*.version"
|
||||
- "engine/src/flutter/ci/licenses_golden/**"
|
||||
# Avoid code reviews on all third_party files.
|
||||
- "**/third_party/**"
|
||||
84
.flutter/.gemini/styleguide.md
Normal file
84
.flutter/.gemini/styleguide.md
Normal file
|
|
@ -0,0 +1,84 @@
|
|||
# Flutter Style Guide
|
||||
|
||||
This style guide outlines the coding conventions for contributions to the
|
||||
flutter/flutter repository. It is based on the more comprehensive official
|
||||
[style guide for the Flutter repository](https://github.com/flutter/flutter/blob/main/docs/contributing/Style-guide-for-Flutter-repo.md).
|
||||
|
||||
## Best Practices
|
||||
|
||||
- Code should follow the guidance and principles described in
|
||||
[the Flutter contribution guide](https://github.com/flutter/flutter/blob/main/CONTRIBUTING.md).
|
||||
- Code should be tested and follow the guidance described in the [writing effective tests guide](https://github.com/flutter/flutter/blob/main/docs/contributing/testing/Writing-Effective-Tests.md) and the [running and writing tests guide](https://github.com/flutter/flutter/blob/main/docs/contributing/testing/Running-and-writing-tests.md).
|
||||
- Changes to the [engine/ directory](https://github.com/flutter/flutter/tree/main/engine) should additionally have appropriate tests as described in [the engine test guidance](https://github.com/flutter/flutter/blob/main/docs/engine/testing/Testing-the-engine.md).
|
||||
- PR descriptions should include the Pre-launch Checklist from
|
||||
[the PR template](https://github.com/flutter/flutter/blob/main/.github/PULL_REQUEST_TEMPLATE.md),
|
||||
with all of the steps completed.
|
||||
- The most relevant guidelines should take precedence over less relevant
|
||||
guidelines. For Flutter code, the
|
||||
[Flutter styleguide](https://github.com/flutter/flutter/blob/main/docs/contributing/Style-guide-for-Flutter-repo.md)
|
||||
should be followed as the first priority, and
|
||||
[Effective Dart: Style](https://dart.dev/effective-dart/style)
|
||||
should only be followed when it does not conflict with the former.
|
||||
|
||||
## Review Agent Guidelines
|
||||
|
||||
- Only review changes to the `master` branch. Other changes have already been reviewed (and are being cherrypicked).
|
||||
|
||||
## General Philosophy
|
||||
|
||||
- **Optimize for readability**: Code is read more often than it is written.
|
||||
- **Avoid duplicating state**: Keep only one source of truth.
|
||||
- Write what you need and no more, but when you write it, do it right.
|
||||
- **Error messages should be useful**: Every error message is an opportunity to make someone love our product.
|
||||
|
||||
## Dart Formatting
|
||||
|
||||
- All Dart code is formatted using `dart format`. This is enforced by CI.
|
||||
- Constructors come first in a class definition, with the default constructor preceding named constructors.
|
||||
- Other class members should be ordered logically (e.g., by lifecycle, or grouping related fields and methods).
|
||||
|
||||
## Miscellaneous Languages
|
||||
|
||||
- Python code is formatted using `yapf`, linted with `pylint`, and should follow the [Google Python Style Guide](https://google.github.io/styleguide/pyguide.html).
|
||||
- C++ code is formatted using `clang-format`, linted with `clang-tidy`, and should follow the [Google C++ Style Guide](https://google.github.io/styleguide/cppguide.html).
|
||||
- Shaders are formatted using `clang-format`.
|
||||
- Kotlin code is formatted using `ktformat`, linted with `ktlint`, and should follow the [Android Kotlin Style Guide](https://developer.android.com/kotlin/style-guide).
|
||||
- Java code is formatted using `google-java-format` and should follow the [Google Java Style Guide](https://google.github.io/styleguide/javaguide.html).
|
||||
- Objective-C is formatted using `clang-format`, linted with `clang-tidy`, and should follow the [Google Objective-C Style Guide](https://google.github.io/styleguide/objcguide.html).
|
||||
- Swift is formatted and linted using `swift-format` and should follow the [Google Swift Style Guide](https://google.github.io/swift).
|
||||
- GN code is formatted using `gn format` and should follow the [GN Style Guide](https://gn.googlesource.com/gn/+/main/docs/style_guide.md).
|
||||
|
||||
## Documentation
|
||||
|
||||
- All public members should have documentation.
|
||||
- **Answer your own questions**: If you have a question, find the answer, and then document it where you first looked.
|
||||
- **Documentation should be useful**: Explain the *why* and the *how*.
|
||||
- **Introduce terms**: Assume the reader does not know everything. Link to definitions.
|
||||
- **Provide sample code**: Use `{@tool dartpad}` for runnable examples.
|
||||
- Inline code samples are contained within `{@tool dartpad}` and `{@end-tool}`, and use the format of the following example to insert the code sample:
|
||||
- `/// ** See code in examples/api/lib/widgets/sliver/sliver_list.0.dart **`
|
||||
- Do not confuse this format with `/// See also:` sections of the documentation, which provide helpful breadcrumbs to developers.
|
||||
- **Provide illustrations or screenshots** for widgets.
|
||||
- Use `///` for public-quality documentation, even on private members.
|
||||
|
||||
## Review Agent Guidelines
|
||||
|
||||
When providing a summary, the review agent must adhere to the following principles:
|
||||
- **Be Objective:** Focus on a neutral, descriptive summary of the changes. Avoid subjective value judgments
|
||||
like "good," "bad," "positive," or "negative." The goal is to report what the code does, not to evaluate it.
|
||||
- **Use Code as the Source of Truth:** Base all summaries on the code diff. Do not trust or rephrase the PR
|
||||
description, which may be outdated or inaccurate. A summary must reflect the actual changes in the code.
|
||||
- **Be Concise:** Generate summaries that are brief and to the point. Focus on the most significant changes,
|
||||
and avoid unnecessary details or verbose explanations. This ensures the feedback is easy to scan and understand.
|
||||
|
||||
## Further Reading
|
||||
|
||||
For more detailed guidance, refer to the following documents:
|
||||
|
||||
- [Style guide for the Flutter repository](https://github.com/flutter/flutter/blob/main/docs/contributing/Style-guide-for-Flutter-repo.md)
|
||||
- [Effective Dart: Style](https://dart.dev/effective-dart/style)
|
||||
- [Tree Hygiene](https://github.com/flutter/flutter/blob/main/docs/contributing/Tree-hygiene.md)
|
||||
- [The Flutter contribution guide](https://github.com/flutter/flutter/blob/main/CONTRIBUTING.md)
|
||||
- [Writing effective tests guide](https://github.com/flutter/flutter/blob/main/docs/contributing/testing/Writing-Effective-Tests.md)
|
||||
- [Running and writing tests guide](https://github.com/flutter/flutter/blob/main/docs/contributing/testing/Running-and-writing-tests.md)
|
||||
- [Engine testing guide](https://github.com/flutter/flutter/blob/main/docs/engine/testing/Testing-the-engine.md)
|
||||
39
.flutter/.gitattributes
vendored
Normal file
39
.flutter/.gitattributes
vendored
Normal file
|
|
@ -0,0 +1,39 @@
|
|||
# Auto detect text files and perform LF normalization
|
||||
* text=auto
|
||||
|
||||
# Always perform LF normalization on these files
|
||||
*.dart text
|
||||
*.gradle text
|
||||
*.html text
|
||||
*.java text
|
||||
*.json text
|
||||
*.md text
|
||||
*.py text
|
||||
*.sh text
|
||||
*.txt text
|
||||
*.xml text
|
||||
*.yaml text
|
||||
|
||||
# Make sure that these Windows files always have CRLF line endings in checkout
|
||||
*.bat text eol=crlf
|
||||
*.ps1 text eol=crlf
|
||||
*.rc text eol=crlf
|
||||
*.sln text eol=crlf
|
||||
*.props text eol=crlf
|
||||
*.vcxproj text eol=crlf
|
||||
*.vcxproj.filters text eol=crlf
|
||||
# Including templatized versions.
|
||||
*.sln.tmpl text eol=crlf
|
||||
*.props.tmpl text eol=crlf
|
||||
*.vcxproj.tmpl text eol=crlf
|
||||
|
||||
# Make sure that these Linux files always have LF line endings in checkout
|
||||
bin/flutter text eol=lf
|
||||
bin/flutter-dev text eol=lf
|
||||
bin/dart text eol=lf
|
||||
|
||||
# Never perform LF normalization on these files
|
||||
*.ico binary
|
||||
*.jar binary
|
||||
*.png binary
|
||||
*.zip binary
|
||||
85
.flutter/.github/ISSUE_TEMPLATE/01_activation.yml
vendored
Normal file
85
.flutter/.github/ISSUE_TEMPLATE/01_activation.yml
vendored
Normal file
|
|
@ -0,0 +1,85 @@
|
|||
name: I am having difficulty installing Flutter or getting it to work
|
||||
description: You have run into problems while downloading or installing Flutter, or the
|
||||
"flutter" tool is crashing, or you are running into some other issue before even
|
||||
being able to use "flutter run".
|
||||
body:
|
||||
- type: markdown
|
||||
attributes:
|
||||
value: |
|
||||
Thank you for using Flutter!
|
||||
|
||||
If you are looking for support, please check out our documentation
|
||||
or consider asking a question on Stack Overflow:
|
||||
|
||||
- https://flutter.dev/
|
||||
- https://api.flutter.dev/
|
||||
- https://stackoverflow.com/questions/tagged/flutter?sort=frequent
|
||||
|
||||
If you have found a bug or if our documentation doesn't have an answer
|
||||
to what you're looking for, then fill out the template below.
|
||||
- type: markdown
|
||||
attributes:
|
||||
value: |
|
||||
Before filling the form fields, please consider the following:
|
||||
- Ensure that you have searched the [existing issues](https://github.com/flutter/flutter/issues)
|
||||
- Read the [guide to filing a bug](https://docs.flutter.dev/resources/bug-reports)
|
||||
- type: textarea
|
||||
attributes:
|
||||
label: Steps to reproduce
|
||||
description: Please tell us exactly how to reproduce the problem you are running into.
|
||||
placeholder: |
|
||||
1. ...
|
||||
2. ...
|
||||
3. ...
|
||||
validations:
|
||||
required: true
|
||||
- type: textarea
|
||||
attributes:
|
||||
label: Actual results
|
||||
description: Please tell us what is actually happening
|
||||
validations:
|
||||
required: true
|
||||
- type: textarea
|
||||
attributes:
|
||||
label: Logs
|
||||
description: |
|
||||
Include the full logs of the commands you are running between the lines
|
||||
with the backticks below. If you are running any `flutter` commands,
|
||||
please include the output of running them with `--verbose`; for example,
|
||||
the output of running `flutter --verbose create foo`.
|
||||
|
||||
If the logs are too large to be uploaded to Github, you may upload
|
||||
them as a `txt` file or use online tools like https://pastebin.com to
|
||||
share it.
|
||||
|
||||
Note: Please do not upload screenshots of text. Instead, use code blocks
|
||||
or the above mentioned ways to upload logs.
|
||||
value: |
|
||||
<details open>
|
||||
<summary>Logs</summary>
|
||||
|
||||
```console
|
||||
|
||||
<!-- Paste your logs here -->
|
||||
|
||||
```
|
||||
|
||||
</details>
|
||||
- type: textarea
|
||||
attributes:
|
||||
label: Flutter Doctor output
|
||||
description: |
|
||||
Please provide the full output of running `flutter doctor -v`
|
||||
value: |
|
||||
<details open>
|
||||
<summary>Doctor output</summary>
|
||||
|
||||
```console
|
||||
|
||||
<!-- Paste your output here -->
|
||||
|
||||
```
|
||||
|
||||
</details>
|
||||
validations:
|
||||
required: true
|
||||
121
.flutter/.github/ISSUE_TEMPLATE/02_bug.yml
vendored
Normal file
121
.flutter/.github/ISSUE_TEMPLATE/02_bug.yml
vendored
Normal file
|
|
@ -0,0 +1,121 @@
|
|||
name: Report a bug
|
||||
description: |
|
||||
You found a bug in Flutter causing your application to crash or
|
||||
throw an exception, a widget is buggy, or something looks wrong.
|
||||
body:
|
||||
- type: markdown
|
||||
attributes:
|
||||
value: |
|
||||
Thank you for using Flutter!
|
||||
|
||||
If you are looking for support, please check out our documentation
|
||||
or consider asking a question on Stack Overflow:
|
||||
|
||||
- https://flutter.dev/
|
||||
- https://api.flutter.dev/
|
||||
- https://stackoverflow.com/questions/tagged/flutter?sort=frequent
|
||||
- type: markdown
|
||||
attributes:
|
||||
value: |
|
||||
Before filling the form fields, please consider the following:
|
||||
- Ensure that you have searched the [existing issues](https://github.com/flutter/flutter/issues)
|
||||
- Read the [guide to filing a bug](https://docs.flutter.dev/resources/bug-reports)
|
||||
- type: textarea
|
||||
attributes:
|
||||
label: Steps to reproduce
|
||||
description: Please tell us exactly how to reproduce the problem you are running into.
|
||||
placeholder: |
|
||||
1. ...
|
||||
2. ...
|
||||
3. ...
|
||||
validations:
|
||||
required: true
|
||||
- type: textarea
|
||||
attributes:
|
||||
label: Expected results
|
||||
description: Please tell us what is expected to happen.
|
||||
validations:
|
||||
required: true
|
||||
- type: textarea
|
||||
attributes:
|
||||
label: Actual results
|
||||
description: Please tell us what is actually happening.
|
||||
validations:
|
||||
required: true
|
||||
- type: textarea
|
||||
attributes:
|
||||
label: Code sample
|
||||
description: |
|
||||
Please create a minimal reproducible sample that shows the problem
|
||||
and attach it below between the lines with the backticks.
|
||||
|
||||
To create it, use the `flutter create bug` command and update the `main.dart` file.
|
||||
|
||||
Alternatively, you can use https://dartpad.dev/ or create a public GitHub
|
||||
repository to share your sample.
|
||||
|
||||
Without this we will unlikely be able to progress on the issue, and because of that
|
||||
we regretfully will have to close it.
|
||||
|
||||
Note: Please do not upload screenshots of text. Instead, use code blocks
|
||||
or the above mentioned ways to upload your code sample.
|
||||
value: |
|
||||
<details open><summary>Code sample</summary>
|
||||
|
||||
```dart
|
||||
[Paste your code here]
|
||||
```
|
||||
|
||||
</details>
|
||||
validations:
|
||||
required: true
|
||||
- type: textarea
|
||||
attributes:
|
||||
label: Screenshots or Video
|
||||
description: |
|
||||
Upload any screenshots or video of the bug if applicable.
|
||||
value: |
|
||||
<details open>
|
||||
<summary>Screenshots / Video demonstration</summary>
|
||||
|
||||
[Upload media here]
|
||||
|
||||
</details>
|
||||
- type: textarea
|
||||
attributes:
|
||||
label: Logs
|
||||
description: |
|
||||
Include the full logs of the commands you are running between the lines
|
||||
with the backticks below. If you are running any `flutter` commands,
|
||||
please include the output of running them with `--verbose`; for example,
|
||||
the output of running `flutter --verbose create foo`.
|
||||
|
||||
If the logs are too large to be uploaded to GitHub, you may upload
|
||||
them as a `txt` file or use online tools like https://pastebin.com to
|
||||
share it.
|
||||
|
||||
Note: Please do not upload screenshots of text. Instead, use code blocks
|
||||
or the above mentioned ways to upload logs.
|
||||
value: |
|
||||
<details open><summary>Logs</summary>
|
||||
|
||||
```console
|
||||
[Paste your logs here]
|
||||
```
|
||||
|
||||
</details>
|
||||
- type: textarea
|
||||
attributes:
|
||||
label: Flutter Doctor output
|
||||
description: |
|
||||
Please provide the full output of running `flutter doctor -v`
|
||||
value: |
|
||||
<details open><summary>Doctor output</summary>
|
||||
|
||||
```console
|
||||
[Paste your output here]
|
||||
```
|
||||
|
||||
</details>
|
||||
validations:
|
||||
required: true
|
||||
50
.flutter/.github/ISSUE_TEMPLATE/03_feature_request.yml
vendored
Normal file
50
.flutter/.github/ISSUE_TEMPLATE/03_feature_request.yml
vendored
Normal file
|
|
@ -0,0 +1,50 @@
|
|||
name: Feature request
|
||||
description: Suggest a new idea for Flutter.
|
||||
body:
|
||||
- type: markdown
|
||||
attributes:
|
||||
value: |
|
||||
Thank you for using Flutter!
|
||||
|
||||
If you are looking for support, please check out our documentation
|
||||
or consider asking a question on Stack Overflow:
|
||||
|
||||
- https://flutter.dev/
|
||||
- https://api.flutter.dev/
|
||||
- https://stackoverflow.com/questions/tagged/flutter?sort=frequent
|
||||
- type: markdown
|
||||
attributes:
|
||||
value: |
|
||||
Before filling the form fields, please consider the following:
|
||||
- Ensure that you have searched the [existing issues](https://github.com/flutter/flutter/issues)
|
||||
- Read the [guide to filing a bug](https://docs.flutter.dev/resources/bug-reports)
|
||||
- type: textarea
|
||||
attributes:
|
||||
label: Use case
|
||||
description: |
|
||||
Please tell us the problem you are running into that led to you wanting
|
||||
a new feature.
|
||||
|
||||
Is your feature request related to a problem? Please give a clear and
|
||||
concise description of what the problem is.
|
||||
|
||||
Describe the alternative solutions you've considered. Is there a package
|
||||
on pub.dev/flutter that already solves this?
|
||||
validations:
|
||||
required: true
|
||||
- type: textarea
|
||||
attributes:
|
||||
label: Proposal
|
||||
description: |
|
||||
Briefly but precisely describe what you would like Flutter to be able to do.
|
||||
|
||||
Consider attaching something showing what you are imagining:
|
||||
* images
|
||||
* videos
|
||||
* code samples
|
||||
|
||||
Does this have to be provided by Flutter directly, or can it be provided
|
||||
by a package on pub.dev/flutter? If so, maybe consider implementing and
|
||||
publishing such a package rather than filing an issue.
|
||||
validations:
|
||||
required: true
|
||||
114
.flutter/.github/ISSUE_TEMPLATE/04_performance_others.yml
vendored
Normal file
114
.flutter/.github/ISSUE_TEMPLATE/04_performance_others.yml
vendored
Normal file
|
|
@ -0,0 +1,114 @@
|
|||
name: My app has some non-speed performance issues
|
||||
description: |
|
||||
You are writing an application but have discovered that it uses too much memory,
|
||||
too much energy (e.g., CPU/GPU usage is high), or its app size is too large.
|
||||
labels: 'from: performance template'
|
||||
body:
|
||||
- type: markdown
|
||||
attributes:
|
||||
value: |
|
||||
Thank you for using Flutter!
|
||||
|
||||
If you are looking for support, please check out our documentation
|
||||
or consider asking a question on Stack Overflow:
|
||||
|
||||
- https://flutter.dev/
|
||||
- https://api.flutter.dev/
|
||||
- https://stackoverflow.com/questions/tagged/flutter?sort=frequent
|
||||
- type: textarea
|
||||
attributes:
|
||||
label: Steps to reproduce
|
||||
description: Please tell us exactly how to reproduce the problem you are running into, and how you measured the performance.
|
||||
placeholder: |
|
||||
1. ...
|
||||
2. ...
|
||||
3. ...
|
||||
validations:
|
||||
required: true
|
||||
- type: textarea
|
||||
attributes:
|
||||
label: Code sample
|
||||
description: |
|
||||
Please create a minimal reproducible sample that shows the problem and attach it below between the lines with the backticks.
|
||||
|
||||
Try to reproduce the problem in a test app. Either run `flutter create janktest` and recreate the situation you are experiencing in that app, or clone your app and delete code until you have the jank reproducing with a single `.dart` file.
|
||||
|
||||
If you need more than just a `.dart` file (for example, assets are needed to reproduce the issue, or plugins/packages are needed to reproduce the issue) then create a GitHub repository and upload code there.
|
||||
|
||||
Without this we will unlikely be able to progress on the issue, and because of that we regretfully will have to close it.
|
||||
|
||||
Note: Please do not upload screenshots of text. Instead, use code blocks or the above mentioned ways to upload your code sample.
|
||||
value: |
|
||||
<details open><summary>Code sample</summary>
|
||||
|
||||
```dart
|
||||
[Paste your code here]
|
||||
```
|
||||
|
||||
</details>
|
||||
validations:
|
||||
required: true
|
||||
- type: dropdown
|
||||
id: target_platforms
|
||||
attributes:
|
||||
label: What target platforms are you seeing this bug on?
|
||||
multiple: true
|
||||
options:
|
||||
- Android
|
||||
- iOS
|
||||
- Web
|
||||
- macOS
|
||||
- Linux
|
||||
- Windows
|
||||
validations:
|
||||
required: true
|
||||
- type: textarea
|
||||
attributes:
|
||||
label: OS/Browser name and version | Device information
|
||||
description: |
|
||||
Which target OS version is the test system running? For Web, please provide browser version.
|
||||
Please also include the device information (model, CPU architecture, etc).
|
||||
validations:
|
||||
required: true
|
||||
- type: dropdown
|
||||
id: device-kind
|
||||
attributes:
|
||||
label: Does the problem occur on emulator/simulator as well as on physical devices?
|
||||
options:
|
||||
- "Unknown"
|
||||
- "Yes"
|
||||
- "No"
|
||||
validations:
|
||||
required: true
|
||||
- type: textarea
|
||||
attributes:
|
||||
label: Logs
|
||||
description: |
|
||||
Include the full logs of the commands you are running between the lines with the backticks below. If you are running any `flutter` commands, please include the output of running them with `--verbose`; for example, the output of running `flutter --verbose create foo`.
|
||||
|
||||
If the logs are too large to be uploaded to GitHub, you may upload them as a `txt` file or use online tools like https://pastebin.com to share it.
|
||||
|
||||
Note: Please do not upload screenshots of text. Instead, use code blocks or the above mentioned ways to upload logs.
|
||||
value: |
|
||||
<details open><summary>Logs</summary>
|
||||
|
||||
```console
|
||||
[Paste your logs here]
|
||||
```
|
||||
|
||||
</details>
|
||||
- type: textarea
|
||||
attributes:
|
||||
label: Flutter Doctor output
|
||||
description: |
|
||||
Finally, paste the output of running `flutter doctor -v` here, with your device plugged in.
|
||||
value: |
|
||||
<details open><summary>Doctor output</summary>
|
||||
|
||||
```console
|
||||
[Paste your output here]
|
||||
```
|
||||
|
||||
</details>
|
||||
validations:
|
||||
required: true
|
||||
172
.flutter/.github/ISSUE_TEMPLATE/05_performance_speed.yml
vendored
Normal file
172
.flutter/.github/ISSUE_TEMPLATE/05_performance_speed.yml
vendored
Normal file
|
|
@ -0,0 +1,172 @@
|
|||
name: My app is slow or missing frames
|
||||
description: |
|
||||
You are writing an application but have discovered that it is slow,
|
||||
you are not hitting 60Hz, or you are getting jank (missed frames).
|
||||
labels: 'from: performance template'
|
||||
body:
|
||||
- type: markdown
|
||||
attributes:
|
||||
value: |
|
||||
Thank you for using Flutter!
|
||||
|
||||
If you are looking for support, please check out our documentation
|
||||
or consider asking a question on Stack Overflow:
|
||||
|
||||
- https://flutter.dev/
|
||||
- https://api.flutter.dev/
|
||||
- https://stackoverflow.com/questions/tagged/flutter?sort=frequent
|
||||
- type: textarea
|
||||
attributes:
|
||||
label: Steps to reproduce
|
||||
description: Please tell us exactly how to reproduce the problem you are running into.
|
||||
placeholder: |
|
||||
1. ...
|
||||
2. ...
|
||||
3. ...
|
||||
validations:
|
||||
required: true
|
||||
- type: textarea
|
||||
attributes:
|
||||
label: Code sample
|
||||
description: |
|
||||
Please create a minimal reproducible sample that shows the problem and attach it below between the lines with the backticks.
|
||||
|
||||
Try to reproduce the problem in a test app. Either run `flutter create janktest` and recreate the situation you are experiencing in that app, or clone your app and delete code until you have the jank reproducing with a single `.dart` file.
|
||||
|
||||
If you need more than just a `.dart` file (for example, assets are needed to reproduce the issue, or plugins/packages are needed to reproduce the issue) then create a GitHub repository and upload code there.
|
||||
|
||||
Without this we will unlikely be able to progress on the issue, and because of that we regretfully will have to close it.
|
||||
|
||||
Note: Please do not upload screenshots of text. Instead, use code blocks or the above mentioned ways to upload your code sample.
|
||||
value: |
|
||||
<details open><summary>Code sample</summary>
|
||||
|
||||
```dart
|
||||
[Paste your code here]
|
||||
```
|
||||
|
||||
</details>
|
||||
validations:
|
||||
required: true
|
||||
- type: checkboxes
|
||||
attributes:
|
||||
label: Performance profiling on master channel
|
||||
description: |
|
||||
Switch flutter to master channel and run this app on a physical device using profile mode with Skia tracing enabled, as follows:
|
||||
```console
|
||||
flutter channel master
|
||||
flutter run --profile --trace-skia
|
||||
```
|
||||
The bleeding edge master channel is encouraged here because Flutter is constantly fixing bugs and improving its performance. Your problem in an older Flutter version may have already been solved in the master channel.
|
||||
options:
|
||||
- label: The issue still persists on the master channel
|
||||
required: true
|
||||
- type: textarea
|
||||
attributes:
|
||||
label: Timeline Traces
|
||||
description: |
|
||||
Open Flutter DevTools and save a timeline trace of the performance issue so we know which functions might be causing it. See "How to Collect and Read Timeline Traces" on this blog post: https://medium.com/flutter/profiling-flutter-applications-using-the-timeline-a1a434964af3#a499
|
||||
|
||||
Make sure the performance overlay is turned OFF when recording the trace as that may affect the performance of the profile run. (Pressing ‘P’ on the command line toggles the overlay.)
|
||||
|
||||
If the trace are too large to be uploaded to GitHub, you may upload them as a `zip` file or use online tools like https://pastebin.com to share it.
|
||||
value: |
|
||||
<details open><summary>Timeline Traces JSON</summary>
|
||||
|
||||
```json
|
||||
[Paste the Timeline Traces here]
|
||||
```
|
||||
|
||||
</details>
|
||||
validations:
|
||||
required: true
|
||||
- type: textarea
|
||||
attributes:
|
||||
label: Video demonstration
|
||||
description: |
|
||||
Record a video of the performance issue using another phone so we can have an intuitive understanding of what happened.
|
||||
|
||||
Don’t use "adb screenrecord", as that affects the performance of the profile run.
|
||||
value: |
|
||||
<details open>
|
||||
<summary>Video demonstration</summary>
|
||||
|
||||
[Upload media here]
|
||||
|
||||
</details>
|
||||
- type: dropdown
|
||||
id: target_platforms
|
||||
attributes:
|
||||
label: What target platforms are you seeing this bug on?
|
||||
multiple: true
|
||||
options:
|
||||
- Android
|
||||
- iOS
|
||||
- Web
|
||||
- macOS
|
||||
- Linux
|
||||
- Windows
|
||||
validations:
|
||||
required: true
|
||||
- type: textarea
|
||||
attributes:
|
||||
label: OS/Browser name and version | Device information
|
||||
description: |
|
||||
Which target OS version is the test system running? For Web, please provide browser version.
|
||||
Please also include the device information (model, CPU architecture, etc).
|
||||
validations:
|
||||
required: true
|
||||
- type: dropdown
|
||||
id: device-kind
|
||||
attributes:
|
||||
label: Does the problem occur on emulator/simulator as well as on physical devices?
|
||||
options:
|
||||
- "Unknown"
|
||||
- "Yes"
|
||||
- "No"
|
||||
validations:
|
||||
required: true
|
||||
- type: dropdown
|
||||
id: enable-impeller
|
||||
attributes:
|
||||
label: Is the problem only reproducible with Impeller?
|
||||
description: |
|
||||
Please check https://docs.flutter.dev/perf/impeller as the guideline on how to enable/disable it.
|
||||
options:
|
||||
- "N/A"
|
||||
- "Yes"
|
||||
- "No"
|
||||
validations:
|
||||
required: true
|
||||
- type: textarea
|
||||
attributes:
|
||||
label: Logs
|
||||
description: |
|
||||
Include the full logs of the commands you are running between the lines with the backticks below. If you are running any `flutter` commands, please include the output of running them with `--verbose`; for example, the output of running `flutter --verbose create foo`.
|
||||
|
||||
If the logs are too large to be uploaded to GitHub, you may upload them as a `txt` file or use online tools like https://pastebin.com to share it.
|
||||
|
||||
Note: Please do not upload screenshots of text. Instead, use code blocks or the above mentioned ways to upload logs.
|
||||
value: |
|
||||
<details open><summary>Logs</summary>
|
||||
|
||||
```console
|
||||
[Paste your logs here]
|
||||
```
|
||||
|
||||
</details>
|
||||
- type: textarea
|
||||
attributes:
|
||||
label: Flutter Doctor output
|
||||
description: |
|
||||
Finally, paste the output of running `flutter doctor -v` here, with your device plugged in.
|
||||
value: |
|
||||
<details open><summary>Doctor output</summary>
|
||||
|
||||
```console
|
||||
[Paste your output here]
|
||||
```
|
||||
|
||||
</details>
|
||||
validations:
|
||||
required: true
|
||||
37
.flutter/.github/ISSUE_TEMPLATE/06_infrastructure.yml
vendored
Normal file
37
.flutter/.github/ISSUE_TEMPLATE/06_infrastructure.yml
vendored
Normal file
|
|
@ -0,0 +1,37 @@
|
|||
name: Flutter's CI infrastructure has a problem
|
||||
description: |
|
||||
As a contributor, you want to file an issue about the build/test/release
|
||||
infra, e.g. dashboards (http://flutter-dashboard.appspot.com), devicelab,
|
||||
LUCI (https://ci.chromium.org/p/flutter) etc.
|
||||
labels: ['team-infra']
|
||||
body:
|
||||
- type: markdown
|
||||
attributes:
|
||||
value: |
|
||||
Thank you for contributing to Flutter!
|
||||
|
||||
This template is for requests made to [`team-infra`](https://flutter.dev/to/team-infra).
|
||||
|
||||
If you are filing this to track your **own** contributed work to infrastructure, and the
|
||||
work is already agreed upon (routine maintenance, etc), feel free to skip this template;
|
||||
and use a blank issue - just remember to assign the bug to yourself so it's clear we do
|
||||
not have to triage it.
|
||||
- type: markdown
|
||||
attributes:
|
||||
value: |
|
||||
Please search [existing infra issues](https://github.com/flutter/flutter/issues?q=is%3Aopen+is%3Aissue+label%3Ateam-infra) before filing a new issue.
|
||||
- type: checkboxes
|
||||
id: priority
|
||||
attributes:
|
||||
label: Help us understand the severity of this issue
|
||||
description: Please only choose one
|
||||
options:
|
||||
- label: breakage; unable to contribute or trigger builds will no workarounds
|
||||
- label: inconvenient workarounds exist, but significant effort required
|
||||
- label: needed for a Flutter team-wide priority (already agreed upon)
|
||||
- label: nice-to-have; none of the above
|
||||
- type: textarea
|
||||
attributes:
|
||||
label: What do you need help with
|
||||
description: If you have a bug, What should the expect output be?
|
||||
value: ...
|
||||
32
.flutter/.github/ISSUE_TEMPLATE/07_design_doc.yml
vendored
Normal file
32
.flutter/.github/ISSUE_TEMPLATE/07_design_doc.yml
vendored
Normal file
|
|
@ -0,0 +1,32 @@
|
|||
name: Share a Flutter design document
|
||||
description: As a contributor, I would like to share a design document.
|
||||
labels: ['design doc']
|
||||
body:
|
||||
- type: markdown
|
||||
attributes:
|
||||
value: |
|
||||
Thank you for your interest in contributing to Flutter!
|
||||
|
||||
Please ensure that you are following
|
||||
https://github.com/flutter/flutter/blob/main/docs/contributing/Design-Documents.md
|
||||
when sharing a design document.
|
||||
|
||||
Please fill out the sections below to the best of your ability.
|
||||
- type: input
|
||||
id: document_link
|
||||
attributes:
|
||||
label: Document Link
|
||||
description: |
|
||||
Insert the "https://flutter.dev/go" link for your document here.
|
||||
For details on creating a link, see the instructions in
|
||||
https://flutter.dev/go/template
|
||||
validations:
|
||||
required: true
|
||||
- type: textarea
|
||||
id: proposal_description
|
||||
attributes:
|
||||
label: What problem are you solving?
|
||||
description: |
|
||||
Please provide a brief description of the problem you are solving.
|
||||
validations:
|
||||
required: true
|
||||
221
.flutter/.github/ISSUE_TEMPLATE/08_first_party_packages.yml
vendored
Normal file
221
.flutter/.github/ISSUE_TEMPLATE/08_first_party_packages.yml
vendored
Normal file
|
|
@ -0,0 +1,221 @@
|
|||
name: Report a bug in one of Flutter's first-party packages
|
||||
description: |
|
||||
You found a bug in one of Flutter's first-party packages.
|
||||
body:
|
||||
- type: markdown
|
||||
attributes:
|
||||
value: |
|
||||
Thank you for using Flutter!
|
||||
|
||||
If you are looking for support, please check out our documentation
|
||||
or consider asking a question on Stack Overflow:
|
||||
|
||||
- https://flutter.dev/
|
||||
- https://api.flutter.dev/
|
||||
- https://stackoverflow.com/questions/tagged/flutter?sort=frequent
|
||||
- type: markdown
|
||||
attributes:
|
||||
value: |
|
||||
Before filling the form fields, please consider the following:
|
||||
- Ensure that you have searched the [existing package issues](https://github.com/flutter/flutter/issues?q=is%3Aopen+is%3Aissue+label%3Apackage)
|
||||
- Read the [guide to filing a bug](https://docs.flutter.dev/resources/bug-reports)
|
||||
- type: dropdown
|
||||
id: packages
|
||||
attributes:
|
||||
label: What package does this bug report belong to?
|
||||
description: |
|
||||
If the package you are reporting a bug for is not listed here,
|
||||
it could be a third party package's issue.
|
||||
In that case, you should report the issue to the package's developers.
|
||||
options:
|
||||
- animations
|
||||
- camera
|
||||
- cross_file
|
||||
- espresso
|
||||
- extension_google_sign_in_as_googleapis_auth
|
||||
- file_selector
|
||||
- flutter_lints
|
||||
- flutter_migrate
|
||||
- flutter_plugin_android_lifecycle
|
||||
- flutter_svg
|
||||
- flutter_template_images
|
||||
- go_router
|
||||
- go_router_builder
|
||||
- google_adsense
|
||||
- google_fonts
|
||||
- google_identity_services_web
|
||||
- google_maps_flutter
|
||||
- google_sign_in
|
||||
- image_picker
|
||||
- in_app_purchase
|
||||
- interactive_media_ads
|
||||
- local_auth
|
||||
- metrics_center
|
||||
- multicast_dns
|
||||
- path_parsing
|
||||
- path_provider
|
||||
- pigeon
|
||||
- plugin_platform_interface
|
||||
- pointer_interceptor
|
||||
- process
|
||||
- quick_actions
|
||||
- rfw
|
||||
- shared_preferences
|
||||
- standard_message_codec
|
||||
- two_dimensional_scrollables
|
||||
- url_launcher
|
||||
- vector_graphics
|
||||
- video_player
|
||||
- web_benchmarks
|
||||
- webview_flutter
|
||||
- xdg_directories
|
||||
validations:
|
||||
required: true
|
||||
- type: dropdown
|
||||
id: target_platforms
|
||||
attributes:
|
||||
label: What target platforms are you seeing this bug on?
|
||||
description: Have you confirmed that package supports the platform you are reporting against?
|
||||
multiple: true
|
||||
options:
|
||||
- Android
|
||||
- iOS
|
||||
- Web
|
||||
- macOS
|
||||
- Linux
|
||||
- Windows
|
||||
validations:
|
||||
required: true
|
||||
- type: dropdown
|
||||
id: pub_upgrade
|
||||
attributes:
|
||||
label: Have you already upgraded your packages?
|
||||
description: |
|
||||
Please check if the issue still persists or not after running `flutter pub upgrade`.
|
||||
options:
|
||||
- "Yes"
|
||||
- "No"
|
||||
validations:
|
||||
required: true
|
||||
- type: textarea
|
||||
attributes:
|
||||
label: Dependency versions
|
||||
description: |
|
||||
`pubspec.lock` file content that includes the package and its dependencies.
|
||||
|
||||
You can remove private dependencies from the file if they are sensitive.
|
||||
|
||||
If the file is too large to be uploaded to GitHub or the content is too long,
|
||||
you may use online tools like https://pastebin.com and share the url here.
|
||||
|
||||
Note: Please do not upload screenshots of text. Instead, use code blocks
|
||||
or the above mentioned ways to upload this.
|
||||
value: |
|
||||
<details><summary>pubspec.lock</summary>
|
||||
|
||||
```lock
|
||||
[Paste file content here]
|
||||
```
|
||||
|
||||
</details>
|
||||
- type: textarea
|
||||
attributes:
|
||||
label: Steps to reproduce
|
||||
description: Please tell us exactly how to reproduce the problem you are running into.
|
||||
placeholder: |
|
||||
1. ...
|
||||
2. ...
|
||||
3. ...
|
||||
validations:
|
||||
required: true
|
||||
- type: textarea
|
||||
attributes:
|
||||
label: Expected results
|
||||
description: Please tell us what is expected to happen.
|
||||
validations:
|
||||
required: true
|
||||
- type: textarea
|
||||
attributes:
|
||||
label: Actual results
|
||||
description: Please tell us what is actually happening.
|
||||
validations:
|
||||
required: true
|
||||
- type: textarea
|
||||
attributes:
|
||||
label: Code sample
|
||||
description: |
|
||||
Please create a minimal reproducible sample that shows the problem
|
||||
and attach it below between the lines with the backticks.
|
||||
|
||||
To create it, use the `flutter create bug` command and update the `main.dart` file.
|
||||
|
||||
Alternatively, you can create a public GitHub repository to share your sample.
|
||||
|
||||
Without this we will unlikely be able to progress on the issue, and because of that
|
||||
we regretfully will have to close it.
|
||||
|
||||
You can also refer to the package's example project if it is simple enough
|
||||
to reproduce the bug.
|
||||
|
||||
Note: Please do not upload screenshots of text. Instead, use code blocks
|
||||
or the above mentioned ways to upload your code sample.
|
||||
value: |
|
||||
<details open><summary>Code sample</summary>
|
||||
|
||||
```dart
|
||||
[Paste your code here]
|
||||
```
|
||||
|
||||
</details>
|
||||
validations:
|
||||
required: true
|
||||
- type: textarea
|
||||
attributes:
|
||||
label: Screenshots or Videos
|
||||
description: |
|
||||
Upload any screenshots or videos of the bug if applicable.
|
||||
value: |
|
||||
<details open>
|
||||
<summary>Screenshots / Video demonstration</summary>
|
||||
|
||||
[Upload media here]
|
||||
|
||||
</details>
|
||||
- type: textarea
|
||||
attributes:
|
||||
label: Logs
|
||||
description: |
|
||||
Include the full logs of the commands you are running between the lines
|
||||
with the backticks below. If you are running any `flutter` commands,
|
||||
please include the output of running them with `--verbose`; for example,
|
||||
the output of running `flutter --verbose create foo`.
|
||||
|
||||
If the logs are too large to be uploaded to GitHub, you may upload
|
||||
them as a `txt` file or use online tools like https://pastebin.com to
|
||||
share it.
|
||||
|
||||
Note: Please do not upload screenshots of text. Instead, use code blocks
|
||||
or the above mentioned ways to upload logs.
|
||||
value: |
|
||||
<details open><summary>Logs</summary>
|
||||
|
||||
```console
|
||||
[Paste your logs here]
|
||||
```
|
||||
|
||||
</details>
|
||||
- type: textarea
|
||||
attributes:
|
||||
label: Flutter Doctor output
|
||||
description: |
|
||||
Please provide the full output of running `flutter doctor -v`
|
||||
value: |
|
||||
<details open><summary>Doctor output</summary>
|
||||
|
||||
```console
|
||||
[Paste your output here]
|
||||
```
|
||||
|
||||
</details>
|
||||
validations:
|
||||
required: true
|
||||
25
.flutter/.github/ISSUE_TEMPLATE/09_feature.yml
vendored
Normal file
25
.flutter/.github/ISSUE_TEMPLATE/09_feature.yml
vendored
Normal file
|
|
@ -0,0 +1,25 @@
|
|||
name: Create an umbrella issue
|
||||
description: As a contributor, I would like to create an umbrella issue for a
|
||||
feature to be added to the feature tracker.
|
||||
title: '☂️ <Feature Title>'
|
||||
projects: ["flutter/82"]
|
||||
body:
|
||||
- type: input
|
||||
id: design_doc
|
||||
attributes:
|
||||
label: Design Doc
|
||||
description: Add a design doc if there is one for this feature.
|
||||
- type: textarea
|
||||
id: description
|
||||
attributes:
|
||||
label: Description
|
||||
description: Please describe the feature you are adding.
|
||||
validations:
|
||||
required: true
|
||||
- type: textarea
|
||||
id: tracking_issues
|
||||
attributes:
|
||||
label: Tracking Issues
|
||||
description: List of issues associated with this feature.
|
||||
validations:
|
||||
required: true
|
||||
137
.flutter/.github/ISSUE_TEMPLATE/10_google3_bug.yml
vendored
Normal file
137
.flutter/.github/ISSUE_TEMPLATE/10_google3_bug.yml
vendored
Normal file
|
|
@ -0,0 +1,137 @@
|
|||
name: Report a google3 bug
|
||||
description: |
|
||||
You found a bug in Flutter causing your application to crash or
|
||||
throw an exception, a widget is buggy, or something looks wrong.
|
||||
title: "[Google3 Bug]: "
|
||||
labels: ['customer: google']
|
||||
body:
|
||||
- type: markdown
|
||||
attributes:
|
||||
value: |
|
||||
Thank you for using Flutter!
|
||||
|
||||
If you are looking for support, please check out our documentation
|
||||
or consider asking a question on Stack Overflow:
|
||||
|
||||
- https://flutter.dev/
|
||||
- https://api.flutter.dev/
|
||||
- https://stackoverflow.com/questions/tagged/flutter?sort=frequent
|
||||
- type: markdown
|
||||
attributes:
|
||||
value: |
|
||||
Before filling the form fields, please consider the following:
|
||||
- Ensure that you have searched the [existing issues](https://github.com/flutter/flutter/issues)
|
||||
- Read the [guide to filing a bug](https://docs.flutter.dev/resources/bug-reports)
|
||||
- type: markdown
|
||||
attributes:
|
||||
value: |
|
||||
Flutter GitHub issues are public and so you must avoid posting any Google confidential information in them.
|
||||
- type: checkboxes
|
||||
id: priority-indicator
|
||||
attributes:
|
||||
label: Help us understand the severity of this issue
|
||||
description: Please only choose one
|
||||
options:
|
||||
- label: causing severe production issues e.g. malfunctions or data loss
|
||||
- label: blocking next binary release
|
||||
- label: blocking a client feature launch within a quarter
|
||||
- label: nice-to-have but does not block a launch within the next quarter
|
||||
- type: textarea
|
||||
attributes:
|
||||
label: Steps to reproduce
|
||||
description: Please tell us exactly how to reproduce the problem you are running into.
|
||||
placeholder: |
|
||||
1. ...
|
||||
2. ...
|
||||
3. ...
|
||||
validations:
|
||||
required: true
|
||||
- type: textarea
|
||||
attributes:
|
||||
label: Expected results
|
||||
description: Please tell us what is expected to happen.
|
||||
validations:
|
||||
required: true
|
||||
- type: textarea
|
||||
attributes:
|
||||
label: Actual results
|
||||
description: Please tell us what is actually happening.
|
||||
validations:
|
||||
required: true
|
||||
- type: textarea
|
||||
attributes:
|
||||
label: Code sample
|
||||
description: |
|
||||
Please create a minimal reproducible sample that shows the problem
|
||||
and attach it below between the lines with the backticks.
|
||||
|
||||
To create it, use the `flutter create bug` command and update the `main.dart` file.
|
||||
|
||||
Alternatively, you can use https://dartpad.dev/ or create a public GitHub
|
||||
repository to share your sample.
|
||||
|
||||
Without this we will unlikely be able to progress on the issue, and because of that
|
||||
we regretfully will have to close it.
|
||||
|
||||
Note: Please do not upload screenshots of text. Instead, use code blocks
|
||||
or the above mentioned ways to upload your code sample.
|
||||
value: |
|
||||
<details open><summary>Code sample</summary>
|
||||
|
||||
```dart
|
||||
[Paste your code here]
|
||||
```
|
||||
|
||||
</details>
|
||||
validations:
|
||||
required: true
|
||||
- type: textarea
|
||||
attributes:
|
||||
label: Screenshots or Video
|
||||
description: |
|
||||
Upload any screenshots or video of the bug if applicable.
|
||||
value: |
|
||||
<details open>
|
||||
<summary>Screenshots / Video demonstration</summary>
|
||||
|
||||
[Upload media here]
|
||||
|
||||
</details>
|
||||
- type: textarea
|
||||
attributes:
|
||||
label: Logs
|
||||
description: |
|
||||
Include the full logs of the commands you are running between the lines
|
||||
with the backticks below. If you are running any `flutter` commands,
|
||||
please include the output of running them with `--verbose`; for example,
|
||||
the output of running `flutter --verbose create foo`.
|
||||
|
||||
If the logs are too large to be uploaded to GitHub, you may upload
|
||||
them as a `txt` file or use online tools like https://pastebin.com to
|
||||
share it.
|
||||
|
||||
Note: Please do not upload screenshots of text. Instead, use code blocks
|
||||
or the above mentioned ways to upload logs.
|
||||
value: |
|
||||
<details open><summary>Logs</summary>
|
||||
|
||||
```console
|
||||
[Paste your logs here]
|
||||
```
|
||||
|
||||
</details>
|
||||
- type: textarea
|
||||
attributes:
|
||||
label: Flutter Doctor output
|
||||
description: |
|
||||
Please provide the full output of running `flutter doctor -v`
|
||||
value: |
|
||||
<details open><summary>Doctor output</summary>
|
||||
|
||||
```console
|
||||
[Paste your output here]
|
||||
```
|
||||
|
||||
</details>
|
||||
validations:
|
||||
required: true
|
||||
5
.flutter/.github/ISSUE_TEMPLATE/config.yml
vendored
Normal file
5
.flutter/.github/ISSUE_TEMPLATE/config.yml
vendored
Normal file
|
|
@ -0,0 +1,5 @@
|
|||
blank_issues_enabled: true
|
||||
contact_links:
|
||||
- name: I want help writing my application
|
||||
url: https://stackoverflow.com/tags/flutter
|
||||
about: Ask your questions about how to achieve a particular effect in Flutter or get help with using a particular API.
|
||||
48
.flutter/.github/PR_TEMPLATE/PULL_REQUEST_CP_TEMPLATE.md
vendored
Normal file
48
.flutter/.github/PR_TEMPLATE/PULL_REQUEST_CP_TEMPLATE.md
vendored
Normal file
|
|
@ -0,0 +1,48 @@
|
|||
This pull request is created by [automatic cherry pick workflow](https://github.com/flutter/flutter/blob/main/docs/releases/Flutter-Cherrypick-Process.md#automatically-creates-a-cherry-pick-request)
|
||||
Please fill in the form below, and a flutter domain expert will evaluate this cherry pick request.
|
||||
|
||||
### Issue Link:
|
||||
What is the link to the issue this cherry-pick is addressing?
|
||||
|
||||
https://github.com/flutter/flutter/issues/< Replace with issue link here >
|
||||
|
||||
### Impact Description:
|
||||
What is the impact (ex. visual jank on Samsung phones, app crash, cannot ship an iOS app)?
|
||||
Does it impact development (ex. flutter doctor crashes when Android Studio is installed),
|
||||
or the shipping of production apps (the app crashes on launch).
|
||||
This information is for domain experts and release engineers to understand the consequences of saying yes or no to the cherry pick.
|
||||
|
||||
< Replace with impact description here >
|
||||
|
||||
### Changelog Description:
|
||||
Explain this cherry pick:
|
||||
* In one line that is accessible to most Flutter developers.
|
||||
* That describes the state prior to the fix.
|
||||
* That includes which platforms are impacted.
|
||||
See [best practices](https://github.com/flutter/flutter/blob/main/docs/releases/Hotfix-Documentation-Best-Practices.md) for examples.
|
||||
|
||||
< Replace with changelog description here >
|
||||
[flutter/<ISSUE_NUMBER>] When <SCENARIO> [on <PLAFORMS(S)>], <DESCRIPTION>
|
||||
|
||||
### Workaround:
|
||||
Is there a workaround for this issue?
|
||||
|
||||
< Replace with workaround here >
|
||||
|
||||
### Risk:
|
||||
What is the risk level of this cherry-pick?
|
||||
|
||||
- [ ] Low
|
||||
- [ ] Medium
|
||||
- [ ] High
|
||||
|
||||
### Test Coverage:
|
||||
Are you confident that your fix is well-tested by automated tests?
|
||||
|
||||
- [ ] Yes
|
||||
- [ ] No
|
||||
|
||||
### Validation Steps:
|
||||
What are the steps to validate that this fix works?
|
||||
|
||||
< Replace with validation steps here >
|
||||
39
.flutter/.github/PULL_REQUEST_TEMPLATE.md
vendored
Normal file
39
.flutter/.github/PULL_REQUEST_TEMPLATE.md
vendored
Normal file
|
|
@ -0,0 +1,39 @@
|
|||
<!--
|
||||
Thanks for filing a pull request!
|
||||
Reviewers are typically assigned within a week of filing a request.
|
||||
To learn more about code review, see our documentation on Tree Hygiene: https://github.com/flutter/flutter/blob/main/docs/contributing/Tree-hygiene.md
|
||||
-->
|
||||
|
||||
*Replace this paragraph with a description of what this PR is changing or adding, and why. Consider including before/after screenshots.*
|
||||
|
||||
*List which issues are fixed by this PR. You must list at least one issue. An issue is not required if the PR fixes something trivial like a typo.*
|
||||
|
||||
*If you had to change anything in the [flutter/tests] repo, include a link to the migration guide as per the [breaking change policy].*
|
||||
|
||||
## Pre-launch Checklist
|
||||
|
||||
- [ ] I read the [Contributor Guide] and followed the process outlined there for submitting PRs.
|
||||
- [ ] I read the [Tree Hygiene] wiki page, which explains my responsibilities.
|
||||
- [ ] I read and followed the [Flutter Style Guide], including [Features we expect every widget to implement].
|
||||
- [ ] I signed the [CLA].
|
||||
- [ ] I listed at least one issue that this PR fixes in the description above.
|
||||
- [ ] I updated/added relevant documentation (doc comments with `///`).
|
||||
- [ ] I added new tests to check the change I am making, or this PR is [test-exempt].
|
||||
- [ ] I followed the [breaking change policy] and added [Data Driven Fixes] where supported.
|
||||
- [ ] All existing and new tests are passing.
|
||||
|
||||
If you need help, consider asking for advice on the #hackers-new channel on [Discord].
|
||||
|
||||
**Note**: The Flutter team is currently trialing the use of [Gemini Code Assist for GitHub](https://developers.google.com/gemini-code-assist/docs/review-github-code). Comments from the `gemini-code-assist` bot should not be taken as authoritative feedback from the Flutter team. If you find its comments useful you can update your code accordingly, but if you are unsure or disagree with the feedback, please feel free to wait for a Flutter team member's review for guidance on which automated comments should be addressed.
|
||||
|
||||
<!-- Links -->
|
||||
[Contributor Guide]: https://github.com/flutter/flutter/blob/main/docs/contributing/Tree-hygiene.md#overview
|
||||
[Tree Hygiene]: https://github.com/flutter/flutter/blob/main/docs/contributing/Tree-hygiene.md
|
||||
[test-exempt]: https://github.com/flutter/flutter/blob/main/docs/contributing/Tree-hygiene.md#tests
|
||||
[Flutter Style Guide]: https://github.com/flutter/flutter/blob/main/docs/contributing/Style-guide-for-Flutter-repo.md
|
||||
[Features we expect every widget to implement]: https://github.com/flutter/flutter/blob/main/docs/contributing/Style-guide-for-Flutter-repo.md#features-we-expect-every-widget-to-implement
|
||||
[CLA]: https://cla.developers.google.com/
|
||||
[flutter/tests]: https://github.com/flutter/tests
|
||||
[breaking change policy]: https://github.com/flutter/flutter/blob/main/docs/contributing/Tree-hygiene.md#handling-breaking-changes
|
||||
[Discord]: https://github.com/flutter/flutter/blob/main/docs/contributing/Chat.md
|
||||
[Data Driven Fixes]: https://github.com/flutter/flutter/blob/main/docs/contributing/Data-driven-Fixes.md
|
||||
143
.flutter/.github/actions/composite-flutter-setup/action.yml
vendored
Normal file
143
.flutter/.github/actions/composite-flutter-setup/action.yml
vendored
Normal file
|
|
@ -0,0 +1,143 @@
|
|||
name: Composite Flutter Setup
|
||||
description: checkouts the tree, setups the environment
|
||||
inputs:
|
||||
ANDROID_TOOLS_VERSION:
|
||||
description: 'android tools version'
|
||||
default: '13114758'
|
||||
ANDROID_PLATFORM:
|
||||
description: 'android platform version'
|
||||
default: 'android-36'
|
||||
ANDROID_BUILDTOOLS:
|
||||
description: 'android buildtools version'
|
||||
default: '36.1.0'
|
||||
|
||||
runs:
|
||||
using: 'composite'
|
||||
steps:
|
||||
# Real checkout on github actions for pull requests
|
||||
- name: Checkout code (non-act pull_request)
|
||||
uses: actions/checkout@v4
|
||||
if: github.event_name == 'pull_request' && !env.ACT
|
||||
with:
|
||||
fetch-depth: 0
|
||||
fetch-tags: true
|
||||
# Checkout the PR; not the merge commit - we need to describe tags
|
||||
ref: ${{ github.event.pull_request.head.sha }}
|
||||
|
||||
# Real checkout on github actions for post submit
|
||||
- name: Checkout code (non-act push)
|
||||
uses: actions/checkout@v4
|
||||
if: github.event_name == 'push' && !env.ACT
|
||||
with:
|
||||
fetch-depth: 0
|
||||
fetch-tags: true
|
||||
# Checkout the PR; not the merge commit - we need to describe tags
|
||||
ref: ${{ github.event.pull_request.head.sha }}
|
||||
|
||||
# Fake checkout if running locally
|
||||
- name: Checkout code (act local)
|
||||
uses: actions/checkout@v4
|
||||
if: env.ACT
|
||||
|
||||
# If this is a branch / pr NOT on fluter/flutter, set the remote upstream
|
||||
# so the flutter tool can figure out the version
|
||||
- name: Set upstream (if not flutter/flutter)
|
||||
shell: bash
|
||||
if: github.repository != 'flutter/flutter' && !env.ACT
|
||||
run: |
|
||||
git remote add upstream https://github.com/flutter/flutter.git
|
||||
git fetch --all --tags
|
||||
|
||||
# If running locally; install the JDK - Github runners have everything on them
|
||||
- name: Set up our JDK environment
|
||||
if: env.ACT
|
||||
uses: actions/setup-java@c5195efecf7bdfc987ee8bae7a71cb8b11521c00
|
||||
with:
|
||||
java-version: '21'
|
||||
distribution: 'temurin'
|
||||
|
||||
# If running locally; install Android SDK tools - Github runners have everything on them
|
||||
- name: Set Android SDK environment variable
|
||||
shell: bash
|
||||
if: env.ACT
|
||||
run: |
|
||||
echo "ANDROID_SDK_ROOT=/opt/android/sdk" >> $GITHUB_ENV
|
||||
echo "ANDROID_HOME=/opt/android/sdk" >> $GITHUB_ENV
|
||||
- name: Get Android SDK version
|
||||
shell: bash
|
||||
id: android-sdk-version
|
||||
if: env.ACT
|
||||
run: |
|
||||
echo "revision=${{inputs.ANDROID_TOOLS_VERSION}};${{inputs.ANDROID_PLATFORM}};build-tools;${{inputs.ANDROID_BUILDTOOLS}}" >> "$GITHUB_OUTPUT"
|
||||
- name: Android SDK Cache
|
||||
uses: actions/cache@5a3ec84eff668545956fd18022155c47e93e2684
|
||||
id: android-sdk-setup
|
||||
if: env.ACT
|
||||
with:
|
||||
path: /opt/android/sdk
|
||||
key: ${{ runner.os }}-${{ steps.android-sdk-version.outputs.revision }}
|
||||
- name: Setup Android SDK (cold cache)
|
||||
if: env.ACT && steps.android-sdk-setup.outputs.cache-hit != 'true'
|
||||
uses: android-actions/setup-android@9fc6c4e9069bf8d3d10b2204b1fb8f6ef7065407
|
||||
with:
|
||||
packages: 'tools platform-tools platforms;${{inputs.ANDROID_PLATFORM}} build-tools;${{inputs.ANDROID_BUILDTOOLS}}'
|
||||
log-accepted-android-sdk-licenses: false
|
||||
cmdline-tools-version: ${{ inputs.ANDROID_TOOLS_VERSION }}
|
||||
- name: Setup Android SDK (warm cache)
|
||||
shell: bash
|
||||
if: env.ACT && steps.android-sdk-setup.outputs.cache-hit == 'true'
|
||||
run: |
|
||||
echo "/opt/android/sdk/cmdline-tools/${{ inputs.ANDROID_TOOLS_VERSION }}/bin" >> "$GITHUB_PATH"
|
||||
echo "/opt/android/sdk/platform-tools" >> "$GITHUB_PATH"
|
||||
|
||||
- name: Add `flutter` to the PATH
|
||||
shell: bash
|
||||
run: |
|
||||
echo "$GITHUB_WORKSPACE/bin" >> "$GITHUB_PATH"
|
||||
|
||||
- name: Setup PUB_CACHE environment variable
|
||||
shell: bash
|
||||
run: |
|
||||
echo "PUB_CACHE=/opt/pub-cache" >> $GITHUB_ENV
|
||||
|
||||
# Get the Flutter revision. This is the key for the cache for artifacts
|
||||
# under bin/cache
|
||||
- name: Get Flutter version
|
||||
shell: bash
|
||||
id: flutter-revision
|
||||
run: |
|
||||
echo "revision=$(git rev-parse HEAD)" >> "$GITHUB_OUTPUT"
|
||||
- name: Flutter artifacts cache
|
||||
uses: actions/cache@5a3ec84eff668545956fd18022155c47e93e2684
|
||||
id: flutter-artifacts
|
||||
with:
|
||||
path: ${{ github.workspace }}/bin/cache
|
||||
key: ${{ runner.os }}-flutter-${{ steps.flutter-revision.outputs.revision }}
|
||||
|
||||
- name: pub deps hash
|
||||
shell: bash
|
||||
id: pub-deps-hash
|
||||
run: |
|
||||
# Generate stable hash of pubspec.yaml files
|
||||
find dev examples packages -name "pubspec.yaml" -print0 | sort -z | xargs -0 cat | sha256sum >> "$RUNNER_TEMP/pub_deps_sha"
|
||||
echo "revision=$(cat "$RUNNER_TEMP/pub_deps_sha")" >> "$GITHUB_OUTPUT"
|
||||
- name: pub package cache
|
||||
uses: actions/cache@5a3ec84eff668545956fd18022155c47e93e2684
|
||||
id: pub-cache
|
||||
with:
|
||||
path: |
|
||||
/opt/pub-cache
|
||||
${{ github.workspace }}/**/.dart_tool
|
||||
${{ github.workspace }}/**/pubspec.lock
|
||||
key: ${{ runner.os }}-pub-${{ steps.pub-deps-hash.outputs.revision }}
|
||||
|
||||
- name: Flutter Doctor
|
||||
shell: bash
|
||||
run: |
|
||||
flutter doctor
|
||||
|
||||
- name: flutter pub get (online)
|
||||
shell: bash
|
||||
if: steps.pub-cache.outputs.cache-hit != 'true'
|
||||
run: |
|
||||
flutter pub get
|
||||
23
.flutter/.github/dependabot.yml
vendored
Normal file
23
.flutter/.github/dependabot.yml
vendored
Normal file
|
|
@ -0,0 +1,23 @@
|
|||
# See Dependabot documentation for all configuration options:
|
||||
# https://help.github.com/github/administering-a-repository/configuration-options-for-dependency-updates
|
||||
|
||||
version: 2
|
||||
updates:
|
||||
- package-ecosystem: "github-actions"
|
||||
directory: "/"
|
||||
schedule:
|
||||
interval: "weekly"
|
||||
groups:
|
||||
all-github-actions:
|
||||
patterns: [ "*" ]
|
||||
reviewers:
|
||||
- "christopherfujino"
|
||||
- "jmagman"
|
||||
labels:
|
||||
- "team-infra"
|
||||
- "autosubmit"
|
||||
# Updating patch versions for "github-actions" is too chatty.
|
||||
# See https://github.com/flutter/flutter/issues/158350.
|
||||
ignore:
|
||||
- dependency-name: "*"
|
||||
update-types: ["version-update:semver-patch"]
|
||||
261
.flutter/.github/labeler.yml
vendored
Normal file
261
.flutter/.github/labeler.yml
vendored
Normal file
|
|
@ -0,0 +1,261 @@
|
|||
# Copyright 2013 The Flutter Authors. All rights reserved.
|
||||
# Use of this source code is governed by a BSD-style license that can be
|
||||
# found in the LICENSE file.
|
||||
|
||||
# See https://github.com/actions/labeler/blob/main/README.md for docs.
|
||||
# Use git ls-files '<pattern>' to see the list of matching files.
|
||||
|
||||
'a: accessibility':
|
||||
- changed-files:
|
||||
- any-glob-to-any-file:
|
||||
- '**/accessibility/*'
|
||||
- '**/*accessibility*'
|
||||
- '**/semantics/*'
|
||||
- '**/*semantics*'
|
||||
|
||||
'a: animation':
|
||||
- changed-files:
|
||||
- any-glob-to-any-file:
|
||||
- '**/animation/*'
|
||||
- '**/*animation*'
|
||||
|
||||
'a: desktop':
|
||||
- changed-files:
|
||||
- any-glob-to-any-file:
|
||||
- '**/linux/**/*'
|
||||
- '**/macos/**/*'
|
||||
- '**/windows/**/*'
|
||||
- engine/src/flutter/shell/platform/darwin/common/**/*
|
||||
|
||||
'a: internationalization':
|
||||
- changed-files:
|
||||
- any-glob-to-any-file:
|
||||
- packages/flutter_localizations/**/*
|
||||
|
||||
'a: tests':
|
||||
- changed-files:
|
||||
- any-glob-to-any-file:
|
||||
- packages/flutter_driver/**/*
|
||||
- packages/flutter_goldens/**/*
|
||||
- packages/flutter_test/**/*
|
||||
- packages/integration_test/**/*
|
||||
|
||||
'a: text input':
|
||||
- changed-files:
|
||||
- all-globs-to-any-file:
|
||||
- '**/*text*'
|
||||
- '!**/*context*'
|
||||
- '!**/*texture*'
|
||||
|
||||
'd: api docs':
|
||||
- changed-files:
|
||||
- any-glob-to-any-file:
|
||||
- examples/api/**/*
|
||||
|
||||
'd: docs/':
|
||||
- changed-files:
|
||||
- any-glob-to-any-file:
|
||||
- docs/**/*
|
||||
|
||||
'd: examples':
|
||||
- changed-files:
|
||||
- any-glob-to-any-file:
|
||||
- examples/**/*
|
||||
|
||||
'e: embedder':
|
||||
- changed-files:
|
||||
- any-glob-to-any-file:
|
||||
- engine/src/flutter/shell/platform/embedder
|
||||
|
||||
'e: impeller':
|
||||
- changed-files:
|
||||
- any-glob-to-any-file:
|
||||
- engine/src/flutter/impeller/**/*
|
||||
|
||||
engine:
|
||||
- changed-files:
|
||||
- any-glob-to-any-file:
|
||||
- DEPS
|
||||
- engine/**/*
|
||||
- docs/engine/**/*
|
||||
|
||||
'f: cupertino':
|
||||
- changed-files:
|
||||
- any-glob-to-any-file:
|
||||
- '**/cupertino/*'
|
||||
- '**/*cupertino*'
|
||||
- docs/libraries/cupertino/**/*
|
||||
|
||||
'f: focus':
|
||||
- changed-files:
|
||||
- any-glob-to-any-file:
|
||||
- '**/focus/*'
|
||||
- '**/*focus*'
|
||||
|
||||
'f: gestures':
|
||||
- changed-files:
|
||||
- any-glob-to-any-file:
|
||||
- '**/gestures/*'
|
||||
- '**/*gestures*'
|
||||
|
||||
'f: material design':
|
||||
- changed-files:
|
||||
- any-glob-to-any-file:
|
||||
- '**/material/*'
|
||||
- '**/*material*'
|
||||
- docs/libraries/material/**/*
|
||||
|
||||
'f: routes':
|
||||
- changed-files:
|
||||
- any-glob-to-any-file:
|
||||
- '**/navigator/*'
|
||||
- '**/*navigator*'
|
||||
- '**/route/*'
|
||||
- '**/*route*'
|
||||
|
||||
'f: scrolling':
|
||||
- changed-files:
|
||||
- any-glob-to-any-file:
|
||||
- '**/*scroll*'
|
||||
- '**/scroll/*'
|
||||
- '**/*sliver*'
|
||||
- '**/sliver/*'
|
||||
- '**/*viewport*'
|
||||
- '**/viewport/*'
|
||||
|
||||
framework:
|
||||
- changed-files:
|
||||
- any-glob-to-any-file:
|
||||
- packages/flutter/**/*
|
||||
- packages/flutter_driver/**/*
|
||||
- packages/flutter_goldens/**/*
|
||||
- packages/flutter_localizations/**/*
|
||||
- packages/flutter_test/**/*
|
||||
- packages/integration_test/**/*
|
||||
- examples/api/**/*
|
||||
- docs/about/**/*
|
||||
- docs/contributing/**/*
|
||||
- docs/libraries/**/*
|
||||
|
||||
'f: integration_test':
|
||||
- changed-files:
|
||||
- any-glob-to-any-file:
|
||||
- packages/integration_test/**/*
|
||||
|
||||
package:
|
||||
- changed-files:
|
||||
- any-glob-to-any-file:
|
||||
- docs/ecosystem/**/*
|
||||
|
||||
platform-android:
|
||||
- changed-files:
|
||||
- any-glob-to-any-file:
|
||||
- docs/platform/android/**/*
|
||||
- engine/src/flutter/shell/platform/android/**/*
|
||||
- packages/flutter_tools/*android*
|
||||
- packages/flutter_tools/gradle/**/*
|
||||
|
||||
platform-ios:
|
||||
- changed-files:
|
||||
- any-glob-to-any-file:
|
||||
- engine/src/flutter/shell/platform/darwin/common/**/*
|
||||
- engine/src/flutter/shell/platform/darwin/ios/**/*
|
||||
- packages/flutter_tools/lib/src/ios/**/*
|
||||
|
||||
platform-fuchsia:
|
||||
- changed-files:
|
||||
- any-glob-to-any-file:
|
||||
- engine/src/flutter/shell/platform/fuchsia/**/*
|
||||
|
||||
platform-linux:
|
||||
- changed-files:
|
||||
- any-glob-to-any-file:
|
||||
- engine/src/flutter/shell/platform/linux/**/*
|
||||
|
||||
platform-macos:
|
||||
- changed-files:
|
||||
- any-glob-to-any-file:
|
||||
- engine/src/flutter/src/flutter/shell/platform/darwin/common/**/*
|
||||
- engine/src/flutter/shell/platform/darwin/macos/**/*
|
||||
|
||||
platform-web:
|
||||
- changed-files:
|
||||
- any-glob-to-any-file:
|
||||
- '**/web_sdk/**/*'
|
||||
- engine/src/flutter/lib/web_ui/**/*
|
||||
- packages/flutter_web_plugins
|
||||
|
||||
platform-windows:
|
||||
- changed-files:
|
||||
- any-glob-to-any-file:
|
||||
- engine/src/flutter/shell/platform/windows/**/*
|
||||
|
||||
'customer: gallery':
|
||||
- changed-files:
|
||||
- any-glob-to-any-file:
|
||||
- examples/flutter_gallery/**/*
|
||||
|
||||
'c: tech-debt':
|
||||
- changed-files:
|
||||
- any-glob-to-any-file:
|
||||
- '**/fix_data.yaml'
|
||||
- '**/*.expect'
|
||||
- '**/*test_fixes*'
|
||||
'c: contributor-productivity':
|
||||
- changed-files:
|
||||
- any-glob-to-any-file:
|
||||
- docs/contributing/**/*
|
||||
|
||||
# Keep this synced with CODEOWNERS.
|
||||
team-android:
|
||||
- changed-files:
|
||||
- any-glob-to-any-file:
|
||||
- docs/platform/android/**/*
|
||||
- engine/src/flutter/shell/platform/android/**/*
|
||||
- packages/flutter_tools/**/*android*
|
||||
- packages/flutter_tools/**/*gradle*
|
||||
|
||||
team-ecosystem:
|
||||
- changed-files:
|
||||
- any-glob-to-any-file:
|
||||
- docs/ecosystem/**/*
|
||||
|
||||
team-engine:
|
||||
- changed-files:
|
||||
- any-glob-to-any-file:
|
||||
- docs/engine/**/*
|
||||
|
||||
team-infra:
|
||||
- changed-files:
|
||||
- any-glob-to-any-file:
|
||||
- docs/infra/**/*
|
||||
- docs/releases/**/*
|
||||
|
||||
# Keep this synced with CODEOWNERS.
|
||||
team-ios:
|
||||
- changed-files:
|
||||
- any-glob-to-any-file:
|
||||
- engine/src/flutter/shell/platform/darwin/common/**/*
|
||||
- engine/src/flutter/shell/platform/darwin/ios/framework/**/*
|
||||
- packages/flutter_tools/**/ios/*
|
||||
- packages/flutter_tools/**/macos/*
|
||||
- packages/flutter_tools/**/*xcode*
|
||||
- packages/flutter_tools/**/*ios*
|
||||
- packages/flutter_tools/**/*macos*
|
||||
|
||||
team-tool:
|
||||
- changed-files:
|
||||
- any-glob-to-any-file:
|
||||
- docs/tool/**/*
|
||||
|
||||
team-web:
|
||||
- changed-files:
|
||||
- any-glob-to-any-file:
|
||||
- docs/platforms/web/**/*
|
||||
|
||||
tool:
|
||||
- changed-files:
|
||||
- any-glob-to-any-file:
|
||||
- packages/flutter_tools/**/*
|
||||
- packages/fuchsia_remote_debug_protocol/**/*
|
||||
- docs/tool/**/*
|
||||
68
.flutter/.github/release.yml
vendored
Normal file
68
.flutter/.github/release.yml
vendored
Normal file
|
|
@ -0,0 +1,68 @@
|
|||
changelog:
|
||||
exclude:
|
||||
authors:
|
||||
- engine-flutter-autoroll
|
||||
- fluttergithubbot
|
||||
labels:
|
||||
- passed first triage
|
||||
- passed secondary triage
|
||||
- "team: flakes"
|
||||
- revert
|
||||
categories:
|
||||
- title: Framework
|
||||
labels:
|
||||
- framework
|
||||
- "a: text input"
|
||||
- "f: scrolling"
|
||||
- "f: routes"
|
||||
- "f: selection"
|
||||
- "f: gestures"
|
||||
exclude:
|
||||
labels:
|
||||
- "f: material design"
|
||||
- title: Material
|
||||
labels:
|
||||
- "f: material design"
|
||||
# Mobile
|
||||
- title: iOS
|
||||
labels:
|
||||
- platform-ios
|
||||
- "f: cupertino"
|
||||
- title: Android
|
||||
labels:
|
||||
- platform-android
|
||||
# Desktop
|
||||
- title: macOS
|
||||
labels:
|
||||
- platform-mac
|
||||
- title: Windows
|
||||
labels:
|
||||
- platform-windows
|
||||
- title: Linux
|
||||
labels:
|
||||
- platform-linux
|
||||
# Web
|
||||
- title: Web
|
||||
labels:
|
||||
- platform-web
|
||||
- "browser: chrome-desktop"
|
||||
- "browser: edge"
|
||||
- "browser: firefox"
|
||||
- "browser: safari-macos"
|
||||
# Misc
|
||||
- title: Tooling
|
||||
labels:
|
||||
- tool
|
||||
- title: DevTools
|
||||
labels:
|
||||
- "d: devtools"
|
||||
- "d: intellij"
|
||||
- "d: tools_metadata"
|
||||
- "f: inspector"
|
||||
- title: Documentation
|
||||
labels:
|
||||
- "d: examples"
|
||||
- "d: api docs"
|
||||
- title: Other Changes
|
||||
labels:
|
||||
- '*'
|
||||
26
.flutter/.github/workflows/content-aware-hash.yml
vendored
Normal file
26
.flutter/.github/workflows/content-aware-hash.yml
vendored
Normal file
|
|
@ -0,0 +1,26 @@
|
|||
# Copyright 2013 The Flutter Authors. All rights reserved.
|
||||
# Use of this source code is governed by a BSD-style license that can be
|
||||
# found in the LICENSE file.
|
||||
|
||||
name: Generate a content aware hash for the Flutter Engine
|
||||
|
||||
on: workflow_dispatch
|
||||
|
||||
permissions:
|
||||
contents: read
|
||||
|
||||
jobs:
|
||||
generate-engine-content-hash:
|
||||
runs-on: ubuntu-latest
|
||||
steps:
|
||||
- name: Checkout code
|
||||
uses: actions/checkout@1af3b93b6815bc44a9784bd300feb67ff0d1eeb3 # v6.0.0
|
||||
|
||||
- name: Generate Hash
|
||||
run: |
|
||||
# Script updated to handle gh-readonly-queue/ branches
|
||||
engine_content_hash=$(bin/internal/content_aware_hash.sh)
|
||||
# test notice annotation for retrival from api
|
||||
echo "::notice ::{\"engine_content_hash\": \"${engine_content_hash}\"}"
|
||||
# test summary writing
|
||||
echo "{\"engine_content_hash\": \"${engine_content_hash}\"" >> $GITHUB_STEP_SUMMARY
|
||||
29
.flutter/.github/workflows/coverage.yml
vendored
Normal file
29
.flutter/.github/workflows/coverage.yml
vendored
Normal file
|
|
@ -0,0 +1,29 @@
|
|||
# Copyright 2013 The Flutter Authors. All rights reserved.
|
||||
# Use of this source code is governed by a BSD-style license that can be
|
||||
# found in the LICENSE file.
|
||||
|
||||
name: coverage
|
||||
|
||||
on:
|
||||
push:
|
||||
branches:
|
||||
- master
|
||||
paths:
|
||||
- 'packages/flutter/**'
|
||||
|
||||
permissions: read-all
|
||||
|
||||
jobs:
|
||||
build:
|
||||
name: coverage
|
||||
runs-on: ubuntu-latest
|
||||
if: ${{ github.repository == 'flutter/flutter' }}
|
||||
steps:
|
||||
- uses: actions/checkout@1af3b93b6815bc44a9784bd300feb67ff0d1eeb3
|
||||
- name: ./bin/flutter test --coverage
|
||||
run: pushd packages/flutter;../../bin/flutter test --coverage -j 1;popd
|
||||
- name: upload coverage
|
||||
uses: codecov/codecov-action@fdcc8476540edceab3de004e990f80d881c6cc00
|
||||
with:
|
||||
files: packages/flutter/coverage/lcov.info
|
||||
verbose: true
|
||||
99
.flutter/.github/workflows/easy-cp.yml
vendored
Normal file
99
.flutter/.github/workflows/easy-cp.yml
vendored
Normal file
|
|
@ -0,0 +1,99 @@
|
|||
# Copyright 2023 The Flutter Authors. All rights reserved.
|
||||
# Use of this source code is governed by a BSD-style license that can be
|
||||
# found in the LICENSE file.
|
||||
|
||||
name: Cherry-pick Labeled PR to Release Branch
|
||||
|
||||
on:
|
||||
pull_request_target:
|
||||
branches: master
|
||||
types: [labeled]
|
||||
|
||||
permissions:
|
||||
contents: read
|
||||
pull-requests: write
|
||||
|
||||
jobs:
|
||||
cherrypick_not_merged_remove_label:
|
||||
name: cherrypick_not_merged_remove_label
|
||||
runs-on: ubuntu-latest
|
||||
if: |
|
||||
(github.event.label.name == format('cp{0} beta', ':') || github.event.label.name == format('cp{0} stable', ':')) &&
|
||||
(github.event.pull_request.merged == false)
|
||||
steps:
|
||||
- name: Leave Comment and Remove Label
|
||||
run: |
|
||||
gh pr edit ${{ github.event.pull_request.number }} --remove-label "cp: beta"
|
||||
gh pr edit ${{ github.event.pull_request.number }} --remove-label "cp: stable"
|
||||
gh pr comment ${{ github.event.pull_request.number }} -R flutter/flutter -b "Only merged pull requests can be cherrypicked."
|
||||
env:
|
||||
GITHUB_TOKEN: ${{ secrets.FLUTTERACTIONSBOT_CP_TOKEN }}
|
||||
cherrypick_to_release:
|
||||
name: cherrypick_to_release
|
||||
runs-on: ubuntu-latest
|
||||
if: |
|
||||
(github.event.label.name == format('cp{0} beta', ':') || github.event.label.name == format('cp{0} stable', ':')) &&
|
||||
(github.event.pull_request.merged == true)
|
||||
steps:
|
||||
- name: Get Release Channel
|
||||
run: |
|
||||
echo "CHANNEL=$(echo ${{ github.event.label.name }} | cut -d ':' -f 2 | xargs)" >> $GITHUB_ENV
|
||||
- name: Get Release Candidate Branch
|
||||
run: |
|
||||
RELEASE_BRANCH=$(curl https://raw.githubusercontent.com/flutter/flutter/$CHANNEL/bin/internal/release-candidate-branch.version)
|
||||
echo "RELEASE_BRANCH=$(echo $RELEASE_BRANCH | tr -d '\n')" >> $GITHUB_ENV
|
||||
- name: Get Cherry Pick PR
|
||||
run: |
|
||||
echo "COMMIT_SHA=$(echo ${{ github.event.pull_request.merge_commit_sha }})" >> $GITHUB_ENV
|
||||
- name: Checkout Flutter Repo
|
||||
uses: actions/checkout@1af3b93b6815bc44a9784bd300feb67ff0d1eeb3
|
||||
with:
|
||||
repository: flutteractionsbot/flutter
|
||||
path: flutter
|
||||
ref: master
|
||||
persist-credentials: false
|
||||
# Checkout all history commits on master branch, so that the cp commit is a known object
|
||||
fetch-depth: 0
|
||||
# use same name when checking out branch, since the marketplace action does a hard reset.
|
||||
- name: Attempt CP
|
||||
id: attempt-cp
|
||||
working-directory: ./flutter
|
||||
run: |
|
||||
git config user.name "GitHub Actions Bot"
|
||||
git config user.email "<>"
|
||||
git remote add upstream https://github.com/flutter/flutter.git
|
||||
git fetch upstream $RELEASE_BRANCH
|
||||
git fetch upstream master
|
||||
git checkout -b cp-${CHANNEL}-${COMMIT_SHA} --track upstream/$RELEASE_BRANCH
|
||||
git cherry-pick $COMMIT_SHA
|
||||
- name: Create PR on CP success
|
||||
if: ${{ steps.attempt-cp.conclusion == 'success' }}
|
||||
working-directory: ./flutter
|
||||
id: create-pr
|
||||
run: |
|
||||
git push https://${{ env.GITHUB_TOKEN }}@github.com/flutteractionsbot/flutter cp-${CHANNEL}-${COMMIT_SHA}
|
||||
{
|
||||
echo 'PR_URL<<EOF'
|
||||
gh pr create --title "[CP-${CHANNEL}]${PR_TITLE}" --body-file ".github/PR_TEMPLATE/PULL_REQUEST_CP_TEMPLATE.md" --base ${RELEASE_BRANCH} --label "cp: review" --repo flutter/flutter --head flutteractionsbot:cp-${CHANNEL}-${COMMIT_SHA}
|
||||
echo EOF
|
||||
} >> "$GITHUB_ENV"
|
||||
env:
|
||||
GITHUB_TOKEN: ${{ secrets.FLUTTERACTIONSBOT_CP_TOKEN }}
|
||||
PR_TITLE: ${{ github.event.pull_request.title }}
|
||||
- name: Leave Comment on CP success
|
||||
if: ${{ steps.create-pr.conclusion == 'success' }}
|
||||
run: |
|
||||
echo $PR_URL
|
||||
NEW_PR_NUMBER="${PR_URL##*/}"
|
||||
SUCCESS_MSG=" @${{ github.actor }} please fill out the PR description above, afterwards the release team will review this request."
|
||||
gh pr comment $NEW_PR_NUMBER -R flutter/flutter -b "${SUCCESS_MSG}"
|
||||
env:
|
||||
GITHUB_TOKEN: ${{ secrets.FLUTTERACTIONSBOT_CP_TOKEN }}
|
||||
- name: Leave Comment on CP failure
|
||||
if: ${{ failure() && steps.attempt-cp.conclusion == 'failure' }}
|
||||
run: |
|
||||
FAILURE_MSG="Failed to create CP due to merge conflicts.<br>"
|
||||
FAILURE_MSG+="You will need to create the PR manually. See [the cherrypick wiki](https://github.com/flutter/flutter/blob/main/docs/releases/Flutter-Cherrypick-Process.md) for more info."
|
||||
gh pr comment ${{ github.event.pull_request.number }} -R flutter/flutter -b "${FAILURE_MSG}"
|
||||
env:
|
||||
GITHUB_TOKEN: ${{ secrets.FLUTTERACTIONSBOT_CP_TOKEN }}
|
||||
22
.flutter/.github/workflows/labeler.yml
vendored
Normal file
22
.flutter/.github/workflows/labeler.yml
vendored
Normal file
|
|
@ -0,0 +1,22 @@
|
|||
# Copyright 2013 The Flutter Authors. All rights reserved.
|
||||
# Use of this source code is governed by a BSD-style license that can be
|
||||
# found in the LICENSE file.
|
||||
|
||||
name: "Pull Request Labeler"
|
||||
on:
|
||||
- pull_request_target
|
||||
|
||||
# Declare default permissions as read only.
|
||||
permissions: read-all
|
||||
|
||||
jobs:
|
||||
triage:
|
||||
if: ${{ github.repository == 'flutter/flutter' }}
|
||||
permissions:
|
||||
pull-requests: write
|
||||
runs-on: ubuntu-latest
|
||||
steps:
|
||||
# Source available at https://github.com/actions/labeler/blob/main/README.md
|
||||
- uses: actions/labeler@634933edcd8ababfe52f92936142cc22ac488b1b
|
||||
with:
|
||||
sync-labels: true
|
||||
35
.flutter/.github/workflows/lock.yaml
vendored
Normal file
35
.flutter/.github/workflows/lock.yaml
vendored
Normal file
|
|
@ -0,0 +1,35 @@
|
|||
# Copyright 2013 The Flutter Authors. All rights reserved.
|
||||
# Use of this source code is governed by a BSD-style license that can be
|
||||
# found in the LICENSE file.
|
||||
|
||||
# Configuration for Lock Threads - https://github.com/dessant/lock-threads
|
||||
|
||||
name: 'Lock Threads'
|
||||
|
||||
# By specifying the access of one of the scopes, all of those that are not
|
||||
# specified are set to 'none'.
|
||||
permissions:
|
||||
issues: write
|
||||
|
||||
on:
|
||||
schedule:
|
||||
- cron: '0 * * * *'
|
||||
|
||||
jobs:
|
||||
lock:
|
||||
permissions:
|
||||
issues: write
|
||||
runs-on: ubuntu-latest
|
||||
if: ${{ github.repository == 'flutter/flutter' }}
|
||||
steps:
|
||||
- uses: dessant/lock-threads@7266a7ce5c1df01b1c6db85bf8cd86c737dadbe7
|
||||
with:
|
||||
process-only: 'issues'
|
||||
github-token: ${{ github.token }}
|
||||
# Number of days of inactivity before a closed issue is locked.
|
||||
issue-inactive-days: '14'
|
||||
issue-comment: >
|
||||
This thread has been automatically locked since there has not been
|
||||
any recent activity after it was closed. If you are still experiencing a
|
||||
similar issue, please open a new bug, including the output of
|
||||
`flutter doctor -v` and a minimal reproduction of the issue.
|
||||
58
.flutter/.github/workflows/merge-changelog.yml
vendored
Normal file
58
.flutter/.github/workflows/merge-changelog.yml
vendored
Normal file
|
|
@ -0,0 +1,58 @@
|
|||
name: Sync stable CHANGELOG to master
|
||||
|
||||
on:
|
||||
push:
|
||||
branches: [stable]
|
||||
paths:
|
||||
- 'CHANGELOG.md'
|
||||
|
||||
jobs:
|
||||
merge-changelog:
|
||||
runs-on: ubuntu-latest
|
||||
permissions:
|
||||
contents: write
|
||||
pull-requests: write
|
||||
|
||||
steps:
|
||||
- name: Setup Repository
|
||||
uses: actions/checkout@1af3b93b6815bc44a9784bd300feb67ff0d1eeb3 # v6.0.0
|
||||
with:
|
||||
repository: ${{ github.repository }}
|
||||
ref: master
|
||||
|
||||
- name: Configure git
|
||||
run: |
|
||||
git config user.name "[bot] Merge Changelog"
|
||||
git config user.email "<>"
|
||||
|
||||
- name: Read CHANGELOG.md from the stable branch
|
||||
id: read_stable_changelog
|
||||
run: |
|
||||
CHANGELOG_CONTENT=$(git show origin/stable:CHANGELOG.md)
|
||||
echo "CHANGELOG_CONTENT<<EOF" >> $GITHUB_ENV
|
||||
echo "$CHANGELOG_CONTENT" >> $GITHUB_ENV
|
||||
echo "EOF" >> $GITHUB_ENV
|
||||
|
||||
- name: Prepare PR branch and commit changes
|
||||
id: prepare_pr_branch
|
||||
run: |
|
||||
PR_BRANCH="sync-changelog-stable-to-master-$(date +%s)"
|
||||
echo "pr_branch_name=$PR_BRANCH" >> "$GITHUB_OUTPUT"
|
||||
git checkout -b "$PR_BRANCH" master
|
||||
echo "${{ env.CHANGELOG_CONTENT }}" > CHANGELOG.md
|
||||
git add CHANGELOG.md
|
||||
git commit -m "Sync CHANGELOG.md from stable"
|
||||
git push origin "$PR_BRANCH"
|
||||
|
||||
- name: Create Pull Request
|
||||
env:
|
||||
GH_TOKEN: ${{ github.token }}
|
||||
run: |
|
||||
PR_HEAD_BRANCH=${{ steps.prepare_pr_branch.outputs.pr_branch_name }}
|
||||
|
||||
gh pr create \
|
||||
--base master \
|
||||
--head "$PR_HEAD_BRANCH" \
|
||||
--title "Sync CHANGELOG.md from stable" \
|
||||
--body "This PR automates the synchronization of \`CHANGELOG.md\` from the \`stable\` branch to the \`master\` branch." \
|
||||
--label autosubmit
|
||||
28
.flutter/.github/workflows/mirror.yml
vendored
Normal file
28
.flutter/.github/workflows/mirror.yml
vendored
Normal file
|
|
@ -0,0 +1,28 @@
|
|||
# Copyright 2013 The Flutter Authors. All rights reserved.
|
||||
# Use of this source code is governed by a BSD-style license that can be
|
||||
# found in the LICENSE file.
|
||||
|
||||
# Mirror master to main branches in the flutter repository.
|
||||
on:
|
||||
push:
|
||||
branches:
|
||||
- 'master'
|
||||
|
||||
# Declare default permissions as read only.
|
||||
permissions: read-all
|
||||
|
||||
jobs:
|
||||
mirror_job:
|
||||
permissions:
|
||||
pull-requests: write
|
||||
runs-on: ubuntu-latest
|
||||
if: ${{ github.repository == 'flutter/flutter' }}
|
||||
name: Mirror master branch to main branch
|
||||
steps:
|
||||
- name: Mirror action step
|
||||
id: mirror
|
||||
uses: google/mirror-branch-action@30c52ee21f5d3bd7fb28b95501c11aae7f17eebb
|
||||
with:
|
||||
github-token: ${{ secrets.FLUTTERMIRRORINGBOT_TOKEN }}
|
||||
source: 'master'
|
||||
dest: 'main'
|
||||
44
.flutter/.github/workflows/no-response.yaml
vendored
Normal file
44
.flutter/.github/workflows/no-response.yaml
vendored
Normal file
|
|
@ -0,0 +1,44 @@
|
|||
# Copyright 2013 The Flutter Authors. All rights reserved.
|
||||
# Use of this source code is governed by a BSD-style license that can be
|
||||
# found in the LICENSE file.
|
||||
|
||||
name: No Response
|
||||
|
||||
# Both `issue_comment` and `scheduled` event types are required for this Action
|
||||
# to work properly.
|
||||
on:
|
||||
issue_comment:
|
||||
types: [created]
|
||||
schedule:
|
||||
# Schedule for five minutes after the hour, every hour
|
||||
- cron: '5 * * * *'
|
||||
|
||||
# By specifying the access of one of the scopes, all of those that are not
|
||||
# specified are set to 'none'.
|
||||
permissions:
|
||||
issues: write
|
||||
|
||||
jobs:
|
||||
noResponse:
|
||||
runs-on: ubuntu-latest
|
||||
if: ${{ github.repository == 'flutter/flutter' }}
|
||||
steps:
|
||||
- uses: godofredoc/no-response@0ce2dc0e63e1c7d2b87752ceed091f6d32c9df09
|
||||
with:
|
||||
token: ${{ github.token }}
|
||||
# Comment to post when closing an Issue for lack of response. Set to `false` to disable
|
||||
closeComment: >
|
||||
Without additional information, we are unfortunately not sure how to
|
||||
resolve this issue. We are therefore reluctantly going to close this
|
||||
bug for now.
|
||||
|
||||
If you find this problem please file a new issue with the same description,
|
||||
what happens, logs and the output of 'flutter doctor -v'. All system setups
|
||||
can be slightly different so it's always better to open new issues and reference
|
||||
the related ones.
|
||||
|
||||
Thanks for your contribution.
|
||||
# Number of days of inactivity before an issue is closed for lack of response.
|
||||
daysUntilClose: 21
|
||||
# Label requiring a response.
|
||||
responseRequiredLabel: "waiting for customer response"
|
||||
30
.flutter/.github/workflows/tool-test-general.yml
vendored
Normal file
30
.flutter/.github/workflows/tool-test-general.yml
vendored
Normal file
|
|
@ -0,0 +1,30 @@
|
|||
name: Tool tests general - experiment
|
||||
|
||||
on:
|
||||
pull_request:
|
||||
branches: [master]
|
||||
paths:
|
||||
- '.github/workflows/tool-test-general.yml'
|
||||
- 'dev/**'
|
||||
- 'packages/flutter_tools/**'
|
||||
- 'bin/**'
|
||||
- '.ci.yaml'
|
||||
- 'engine/**'
|
||||
- 'DEPS'
|
||||
push:
|
||||
branches: [master]
|
||||
|
||||
jobs:
|
||||
Linux_tool-tests-general:
|
||||
permissions:
|
||||
contents: read
|
||||
runs-on: ubuntu-latest
|
||||
|
||||
steps:
|
||||
# Note: we must check out the tree for the composite action to be available
|
||||
- uses: actions/checkout@1af3b93b6815bc44a9784bd300feb67ff0d1eeb3 # v6.0.0
|
||||
- uses: ./.github/actions/composite-flutter-setup
|
||||
|
||||
- name: Tool Test
|
||||
run: |
|
||||
SHARD=tool_tests SUBSHARD=general dart --enable-asserts dev/bots/test.dart
|
||||
165
.flutter/.gitignore
vendored
Normal file
165
.flutter/.gitignore
vendored
Normal file
|
|
@ -0,0 +1,165 @@
|
|||
# Do not remove or rename entries in this file, only add new ones
|
||||
# See https://github.com/flutter/flutter/issues/128635 for more context.
|
||||
|
||||
# Miscellaneous
|
||||
*.class
|
||||
*.lock
|
||||
*.log
|
||||
*.pyc
|
||||
*.swp
|
||||
.DS_Store
|
||||
.atom/
|
||||
.buildlog/
|
||||
.history
|
||||
.svn/
|
||||
|
||||
# As packages are no longer pinned, we use a lockfile for testing locally.
|
||||
# When unpinning packages, Using lockfiles ensures that failures in PRs are
|
||||
# actually due to those PRs, not due to a package being updated.
|
||||
!/pubspec.lock
|
||||
|
||||
# IntelliJ related
|
||||
*.iml
|
||||
*.ipr
|
||||
*.iws
|
||||
.idea/
|
||||
|
||||
# Visual Studio Code related
|
||||
.classpath
|
||||
.project
|
||||
.settings/
|
||||
.vscode/*
|
||||
.ccls-cache
|
||||
|
||||
# This file, on the master branch, should never exist or be checked-in.
|
||||
#
|
||||
# On a *final* release branch, that is, what will ship to stable or beta, the
|
||||
# file can be force added (git add --force) and checked-in in order to effectively
|
||||
# "pin" the engine artifact version so the flutter tool does not need to use git
|
||||
# to determine the engine artifacts.
|
||||
#
|
||||
# See https://github.com/flutter/flutter/blob/main/docs/tool/Engine-artifacts.md.
|
||||
/bin/internal/engine.version
|
||||
|
||||
# Flutter repo-specific
|
||||
/bin/cache/
|
||||
/bin/internal/bootstrap.bat
|
||||
/bin/internal/bootstrap.sh
|
||||
/bin/internal/engine.realm
|
||||
/bin/mingit/
|
||||
/dev/benchmarks/mega_gallery/
|
||||
/dev/bots/.recipe_deps
|
||||
/dev/bots/android_tools/
|
||||
/dev/devicelab/ABresults*.json
|
||||
/dev/docs/doc/
|
||||
/dev/docs/api_docs.zip
|
||||
/dev/docs/flutter.docs.zip
|
||||
/dev/docs/lib/
|
||||
/dev/docs/pubspec.yaml
|
||||
/dev/integration_tests/**/xcuserdata
|
||||
/dev/integration_tests/**/Pods
|
||||
/packages/flutter/coverage/
|
||||
version
|
||||
analysis_benchmark.json
|
||||
|
||||
# packages file containing multi-root paths
|
||||
.packages.generated
|
||||
|
||||
# Flutter/Dart/Pub related
|
||||
**/doc/api/
|
||||
.dart_tool/
|
||||
.flutter-plugins-dependencies
|
||||
**/generated_plugin_registrant.dart
|
||||
.packages
|
||||
.pub-preload-cache/
|
||||
.pub-cache/
|
||||
.pub/
|
||||
build/
|
||||
flutter_*.png
|
||||
linked_*.ds
|
||||
unlinked.ds
|
||||
unlinked_spec.ds
|
||||
|
||||
# Android related
|
||||
**/android/**/gradle-wrapper.jar
|
||||
.gradle/
|
||||
**/android/captures/
|
||||
**/android/gradlew
|
||||
**/android/gradlew.bat
|
||||
**/android/**/GeneratedPluginRegistrant.java
|
||||
**/android/key.properties
|
||||
*.jks
|
||||
local.properties
|
||||
**/.cxx/
|
||||
|
||||
# iOS/XCode related
|
||||
**/ios/**/*.mode1v3
|
||||
**/ios/**/*.mode2v3
|
||||
**/ios/**/*.moved-aside
|
||||
**/ios/**/*.pbxuser
|
||||
**/ios/**/*.perspectivev3
|
||||
**/ios/**/*sync/
|
||||
**/ios/**/.sconsign.dblite
|
||||
**/ios/**/.tags*
|
||||
**/ios/**/.vagrant/
|
||||
**/ios/**/DerivedData/
|
||||
**/ios/**/Icon?
|
||||
**/ios/**/Pods/
|
||||
**/ios/**/.symlinks/
|
||||
**/ios/**/profile
|
||||
**/ios/**/xcuserdata
|
||||
**/ios/.generated/
|
||||
**/ios/Flutter/.last_build_id
|
||||
**/ios/Flutter/App.framework
|
||||
**/ios/Flutter/Flutter.framework
|
||||
**/ios/Flutter/Flutter.podspec
|
||||
**/ios/Flutter/Generated.xcconfig
|
||||
**/ios/Flutter/ephemeral
|
||||
**/ios/Flutter/app.flx
|
||||
**/ios/Flutter/app.zip
|
||||
**/ios/Flutter/flutter_assets/
|
||||
**/ios/Flutter/flutter_export_environment.sh
|
||||
**/ios/ServiceDefinitions.json
|
||||
**/ios/Runner/GeneratedPluginRegistrant.*
|
||||
|
||||
# macOS
|
||||
**/Flutter/ephemeral/
|
||||
**/Pods/
|
||||
**/macos/Flutter/GeneratedPluginRegistrant.swift
|
||||
**/macos/Flutter/ephemeral
|
||||
**/xcuserdata/
|
||||
|
||||
# Windows
|
||||
**/windows/flutter/ephemeral/
|
||||
**/windows/flutter/generated_plugin_registrant.cc
|
||||
**/windows/flutter/generated_plugin_registrant.h
|
||||
**/windows/flutter/generated_plugins.cmake
|
||||
|
||||
# Linux
|
||||
**/linux/flutter/ephemeral/
|
||||
**/linux/flutter/generated_plugin_registrant.cc
|
||||
**/linux/flutter/generated_plugin_registrant.h
|
||||
**/linux/flutter/generated_plugins.cmake
|
||||
|
||||
# Coverage
|
||||
coverage/
|
||||
|
||||
# Symbols
|
||||
app.*.symbols
|
||||
|
||||
# Exceptions to above rules.
|
||||
!**/ios/**/default.mode1v3
|
||||
!**/ios/**/default.mode2v3
|
||||
!**/ios/**/default.pbxuser
|
||||
!**/ios/**/default.perspectivev3
|
||||
!/packages/flutter_tools/test/data/dart_dependencies_test/**/.packages
|
||||
!/dev/ci/**/Gemfile.lock
|
||||
!.vscode/settings.json
|
||||
|
||||
# Monorepo
|
||||
.cipd
|
||||
.gclient
|
||||
.gclient_entries
|
||||
.python-version
|
||||
.gclient_previous_custom_vars
|
||||
.gclient_previous_sync_commits
|
||||
9
.flutter/.vscode/settings.json
vendored
Normal file
9
.flutter/.vscode/settings.json
vendored
Normal file
|
|
@ -0,0 +1,9 @@
|
|||
// VSCode workspace settings that are shared among all users of this project.
|
||||
// This only affects subdirectories of this project.
|
||||
{
|
||||
"html.format.enable": false,
|
||||
"githubPullRequests.ignoredPullRequestBranches": [
|
||||
"master"
|
||||
],
|
||||
"files.trimTrailingWhitespace": true
|
||||
}
|
||||
139
.flutter/AUTHORS
Normal file
139
.flutter/AUTHORS
Normal file
|
|
@ -0,0 +1,139 @@
|
|||
# Below is a list of people and organizations that have contributed
|
||||
# to the Flutter project. Names should be added to the list like so:
|
||||
#
|
||||
# Name/Organization <email address>
|
||||
#
|
||||
# Anyone who has contributed to the Flutter project in any way (not
|
||||
# limited to submitting PRs) is welcome to submit a PR to add their
|
||||
# name to this file.
|
||||
#
|
||||
# Thanks to everyone for your contributions!
|
||||
|
||||
Google Inc.
|
||||
The Chromium Authors
|
||||
The Fuchsia Authors
|
||||
Jim Simon <jim.j.simon@gmail.com>
|
||||
Lex Berezhny <lex@damoti.com>
|
||||
Wyatt Arent <hello@wyatt.ninja>
|
||||
Michael Perrotte <mikemimik@gmail.com>
|
||||
Günter Zöchbauer <guenter@gzoechbauer.com>
|
||||
Raju Bitter <rajubitter@gmail.com>
|
||||
Michael Beckler <mcbeckler@gmail.com>
|
||||
Alexandre Ardhuin <alexandre.ardhuin@gmail.com>
|
||||
Luke Freeman <luke@goposse.com>
|
||||
Vincent Le Quéméner <eu.lequem@gmail.com>
|
||||
Mike Hoolehan <mike@hoolehan.com>
|
||||
German Saprykin <saprykin.h@gmail.com>
|
||||
Stefano Rodriguez <hlsroddy@gmail.com>
|
||||
Yusuke Konishi <yahpeycoy0403@gmail.com>
|
||||
Fredrik Simón <fredrik@fsimon.net>
|
||||
Ali Bitek <alibitek@protonmail.ch>
|
||||
Tetsuhiro Ueda <najeira@gmail.com>
|
||||
Dan Field <dfield@gmail.com>
|
||||
Noah Groß <gross@ngsger.de>
|
||||
Victor Choueiri <victor@ctrlanddev.com>
|
||||
Christian Mürtz <teraarts@t-online.de>
|
||||
Lukasz Piliszczuk <lukasz@intheloup.io>
|
||||
Felix Schmidt <felix.free@gmx.de>
|
||||
Artur Rymarz <artur.rymarz@gmail.com>
|
||||
Chema Molins <chemamolins@gmail.com>
|
||||
Stefan Mitev <mr.mitew@gmail.com>
|
||||
Jasper van Riet <jaspervanriet@gmail.com>
|
||||
Mattijs Fuijkschot <mattijs.fuijkschot@gmail.com>
|
||||
Volodymyr Lykhonis <vladimirlichonos@gmail.com>
|
||||
TruongSinh Tran-Nguyen <i@truongsinh.pro>
|
||||
Sander Dalby Larsen <srdlarsen@gmail.com>
|
||||
Marco Scannadinari <m@scannadinari.co.uk>
|
||||
Frederik Schweiger <mail@flschweiger.net>
|
||||
Martin Staadecker <machstg@gmail.com>
|
||||
Igor Katsuba <katsuba.igor@gmail.com>
|
||||
Diego Velásquez <diego.velasquez.lopez@gmail.com>
|
||||
Simon Lightfoot <simon@devangels.london>
|
||||
Sarbagya Dhaubanjar <mail@sarbagyastha.com.np>
|
||||
Rody Davis Jr <rody.davis.jr@gmail.com>
|
||||
Robin Jespersen <info@unitedpartners.de>
|
||||
Jefferson Quesado <jeff.quesado@gmail.com>
|
||||
Mark Diener <rpzrpzrpz@gmail.com>
|
||||
Alek Åström <alek.astrom@gmail.com>
|
||||
Efthymios Sarpmpanis <e.sarbanis@gmail.com>
|
||||
Cédric Wyss <cedi.wyss@gmail.com>
|
||||
Michel Feinstein <michel@feinstein.com.br>
|
||||
Michael Lee <ckmichael8@gmail.com>
|
||||
Katarina Sheremet <katarina@sheremet.ch>
|
||||
Nicolas Schneider <nioncode+git@gmail.com>
|
||||
Mikhail Zotyev <mbixjkee1392@gmail.com>
|
||||
Maria Melnik <melnikmk@gmail.com>
|
||||
Ayush Bherwani <ayush.bherwani1998@gmail.com>
|
||||
Luke Cheng <chengludev@gmail.com>
|
||||
Brian Wang <xinlei966@gmail.com>
|
||||
法的空间 <zmtzawqlp@live.com>
|
||||
CaiJingLong <cjl_spy@163.com>
|
||||
Alex Li <alexv.525.li@gmail.com>
|
||||
Ram Navan <hiramprasad@gmail.com>
|
||||
meritozh <ah841814092@gmail.com>
|
||||
Terrence Addison Tandijono(flotilla) <terrenceaddison32@gmail.com>
|
||||
YeungKC <flutter@yeungkc.com>
|
||||
Nobuhiro Tabuki <japanese.around30@gmail.com>
|
||||
nt4f04uNd <nt4f04und@gmail.com>
|
||||
Anurag Roy <anuragr9847@gmail.com>
|
||||
Andrey Kabylin <andrey@kabylin.ru>
|
||||
vimerzhao <vimerzhao@gmail.com>
|
||||
Pedro Massango <pedromassango.developer@gmail.com>
|
||||
Hidenori Matsubayashi <Hidenori.Matsubayashi@sony.com>
|
||||
Perqin Xie <perqinxie@gmail.com>
|
||||
Seongyun Kim <helloworld@cau.ac.kr>
|
||||
Ludwik Trammer <ludwik@gmail.com>
|
||||
J-P Nurmi <jpnurmi@gmail.com>
|
||||
Marian Triebe <m.triebe@live.de>
|
||||
Alexis Rouillard <contact@arouillard.fr>
|
||||
Mirko Mucaria <skogsfrae@gmail.com>
|
||||
Karol Czeryna <karol.czeryna@gmail.com>
|
||||
Callum Moffat <callum@moffatman.com>
|
||||
Koutaro Mori <koutaro.mo@gmail.com>
|
||||
Sergei Smitskoi <sergflutterdev@gmail.com>
|
||||
Casey Rogers <caseycrogers@berkeley.edu>
|
||||
Pradumna Saraf <pradumnasaraf@gmail.com>
|
||||
Kai Yu <yk3372@gmail.com>
|
||||
Denis Grafov <grafov.denis@gmail.com>
|
||||
TheOneWithTheBraid <the-one@with-the-braid.cf>
|
||||
Alberto Miola <betoman96@gmail.com>
|
||||
Twin Sun, LLC <google-contrib@twinsunsolutions.com>
|
||||
Taskulu LDA <contributions@taskulu.com>
|
||||
Jonathan Joelson <jon@joelson.co>
|
||||
Elsabe Ros <hello@elsabe.dev>
|
||||
Nguyễn Phúc Lợi <nploi1998@gmail.com>
|
||||
Jingyi Chen <jingyichen@link.cuhk.edu.cn>
|
||||
Junhua Lin <1075209054@qq.com>
|
||||
Tomasz Gucio <tgucio@gmail.com>
|
||||
Jason C.H <ctrysbita@outlook.com>
|
||||
Hubert Jóźwiak <hjozwiakdx@gmail.com>
|
||||
David Neuy <quantjump@gmail.com>
|
||||
Eli Albert <crasowas@gmail.com>
|
||||
Jan Kuß <jan@kuss.dev>
|
||||
André Sousa <andrelvsousa@gmail.com>
|
||||
Bartek Pacia <barpac02@gmail.com>
|
||||
Mike Rydstrom <m.rydstrom@gmail.com>
|
||||
Harish Anbalagan <warriorharish95668@gmail.com>
|
||||
Kim Jiun <kkimj@hanyang.ac.kr>
|
||||
LinXunFeng <linxunfeng@yeah.net>
|
||||
Sabin Neupane <sabin.neupane26@gmail.com>
|
||||
Mahdi Bagheri <1839491@gmail.com>
|
||||
Mok Kah Wai <taboosun1996@gmail.com>
|
||||
Lucas Saudon <lsaudon@gmail.com>
|
||||
Om Phatak <everythingoutdated@gmail.com>
|
||||
Amir Panahandeh <amirpanahandeh@gmail.com>
|
||||
Kostiantyn Sokolovskyi <sokolovskyi.konstantin@gmail.com>
|
||||
Valentin Vignal <valentin.vignal.dev@outlook.fr>
|
||||
Cedric Vanden Bosch <cedvdb@youvision.dev>
|
||||
Flop <kukuzuo@gmail.com>
|
||||
Dimil Kalathiya <kalathiyadimil@gmail.com>
|
||||
Nate Wilson <nate.w5687@gmail.com>
|
||||
dy0gu <support@dy0gu.com>
|
||||
Albert Wolszon <albert@wolszon.me>
|
||||
Mohammed Chahboun <m97.chahboun@gmail.com>
|
||||
Abdessalem Mohellebi <mohellebiabdessalem@gmail.com>
|
||||
Jin Jeongsu <jinjs.dev@gmail.com>
|
||||
Mairon Slusarz <maironlucaslusarz@gmail.com>
|
||||
Ricardo Dalarme <ricardodalarme@outlook.com>
|
||||
yiiim <ybz975218925@live.com>
|
||||
letrungdo <letrdo@gmail.com>
|
||||
1034
.flutter/CHANGELOG.md
Normal file
1034
.flutter/CHANGELOG.md
Normal file
File diff suppressed because it is too large
Load diff
37
.flutter/CODEOWNERS
Normal file
37
.flutter/CODEOWNERS
Normal file
|
|
@ -0,0 +1,37 @@
|
|||
# Below is a list of Flutter team members' GitHub handles who are
|
||||
# suggested reviewers for contributions to this repository.
|
||||
#
|
||||
# These names are just suggestions. It is fine to have your changes
|
||||
# reviewed by someone else.
|
||||
#
|
||||
# Use git ls-files '<pattern>' without a / prefix to see the list of matching files.
|
||||
|
||||
/engine/src/build/config/ios/** @vashworth
|
||||
/packages/flutter_tools/templates/module/ios/ @vashworth
|
||||
/packages/flutter_tools/templates/**/Podfile* @vashworth
|
||||
/packages/flutter_tools/lib/src/ios/ @vashworth
|
||||
|
||||
# Internal dev infra that is closely tied to team-infra.
|
||||
/bin/internal/** @jtmcdole
|
||||
/dev/tools/test/** @jtmcdole
|
||||
|
||||
# The following files define an Application Binary Interface (ABI) that must maintain
|
||||
# both forward and backward compatibility. Changes should be heavily
|
||||
# scrutinized as mistakes are irreversible.
|
||||
/engine/src/flutter/shell/platform/embedder/embedder.h @chinmaygarde @loic-sharma
|
||||
/engine/src/flutter/shell/platform/embedder/tests/embedder_frozen.h @chinmaygarde @loic-sharma
|
||||
|
||||
# Android team - keep this synced with .github/labeler.yml's team-android section.
|
||||
/docs/platform/android/** @flutter/android-reviewers
|
||||
/engine/src/flutter/shell/platform/android/** @flutter/android-reviewers
|
||||
/packages/flutter_tools/**/*android* @flutter/android-reviewers
|
||||
/packages/flutter_tools/**/*gradle* @flutter/android-reviewers
|
||||
|
||||
# iOS team - keep this synced with .github/labeler.yml's team-ios section.
|
||||
/engine/src/flutter/shell/platform/darwin/common/ @flutter/ios-reviewers
|
||||
/engine/src/flutter/shell/platform/darwin/ios/framework/ @flutter/ios-reviewers
|
||||
/packages/flutter_tools/**/ios/* @flutter/ios-reviewers
|
||||
/packages/flutter_tools/**/macos/* @flutter/ios-reviewers
|
||||
/packages/flutter_tools/**/*xcode* @flutter/ios-reviewers
|
||||
/packages/flutter_tools/**/*ios* @flutter/ios-reviewers
|
||||
/packages/flutter_tools/**/*macos* @flutter/ios-reviewers
|
||||
52
.flutter/CODE_OF_CONDUCT.md
Normal file
52
.flutter/CODE_OF_CONDUCT.md
Normal file
|
|
@ -0,0 +1,52 @@
|
|||
<!-- when updating this file also update https://github.com/flutter/.github/blob/main/CODE_OF_CONDUCT.md -->
|
||||
|
||||
# Code of conduct
|
||||
|
||||
The Flutter project expects Flutter's contributors to act professionally
|
||||
and respectfully. Flutter contributors are expected to maintain the safety
|
||||
and dignity of Flutter's social environments (such as GitHub and Discord).
|
||||
|
||||
Specifically:
|
||||
|
||||
* Respect people, their identities, their culture, and their work.
|
||||
* Be kind. Be courteous. Be welcoming.
|
||||
* Listen. Consider and acknowledge people's points before responding.
|
||||
|
||||
Should you experience anything that makes you feel unwelcome in Flutter's
|
||||
community, please contact [conduct@flutter.dev](mailto:conduct@flutter.dev)
|
||||
or, if you prefer, directly contact someone on the project, for instance
|
||||
[Hixie](mailto:ian@hixie.ch).
|
||||
|
||||
The Flutter project will not tolerate harassment in Flutter's
|
||||
community, even outside of Flutter's public communication channels.
|
||||
|
||||
## Conflict resolution
|
||||
|
||||
When multiple contributors disagree on the direction for a particular
|
||||
patch or the general direction of the project, the conflict should be
|
||||
resolved by communication. The people who disagree should get
|
||||
together, try to understand each other's points of view, and work to
|
||||
find a design that addresses everyone's concerns.
|
||||
|
||||
This is usually sufficient to resolve issues. If you cannot come to an
|
||||
agreement, ask for the advice of a more senior member of the project.
|
||||
|
||||
Be wary of agreement by attrition, where one person argues a point
|
||||
repeatedly until other participants give up in the interests of moving
|
||||
on. This is not conflict resolution, as it does not address everyone's
|
||||
concerns. Be wary of agreement by compromise, where two good competing
|
||||
solutions are merged into one mediocre solution. A conflict is
|
||||
addressed when the participants agree that the final solution is
|
||||
_better_ than all the conflicting proposals. Sometimes the solution is
|
||||
more work than either of the proposals. [Embrace the yak shave](./docs/contributing/Style-guide-for-Flutter-repo.md#lazy-programming).
|
||||
|
||||
## Questions
|
||||
|
||||
It's always ok to ask questions. Our systems are large, and nobody will be
|
||||
an expert in all the systems. Once you find the answer, document it in
|
||||
the first place you looked. That way, the next person will be brought
|
||||
up to speed even quicker.
|
||||
|
||||

|
||||
|
||||
Source: _[xkcd, May 2012](https://xkcd.com/1053/)_
|
||||
211
.flutter/CONTRIBUTING.md
Normal file
211
.flutter/CONTRIBUTING.md
Normal file
|
|
@ -0,0 +1,211 @@
|
|||
<!-- when editing this file also update https://github.com/flutter/.github/blob/main/CONTRIBUTING.md -->
|
||||
|
||||
Contributing to Flutter
|
||||
=======================
|
||||
|
||||
_tl;dr: join [Discord](./docs/contributing/Chat.md), be [courteous](CODE_OF_CONDUCT.md), follow the steps below to set up a development environment; if you stick around and contribute, you can [join the team](./docs/contributing/Contributor-access.md) and get commit access._
|
||||
|
||||
Welcome
|
||||
-------
|
||||
|
||||
We invite you to join the Flutter team, which is made up of volunteers and sponsored folk alike!
|
||||
There are many ways to contribute, including writing code, filing issues on GitHub, helping people
|
||||
on our mailing lists, our chat channels, or on Stack Overflow, helping to triage, reproduce, or
|
||||
fix bugs that people have filed, adding to our documentation,
|
||||
doing outreach about Flutter, or helping out in any other way.
|
||||
|
||||
We grant commit access (which includes full rights to the issue
|
||||
database, such as being able to edit labels) to people who have gained
|
||||
our trust and demonstrated a commitment to Flutter. For more details
|
||||
see the [Contributor access](./docs/contributing/Contributor-access.md)
|
||||
page in our docs.
|
||||
|
||||
We communicate primarily over GitHub and [Discord](./docs/contributing/Chat.md).
|
||||
|
||||
Before you get started, we encourage you to read these documents which describe some of our community norms:
|
||||
|
||||
1. [Our code of conduct](CODE_OF_CONDUCT.md), which stipulates explicitly
|
||||
that everyone must be gracious, respectful, and professional. This
|
||||
also documents our conflict resolution policy and encourages people
|
||||
to ask questions.
|
||||
|
||||
2. [Values](./docs/about/Values.md),
|
||||
which talks about what we care most about.
|
||||
|
||||
Helping out in the issue database
|
||||
---------------------------------
|
||||
|
||||
Triage is the process of going through bug reports and determining if they are valid, finding out
|
||||
how to reproduce them, catching duplicate reports, and generally making our issues list
|
||||
useful for our engineers.
|
||||
|
||||
If you want to help us triage, you are very welcome to do so!
|
||||
|
||||
1. Join the #hackers-triage [Discord channel](./docs/contributing/Chat.md).
|
||||
|
||||
2. Read [our code of conduct](CODE_OF_CONDUCT.md), which stipulates explicitly
|
||||
that everyone must be gracious, respectful, and professional. If you're helping out
|
||||
with triage, you are representing the Flutter team, and so you want to make sure to
|
||||
make a good impression!
|
||||
|
||||
3. Help out as described in our [triage guide](./docs/triage/README.md)
|
||||
You won't be able to add labels at first, so instead start by trying to
|
||||
do the other steps, e.g. trying to reproduce the problem and asking for people to
|
||||
provide enough details that you can reproduce the problem, pointing out duplicates,
|
||||
and so on. Chat on the #hackers-triage channel to let us know what you're up to!
|
||||
|
||||
4. Familiarize yourself with our
|
||||
[issue hygiene](./docs/contributing/issue_hygiene/README.md) wiki page,
|
||||
which covers the meanings of some important GitHub labels and
|
||||
milestones.
|
||||
|
||||
5. Once you've been doing this for a while, someone will invite you to the flutter-hackers
|
||||
team on GitHub and you'll be able to add labels too. See the
|
||||
[contributor access](./docs/contributing/Contributor-access.md) wiki
|
||||
page for details.
|
||||
|
||||
|
||||
Quality Assurance
|
||||
-----------------
|
||||
|
||||
One of the most useful tasks, closely related to triage, is finding and filing bug reports. Testing
|
||||
beta releases, looking for regressions, creating test cases, adding to our test suites, and
|
||||
other work along these lines can really drive the quality of the product up. Creating tests
|
||||
that increase our test coverage, writing tests for issues others have filed, all these tasks
|
||||
are really valuable contributions to open source projects.
|
||||
|
||||
If this interests you, you can jump in and submit bug reports without needing anyone's permission!
|
||||
The #quality-assurance channel on our [Discord server](./docs/contributing/Chat.md)
|
||||
is a good place to talk about what you're doing. We're especially eager for QA testing when
|
||||
we announce a beta release. See [quality assurance](./docs/releases/Quality-Assurance.md) for
|
||||
more details.
|
||||
|
||||
If you want to contribute test cases, you can also submit PRs. See the next section
|
||||
for how to set up your development environment, or ask in #hackers-test on Discord.
|
||||
|
||||
> As a personal side note, this is exactly the kind of work that first got me into open
|
||||
> source. I was a Quality Assurance volunteer on the Mozilla project, writing test cases for
|
||||
> browsers, long before I wrote a line of code for any open source project. —Hixie
|
||||
|
||||
|
||||
Developing for Flutter
|
||||
----------------------
|
||||
|
||||
If you prefer to write code, consider starting with the list of good
|
||||
first issues for [Flutter][flutter-gfi] or for [Flutter DevTools][devtools-gfi].
|
||||
Reference the respective sections below for further instructions.
|
||||
|
||||
[flutter-gfi]: https://github.com/flutter/flutter/issues?q=is%3Aopen+is%3Aissue+label%3A%22good+first+issue%22
|
||||
[devtools-gfi]: https://github.com/flutter/devtools/labels/good%20first%20issue
|
||||
|
||||
### Framework and Engine
|
||||
|
||||
To develop for Flutter, you will eventually need to become familiar
|
||||
with our processes and conventions. This section lists the documents
|
||||
that describe these methodologies. The following list is ordered: you
|
||||
are strongly recommended to go through these documents in the order
|
||||
presented.
|
||||
|
||||
1. [Setting up your engine development environment](./docs/engine/contributing/Setting-up-the-Engine-development-environment.md),
|
||||
which describes the steps you need to configure your computer to
|
||||
work on Flutter's engine. If you only want to write code for the
|
||||
Flutter framework, you can skip this step. Flutter's engine mainly
|
||||
uses C++, Java, and Objective-C.
|
||||
|
||||
2. [Setting up your framework development environment](./docs/contributing/Setting-up-the-Framework-development-environment.md),
|
||||
which describes the steps you need to configure your computer to
|
||||
work on Flutter's framework. Flutter's framework mainly uses Dart.
|
||||
|
||||
3. [Tree hygiene](./docs/contributing/Tree-hygiene.md),
|
||||
which covers how to land a PR, how to do code review, how to
|
||||
handle breaking changes, how to handle regressions, and how to
|
||||
handle post-commit test failures.
|
||||
|
||||
4. [Our style guide](./docs/contributing/Style-guide-for-Flutter-repo.md),
|
||||
which includes advice for designing APIs for Flutter, and how to
|
||||
format code in the framework.
|
||||
|
||||
5. [Flutter design doc template](https://flutter.dev/go/template),
|
||||
which should be used when proposing a new technical design. This is a good
|
||||
practice to do before coding more intricate changes.
|
||||
See also our [guidance for writing design docs](./docs/contributing/Design-Documents.md).
|
||||
|
||||
[](https://www.youtube.com/watch?v=4yBgOBAOx_A)
|
||||
|
||||
In addition to the documents, there is a video linked above on **How to contribute to Flutter**
|
||||
from the [Flutter](https://youtube.com/c/flutterdev) YouTube channel,
|
||||
there are many pages in [our docs](./docs/README.md),
|
||||
and an article [Contributing to Flutter: Getting Started](https://medium.com/@ayushbherwani/contributing-to-flutter-getting-started-a0db68cbcd5b)
|
||||
on Medium that may be of interest. For a curated list of pages see the sidebar
|
||||
on the wiki's home page. They are more or less listed in order of importance.
|
||||
|
||||
### DevTools
|
||||
|
||||
Contributing code to Dart & Flutter DevTools may be a good place to start if you are
|
||||
looking to dip your toes into contributing with a relatively low-cost setup or if you
|
||||
are generally excited about improving the Dart & Flutter developer experience.
|
||||
|
||||
Please see the DevTools [CONTRIBUTING.md](https://github.com/flutter/devtools/blob/master/CONTRIBUTING.md)
|
||||
guide to get started.
|
||||
|
||||
### Helping with existing PRs
|
||||
|
||||
Once you've learned the process of contributing, if you aren't sure what to work on next you
|
||||
might be interested in helping other developers complete their contributions by picking up an
|
||||
incomplete patch from the list of [issues with partial patches][has-partial-patch].
|
||||
|
||||
[has-partial-patch]: https://github.com/flutter/flutter/labels/has%20partial%20patch
|
||||
|
||||
Outreach
|
||||
--------
|
||||
|
||||
If your interests lie in the direction of developer relations and developer outreach,
|
||||
whether advocating for Flutter, answering questions in fora like
|
||||
[Stack Overflow](https://stackoverflow.com/questions/tagged/flutter?sort=Newest&filters=NoAnswers,NoAcceptedAnswer&edited=true)
|
||||
or [Reddit](https://www.reddit.com/r/flutterhelp/new/?f=flair_name%3A%22OPEN%22),
|
||||
or creating content for our [documentation](https://docs.flutter.dev/)
|
||||
or sites like [YouTube](https://www.youtube.com/results?search_query=flutter&sp=EgQIAxAB),
|
||||
the best starting point is to join the #hackers-devrel [Discord channel](./docs/contributing/Chat.md).
|
||||
From there, you can describe what you're interested in doing, and go ahead and do it!
|
||||
As others become familiar with your work, they may have feedback, be interested in
|
||||
collaborating, or want to coordinate their efforts with yours.
|
||||
|
||||
|
||||
API documentation
|
||||
-----------------
|
||||
|
||||
Another great area to contribute in is sample code and API documentation. If this is an area that interests you, join our
|
||||
[Discord](./docs/contributing/Chat.md) server and introduce yourself on the #hackers-devrel, #hackers-framework,
|
||||
or #hackers-engine channels, describing your area of interest. As our API docs are integrated into our source code, see the
|
||||
"developing for Flutter" section above for a guide on how to set up your developer environment.
|
||||
|
||||
To contribute API documentation, an excellent command of the English language is particularly helpful, as is a careful attention to detail.
|
||||
We have a [whole section in our style guide](./docs/contributing/Style-guide-for-Flutter-repo.md#documentation-dartdocs-javadocs-etc)
|
||||
that you should read before you write API documentation. It includes notes on the "Flutter Voice", such as our word and grammar conventions.
|
||||
|
||||
In general, a really productive way to improve documentation is to use Flutter and stop any time you have a question: find the answer, then
|
||||
document the answer where you first looked for it.
|
||||
|
||||
We also keep [a list of areas that need better API documentation](https://github.com/flutter/flutter/issues?q=is%3Aopen+is%3Aissue+label%3A%22d%3A+api+docs%22+sort%3Areactions-%2B1-desc).
|
||||
In many cases, we have written down what needs to be said in the relevant issue, we just haven't gotten around to doing it!
|
||||
|
||||
We're especially eager to add sample code and diagrams to our API documentation. Diagrams are generated from Flutter code that
|
||||
draws to a canvas, and stored in a [special repository](https://github.com/flutter/assets-for-api-docs/#readme). It can be a lot of fun
|
||||
to create new diagrams for the API docs.
|
||||
|
||||
|
||||
Releases
|
||||
--------
|
||||
|
||||
If you are interested in participating in our release process, which may involve writing release notes and blog posts, coordinating the actual
|
||||
generation of binaries, updating our release tooling, and other work of that nature, then reach out on the #hackers-releases
|
||||
channel of our [Discord](./docs/contributing/Chat.md) server.
|
||||
|
||||
|
||||
Social events in the contributor community
|
||||
------------------------------------------
|
||||
|
||||
Finally, one area where you could have a lot of impact is in contributing to social interactions among the Flutter contributor community itself.
|
||||
This could take the form of organizing weekly video chats on our Discord, or planning tech talks from contributors, for example.
|
||||
If this is an area that is of interest to you, please join our [Discord](./docs/contributing/Chat.md) and ping Hixie on the #hackers
|
||||
channel!
|
||||
991
.flutter/DEPS
Normal file
991
.flutter/DEPS
Normal file
|
|
@ -0,0 +1,991 @@
|
|||
# The dependencies referenced by the Flutter Engine.
|
||||
#
|
||||
# This file is referenced by the .gclient file at the root of the checkout.
|
||||
# To preview changes to the dependencies, update this file and run
|
||||
# `gclient sync`.
|
||||
#
|
||||
# When adding a new dependency, please update the top-level .gitignore file
|
||||
# to list the dependency's destination directory.
|
||||
|
||||
vars = {
|
||||
'android_git': 'https://android.googlesource.com',
|
||||
'chromium_git': 'https://chromium.googlesource.com',
|
||||
'swiftshader_git': 'https://swiftshader.googlesource.com',
|
||||
'dart_git': 'https://dart.googlesource.com',
|
||||
'flutter_git': 'https://flutter.googlesource.com',
|
||||
'skia_git': 'https://skia.googlesource.com',
|
||||
'llvm_git': 'https://llvm.googlesource.com',
|
||||
'skia_revision': '837be28dd21818d2169e1e6789e89e771a55f01d',
|
||||
|
||||
# WARNING: DO NOT EDIT canvaskit_cipd_instance MANUALLY
|
||||
# See `lib/web_ui/README.md` for how to roll CanvasKit to a new version.
|
||||
'canvaskit_cipd_instance': '61aeJQ9laGfEFF_Vlc_u0MCkqB6xb2hAYHRBxKH-Uw4C',
|
||||
|
||||
# Do not download the Emscripten SDK by default.
|
||||
# This prevents us from downloading the Emscripten toolchain for builds
|
||||
# which do not build for the web. This toolchain is needed to build CanvasKit
|
||||
# for the web engine.
|
||||
'download_emsdk': False,
|
||||
|
||||
# For experimental features some dependencies may only be avaialable in the master/main
|
||||
# channels. This variable is being set when CI is checking out the repository.
|
||||
'release_candidate': False,
|
||||
|
||||
# As Dart does, we use Fuchsia's GN and Clang toolchain. These revision
|
||||
# should be kept up to date with the revisions pulled by Dart.
|
||||
#
|
||||
# The list of revisions for these tools comes from Fuchsia, here:
|
||||
# https://fuchsia.googlesource.com/integration/+/HEAD/toolchain
|
||||
# If there are problems with the toolchain, contact fuchsia-toolchain@.
|
||||
#
|
||||
# Note, if you are *manually* rolling clang (i.e. the auto-roll is disabled)
|
||||
# you'll need to run post-submits (i.e. for Clang Tidy) in order to test that
|
||||
# updates to Clang Tidy will not turn the tree red.
|
||||
#
|
||||
# See https://github.com/flutter/flutter/wiki/Engine-pre‐submits-and-post‐submits#post-submit
|
||||
'clang_version': 'git_revision:8c7a2ce01a77c96028fe2c8566f65c45ad9408d3',
|
||||
|
||||
'reclient_version': 're_client_version:0.185.0.db415f21-gomaip',
|
||||
|
||||
'gcloud_version': 'version:2@444.0.0.chromium.3',
|
||||
|
||||
'esbuild_version': '0.19.5',
|
||||
|
||||
# When updating the Dart revision, ensure that all entries that are
|
||||
# dependencies of Dart are also updated to match the entries in the
|
||||
# Dart SDK's DEPS file for that revision of Dart. The DEPS file for
|
||||
# Dart is: https://github.com/dart-lang/sdk/blob/main/DEPS
|
||||
# You can use //tools/dart/create_updated_flutter_deps.py to produce
|
||||
# updated revision list of existing dependencies. You will need to
|
||||
# gclient sync before and after update deps to ensure all deps are updated.
|
||||
# updated revision list of existing dependencies.
|
||||
'dart_revision': '1a420a3f9a9ae64426d90b711cf1e6d73e953f23',
|
||||
|
||||
# WARNING: DO NOT EDIT MANUALLY
|
||||
# The lines between blank lines above and below are generated by a script. See create_updated_flutter_deps.py
|
||||
'dart_ai_rev': 'a3a196bf4773c7a7a9f93b6798232fb0d8220bc3',
|
||||
'dart_binaryen_rev': '6ec7b5f9c615d3b224c67ae221d6812c8f8e1a96',
|
||||
'dart_boringssl_rev': '9f138d05879fcf61965d1ea9d6c8b2cfc8bc12cb',
|
||||
'dart_core_rev': 'cbb485437c61d37753bcc98818beca54d5b38f69',
|
||||
'dart_devtools_rev': 'c13b1e172794a71ffe9436a5cfe0a0a9d7509d78',
|
||||
'dart_ecosystem_rev': 'eac66d93142907b39f2271647c111f36ff3365b9',
|
||||
'dart_http_rev': 'a22386e9c390290c916d1c53a3d3c1447ec120ce',
|
||||
'dart_i18n_rev': 'dd8a792a8492370a594706c8304d2eb8db844d7a',
|
||||
'dart_libprotobuf_rev': '24487dd1045c7f3d64a21f38a3f0c06cc4cf2edb',
|
||||
'dart_perfetto_rev': '13ce0c9e13b0940d2476cd0cff2301708a9a2e2b',
|
||||
'dart_protobuf_gn_rev': 'ca669f79945418f6229e4fef89b666b2a88cbb10',
|
||||
'dart_protobuf_rev': '9e30258e0aa6a6430ee36c84b75308a9702fde42',
|
||||
'dart_pub_rev': 'bc20c071806565606f6650e0260104b4a5c14fa8',
|
||||
'dart_sync_http_rev': '6666fff944221891182e1f80bf56569338164d72',
|
||||
'dart_tools_rev': '87270e60a5c92f127acb29d6e0dbc2d920c3f669',
|
||||
'dart_vector_math_rev': '70a9a2cb610d040b247f3ca2cd70a94c1c6f6f23',
|
||||
'dart_web_rev': '35fc98dd8f9da175ed0a2dcf246299e922e1e1e2',
|
||||
'dart_webdev_rev': '234e44c2ba0aa6cee5a36026538ca89457bf0d55',
|
||||
'dart_webdriver_rev': '09104f459ed834d48b132f6b7734923b1fbcf2e9',
|
||||
'dart_webkit_inspection_protocol_rev': '0f7685804d77ec02c6564d7ac1a6c8a2341c5bdf',
|
||||
|
||||
'ocmock_rev': 'c4ec0e3a7a9f56cfdbd0aa01f4f97bb4b75c5ef8', # v3.7.1
|
||||
|
||||
# Download a prebuilt Dart SDK by default
|
||||
'download_dart_sdk': True,
|
||||
|
||||
# Download a prebuilt esbuild by default
|
||||
'download_esbuild': True,
|
||||
|
||||
# Checkout Android dependencies only on platforms where we build for Android targets.
|
||||
'download_android_deps': 'host_os == "mac" or (host_os == "linux" and host_cpu == "x64")',
|
||||
|
||||
# Checkout Java dependencies only on platforms that do not have java installed on path.
|
||||
'download_jdk': True,
|
||||
|
||||
# Checkout Windows dependencies only if we are building on Windows.
|
||||
'download_windows_deps' : 'host_os == "win"',
|
||||
|
||||
# Checkout Linux dependencies only when building on Linux.
|
||||
'download_linux_deps': 'host_os == "linux"',
|
||||
|
||||
# Checkout Fuchsia dependencies only on Linux. This is the umbrella flag which
|
||||
# controls the behavior of all fuchsia related flags. I.e. any fuchsia related
|
||||
# logic or condition may not work if this flag is False.
|
||||
# TODO(zijiehe): Make this condition more strict to only download fuchsia
|
||||
# dependencies when necessary: b/40935282
|
||||
'download_fuchsia_deps': 'host_os == "linux"',
|
||||
# Downloads the fuchsia SDK as listed in fuchsia_sdk_path var. This variable
|
||||
# is currently only used for the Fuchsia LSC process and is not intended for
|
||||
# local development.
|
||||
'download_fuchsia_sdk': False,
|
||||
'fuchsia_sdk_path': '',
|
||||
# Whether to download and run the Fuchsia emulator locally to test Fuchsia
|
||||
# builds.
|
||||
'run_fuchsia_emu': False,
|
||||
|
||||
# An LLVM backend needs LLVM binaries and headers. To avoid build time
|
||||
# increases we can use prebuilts. We don't want to download this on every
|
||||
# CQ/CI bot nor do we want the average Dart developer to incur that cost.
|
||||
# So by default we will not download prebuilts. This variable is needed in
|
||||
# the flutter engine to ensure that Dart gn has access to it as well.
|
||||
"checkout_llvm": False,
|
||||
|
||||
# Setup Git hooks by default.
|
||||
'setup_githooks': True,
|
||||
|
||||
# When this is true, the Flutter Engine's configuration files and scripts for
|
||||
# RBE will be downloaded from CIPD. This option is only usable by Googlers.
|
||||
'use_rbe': False,
|
||||
|
||||
# Upstream URLs for third party dependencies, used in
|
||||
# determining common ancestor commit for vulnerability scanning
|
||||
# prefixed with 'upstream_' in order to be identified by parsing tool.
|
||||
# The vulnerability database being used in this scan can be browsed
|
||||
# using this UI https://osv.dev/list
|
||||
# If a new dependency needs to be added, the upstream (non-mirrored)
|
||||
# git URL for that dependency should be added to this list
|
||||
# with the key-value pair being:
|
||||
# 'upstream_[dep name from last slash and before .git in URL]':'[git URL]'
|
||||
# example:
|
||||
"upstream_abseil-cpp": "https://github.com/abseil/abseil-cpp.git",
|
||||
"upstream_angle": "https://github.com/google/angle.git",
|
||||
"upstream_archive": "https://github.com/brendan-duncan/archive.git",
|
||||
"upstream_benchmark": "https://github.com/google/benchmark.git",
|
||||
"upstream_boringssl": "https://github.com/openssl/openssl.git",
|
||||
"upstream_brotli": "https://github.com/google/brotli.git",
|
||||
"upstream_dart_style": "https://github.com/dart-lang/dart_style.git",
|
||||
"upstream_dartdoc": "https://github.com/dart-lang/dartdoc.git",
|
||||
"upstream_equatable": "https://github.com/felangel/equatable.git",
|
||||
"upstream_ffi": "https://github.com/dart-lang/ffi.git",
|
||||
"upstream_flatbuffers": "https://github.com/google/flatbuffers.git",
|
||||
"upstream_freetype2": "https://gitlab.freedesktop.org/freetype/freetype.git",
|
||||
"upstream_gcloud": "https://github.com/dart-lang/gcloud.git",
|
||||
"upstream_glfw": "https://github.com/glfw/glfw.git",
|
||||
"upstream_googleapis": "https://github.com/google/googleapis.dart.git",
|
||||
"upstream_googletest": "https://github.com/google/googletest.git",
|
||||
"upstream_gtest-parallel": "https://github.com/google/gtest-parallel.git",
|
||||
"upstream_harfbuzz": "https://github.com/harfbuzz/harfbuzz.git",
|
||||
"upstream_http": "https://github.com/dart-lang/http.git",
|
||||
"upstream_icu": "https://github.com/unicode-org/icu.git",
|
||||
"upstream_imgui": "https://github.com/ocornut/imgui.git",
|
||||
"upstream_inja": "https://github.com/pantor/inja.git",
|
||||
"upstream_json": "https://github.com/nlohmann/json.git",
|
||||
"upstream_libcxx": "https://github.com/llvm-mirror/libcxx.git",
|
||||
"upstream_libcxxabi": "https://github.com/llvm-mirror/libcxxabi.git",
|
||||
"upstream_libexpat": "https://github.com/libexpat/libexpat.git",
|
||||
"upstream_libjpeg-turbo": "https://github.com/libjpeg-turbo/libjpeg-turbo.git",
|
||||
"upstream_libpng": "https://github.com/glennrp/libpng.git",
|
||||
"upstream_libtess2": "https://github.com/memononen/libtess2.git",
|
||||
"upstream_libwebp": "https://chromium.googlesource.com/webm/libwebp.git",
|
||||
"upstream_leak_tracker": "https://github.com/dart-lang/leak_tracker.git",
|
||||
"upstream_mockito": "https://github.com/dart-lang/mockito.git",
|
||||
"upstream_ocmock": "https://github.com/erikdoe/ocmock.git",
|
||||
"upstream_packages": "https://github.com/flutter/packages.git",
|
||||
"upstream_process_runner": "https://github.com/google/process_runner.git",
|
||||
"upstream_process": "https://github.com/google/process.dart.git",
|
||||
"upstream_protobuf": "https://github.com/google/protobuf.dart.git",
|
||||
"upstream_pub_semver": "https://github.com/dart-lang/pub_semver.git",
|
||||
"upstream_pub": "https://github.com/dart-lang/pub.git",
|
||||
"upstream_pyyaml": "https://github.com/yaml/pyyaml.git",
|
||||
"upstream_quiver-dart": "https://github.com/google/quiver-dart.git",
|
||||
"upstream_rapidjson": "https://github.com/Tencent/rapidjson.git",
|
||||
"upstream_sdk": "https://github.com/dart-lang/sdk.git",
|
||||
"upstream_shaderc": "https://github.com/google/shaderc.git",
|
||||
"upstream_shelf": "https://github.com/dart-lang/shelf.git",
|
||||
"upstream_skia": "https://skia.googlesource.com/skia.git",
|
||||
"upstream_sqlite": "https://github.com/sqlite/sqlite.git",
|
||||
"upstream_SwiftShader": "https://swiftshader.googlesource.com/SwiftShader.git",
|
||||
"upstream_tar": "https://github.com/simolus3/tar.git",
|
||||
"upstream_test": "https://github.com/dart-lang/test.git",
|
||||
"upstream_usage": "https://github.com/dart-lang/usage.git",
|
||||
"upstream_vector_math": "https://github.com/google/vector_math.dart.git",
|
||||
"upstream_VulkanMemoryAllocator": "https://github.com/GPUOpen-LibrariesAndSDKs/VulkanMemoryAllocator.git",
|
||||
"upstream_webdev": "https://github.com/dart-lang/webdev.git",
|
||||
"upstream_webkit_inspection_protocol": "https://github.com/google/webkit_inspection_protocol.dart.git",
|
||||
"upstream_wuffs-mirror-release-c": "https://github.com/google/wuffs-mirror-release-c.git",
|
||||
"upstream_yapf": "https://github.com/google/yapf.git",
|
||||
"upstream_zlib": "https://github.com/madler/zlib.git",
|
||||
|
||||
# The version / instance id of the cipd:chromium/fuchsia/test-scripts which
|
||||
# will be used altogether with fuchsia-sdk to setup the build / test
|
||||
# environment.
|
||||
'fuchsia_test_scripts_version': 'nR2ESa1Gd8yPcWo063yCqGBh6aAsLcwhgsRPFU0I0v0C',
|
||||
|
||||
# The version / instance id of the cipd:chromium/fuchsia/gn-sdk which will be
|
||||
# used altogether with fuchsia-sdk to generate gn based build rules.
|
||||
'fuchsia_gn_sdk_version': 'NAEC5tfgSl8g94nwpKsGtNMEdbiAlgwrNa9XQ7cIcbcC',
|
||||
}
|
||||
|
||||
gclient_gn_args_file = 'engine/src/flutter/third_party/dart/build/config/gclient_args.gni'
|
||||
gclient_gn_args = [
|
||||
'checkout_llvm'
|
||||
]
|
||||
|
||||
# Only these hosts are allowed for dependencies in this DEPS file.
|
||||
# If you need to add a new host, contact chrome infrastructure team.
|
||||
allowed_hosts = [
|
||||
'boringssl.googlesource.com',
|
||||
'chrome-infra-packages.appspot.com',
|
||||
'chromium.googlesource.com',
|
||||
'dart.googlesource.com',
|
||||
'flutter.googlesource.com',
|
||||
'llvm.googlesource.com',
|
||||
'skia.googlesource.com',
|
||||
'swiftshader.googlesource.com',
|
||||
]
|
||||
|
||||
deps = {
|
||||
'engine/src/flutter/third_party/depot_tools':
|
||||
Var('chromium_git') + '/chromium/tools/depot_tools.git' + '@' + '580b4ff3f5cd0dcaa2eacda28cefe0f45320e8f7',
|
||||
|
||||
'engine/src/flutter/third_party/rapidjson':
|
||||
Var('flutter_git') + '/third_party/rapidjson' + '@' + 'ef3564c5c8824989393b87df25355baf35ff544b',
|
||||
|
||||
'engine/src/flutter/third_party/harfbuzz':
|
||||
Var('flutter_git') + '/third_party/harfbuzz' + '@' + 'ea6a172f84f2cbcfed803b5ae71064c7afb6b5c2',
|
||||
|
||||
'engine/src/flutter/third_party/libcxx':
|
||||
Var('llvm_git') + '/llvm-project/libcxx' + '@' + 'bd557f6f764d1e40b62528a13b124ce740624f8f',
|
||||
|
||||
'engine/src/flutter/third_party/libcxxabi':
|
||||
Var('llvm_git') + '/llvm-project/libcxxabi' + '@' + 'a4dda1589d37a7e4b4f7a81ebad01b1083f2e726',
|
||||
|
||||
'engine/src/flutter/third_party/llvm_libc':
|
||||
Var('llvm_git') + '/llvm-project/libc' + '@' + '5af39a19a1ad51ce93972cdab206dcd3ff9b6afa',
|
||||
|
||||
'engine/src/flutter/third_party/glfw':
|
||||
Var('flutter_git') + '/third_party/glfw' + '@' + 'dd8a678a66f1967372e5a5e3deac41ebf65ee127',
|
||||
|
||||
'engine/src/flutter/third_party/shaderc':
|
||||
Var('chromium_git') + '/external/github.com/google/shaderc' + '@' + '37e25539ce199ecaf19fb7f7d27818716d36686d',
|
||||
|
||||
'engine/src/flutter/third_party/vulkan-deps':
|
||||
Var('chromium_git') + '/vulkan-deps' + '@' + 'a9e2ca3b57aba86a22a2df1b84bf12f8cc98806e',
|
||||
|
||||
'engine/src/flutter/third_party/flatbuffers':
|
||||
Var('chromium_git') + '/external/github.com/google/flatbuffers' + '@' + '067bfdbde9b10c1beb5d6b02d67ae9db8b96f736',
|
||||
|
||||
'engine/src/flutter/third_party/icu':
|
||||
Var('chromium_git') + '/chromium/deps/icu.git' + '@' + 'a86a32e67b8d1384b33f8fa48c83a6079b86f8cd',
|
||||
|
||||
'engine/src/flutter/third_party/gtest-parallel':
|
||||
Var('chromium_git') + '/external/github.com/google/gtest-parallel' + '@' + '38191e2733d7cbaeaef6a3f1a942ddeb38a2ad14',
|
||||
|
||||
'engine/src/flutter/third_party/benchmark':
|
||||
Var('chromium_git') + '/external/github.com/google/benchmark' + '@' + '431abd149fd76a072f821913c0340137cc755f36',
|
||||
|
||||
'engine/src/flutter/third_party/googletest':
|
||||
Var('chromium_git') + '/external/github.com/google/googletest' + '@' + '7f036c5563af7d0329f20e8bb42effb04629f0c0',
|
||||
|
||||
'engine/src/flutter/third_party/re2':
|
||||
Var('chromium_git') + '/external/github.com/google/re2' + '@' + 'c84a140c93352cdabbfb547c531be34515b12228',
|
||||
|
||||
'engine/src/flutter/third_party/brotli':
|
||||
Var('skia_git') + '/external/github.com/google/brotli.git' + '@' + '350100a5bb9d9671aca85213b2ec7a70a361b0cd',
|
||||
|
||||
'engine/src/flutter/third_party/yapf':
|
||||
Var('flutter_git') + '/third_party/yapf' + '@' + '212c5b5ad8e172d2d914ae454c121c89cccbcb35',
|
||||
|
||||
'engine/src/flutter/third_party/boringssl/src':
|
||||
'https://boringssl.googlesource.com/boringssl.git' + '@' + Var('dart_boringssl_rev'),
|
||||
|
||||
'engine/src/flutter/third_party/protobuf':
|
||||
Var('flutter_git') + '/third_party/protobuf' + '@' + Var('dart_libprotobuf_rev'),
|
||||
|
||||
# TODO(67373): These are temporarily checked in, but this dep can be restored
|
||||
# once the buildmoot is completed.
|
||||
# 'engine/src/flutter/build/secondary/third_party/protobuf':
|
||||
# Var('flutter_git') + '/third_party/protobuf-gn' + '@' + Var('dart_protobuf_gn_rev'),
|
||||
|
||||
'engine/src/flutter/third_party/dart':
|
||||
Var('dart_git') + '/sdk.git' + '@' + Var('dart_revision'),
|
||||
|
||||
# WARNING: Unused Dart dependencies in the list below till "WARNING:" marker are removed automatically - see create_updated_flutter_deps.py.
|
||||
|
||||
'engine/src/flutter/third_party/dart/third_party/binaryen/src':
|
||||
Var('chromium_git') + '/external/github.com/WebAssembly/binaryen.git' + '@' + Var('dart_binaryen_rev'),
|
||||
|
||||
'engine/src/flutter/third_party/dart/third_party/devtools':
|
||||
{'dep_type': 'cipd', 'packages': [{'package': 'dart/third_party/flutter/devtools', 'version': 'git_revision:c13b1e172794a71ffe9436a5cfe0a0a9d7509d78'}]},
|
||||
|
||||
'engine/src/flutter/third_party/dart/third_party/perfetto/src':
|
||||
Var('android_git') + '/platform/external/perfetto' + '@' + Var('dart_perfetto_rev'),
|
||||
|
||||
'engine/src/flutter/third_party/dart/third_party/pkg/ai':
|
||||
Var('dart_git') + '/ai.git' + '@' + Var('dart_ai_rev'),
|
||||
|
||||
'engine/src/flutter/third_party/dart/third_party/pkg/core':
|
||||
Var('dart_git') + '/core.git' + '@' + Var('dart_core_rev'),
|
||||
|
||||
'engine/src/flutter/third_party/dart/third_party/pkg/dart_style':
|
||||
Var('dart_git') + '/dart_style.git@e8190bf2242654daee7ebf21fd6d8c8046989822',
|
||||
|
||||
'engine/src/flutter/third_party/dart/third_party/pkg/dartdoc':
|
||||
Var('dart_git') + '/dartdoc.git@6d1aa6f5045c33d3723aba05e3e0dc1403b763c0',
|
||||
|
||||
'engine/src/flutter/third_party/dart/third_party/pkg/ecosystem':
|
||||
Var('dart_git') + '/ecosystem.git' + '@' + Var('dart_ecosystem_rev'),
|
||||
|
||||
'engine/src/flutter/third_party/dart/third_party/pkg/http':
|
||||
Var('dart_git') + '/http.git' + '@' + Var('dart_http_rev'),
|
||||
|
||||
'engine/src/flutter/third_party/dart/third_party/pkg/i18n':
|
||||
Var('dart_git') + '/i18n.git' + '@' + Var('dart_i18n_rev'),
|
||||
|
||||
'engine/src/flutter/third_party/dart/third_party/pkg/leak_tracker':
|
||||
Var('dart_git') + '/leak_tracker.git@f5620600a5ce1c44f65ddaa02001e200b096e14c',
|
||||
|
||||
'engine/src/flutter/third_party/dart/third_party/pkg/native':
|
||||
Var('dart_git') + '/native.git@9a11537944f2ee295df46104624fb714c3dd7741',
|
||||
|
||||
'engine/src/flutter/third_party/dart/third_party/pkg/protobuf':
|
||||
Var('dart_git') + '/protobuf.git' + '@' + Var('dart_protobuf_rev'),
|
||||
|
||||
'engine/src/flutter/third_party/dart/third_party/pkg/pub':
|
||||
Var('dart_git') + '/pub.git' + '@' + Var('dart_pub_rev'),
|
||||
|
||||
'engine/src/flutter/third_party/dart/third_party/pkg/shelf':
|
||||
Var('dart_git') + '/shelf.git@dd830a0338b31bee92fe7ebc20b9bb963403b6b0',
|
||||
|
||||
'engine/src/flutter/third_party/dart/third_party/pkg/sync_http':
|
||||
Var('dart_git') + '/sync_http.git' + '@' + Var('dart_sync_http_rev'),
|
||||
|
||||
'engine/src/flutter/third_party/dart/third_party/pkg/tar':
|
||||
Var('dart_git') + '/external/github.com/simolus3/tar.git@13479f7c2a18f499e840ad470cfcca8c579f6909',
|
||||
|
||||
'engine/src/flutter/third_party/dart/third_party/pkg/test':
|
||||
Var('dart_git') + '/test.git@f95c0f5c10fa9af35014117cb00ec17d2a117265',
|
||||
|
||||
'engine/src/flutter/third_party/dart/third_party/pkg/tools':
|
||||
Var('dart_git') + '/tools.git' + '@' + Var('dart_tools_rev'),
|
||||
|
||||
'engine/src/flutter/third_party/dart/third_party/pkg/vector_math':
|
||||
Var('dart_git') + '/external/github.com/google/vector_math.dart.git' + '@' + Var('dart_vector_math_rev'),
|
||||
|
||||
'engine/src/flutter/third_party/dart/third_party/pkg/web':
|
||||
Var('dart_git') + '/web.git' + '@' + Var('dart_web_rev'),
|
||||
|
||||
'engine/src/flutter/third_party/dart/third_party/pkg/webdev':
|
||||
Var('dart_git') + '/webdev.git' + '@' + Var('dart_webdev_rev'),
|
||||
|
||||
'engine/src/flutter/third_party/dart/third_party/pkg/webdriver':
|
||||
Var('dart_git') + '/external/github.com/google/webdriver.dart.git' + '@' + Var('dart_webdriver_rev'),
|
||||
|
||||
'engine/src/flutter/third_party/dart/third_party/pkg/webkit_inspection_protocol':
|
||||
Var('dart_git') + '/external/github.com/google/webkit_inspection_protocol.dart.git' + '@' + Var('dart_webkit_inspection_protocol_rev'),
|
||||
|
||||
'engine/src/flutter/third_party/dart/tools/sdks/dart-sdk':
|
||||
{'dep_type': 'cipd', 'packages': [{'package': 'dart/dart-sdk/${{platform}}', 'version': 'git_revision:782552bdddc112c62db28ec7e9b2763f4457a3ea'}]},
|
||||
|
||||
# WARNING: end of dart dependencies list that is cleaned up automatically - see create_updated_flutter_deps.py.
|
||||
|
||||
# Prebuilt Dart SDK of the same revision as the Dart SDK source checkout
|
||||
'engine/src/flutter/prebuilts/linux-x64/dart-sdk': {
|
||||
'packages': [
|
||||
{
|
||||
'package': 'flutter/dart-sdk/linux-amd64',
|
||||
'version': 'git_revision:'+Var('dart_revision')
|
||||
}
|
||||
],
|
||||
'dep_type': 'cipd',
|
||||
'condition': 'host_os == "linux" and download_dart_sdk'
|
||||
},
|
||||
'engine/src/flutter/prebuilts/linux-arm64/dart-sdk': {
|
||||
'packages': [
|
||||
{
|
||||
'package': 'flutter/dart-sdk/linux-arm64',
|
||||
'version': 'git_revision:'+Var('dart_revision')
|
||||
}
|
||||
],
|
||||
'dep_type': 'cipd',
|
||||
'condition': 'host_os == "linux" and download_dart_sdk'
|
||||
},
|
||||
'engine/src/flutter/prebuilts/macos-x64/dart-sdk': {
|
||||
'packages': [
|
||||
{
|
||||
'package': 'flutter/dart-sdk/mac-amd64',
|
||||
'version': 'git_revision:'+Var('dart_revision')
|
||||
}
|
||||
],
|
||||
'dep_type': 'cipd',
|
||||
'condition': 'host_os == "mac" and download_dart_sdk'
|
||||
},
|
||||
'engine/src/flutter/prebuilts/macos-arm64/dart-sdk': {
|
||||
'packages': [
|
||||
{
|
||||
'package': 'flutter/dart-sdk/mac-arm64',
|
||||
'version': 'git_revision:'+Var('dart_revision')
|
||||
}
|
||||
],
|
||||
'dep_type': 'cipd',
|
||||
'condition': 'host_os == "mac" and download_dart_sdk'
|
||||
},
|
||||
'engine/src/flutter/prebuilts/windows-x64/dart-sdk': {
|
||||
'packages': [
|
||||
{
|
||||
'package': 'flutter/dart-sdk/windows-amd64',
|
||||
'version': 'git_revision:'+Var('dart_revision')
|
||||
}
|
||||
],
|
||||
'dep_type': 'cipd',
|
||||
'condition': 'host_os == "win" and download_dart_sdk'
|
||||
},
|
||||
'engine/src/flutter/prebuilts/windows-arm64/dart-sdk': {
|
||||
'packages': [
|
||||
{
|
||||
'package': 'flutter/dart-sdk/windows-arm64',
|
||||
'version': 'git_revision:'+Var('dart_revision')
|
||||
}
|
||||
],
|
||||
'dep_type': 'cipd',
|
||||
'condition': 'host_os == "win" and download_dart_sdk'
|
||||
},
|
||||
|
||||
# esbuild download
|
||||
'engine/src/flutter/prebuilts/linux-x64/esbuild': {
|
||||
'packages': [
|
||||
{
|
||||
'package': 'flutter/tools/esbuild/linux-amd64',
|
||||
'version': Var('esbuild_version')
|
||||
}
|
||||
],
|
||||
'dep_type': 'cipd',
|
||||
'condition': 'host_os == "linux" and download_esbuild'
|
||||
},
|
||||
'engine/src/flutter/prebuilts/macos-x64/esbuild': {
|
||||
'packages': [
|
||||
{
|
||||
'package': 'flutter/tools/esbuild/mac-amd64',
|
||||
'version': Var('esbuild_version')
|
||||
}
|
||||
],
|
||||
'dep_type': 'cipd',
|
||||
'condition': 'host_os == "mac" and download_esbuild'
|
||||
},
|
||||
'engine/src/flutter/prebuilts/macos-arm64/esbuild': {
|
||||
'packages': [
|
||||
{
|
||||
'package': 'flutter/tools/esbuild/mac-arm64',
|
||||
'version': Var('esbuild_version')
|
||||
}
|
||||
],
|
||||
'dep_type': 'cipd',
|
||||
'condition': 'host_os == "mac" and download_esbuild'
|
||||
},
|
||||
'engine/src/flutter/prebuilts/windows-x64/esbuild': {
|
||||
'packages': [
|
||||
{
|
||||
'package': 'flutter/tools/esbuild/windows-amd64',
|
||||
'version': Var('esbuild_version')
|
||||
}
|
||||
],
|
||||
'dep_type': 'cipd',
|
||||
'condition': 'host_os == "win" and download_esbuild'
|
||||
},
|
||||
|
||||
'engine/src/flutter/third_party/expat':
|
||||
Var('chromium_git') + '/external/github.com/libexpat/libexpat.git' + '@' + '8e49998f003d693213b538ef765814c7d21abada',
|
||||
|
||||
'engine/src/flutter/third_party/freetype2':
|
||||
Var('flutter_git') + '/third_party/freetype2' + '@' + 'bfc3453fdc85d87b45c896f68bf2e49ebdaeef0a',
|
||||
|
||||
'engine/src/flutter/third_party/skia':
|
||||
Var('skia_git') + '/skia.git' + '@' + Var('skia_revision'),
|
||||
|
||||
'engine/src/flutter/third_party/ocmock':
|
||||
Var('flutter_git') + '/third_party/ocmock' + '@' + Var('ocmock_rev'),
|
||||
|
||||
'engine/src/flutter/third_party/libjpeg-turbo/src':
|
||||
Var('flutter_git') + '/third_party/libjpeg-turbo' + '@' + '0fb821f3b2e570b2783a94ccd9a2fb1f4916ae9f',
|
||||
|
||||
'engine/src/flutter/third_party/libpng':
|
||||
Var('flutter_git') + '/third_party/libpng' + '@' + 'f139fd5d80944f5453b079672e50f32ca98ef076',
|
||||
|
||||
'engine/src/flutter/third_party/libwebp':
|
||||
Var('chromium_git') + '/webm/libwebp.git' + '@' + 'ca332209cb5567c9b249c86788cb2dbf8847e760', # 1.3.2
|
||||
|
||||
'engine/src/flutter/third_party/wuffs':
|
||||
Var('skia_git') + '/external/github.com/google/wuffs-mirror-release-c.git' + '@' + '600cd96cf47788ee3a74b40a6028b035c9fd6a61',
|
||||
|
||||
'engine/src/flutter/third_party/zlib':
|
||||
Var('chromium_git') + '/chromium/src/third_party/zlib.git' + '@' + '7d77fb7fd66d8a5640618ad32c71fdeb7d3e02df',
|
||||
|
||||
'engine/src/flutter/third_party/cpu_features/src':
|
||||
Var('chromium_git') + '/external/github.com/google/cpu_features.git' + '@' + '936b9ab5515dead115606559502e3864958f7f6e',
|
||||
|
||||
'engine/src/flutter/third_party/inja':
|
||||
Var('flutter_git') + '/third_party/inja' + '@' + '88bd6112575a80d004e551c98cf956f88ff4d445',
|
||||
|
||||
'engine/src/flutter/third_party/libtess2':
|
||||
Var('flutter_git') + '/third_party/libtess2' + '@' + '725e5e08ec8751477565f1d603fd7eb9058c277c',
|
||||
|
||||
'engine/src/flutter/third_party/sqlite':
|
||||
Var('flutter_git') + '/third_party/sqlite' + '@' + '0f61bd2023ba94423b4e4c8cfb1a23de1fe6a21c',
|
||||
|
||||
'engine/src/flutter/third_party/pyyaml':
|
||||
Var('flutter_git') + '/third_party/pyyaml.git' + '@' + '03c67afd452cdff45b41bfe65e19a2fb5b80a0e8',
|
||||
|
||||
'engine/src/flutter/third_party/swiftshader':
|
||||
Var('swiftshader_git') + '/SwiftShader.git' + '@' + '794b0cfce1d828d187637e6d932bae484fbe0976',
|
||||
|
||||
'engine/src/flutter/third_party/angle':
|
||||
Var('flutter_git') + '/third_party/angle' + '@' + '6950c6c99fa1a2d653922871ede6679d74840289',
|
||||
|
||||
'engine/src/flutter/third_party/vulkan_memory_allocator':
|
||||
Var('chromium_git') + '/external/github.com/GPUOpen-LibrariesAndSDKs/VulkanMemoryAllocator' + '@' + 'c788c52156f3ef7bc7ab769cb03c110a53ac8fcb',
|
||||
|
||||
'engine/src/third_party/abseil-cpp':
|
||||
Var('chromium_git') + '/chromium/src/third_party/abseil-cpp' + '@' + '564023aa53767b5f60b3a556f0a025b7b7e8241e',
|
||||
|
||||
# Dart packages
|
||||
'engine/src/flutter/third_party/pkg/archive':
|
||||
Var('chromium_git') + '/external/github.com/brendan-duncan/archive.git' + '@' + 'f1d164f8f5d8aea0be620a9b1e8d300b75a29388', # 3.6.1
|
||||
|
||||
'engine/src/flutter/third_party/pkg/equatable':
|
||||
Var('flutter_git') + '/third_party/equatable.git' + '@' + '2117551ff3054f8edb1a58f63ffe1832a8d25623', # 2.0.5
|
||||
|
||||
'engine/src/flutter/third_party/pkg/flutter_packages':
|
||||
Var('flutter_git') + '/mirrors/packages' + '@' + '25454e63851fe7933f04d025606e68c1eac4fe0f', # various
|
||||
|
||||
'engine/src/flutter/third_party/pkg/gcloud':
|
||||
Var('flutter_git') + '/third_party/gcloud.git' + '@' + 'a5276b85c4714378e84b1fb478b8feeeb686ac26', # 0.8.6-dev
|
||||
|
||||
'engine/src/flutter/third_party/pkg/googleapis':
|
||||
Var('flutter_git') + '/third_party/googleapis.dart.git' + '@' + '526011f56d98eab183cc6075ee1392e8303e43e2', # various
|
||||
|
||||
'engine/src/flutter/third_party/pkg/io':
|
||||
Var('flutter_git') + '/third_party/io.git' + '@' + '997a6243aad20af4238147d9ec00bf638b9169af', # 1.0.5-wip
|
||||
|
||||
'engine/src/flutter/third_party/pkg/node_preamble':
|
||||
Var('flutter_git') + '/third_party/node_preamble.dart.git' + '@' + '47245865175929ec452d8058e563c267b64c3d64', # 2.0.2
|
||||
|
||||
'engine/src/flutter/third_party/pkg/process':
|
||||
Var('dart_git') + '/process.dart' + '@' + '0c9aeac86dcc4e3a6cf760b76fed507107e244d5', # 4.2.1
|
||||
|
||||
'engine/src/flutter/third_party/pkg/process_runner':
|
||||
Var('flutter_git') + '/third_party/process_runner.git' + '@' + 'f24c69efdcaf109168f23d381fa281453d2bc9b1', # 4.1.2
|
||||
|
||||
'engine/src/flutter/third_party/pkg/vector_math':
|
||||
Var('dart_git') + '/external/github.com/google/vector_math.dart.git' + '@' + '0a5fd95449083d404df9768bc1b321b88a7d2eef', # 2.1.0
|
||||
|
||||
'engine/src/flutter/third_party/imgui':
|
||||
Var('flutter_git') + '/third_party/imgui.git' + '@' + '3ea0fad204e994d669f79ed29dcaf61cd5cb571d',
|
||||
|
||||
'engine/src/flutter/third_party/json':
|
||||
Var('flutter_git') + '/third_party/json.git' + '@' + '17d9eacd248f58b73f4d1be518ef649fe2295642',
|
||||
|
||||
'engine/src/flutter/third_party/gradle': {
|
||||
'packages': [
|
||||
{
|
||||
# See tools/gradle/README.md for update instructions.
|
||||
# Version here means the CIPD tag.
|
||||
'version': 'version:8.11.1',
|
||||
'package': 'flutter/gradle'
|
||||
}
|
||||
],
|
||||
'condition': 'download_android_deps',
|
||||
'dep_type': 'cipd'
|
||||
},
|
||||
|
||||
'engine/src/flutter/third_party/android_tools/trace_to_text': {
|
||||
'packages': [
|
||||
{
|
||||
# 25.0 downloads for both mac-amd64 and mac-arm64
|
||||
# 26.1 is not found with either platform
|
||||
# 27.1 is the latest release of perfetto
|
||||
'version': 'git_tag:v25.0',
|
||||
'package': 'perfetto/trace_to_text/${{platform}}'
|
||||
}
|
||||
],
|
||||
'condition': 'download_android_deps',
|
||||
'dep_type': 'cipd'
|
||||
},
|
||||
|
||||
'engine/src/flutter/third_party/android_tools/google-java-format': {
|
||||
'packages': [
|
||||
{
|
||||
'package': 'flutter/android/google-java-format',
|
||||
'version': 'version:1.7-1'
|
||||
}
|
||||
],
|
||||
# We want to be able to format these as part of CI, and the CI step that
|
||||
# checks formatting runs without downloading the rest of the Android build
|
||||
# tooling. Therefore unlike all the other Android-related tools, we want to
|
||||
# download this every time.
|
||||
'dep_type': 'cipd',
|
||||
},
|
||||
|
||||
'engine/src/flutter/third_party/android_tools': {
|
||||
'packages': [
|
||||
{
|
||||
'package': 'flutter/android/sdk/all/${{platform}}',
|
||||
'version': 'version:36v8unmodified'
|
||||
}
|
||||
],
|
||||
'condition': 'download_android_deps',
|
||||
'dep_type': 'cipd',
|
||||
},
|
||||
|
||||
'engine/src/flutter/third_party/android_embedding_dependencies': {
|
||||
'packages': [
|
||||
{
|
||||
'package': 'flutter/android/embedding_bundle',
|
||||
'version': 'last_updated:2025-10-15T09:53:03-0700'
|
||||
}
|
||||
],
|
||||
'condition': 'download_android_deps',
|
||||
'dep_type': 'cipd',
|
||||
},
|
||||
|
||||
'engine/src/flutter/third_party/java/openjdk': {
|
||||
'packages': [
|
||||
{
|
||||
'package': 'flutter/java/openjdk/${{platform}}',
|
||||
'version': 'version:21'
|
||||
}
|
||||
],
|
||||
# Always download the JDK since java is required for running the formatter.
|
||||
'dep_type': 'cipd',
|
||||
},
|
||||
|
||||
'engine/src/flutter/third_party/gn': {
|
||||
'packages': [
|
||||
{
|
||||
'package': 'gn/gn/${{platform}}',
|
||||
'version': 'git_revision:81b24e01531ecf0eff12ec9359a555ec3944ec4e'
|
||||
},
|
||||
],
|
||||
'dep_type': 'cipd',
|
||||
},
|
||||
'third_party/ninja': {
|
||||
'packages': [
|
||||
{
|
||||
'package': 'infra/3pp/tools/ninja/${{platform}}',
|
||||
'version': 'version:2@1.11.1.chromium.4',
|
||||
}
|
||||
],
|
||||
'dep_type': 'cipd',
|
||||
},
|
||||
|
||||
'engine/src/flutter/prebuilts/emsdk': {
|
||||
'url': Var('skia_git') + '/external/github.com/emscripten-core/emsdk.git' + '@' + '2514ec738de72cebbba7f4fdba0cf2fabcb779a5',
|
||||
'condition': 'download_emsdk',
|
||||
},
|
||||
|
||||
# Clang on mac and linux are expected to typically be the same revision.
|
||||
# They are separated out so that the autoroller can more easily manage them.
|
||||
'engine/src/flutter/buildtools/mac-x64/clang': {
|
||||
'packages': [
|
||||
{
|
||||
'package': 'fuchsia/third_party/clang/mac-amd64',
|
||||
'version': Var('clang_version'),
|
||||
}
|
||||
],
|
||||
'condition': 'host_os == "mac"', # On ARM64 Macs too because Goma doesn't support the host-arm64 toolchain.
|
||||
'dep_type': 'cipd',
|
||||
},
|
||||
|
||||
'engine/src/flutter/buildtools/mac-arm64/clang': {
|
||||
'packages': [
|
||||
{
|
||||
'package': 'fuchsia/third_party/clang/mac-arm64',
|
||||
'version': Var('clang_version'),
|
||||
}
|
||||
],
|
||||
'condition': 'host_os == "mac" and host_cpu == "arm64"',
|
||||
'dep_type': 'cipd',
|
||||
},
|
||||
|
||||
'engine/src/flutter/buildtools/linux-x64/clang': {
|
||||
'packages': [
|
||||
{
|
||||
'package': 'fuchsia/third_party/clang/linux-amd64',
|
||||
'version': Var('clang_version'),
|
||||
}
|
||||
],
|
||||
'condition': 'host_os == "linux" or host_os == "mac"',
|
||||
'dep_type': 'cipd',
|
||||
},
|
||||
|
||||
'engine/src/flutter/buildtools/linux-arm64/clang': {
|
||||
'packages': [
|
||||
{
|
||||
'package': 'fuchsia/third_party/clang/linux-arm64',
|
||||
'version': Var('clang_version'),
|
||||
}
|
||||
],
|
||||
'condition': 'host_os == "linux" and host_cpu == "arm64"',
|
||||
'dep_type': 'cipd',
|
||||
},
|
||||
|
||||
'engine/src/flutter/buildtools/windows-x64/clang': {
|
||||
'packages': [
|
||||
{
|
||||
'package': 'fuchsia/third_party/clang/windows-amd64',
|
||||
'version': Var('clang_version'),
|
||||
}
|
||||
],
|
||||
'condition': 'download_windows_deps',
|
||||
'dep_type': 'cipd',
|
||||
},
|
||||
|
||||
# RBE binaries and configs.
|
||||
'engine/src/flutter/buildtools/linux-x64/reclient': {
|
||||
'packages': [
|
||||
{
|
||||
'package': 'infra/rbe/client/${{platform}}',
|
||||
'version': Var('reclient_version'),
|
||||
}
|
||||
],
|
||||
'condition': 'use_rbe and host_os == "linux" and host_cpu == "x64"',
|
||||
'dep_type': 'cipd',
|
||||
},
|
||||
|
||||
'engine/src/flutter/buildtools/mac-arm64/reclient': {
|
||||
'packages': [
|
||||
{
|
||||
'package': 'infra/rbe/client/${{platform}}',
|
||||
'version': Var('reclient_version'),
|
||||
}
|
||||
],
|
||||
'condition': 'use_rbe and host_os == "mac" and host_cpu == "arm64"',
|
||||
'dep_type': 'cipd',
|
||||
},
|
||||
|
||||
'engine/src/flutter/buildtools/mac-x64/reclient': {
|
||||
'packages': [
|
||||
{
|
||||
'package': 'infra/rbe/client/${{platform}}',
|
||||
'version': Var('reclient_version'),
|
||||
}
|
||||
],
|
||||
'condition': 'use_rbe and host_os == "mac" and host_cpu == "x64"',
|
||||
'dep_type': 'cipd',
|
||||
},
|
||||
|
||||
'engine/src/flutter/buildtools/windows-x64/reclient': {
|
||||
'packages': [
|
||||
{
|
||||
'package': 'infra/rbe/client/${{platform}}',
|
||||
'version': Var('reclient_version'),
|
||||
}
|
||||
],
|
||||
'condition': 'use_rbe and download_windows_deps',
|
||||
'dep_type': 'cipd',
|
||||
},
|
||||
|
||||
'engine/src/flutter/build/rbe': {
|
||||
'packages': [
|
||||
{
|
||||
'package': 'flutter_internal/rbe/reclient_cfgs',
|
||||
'version': 'LNMZdvF2Y86Dq05IWthtVJ_PswIFSRiywIHrkfHhelUC',
|
||||
}
|
||||
],
|
||||
'condition': 'use_rbe',
|
||||
'dep_type': 'cipd',
|
||||
},
|
||||
|
||||
# gcloud
|
||||
'engine/src/flutter/buildtools/linux-x64/gcloud': {
|
||||
'packages': [
|
||||
{
|
||||
'package': 'infra/3pp/tools/gcloud/${{platform}}',
|
||||
'version': Var('gcloud_version'),
|
||||
}
|
||||
],
|
||||
'condition': 'use_rbe and host_os == "linux" and host_cpu == "x64"',
|
||||
'dep_type': 'cipd',
|
||||
},
|
||||
|
||||
'engine/src/flutter/buildtools/mac-arm64/gcloud': {
|
||||
'packages': [
|
||||
{
|
||||
'package': 'infra/3pp/tools/gcloud/${{platform}}',
|
||||
'version': Var('gcloud_version'),
|
||||
}
|
||||
],
|
||||
'condition': 'use_rbe and host_os == "mac" and host_cpu == "arm64"',
|
||||
'dep_type': 'cipd',
|
||||
},
|
||||
|
||||
# Get the SDK from https://chrome-infra-packages.appspot.com/p/fuchsia/sdk/core at the 'latest' tag
|
||||
# Get the toolchain from https://chrome-infra-packages.appspot.com/p/fuchsia/clang at the 'goma' tag
|
||||
'engine/src/third_party/fuchsia-sdk/sdk': {
|
||||
'packages': [
|
||||
{
|
||||
'package': 'fuchsia/sdk/core/linux-amd64',
|
||||
'version': 'rxeg-6UB678HKJ4UQLCcLXWIpyiqp3-AZhNclbbePEkC'
|
||||
}
|
||||
],
|
||||
'condition': 'download_fuchsia_deps and not download_fuchsia_sdk',
|
||||
'dep_type': 'cipd',
|
||||
},
|
||||
|
||||
'engine/src/flutter/tools/fuchsia/test_scripts': {
|
||||
'packages': [
|
||||
{
|
||||
'package': 'chromium/fuchsia/test-scripts',
|
||||
'version': Var('fuchsia_test_scripts_version'),
|
||||
}
|
||||
],
|
||||
'condition': 'download_fuchsia_deps',
|
||||
'dep_type': 'cipd',
|
||||
},
|
||||
|
||||
'engine/src/flutter/tools/fuchsia/gn-sdk': {
|
||||
'packages': [
|
||||
{
|
||||
'package': 'chromium/fuchsia/gn-sdk',
|
||||
'version': Var('fuchsia_gn_sdk_version'),
|
||||
}
|
||||
],
|
||||
'condition': 'download_fuchsia_deps',
|
||||
'dep_type': 'cipd',
|
||||
},
|
||||
|
||||
'engine/src/flutter/third_party/google_fonts_for_unit_tests': {
|
||||
'packages': [
|
||||
{
|
||||
'package': 'flutter/flutter_font_fallbacks',
|
||||
'version': '44bd38be0bc8c189a397ca6dd6f737746a9e0c6117b96a8f84f1edf6acd1206b'
|
||||
}
|
||||
],
|
||||
'dep_type': 'cipd',
|
||||
}
|
||||
}
|
||||
|
||||
recursedeps = [
|
||||
'engine/src/flutter/third_party/vulkan-deps',
|
||||
]
|
||||
|
||||
hooks = [
|
||||
{
|
||||
# Generate the Dart SDK's .dart_tool/package_confg.json file.
|
||||
'name': 'Generate .dart_tool/package_confg.json',
|
||||
'pattern': '.',
|
||||
'action': ['python3', 'engine/src/flutter/third_party/dart/tools/generate_package_config.py'],
|
||||
},
|
||||
{
|
||||
# Generate the sdk/version file.
|
||||
'name': 'Generate sdk/version',
|
||||
'pattern': '.',
|
||||
'action': ['python3', 'engine/src/flutter/third_party/dart/tools/generate_sdk_version_file.py'],
|
||||
},
|
||||
{
|
||||
# Update the Windows toolchain if necessary.
|
||||
'name': 'win_toolchain',
|
||||
'condition': 'download_windows_deps',
|
||||
'pattern': '.',
|
||||
'action': ['python3', 'engine/src/build/vs_toolchain.py', 'update'],
|
||||
},
|
||||
{
|
||||
'name': 'dia_dll',
|
||||
'pattern': '.',
|
||||
'condition': 'download_windows_deps',
|
||||
'action': [
|
||||
'python3',
|
||||
'engine/src/flutter/tools/dia_dll.py',
|
||||
],
|
||||
},
|
||||
{
|
||||
'name': 'linux_sysroot_x64',
|
||||
'pattern': '.',
|
||||
'condition': 'download_linux_deps',
|
||||
'action': [
|
||||
'python3',
|
||||
'engine/src/build/linux/sysroot_scripts/install-sysroot.py',
|
||||
'--arch=x64'],
|
||||
},
|
||||
{
|
||||
'name': 'linux_sysroot_arm64',
|
||||
'pattern': '.',
|
||||
'condition': 'download_linux_deps',
|
||||
'action': [
|
||||
'python3',
|
||||
'engine/src/build/linux/sysroot_scripts/install-sysroot.py',
|
||||
'--arch=arm64'],
|
||||
},
|
||||
{
|
||||
'name': 'linux_sysroot_riscv64',
|
||||
'pattern': '.',
|
||||
'condition': 'download_linux_deps',
|
||||
'action': [
|
||||
'python3',
|
||||
'engine/src/build/linux/sysroot_scripts/install-sysroot.py',
|
||||
'--arch=riscv64'],
|
||||
},
|
||||
{
|
||||
'name': 'pub get --offline',
|
||||
'pattern': '.',
|
||||
'action': [
|
||||
'python3',
|
||||
'engine/src/flutter/tools/pub_get_offline.py',
|
||||
]
|
||||
},
|
||||
{
|
||||
'name': 'Download Fuchsia SDK',
|
||||
'pattern': '.',
|
||||
'condition': 'download_fuchsia_deps and download_fuchsia_sdk',
|
||||
'action': [
|
||||
'python3',
|
||||
'engine/src/flutter/tools/download_fuchsia_sdk.py',
|
||||
'--fail-loudly',
|
||||
'--verbose',
|
||||
'--host-os',
|
||||
Var('host_os'),
|
||||
'--fuchsia-sdk-path',
|
||||
Var('fuchsia_sdk_path'),
|
||||
]
|
||||
},
|
||||
{
|
||||
'name': 'Activate Emscripten SDK',
|
||||
'pattern': '.',
|
||||
'condition': 'download_emsdk',
|
||||
'action': [
|
||||
'python3',
|
||||
'engine/src/flutter/tools/activate_emsdk.py',
|
||||
]
|
||||
},
|
||||
{
|
||||
'name': 'Setup githooks',
|
||||
'pattern': '.',
|
||||
'condition': 'setup_githooks',
|
||||
'action': [
|
||||
'python3',
|
||||
'engine/src/flutter/tools/githooks/setup.py',
|
||||
]
|
||||
},
|
||||
{
|
||||
'name': 'Download Fuchsia system images',
|
||||
'pattern': '.',
|
||||
'condition': 'run_fuchsia_emu',
|
||||
'action': [
|
||||
'env',
|
||||
'DOWNLOAD_FUCHSIA_SDK={download_fuchsia_sdk}',
|
||||
'FUCHSIA_SDK_PATH={fuchsia_sdk_path}',
|
||||
'python3',
|
||||
'engine/src/flutter/tools/fuchsia/with_envs.py',
|
||||
'engine/src/flutter/tools/fuchsia/test_scripts/update_product_bundles.py',
|
||||
'terminal.x64,terminal.qemu-arm64',
|
||||
]
|
||||
},
|
||||
# The following script checks if it is running in the LUCI environment,
|
||||
# and does nothing if so. This is because Xcode is not yet installed in CI
|
||||
# when this hook is run.
|
||||
{
|
||||
'name': 'Find the iOS and macOS SDKs',
|
||||
'pattern': '.',
|
||||
'condition': 'host_os == "mac"',
|
||||
'action': [
|
||||
'python3',
|
||||
'engine/src/build/mac/darwin_sdk.py',
|
||||
'--as-gclient-hook'
|
||||
]
|
||||
},
|
||||
{
|
||||
'name': 'Generate Fuchsia GN build rules',
|
||||
'pattern': '.',
|
||||
'condition': 'download_fuchsia_deps',
|
||||
'action': [
|
||||
'python3',
|
||||
'engine/src/flutter/tools/fuchsia/with_envs.py',
|
||||
'engine/src/flutter/tools/fuchsia/test_scripts/gen_build_defs.py',
|
||||
],
|
||||
},
|
||||
]
|
||||
25
.flutter/LICENSE
Normal file
25
.flutter/LICENSE
Normal file
|
|
@ -0,0 +1,25 @@
|
|||
Copyright 2014 The Flutter Authors. All rights reserved.
|
||||
|
||||
Redistribution and use in source and binary forms, with or without modification,
|
||||
are permitted provided that the following conditions are met:
|
||||
|
||||
* Redistributions of source code must retain the above copyright
|
||||
notice, this list of conditions and the following disclaimer.
|
||||
* Redistributions in binary form must reproduce the above
|
||||
copyright notice, this list of conditions and the following
|
||||
disclaimer in the documentation and/or other materials provided
|
||||
with the distribution.
|
||||
* Neither the name of Google Inc. nor the names of its
|
||||
contributors may be used to endorse or promote products derived
|
||||
from this software without specific prior written permission.
|
||||
|
||||
THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS" AND
|
||||
ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED
|
||||
WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE
|
||||
DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT OWNER OR CONTRIBUTORS BE LIABLE FOR
|
||||
ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES
|
||||
(INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES;
|
||||
LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON
|
||||
ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT
|
||||
(INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS
|
||||
SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
|
||||
17
.flutter/PATENT_GRANT
Normal file
17
.flutter/PATENT_GRANT
Normal file
|
|
@ -0,0 +1,17 @@
|
|||
Google hereby grants to you a perpetual, worldwide, non-exclusive,
|
||||
no-charge, royalty-free, irrevocable (except as stated in this
|
||||
section) patent license to make, have made, use, offer to sell, sell,
|
||||
import, transfer, and otherwise run, modify and propagate the contents
|
||||
of this implementation, where such license applies only to those
|
||||
patent claims, both currently owned by Google and acquired in the
|
||||
future, licensable by Google that are necessarily infringed by this
|
||||
implementation. This grant does not include claims that would be
|
||||
infringed only as a consequence of further modification of this
|
||||
implementation. If you or your agent or exclusive licensee institute
|
||||
or order or agree to the institution of patent litigation or any other
|
||||
patent enforcement activity against any entity (including a
|
||||
cross-claim or counterclaim in a lawsuit) alleging that this
|
||||
implementation constitutes direct or contributory patent infringement,
|
||||
or inducement of patent infringement, then any patent rights granted
|
||||
to you under this License for this implementation shall terminate as
|
||||
of the date such litigation is filed.
|
||||
127
.flutter/README.md
Normal file
127
.flutter/README.md
Normal file
|
|
@ -0,0 +1,127 @@
|
|||
<a href="https://flutter.dev/">
|
||||
<h1 align="center">
|
||||
<picture>
|
||||
<source media="(prefers-color-scheme: dark)" srcset="https://storage.googleapis.com/cms-storage-bucket/6e19fee6b47b36ca613f.png">
|
||||
<img alt="Flutter" src="https://storage.googleapis.com/cms-storage-bucket/c823e53b3a1a7b0d36a9.png">
|
||||
</picture>
|
||||
</h1>
|
||||
</a>
|
||||
|
||||
[](https://flutter-dashboard.appspot.com/#/build?repo=flutter)
|
||||
[![Discord badge][]][Discord instructions]
|
||||
[![Twitter handle][]][Twitter badge]
|
||||
[![BlueSky badge][]][BlueSky handle]
|
||||
[](https://codecov.io/gh/flutter/flutter)
|
||||
[](https://bestpractices.coreinfrastructure.org/projects/5631)
|
||||
[](https://slsa.dev)
|
||||
|
||||
Flutter is Google's SDK for crafting beautiful, fast user experiences for
|
||||
mobile, web, and desktop from a single codebase. Flutter works with existing
|
||||
code, is used by developers and organizations around the world, and is free and
|
||||
open source.
|
||||
|
||||
## Documentation
|
||||
|
||||
* [Install Flutter](https://docs.flutter.dev/get-started)
|
||||
* [Flutter documentation](https://docs.flutter.dev)
|
||||
* [Development wiki](./docs/README.md)
|
||||
* [Contributing to Flutter](https://github.com/flutter/flutter/blob/main/CONTRIBUTING.md)
|
||||
|
||||
For release and other announcements, join the
|
||||
[flutter-announce](https://groups.google.com/g/flutter-announce)
|
||||
mailing list. Our documentation also tracks [breaking
|
||||
changes](https://docs.flutter.dev/release/breaking-changes) across releases.
|
||||
|
||||
## Terms of service
|
||||
|
||||
The Flutter tool may occasionally download resources from Google servers. By
|
||||
downloading or using the Flutter SDK, you agree to the Google Terms of Service:
|
||||
https://policies.google.com/terms
|
||||
|
||||
For example, when installed from GitHub (as opposed to from a prepackaged
|
||||
archive), the Flutter tool will download the Dart SDK from Google servers
|
||||
immediately when first run, as it is used to execute the `flutter` tool itself.
|
||||
This will also occur when Flutter is upgraded (e.g. by running the `flutter
|
||||
upgrade` command).
|
||||
|
||||
## About Flutter
|
||||
|
||||
We think Flutter will help you create beautiful, fast apps, with a productive,
|
||||
extensible and open development model, whether you're targeting iOS or Android,
|
||||
web, Windows, macOS, Linux or embedding it as the UI toolkit for a platform of
|
||||
your choice.
|
||||
|
||||
### Beautiful user experiences
|
||||
|
||||
We want to enable designers to deliver their full creative vision without being
|
||||
forced to water it down due to limitations of the underlying framework.
|
||||
Flutter's [layered architecture] gives you control over every pixel on the
|
||||
screen and its powerful compositing capabilities let you overlay and animate
|
||||
graphics, video, text, and controls without limitation. Flutter includes a full
|
||||
[set of widgets][widget catalog] that deliver pixel-perfect experiences whether
|
||||
you're building for iOS ([Cupertino]) or other platforms ([Material]), along with
|
||||
support for customizing or creating entirely new visual components.
|
||||
|
||||
<p align="center"><img src="https://github.com/flutter/website/blob/main/site/web/assets/images/docs/homepage/reflectly-hero-600px.png?raw=true" alt="Reflectly hero image"></p>
|
||||
|
||||
### Fast results
|
||||
|
||||
Flutter is fast. It's powered by hardware-accelerated 2D graphics
|
||||
libraries like [Skia] (which underpins Chrome and Android) and
|
||||
[Impeller]. We architected Flutter to
|
||||
support glitch-free, jank-free graphics at the native speed of your device.
|
||||
|
||||
Flutter code is powered by the world-class [Dart programming language], which enables
|
||||
compilation to 32-bit and 64-bit ARM machine code for iOS and Android,
|
||||
JavaScript and WebAssembly for the web, as well as Intel x64 and ARM
|
||||
for desktop devices.
|
||||
|
||||
<p align="center"><img src="https://github.com/flutter/website/blob/main/site/web/assets/images/docs/homepage/dart-diagram-small.png?raw=true" alt="Dart diagram"></p>
|
||||
|
||||
### Productive development
|
||||
|
||||
Flutter offers [stateful hot reload][Hot reload], allowing you to make changes to your code
|
||||
and see the results instantly without restarting your app or losing its state.
|
||||
|
||||
[![Hot reload animation][]][Hot reload]
|
||||
|
||||
### Extensible and open model
|
||||
|
||||
Flutter works with any development tool (or none at all), and also includes
|
||||
editor plug-ins for both [Visual Studio Code] and [IntelliJ / Android Studio].
|
||||
Flutter provides [tens of thousands of packages][Flutter packages] to speed your
|
||||
development, regardless of your target platform. And accessing other native code
|
||||
is easy, with support for both FFI ([on Android][Android FFI], [on iOS][iOS FFI],
|
||||
[on macOS][macOS FFI], and [on Windows][Windows FFI]) as well as
|
||||
[platform-specific APIs][platform channels].
|
||||
|
||||
Flutter is a fully open-source project, and we welcome contributions.
|
||||
Information on how to get started can be found in our
|
||||
[contributor guide](CONTRIBUTING.md).
|
||||
|
||||
[flutter.dev]: https://flutter.dev
|
||||
[Discord instructions]: ./docs/contributing/Chat.md
|
||||
[Discord badge]: https://img.shields.io/discord/608014603317936148?logo=discord
|
||||
[Twitter handle]: https://img.shields.io/twitter/follow/flutterdev.svg?style=social&label=Follow
|
||||
[Twitter badge]: https://twitter.com/intent/follow?screen_name=flutterdev
|
||||
[BlueSky badge]: https://img.shields.io/badge/Bluesky-0285FF?logo=bluesky&logoColor=fff&label=Follow%20me%20on&color=0285FF
|
||||
[BlueSky handle]: https://bsky.app/profile/flutter.dev
|
||||
[layered architecture]: https://docs.flutter.dev/resources/inside-flutter
|
||||
[architectural overview]: https://docs.flutter.dev/resources/architectural-overview
|
||||
[widget catalog]: https://docs.flutter.dev/ui/widgets
|
||||
[Cupertino]: https://docs.flutter.dev/ui/widgets/cupertino
|
||||
[Material]: https://docs.flutter.dev/ui/widgets/material
|
||||
[Skia]: https://skia.org/
|
||||
[Dart programming language]: https://dart.dev/
|
||||
[Hot reload animation]: https://github.com/flutter/website/blob/main/site/web/assets/images/docs/tools/android-studio/hot-reload.gif?raw=true
|
||||
[Hot reload]: https://docs.flutter.dev/tools/hot-reload
|
||||
[Visual Studio Code]: https://marketplace.visualstudio.com/items?itemName=Dart-Code.flutter
|
||||
[IntelliJ / Android Studio]: https://plugins.jetbrains.com/plugin/9212-flutter
|
||||
[Flutter packages]: https://pub.dev/flutter
|
||||
[Android FFI]: https://docs.flutter.dev/platform-integration/android/c-interop
|
||||
[iOS FFI]: https://docs.flutter.dev/platform-integration/ios/c-interop
|
||||
[macOS FFI]: https://docs.flutter.dev/platform-integration/macos/c-interop
|
||||
[Windows FFI]: https://docs.flutter.dev/platform-integration/windows/building#integrating-with-windows
|
||||
[platform channels]: https://docs.flutter.dev/platform-integration/platform-channels
|
||||
[interop example]: https://github.com/flutter/flutter/tree/main/examples/platform_channel
|
||||
[Impeller]: https://docs.flutter.dev/perf/impeller
|
||||
370
.flutter/TESTOWNERS
Normal file
370
.flutter/TESTOWNERS
Normal file
|
|
@ -0,0 +1,370 @@
|
|||
# Below is a list of Flutter team members' GitHub handles who are
|
||||
# test owners of this repository.
|
||||
#
|
||||
# These owners are mainly team leaders and their sub-teams. Please feel
|
||||
# free to claim ownership by adding your handle to corresponding tests.
|
||||
#
|
||||
# This file will be used as a reference when new flaky bugs are filed and
|
||||
# the TL will be assigned and the sub-team will be labeled by default
|
||||
# for further triage.
|
||||
|
||||
## Linux Android DeviceLab tests
|
||||
/dev/devicelab/bin/tasks/analyzer_benchmark.dart @bkonyi @flutter/tool
|
||||
/dev/devicelab/bin/tasks/android_choreographer_do_frame_test.dart @reidbaker @flutter/engine
|
||||
/dev/devicelab/bin/tasks/android_defines_test.dart @jesswrd @flutter/android
|
||||
/dev/devicelab/bin/tasks/android_java11_dependency_smoke_tests.dart @jesswrd @flutter/android
|
||||
/dev/devicelab/bin/tasks/android_java17_dependency_smoke_tests.dart @jesswrd @flutter/android
|
||||
/dev/devicelab/bin/tasks/android_lifecycles_test.dart @reidbaker @flutter/engine
|
||||
/dev/devicelab/bin/tasks/android_picture_cache_complexity_scoring_perf__timeline_summary.dart @flar @flutter/engine
|
||||
/dev/devicelab/bin/tasks/android_stack_size_test.dart @bkonyi @flutter/tool
|
||||
/dev/devicelab/bin/tasks/android_verified_input_test.dart @gmackall @flutter/android
|
||||
/dev/devicelab/bin/tasks/android_view_scroll_perf__timeline_summary.dart @jtmcdole @flutter/engine
|
||||
/dev/devicelab/bin/tasks/animated_advanced_blend_perf__timeline_summary.dart @gaaclarke @flutter/engine
|
||||
/dev/devicelab/bin/tasks/animated_advanced_blend_perf_ios__timeline_summary.dart @gaaclarke @flutter/engine
|
||||
/dev/devicelab/bin/tasks/animated_advanced_blend_perf_opengles__timeline_summary.dart @gaaclarke @flutter/engine
|
||||
/dev/devicelab/bin/tasks/animated_blur_backdrop_filter_perf__timeline_summary.dart @jonahwilliams @flutter/engine
|
||||
/dev/devicelab/bin/tasks/animated_blur_backdrop_filter_perf_opengles__timeline_summary.dart @gaaclarke @flutter/engine
|
||||
/dev/devicelab/bin/tasks/animated_complex_image_filtered_perf__e2e_summary.dart @jonahwilliams @flutter/engine
|
||||
/dev/devicelab/bin/tasks/animated_complex_opacity_perf__e2e_summary.dart @jonahwilliams @flutter/engine
|
||||
/dev/devicelab/bin/tasks/animated_image_gc_perf.dart @jtmcdole @flutter/engine
|
||||
/dev/devicelab/bin/tasks/animated_placeholder_perf__e2e_summary.dart @jtmcdole @flutter/engine
|
||||
/dev/devicelab/bin/tasks/backdrop_filter_perf__e2e_summary.dart @jtmcdole @flutter/engine
|
||||
/dev/devicelab/bin/tasks/basic_material_app_android__compile.dart @camsim99 @flutter/tool
|
||||
/dev/devicelab/bin/tasks/clipper_cache_perf__e2e_summary.dart @flar @flutter/engine
|
||||
/dev/devicelab/bin/tasks/codegen_integration.dart @bkonyi @flutter/tool
|
||||
/dev/devicelab/bin/tasks/color_filter_and_fade_perf__e2e_summary.dart @jtmcdole @flutter/engine
|
||||
/dev/devicelab/bin/tasks/color_filter_cache_perf__e2e_summary.dart @flar @flutter/engine
|
||||
/dev/devicelab/bin/tasks/color_filter_with_unstable_child_perf__e2e_summary.dart @flar @flutter/engine
|
||||
/dev/devicelab/bin/tasks/complex_layout_android__compile.dart @mboetger @flutter/tool
|
||||
/dev/devicelab/bin/tasks/complex_layout_android__scroll_smoothness.dart @jtmcdole @flutter/engine
|
||||
/dev/devicelab/bin/tasks/complex_layout_scroll_perf__devtools_memory.dart @jtmcdole @flutter/engine
|
||||
/dev/devicelab/bin/tasks/complex_layout_scroll_perf_impeller__timeline_summary.dart @jonahwilliams @flutter/engine
|
||||
/dev/devicelab/bin/tasks/complex_layout_scroll_perf_impeller_gles__timeline_summary.dart @jonahwilliams @flutter/engine
|
||||
/dev/devicelab/bin/tasks/complex_layout_semantics_perf.dart @jtmcdole @flutter/engine
|
||||
/dev/devicelab/bin/tasks/cubic_bezier_perf__e2e_summary.dart @jtmcdole @flutter/engine
|
||||
/dev/devicelab/bin/tasks/cubic_bezier_perf_sksl_warmup__e2e_summary.dart @jtmcdole @flutter/engine
|
||||
/dev/devicelab/bin/tasks/cull_opacity_perf__e2e_summary.dart @jtmcdole @flutter/engine
|
||||
/dev/devicelab/bin/tasks/devtools_profile_start_test.dart @bkonyi @flutter/tool
|
||||
/dev/devicelab/bin/tasks/draw_arcs_all_fill_styles_perf__timeline_summary.dart @b-luk @flutter/engine
|
||||
/dev/devicelab/bin/tasks/draw_arcs_all_stroke_styles_perf__timeline_summary.dart @b-luk @flutter/engine
|
||||
/dev/devicelab/bin/tasks/draw_atlas_perf__timeline_summary.dart @jonahwilliams @flutter/engine
|
||||
/dev/devicelab/bin/tasks/draw_atlas_perf_opengles__timeline_summary.dart @jonahwilliams @flutter/engine
|
||||
/dev/devicelab/bin/tasks/draw_vertices_perf__timeline_summary.dart @jonahwilliams @flutter/engine
|
||||
/dev/devicelab/bin/tasks/draw_vertices_perf_opengles__timeline_summary.dart @jonahwilliams @flutter/engine
|
||||
/dev/devicelab/bin/tasks/dynamic_path_stroke_tessellation_perf__timeline_summary.dart @flar @flutter/engine
|
||||
/dev/devicelab/bin/tasks/dynamic_path_tessellation_perf__timeline_summary.dart @jonahwilliams @flutter/engine
|
||||
/dev/devicelab/bin/tasks/embedded_android_views_integration_test.dart @gmackall @flutter/android
|
||||
/dev/devicelab/bin/tasks/engine_dependency_proxy_test.dart @jtmcdole @flutter/engine
|
||||
/dev/devicelab/bin/tasks/fast_scroll_heavy_gridview__memory.dart @jtmcdole @flutter/engine
|
||||
/dev/devicelab/bin/tasks/flutter_engine_group_performance.dart @jtmcdole @flutter/engine
|
||||
/dev/devicelab/bin/tasks/flutter_gallery__back_button_memory.dart @jtmcdole @flutter/engine
|
||||
/dev/devicelab/bin/tasks/flutter_gallery__image_cache_memory.dart @jtmcdole @flutter/engine
|
||||
/dev/devicelab/bin/tasks/flutter_gallery__memory_nav.dart @jtmcdole @flutter/engine
|
||||
/dev/devicelab/bin/tasks/flutter_gallery__start_up.dart @jtmcdole @flutter/engine
|
||||
/dev/devicelab/bin/tasks/flutter_gallery__start_up_delayed.dart @jtmcdole @flutter/engine
|
||||
/dev/devicelab/bin/tasks/flutter_gallery__transition_perf.dart @jtmcdole @flutter/engine
|
||||
/dev/devicelab/bin/tasks/flutter_gallery__transition_perf_e2e.dart @jtmcdole @flutter/engine
|
||||
/dev/devicelab/bin/tasks/flutter_gallery__transition_perf_hybrid.dart @jtmcdole @flutter/engine
|
||||
/dev/devicelab/bin/tasks/flutter_gallery__transition_perf_with_semantics.dart @jtmcdole @flutter/engine
|
||||
/dev/devicelab/bin/tasks/flutter_gallery_android__compile.dart @camsim99 @flutter/tool
|
||||
/dev/devicelab/bin/tasks/flutter_gallery_lazy__start_up.dart @jtmcdole @flutter/engine
|
||||
/dev/devicelab/bin/tasks/flutter_gallery_sksl_warmup__transition_perf.dart @jtmcdole @flutter/engine
|
||||
/dev/devicelab/bin/tasks/flutter_gallery_sksl_warmup__transition_perf_e2e.dart @jtmcdole @flutter/engine
|
||||
/dev/devicelab/bin/tasks/flutter_gallery_v2_chrome_run_test.dart @yjbanov @flutter/web
|
||||
/dev/devicelab/bin/tasks/flutter_gallery_v2_web_compile_test.dart @yjbanov @flutter/web
|
||||
/dev/devicelab/bin/tasks/flutter_test_performance.dart @jtmcdole @flutter/engine
|
||||
/dev/devicelab/bin/tasks/fullscreen_textfield_perf.dart @jtmcdole @flutter/engine
|
||||
/dev/devicelab/bin/tasks/fullscreen_textfield_perf__e2e_summary.dart @jtmcdole @flutter/engine
|
||||
/dev/devicelab/bin/tasks/gradient_consistent_perf__e2e_summary.dart @flar @flutter/engine
|
||||
/dev/devicelab/bin/tasks/gradient_dynamic_perf__e2e_summary.dart @flar @flutter/engine
|
||||
/dev/devicelab/bin/tasks/gradient_static_perf__e2e_summary.dart @flar @flutter/engine
|
||||
/dev/devicelab/bin/tasks/gradle_java8_compile_test.dart @jesswrd @flutter/android
|
||||
/dev/devicelab/bin/tasks/hot_mode_dev_cycle_linux__benchmark.dart @bkonyi @flutter/tool
|
||||
/dev/devicelab/bin/tasks/hybrid_android_views_integration_test.dart @gmackall @flutter/android
|
||||
/dev/devicelab/bin/tasks/image_list_jit_reported_duration.dart @jtmcdole @flutter/engine
|
||||
/dev/devicelab/bin/tasks/image_list_reported_duration.dart @jtmcdole @flutter/engine
|
||||
/dev/devicelab/bin/tasks/large_image_changer_perf_android.dart @jtmcdole @flutter/engine
|
||||
/dev/devicelab/bin/tasks/linux_chrome_dev_mode.dart @bkonyi @flutter/tool
|
||||
/dev/devicelab/bin/tasks/list_text_layout_impeller_perf__e2e_summary.dart @jtmcdole @flutter/engine
|
||||
/dev/devicelab/bin/tasks/list_text_layout_perf__e2e_summary.dart @jtmcdole @flutter/engine
|
||||
/dev/devicelab/bin/tasks/multi_widget_construction_perf__e2e_summary.dart @jtmcdole @flutter/engine
|
||||
/dev/devicelab/bin/tasks/new_gallery__crane_perf.dart @jtmcdole @flutter/engine
|
||||
/dev/devicelab/bin/tasks/old_gallery__transition_perf.dart @jonahwilliams @flutter/engine
|
||||
/dev/devicelab/bin/tasks/opacity_peephole_col_of_alpha_savelayer_rows_perf__e2e_summary.dart @flar @flutter/engine
|
||||
/dev/devicelab/bin/tasks/opacity_peephole_col_of_rows_perf__e2e_summary.dart @flar @flutter/engine
|
||||
/dev/devicelab/bin/tasks/opacity_peephole_fade_transition_text_perf__e2e_summary.dart @flar @flutter/engine
|
||||
/dev/devicelab/bin/tasks/opacity_peephole_grid_of_alpha_savelayers_perf__e2e_summary.dart @flar @flutter/engine
|
||||
/dev/devicelab/bin/tasks/opacity_peephole_grid_of_opacity_perf__e2e_summary.dart @flar @flutter/engine
|
||||
/dev/devicelab/bin/tasks/opacity_peephole_one_rect_perf__e2e_summary.dart @flar @flutter/engine
|
||||
/dev/devicelab/bin/tasks/opacity_peephole_opacity_of_grid_perf__e2e_summary.dart @flar @flutter/engine
|
||||
/dev/devicelab/bin/tasks/picture_cache_perf__e2e_summary.dart @jtmcdole @flutter/engine
|
||||
/dev/devicelab/bin/tasks/platform_channels_benchmarks.dart @gaaclarke @flutter/engine
|
||||
/dev/devicelab/bin/tasks/platform_views_hcpp_scroll_perf__timeline_summary.dart @jonahwilliams @flutter/engine
|
||||
/dev/devicelab/bin/tasks/platform_views_scroll_perf__timeline_summary.dart @jtmcdole @flutter/engine
|
||||
/dev/devicelab/bin/tasks/platform_views_scroll_perf_impeller__timeline_summary.dart @bdero @flutter/engine
|
||||
/dev/devicelab/bin/tasks/plugin_dependencies_test.dart @stuartmorgan-g @flutter/tool
|
||||
/dev/devicelab/bin/tasks/routing_test.dart @bkonyi @flutter/tool
|
||||
/dev/devicelab/bin/tasks/rrect_blur_perf__timeline_summary.dart @gaaclarke @flutter/engine
|
||||
/dev/devicelab/bin/tasks/shader_mask_cache_perf__e2e_summary.dart @flar @flutter/engine
|
||||
/dev/devicelab/bin/tasks/slider_perf_android.dart @tahatesser @flutter/framework
|
||||
/dev/devicelab/bin/tasks/spell_check_test.dart @camsim99 @flutter/android
|
||||
/dev/devicelab/bin/tasks/spell_check_test_ios.dart @LongCatIsLooong @flutter/ios
|
||||
/dev/devicelab/bin/tasks/static_path_stroke_tessellation_perf__timeline_summary.dart @flar @flutter/engine
|
||||
/dev/devicelab/bin/tasks/static_path_tessellation_perf__timeline_summary.dart @jonahwilliams @flutter/engine
|
||||
/dev/devicelab/bin/tasks/textfield_perf__e2e_summary.dart @jtmcdole @flutter/engine
|
||||
/dev/devicelab/bin/tasks/very_long_picture_scrolling_perf__e2e_summary.dart @flar @flutter/engine
|
||||
/dev/devicelab/bin/tasks/web_size__compile_test.dart @yjbanov @flutter/web
|
||||
/dev/devicelab/bin/tasks/wide_gamut_ios.dart @gaaclarke @flutter/engine
|
||||
|
||||
## Windows Android DeviceLab tests
|
||||
/dev/devicelab/bin/tasks/basic_material_app_win__compile.dart @bkonyi @flutter/tool
|
||||
/dev/devicelab/bin/tasks/channels_integration_test_win.dart @jtmcdole @flutter/engine
|
||||
/dev/devicelab/bin/tasks/complex_layout_win__compile.dart @bkonyi @flutter/tool
|
||||
/dev/devicelab/bin/tasks/flavors_test_win.dart @bkonyi @flutter/tool
|
||||
/dev/devicelab/bin/tasks/flutter_gallery_win__compile.dart @bkonyi @flutter/tool
|
||||
/dev/devicelab/bin/tasks/hot_mode_dev_cycle_win__benchmark.dart @bkonyi @flutter/tool
|
||||
/dev/devicelab/bin/tasks/windows_chrome_dev_mode.dart @yjbanov @flutter/web
|
||||
|
||||
## Mac Android DeviceLab tests
|
||||
/dev/devicelab/bin/tasks/android_semantics_integration_test.dart @Piinks @flutter/framework
|
||||
/dev/devicelab/bin/tasks/backdrop_filter_perf__timeline_summary.dart @jtmcdole @flutter/engine
|
||||
/dev/devicelab/bin/tasks/channels_integration_test.dart @jtmcdole @flutter/engine
|
||||
/dev/devicelab/bin/tasks/color_filter_and_fade_perf__timeline_summary.dart @jtmcdole @flutter/engine
|
||||
/dev/devicelab/bin/tasks/complex_layout__start_up.dart @jtmcdole @flutter/engine
|
||||
/dev/devicelab/bin/tasks/complex_layout_scroll_perf__memory.dart @jtmcdole @flutter/engine
|
||||
/dev/devicelab/bin/tasks/complex_layout_scroll_perf__timeline_summary.dart @jtmcdole @flutter/engine
|
||||
/dev/devicelab/bin/tasks/cubic_bezier_perf__timeline_summary.dart @jtmcdole @flutter/engine
|
||||
/dev/devicelab/bin/tasks/cubic_bezier_perf_sksl_warmup__timeline_summary.dart @jtmcdole @flutter/engine
|
||||
/dev/devicelab/bin/tasks/cull_opacity_perf__timeline_summary.dart @jtmcdole @flutter/engine
|
||||
/dev/devicelab/bin/tasks/drive_perf_debug_warning.dart @jtmcdole @flutter/engine
|
||||
/dev/devicelab/bin/tasks/external_textures_integration_test.dart @jtmcdole @flutter/engine
|
||||
/dev/devicelab/bin/tasks/fading_child_animation_perf__timeline_summary.dart @jtmcdole @flutter/engine
|
||||
/dev/devicelab/bin/tasks/fast_scroll_large_images__memory.dart @jtmcdole @flutter/engine
|
||||
/dev/devicelab/bin/tasks/flavors_test.dart @bkonyi @flutter/tool
|
||||
/dev/devicelab/bin/tasks/flutter_view__start_up.dart @jtmcdole @flutter/engine
|
||||
/dev/devicelab/bin/tasks/fullscreen_textfield_perf__timeline_summary.dart @jtmcdole @flutter/engine
|
||||
/dev/devicelab/bin/tasks/hello_world__memory.dart @jtmcdole @flutter/engine
|
||||
/dev/devicelab/bin/tasks/hello_world_android__compile.dart @camsim99 @flutter/tool
|
||||
/dev/devicelab/bin/tasks/hello_world_impeller.dart @gaaclarke @flutter/engine
|
||||
/dev/devicelab/bin/tasks/home_scroll_perf__timeline_summary.dart @jtmcdole @flutter/engine
|
||||
/dev/devicelab/bin/tasks/hot_mode_dev_cycle__benchmark.dart @bkonyi @flutter/tool
|
||||
/dev/devicelab/bin/tasks/imagefiltered_transform_animation_perf__timeline_summary.dart @jtmcdole @flutter/engine
|
||||
/dev/devicelab/bin/tasks/integration_test_test.dart @bkonyi @flutter/tool
|
||||
/dev/devicelab/bin/tasks/integration_ui_driver.dart @bkonyi @flutter/tool
|
||||
/dev/devicelab/bin/tasks/integration_ui_frame_number.dart @jtmcdole @flutter/engine
|
||||
/dev/devicelab/bin/tasks/integration_ui_keyboard_resize.dart @bkonyi @flutter/tool
|
||||
/dev/devicelab/bin/tasks/integration_ui_screenshot.dart @bkonyi @flutter/tool
|
||||
/dev/devicelab/bin/tasks/integration_ui_textfield.dart @bkonyi @flutter/tool
|
||||
/dev/devicelab/bin/tasks/microbenchmarks.dart @jtmcdole @flutter/engine
|
||||
/dev/devicelab/bin/tasks/native_assets_android.dart @dcharkes @flutter/android
|
||||
/dev/devicelab/bin/tasks/new_gallery__transition_perf.dart @jtmcdole @flutter/engine
|
||||
/dev/devicelab/bin/tasks/new_gallery_impeller__transition_perf.dart @jtmcdole @flutter/engine
|
||||
/dev/devicelab/bin/tasks/new_gallery_impeller_old_zoom__transition_perf.dart @jonahwilliams @flutter/engine
|
||||
/dev/devicelab/bin/tasks/new_gallery_opengles_impeller__transition_perf.dart @gaaclarke @flutter/engine
|
||||
/dev/devicelab/bin/tasks/picture_cache_perf__timeline_summary.dart @jtmcdole @flutter/engine
|
||||
/dev/devicelab/bin/tasks/platform_channel_sample_test.dart @jtmcdole @flutter/engine
|
||||
/dev/devicelab/bin/tasks/platform_interaction_test.dart @stuartmorgan-g @flutter/plugin
|
||||
/dev/devicelab/bin/tasks/platform_view__start_up.dart @jtmcdole @flutter/engine
|
||||
/dev/devicelab/bin/tasks/run_release_test.dart @bkonyi @flutter/tool
|
||||
/dev/devicelab/bin/tasks/service_extensions_test.dart @bkonyi @flutter/tool
|
||||
/dev/devicelab/bin/tasks/textfield_perf__timeline_summary.dart @jtmcdole @flutter/engine
|
||||
/dev/devicelab/bin/tasks/tiles_scroll_perf__timeline_summary.dart @jtmcdole @flutter/engine
|
||||
|
||||
## Mac iOS DeviceLab tests
|
||||
/dev/devicelab/bin/tasks/animated_blur_backdrop_filter_perf_ios__timeline_summary.dart @jonahwilliams @flutter/engine
|
||||
/dev/devicelab/bin/tasks/animated_complex_opacity_perf_ios__e2e_summary.dart @hellohuanlin @flutter/engine
|
||||
/dev/devicelab/bin/tasks/animation_with_microtasks_perf_ios__timeline_summary.dart @jtmcdole @flutter/engine
|
||||
/dev/devicelab/bin/tasks/backdrop_filter_perf_ios__timeline_summary.dart @louisehsu @flutter/engine
|
||||
/dev/devicelab/bin/tasks/basic_material_app_ios__compile.dart @vashworth @flutter/tool
|
||||
/dev/devicelab/bin/tasks/channels_integration_test_ios.dart @LongCatIsLooong @flutter/engine
|
||||
/dev/devicelab/bin/tasks/codegen_integration_mac.dart @bkonyi @flutter/tool
|
||||
/dev/devicelab/bin/tasks/color_filter_and_fade_perf_ios__e2e_summary.dart @hellohuanlin @flutter/engine
|
||||
/dev/devicelab/bin/tasks/complex_layout_ios__start_up.dart @vashworth @flutter/engine
|
||||
/dev/devicelab/bin/tasks/complex_layout_scroll_perf_bad_ios__timeline_summary.dart @jonahwilliams @flutter/engine
|
||||
/dev/devicelab/bin/tasks/complex_layout_scroll_perf_ios__timeline_summary.dart @louisehsu @flutter/engine
|
||||
/dev/devicelab/bin/tasks/cubic_bezier_perf_ios_sksl_warmup__timeline_summary.dart @jtmcdole @flutter/engine
|
||||
/dev/devicelab/bin/tasks/draw_arcs_all_fill_styles_perf_ios__timeline_summary.dart @b-luk @flutter/engine
|
||||
/dev/devicelab/bin/tasks/draw_arcs_all_stroke_styles_perf_ios__timeline_summary.dart @b-luk @flutter/engine
|
||||
/dev/devicelab/bin/tasks/draw_atlas_perf_ios__timeline_summary.dart @jonahwilliams @flutter/engine
|
||||
/dev/devicelab/bin/tasks/draw_points_perf_ios__timeline_summary.dart @jonahwilliams @flutter/engine
|
||||
/dev/devicelab/bin/tasks/draw_vertices_perf_ios__timeline_summary.dart @jonahwilliams @flutter/engine
|
||||
/dev/devicelab/bin/tasks/dynamic_path_stroke_tessellation_perf_ios__timeline_summary.dart @flar @flutter/engine
|
||||
/dev/devicelab/bin/tasks/dynamic_path_tessellation_perf_ios__timeline_summary.dart @jonahwilliams @flutter/engine
|
||||
/dev/devicelab/bin/tasks/external_textures_integration_test_ios.dart @jtmcdole @flutter/engine
|
||||
/dev/devicelab/bin/tasks/flavors_test_ios.dart @vashworth @flutter/tool
|
||||
/dev/devicelab/bin/tasks/flutter_gallery__transition_perf_e2e_ios.dart @jtmcdole @flutter/engine
|
||||
/dev/devicelab/bin/tasks/flutter_gallery_ios__compile.dart @vashworth @flutter/engine
|
||||
/dev/devicelab/bin/tasks/flutter_gallery_ios__start_up.dart @vashworth @flutter/engine
|
||||
/dev/devicelab/bin/tasks/flutter_gallery_ios_sksl_warmup__transition_perf.dart @jtmcdole @flutter/engine
|
||||
/dev/devicelab/bin/tasks/flutter_view_ios__start_up.dart @jtmcdole @flutter/engine
|
||||
/dev/devicelab/bin/tasks/fullscreen_textfield_perf_ios__e2e_summary.dart @LongCatIsLooong @flutter/engine
|
||||
/dev/devicelab/bin/tasks/hello_world_ios__compile.dart @vashworth @flutter/engine
|
||||
/dev/devicelab/bin/tasks/hot_mode_dev_cycle_ios__benchmark.dart @louisehsu @flutter/tool
|
||||
/dev/devicelab/bin/tasks/imagefiltered_transform_animation_perf_ios__timeline_summary.dart @louisehsu @flutter/engine
|
||||
/dev/devicelab/bin/tasks/imitation_game_flutter__compile.dart @louisehsu @flutter/tool
|
||||
/dev/devicelab/bin/tasks/imitation_game_swiftui__compile.dart @louisehsu @flutter/tool
|
||||
/dev/devicelab/bin/tasks/integration_test_test_ios.dart @LongCatIsLooong @flutter/engine
|
||||
/dev/devicelab/bin/tasks/integration_ui_ios_driver.dart LongCatIsLooong @flutter/tool
|
||||
/dev/devicelab/bin/tasks/integration_ui_ios_frame_number.dart @jtmcdole @flutter/engine
|
||||
/dev/devicelab/bin/tasks/integration_ui_ios_keyboard_resize.dart @LongCatIsLooong @flutter/engine
|
||||
/dev/devicelab/bin/tasks/integration_ui_ios_screenshot.dart @LongCatIsLooong @flutter/tool
|
||||
/dev/devicelab/bin/tasks/integration_ui_ios_textfield.dart @LongCatIsLooong @flutter/tool
|
||||
/dev/devicelab/bin/tasks/ios_app_with_extensions_test.dart @hellohuanlin @flutter/tool
|
||||
/dev/devicelab/bin/tasks/ios_defines_test.dart @vashworth @flutter/tool
|
||||
/dev/devicelab/bin/tasks/ios_picture_cache_complexity_scoring_perf__timeline_summary.dart @flar @flutter/engine
|
||||
/dev/devicelab/bin/tasks/ios_platform_view_tests.dart @stuartmorgan-g @flutter/plugin
|
||||
/dev/devicelab/bin/tasks/keyboard_hot_restart_ios.dart @loic-sharma @flutter/ios
|
||||
/dev/devicelab/bin/tasks/large_image_changer_perf_ios.dart @jtmcdole @flutter/engine
|
||||
/dev/devicelab/bin/tasks/microbenchmarks_ios.dart @louisehsu @flutter/engine
|
||||
/dev/devicelab/bin/tasks/native_assets_ios.dart @dcharkes @flutter/ios
|
||||
/dev/devicelab/bin/tasks/native_platform_view_ui_tests_ios.dart @hellohuanlin @flutter/ios
|
||||
/dev/devicelab/bin/tasks/new_gallery_ios__transition_perf.dart @jtmcdole @flutter/engine
|
||||
/dev/devicelab/bin/tasks/new_gallery_skia_ios__transition_perf.dart @jtmcdole @flutter/engine
|
||||
/dev/devicelab/bin/tasks/platform_channel_sample_test_ios.dart @hellohuanlin @flutter/engine
|
||||
/dev/devicelab/bin/tasks/platform_channel_sample_test_swift.dart @hellohuanlin @flutter/engine
|
||||
/dev/devicelab/bin/tasks/platform_channels_benchmarks_ios.dart @gaaclarke @flutter/engine
|
||||
/dev/devicelab/bin/tasks/platform_interaction_test_ios.dart @hellohuanlin @flutter/engine
|
||||
/dev/devicelab/bin/tasks/platform_view_ios__start_up.dart @stuartmorgan-g @flutter/plugin
|
||||
/dev/devicelab/bin/tasks/platform_views_scroll_perf_ad_banners__timeline_summary.dart @hellohuanlin @flutter/engine
|
||||
/dev/devicelab/bin/tasks/platform_views_scroll_perf_bottom_ad_banner__timeline_summary.dart @hellohuanlin @flutter/engine
|
||||
/dev/devicelab/bin/tasks/platform_views_scroll_perf_ios__timeline_summary.dart @hellohuanlin @flutter/engine
|
||||
/dev/devicelab/bin/tasks/platform_views_scroll_perf_non_intersecting_impeller_ios__timeline_summary.dart @jonahwilliams @flutter/engine
|
||||
/dev/devicelab/bin/tasks/post_backdrop_filter_perf_ios__timeline_summary.dart @louisehsu @flutter/engine
|
||||
/dev/devicelab/bin/tasks/route_test_ios.dart @LongCatIsLooong @flutter/tool
|
||||
/dev/devicelab/bin/tasks/rrect_blur_perf_ios__timeline_summary.dart @gaaclarke @flutter/engine
|
||||
/dev/devicelab/bin/tasks/simple_animation_perf_ios.dart @LongCatIsLooong @flutter/engine
|
||||
/dev/devicelab/bin/tasks/static_path_stroke_tessellation_perf_ios__timeline_summary.dart @flar @flutter/engine
|
||||
/dev/devicelab/bin/tasks/static_path_tessellation_perf_ios__timeline_summary.dart @jonahwilliams @flutter/engine
|
||||
/dev/devicelab/bin/tasks/tiles_scroll_perf_ios__timeline_summary.dart @louisehsu @flutter/engine
|
||||
/dev/devicelab/bin/tasks/very_long_picture_scrolling_perf_ios__e2e_summary.dart @flar @flutter/engine
|
||||
|
||||
## Host only DeviceLab tests
|
||||
/dev/devicelab/bin/tasks/android_display_cutout.dart @reidbaker @flutter/android
|
||||
/dev/devicelab/bin/tasks/android_release_builds_exclude_dev_dependencies_test.dart @camsim99 @flutter/android
|
||||
/dev/devicelab/bin/tasks/animated_complex_opacity_perf_macos__e2e_summary.dart @cbracken @flutter/desktop
|
||||
/dev/devicelab/bin/tasks/basic_material_app_macos__compile.dart @cbracken @flutter/desktop
|
||||
/dev/devicelab/bin/tasks/build_aar_module_test.dart @bkonyi @flutter/tool
|
||||
/dev/devicelab/bin/tasks/build_android_host_app_with_module_aar.dart @mboetger @flutter/android
|
||||
/dev/devicelab/bin/tasks/build_android_host_app_with_module_source.dart @mboetger @flutter/android
|
||||
/dev/devicelab/bin/tasks/build_ios_framework_module_test.dart @vashworth @flutter/tool
|
||||
/dev/devicelab/bin/tasks/channels_integration_test_macos.dart @gaaclarke @flutter/desktop
|
||||
/dev/devicelab/bin/tasks/complex_layout_macos__compile.dart @cbracken @flutter/desktop
|
||||
/dev/devicelab/bin/tasks/complex_layout_macos__start_up.dart @cbracken @flutter/desktop
|
||||
/dev/devicelab/bin/tasks/complex_layout_scroll_perf_macos__timeline_summary.dart @cbracken @flutter/desktop
|
||||
/dev/devicelab/bin/tasks/complex_layout_win_desktop__compile.dart @yaakovschectman @flutter/desktop
|
||||
/dev/devicelab/bin/tasks/complex_layout_win_desktop__start_up.dart @yaakovschectman @flutter/desktop
|
||||
/dev/devicelab/bin/tasks/dart_plugin_registry_test.dart @stuartmorgan-g @flutter/plugin
|
||||
/dev/devicelab/bin/tasks/entrypoint_dart_registrant.dart @aaclarke @flutter/plugin
|
||||
/dev/devicelab/bin/tasks/flavors_test_macos.dart @vashworth @flutter/desktop
|
||||
/dev/devicelab/bin/tasks/flutter_gallery_macos__compile.dart @cbracken @flutter/desktop
|
||||
/dev/devicelab/bin/tasks/flutter_gallery_macos__start_up.dart @cbracken @flutter/desktop
|
||||
/dev/devicelab/bin/tasks/flutter_gallery_win_desktop__compile.dart @yaakovschectman @flutter/desktop
|
||||
/dev/devicelab/bin/tasks/flutter_gallery_win_desktop__start_up.dart @yaakovschectman @flutter/desktop
|
||||
/dev/devicelab/bin/tasks/flutter_tool_startup.dart @jensjoha @flutter/tool
|
||||
/dev/devicelab/bin/tasks/flutter_tool_startup__linux.dart @jensjoha @flutter/tool
|
||||
/dev/devicelab/bin/tasks/flutter_tool_startup__macos.dart @jensjoha @flutter/tool
|
||||
/dev/devicelab/bin/tasks/flutter_tool_startup__windows.dart @jensjoha @flutter/tool
|
||||
/dev/devicelab/bin/tasks/flutter_view_macos__start_up.dart @cbracken @flutter/desktop
|
||||
/dev/devicelab/bin/tasks/flutter_view_win_desktop__start_up.dart @yaakovschectman @flutter/desktop
|
||||
/dev/devicelab/bin/tasks/gradle_desugar_classes_test.dart @mboetger @flutter/tool
|
||||
/dev/devicelab/bin/tasks/gradle_plugin_bundle_test.dart @gmackall @flutter/plugin
|
||||
/dev/devicelab/bin/tasks/gradle_plugin_fat_apk_test.dart @gmackall @flutter/plugin
|
||||
/dev/devicelab/bin/tasks/gradle_plugin_light_apk_test.dart @gmackall @flutter/plugin
|
||||
/dev/devicelab/bin/tasks/hello_world_macos__compile.dart @cbracken @flutter/desktop
|
||||
/dev/devicelab/bin/tasks/hello_world_win_desktop__compile.dart @yaakovschectman @flutter/desktop
|
||||
/dev/devicelab/bin/tasks/hot_mode_dev_cycle_ios_simulator.dart @louisehsu @flutter/tool
|
||||
/dev/devicelab/bin/tasks/hot_mode_dev_cycle_macos_target__benchmark.dart @cbracken @flutter/tool
|
||||
/dev/devicelab/bin/tasks/hot_mode_dev_cycle_win_target__benchmark.dart @cbracken @flutter/desktop
|
||||
/dev/devicelab/bin/tasks/integration_ui_test_test_macos.dart @cbracken @flutter/desktop
|
||||
/dev/devicelab/bin/tasks/ios_debug_workflow.dart @vashworth @flutter/ios
|
||||
/dev/devicelab/bin/tasks/linux_desktop_impeller.dart @jonahwilliams @flutter/engine
|
||||
/dev/devicelab/bin/tasks/linux_feature_flags_test.dart @loic-sharma @flutter/desktop
|
||||
/dev/devicelab/bin/tasks/mac_desktop_impeller.dart @jonahwilliams @flutter/engine
|
||||
/dev/devicelab/bin/tasks/macos_chrome_dev_mode.dart @bkonyi @flutter/tool
|
||||
/dev/devicelab/bin/tasks/module_custom_host_app_name_test.dart @bkonyi @flutter/tool
|
||||
/dev/devicelab/bin/tasks/module_host_with_custom_build_test.dart @bkonyi @flutter/tool
|
||||
/dev/devicelab/bin/tasks/module_test_ios.dart @vashworth @flutter/tool
|
||||
/dev/devicelab/bin/tasks/module_uiscene_test_ios.dart @vashworth @flutter/ios
|
||||
/dev/devicelab/bin/tasks/native_assets_ios_simulator.dart @dcharkes @flutter/ios
|
||||
/dev/devicelab/bin/tasks/native_ui_tests_macos.dart @cbracken @flutter/desktop
|
||||
/dev/devicelab/bin/tasks/platform_channel_sample_test_macos.dart @cbracken @flutter/desktop
|
||||
/dev/devicelab/bin/tasks/platform_channel_sample_test_windows.dart @cbracken @flutter/desktop
|
||||
/dev/devicelab/bin/tasks/platform_view_macos__start_up.dart @cbracken @flutter/desktop
|
||||
/dev/devicelab/bin/tasks/platform_view_win_desktop__start_up.dart @yaakovschectman @flutter/desktop
|
||||
/dev/devicelab/bin/tasks/plugin_lint_mac.dart @stuartmorgan-g @flutter/plugin
|
||||
/dev/devicelab/bin/tasks/plugin_test_android_standard.dart @stuartmorgan-g @flutter/plugin
|
||||
/dev/devicelab/bin/tasks/plugin_test_android_variants.dart @stuartmorgan-g @flutter/plugin
|
||||
/dev/devicelab/bin/tasks/plugin_test_ios.dart @stuartmorgan-g @flutter/ios
|
||||
/dev/devicelab/bin/tasks/plugin_test_linux.dart @stuartmorgan-g @flutter/desktop
|
||||
/dev/devicelab/bin/tasks/plugin_test_macos.dart @vashworth @flutter/desktop
|
||||
/dev/devicelab/bin/tasks/plugin_test_windows.dart @loic-sharma @flutter/desktop
|
||||
/dev/devicelab/bin/tasks/run_debug_test_android.dart @camsim99 @flutter/android
|
||||
/dev/devicelab/bin/tasks/run_debug_test_linux.dart @loic-sharma @flutter/tool
|
||||
/dev/devicelab/bin/tasks/run_debug_test_macos.dart @cbracken @flutter/tool
|
||||
/dev/devicelab/bin/tasks/run_debug_test_windows.dart @loic-sharma @flutter/tool
|
||||
/dev/devicelab/bin/tasks/run_release_test_linux.dart @loic-sharma @flutter/tool
|
||||
/dev/devicelab/bin/tasks/run_release_test_macos.dart @cbracken @flutter/tool
|
||||
/dev/devicelab/bin/tasks/run_release_test_windows.dart @loic-sharma @flutter/tool
|
||||
/dev/devicelab/bin/tasks/technical_debt__cost.dart @Piinks @flutter/framework
|
||||
/dev/devicelab/bin/tasks/web_benchmarks_canvaskit.dart @yjbanov @flutter/web
|
||||
/dev/devicelab/bin/tasks/web_benchmarks_ddc.dart @yjbanov @flutter/web
|
||||
/dev/devicelab/bin/tasks/web_benchmarks_ddc_hot_reload.dart @yjbanov @flutter/web
|
||||
/dev/devicelab/bin/tasks/web_benchmarks_skwasm.dart @eyebrowsoffire @flutter/web
|
||||
/dev/devicelab/bin/tasks/web_benchmarks_skwasm_st.dart @eyebrowsoffire @flutter/web
|
||||
/dev/devicelab/bin/tasks/windowing_test_linux.dart @robert-ancell @flutter/desktop
|
||||
/dev/devicelab/bin/tasks/windowing_test_macos.dart @knopp @flutter/desktop
|
||||
/dev/devicelab/bin/tasks/windowing_test_windows.dart @mattkae @flutter/desktop
|
||||
/dev/devicelab/bin/tasks/windows_desktop_impeller.dart @jonahwilliams @flutter/engine
|
||||
/dev/devicelab/bin/tasks/windows_home_scroll_perf__timeline_summary.dart @jonahwilliams @flutter/engine
|
||||
/dev/devicelab/bin/tasks/windows_startup_test.dart @loic-sharma @flutter/desktop
|
||||
|
||||
## Host only framework tests
|
||||
# Linux docs_deploy_stable
|
||||
# Linux docs_generate_release
|
||||
# Linux docs_publish
|
||||
/dev/bots/docs.sh @Piinks @flutter/framework
|
||||
# Linux packages_autoroller
|
||||
/dev/conductor/core @christopherfujino @flutter/tool
|
||||
# Linux web_e2e_test
|
||||
/dev/integration_tests/web_e2e_tests @yjbanov @flutter/web
|
||||
# Linux web_smoke_test
|
||||
/examples/hello_world/test_driver/smoke_web_engine.dart @yjbanov @flutter/web
|
||||
# Linux android views
|
||||
/dev/integration_tests/android_views @gmackall @flutter/android
|
||||
# Linux deferred components
|
||||
/dev/integration_tests/deferred_components_test @mboetger @flutter/android
|
||||
|
||||
## Firebase tests
|
||||
/dev/integration_tests/release_smoke_test @reidbaker @flutter/android
|
||||
|
||||
## Shards tests
|
||||
# TODO(keyonghan): add files/paths for below framework host only testss.
|
||||
# https://github.com/flutter/flutter/issues/82068
|
||||
#
|
||||
# analyze @Piinks @flutter/framework
|
||||
# android_engine_opengles_tests @reidbaker @flutter/android
|
||||
# android_engine_vulkan_tests @reidbaker @flutter/android
|
||||
# android_java11_tool_integration_tests @jesswrd @flutter/android
|
||||
# android_preview_tool_integration_tests @mboetger @flutter/android
|
||||
# build_tests @bkonyi @flutter/tool
|
||||
# ci_yaml flutter roller @keyonghan @flutter/infra
|
||||
# coverage @christopherfujino @flutter/infra
|
||||
# customer_testing @Piinks @flutter/framework
|
||||
# docs @Piinks @flutter/framework
|
||||
# flutter_packaging @christopherfujino @flutter/infra
|
||||
# flutter_plugins @stuartmorgan-g @flutter/plugin
|
||||
# framework_tests @Piinks @flutter/framework
|
||||
# fuchsia_precache @bkonyi @flutter/tool
|
||||
# realm_checker @eyebrowsoffire @flutter/tool
|
||||
# skp_generator @Hixie
|
||||
# test_ownership @keyonghan
|
||||
# tool_host_cross_arch_tests @bkonyi @flutter/tool
|
||||
# tool_integration_tests @bkonyi @flutter/tool
|
||||
# tool_tests @bkonyi @flutter/tool
|
||||
# verify_binaries_codesigned @cbracken @flutter/releases
|
||||
# verify_binaries_pre_codesigned @vashworth @flutter/releases
|
||||
# web_canvaskit_tests @yjbanov @flutter/web
|
||||
# web_integration_tests @yjbanov @flutter/web
|
||||
# web_long_running_tests @yjbanov @flutter/web
|
||||
# web_skwasm_tests @eyebrowsoffire @flutter/web
|
||||
# web_tool_tests @yjbanov @flutter/tool
|
||||
270
.flutter/analysis_options.yaml
Normal file
270
.flutter/analysis_options.yaml
Normal file
|
|
@ -0,0 +1,270 @@
|
|||
# Specify analysis options.
|
||||
#
|
||||
# For a list of lints, see: https://dart.dev/tools/linter-rules
|
||||
# For guidelines on configuring static analysis, see:
|
||||
# https://dart.dev/tools/analysis
|
||||
#
|
||||
# There are other similar analysis options files in the flutter repos,
|
||||
# which should be kept in sync with this file:
|
||||
#
|
||||
# - analysis_options.yaml (this file)
|
||||
# - https://github.com/flutter/packages/blob/main/analysis_options.yaml
|
||||
#
|
||||
# This file contains the analysis options used for code in the flutter/flutter
|
||||
# repository.
|
||||
|
||||
analyzer:
|
||||
language:
|
||||
strict-casts: true
|
||||
strict-inference: true
|
||||
strict-raw-types: true
|
||||
errors:
|
||||
# allow deprecated members (we do this because otherwise we have to annotate
|
||||
# every member in every test, assert, etc, when we or the Dart SDK deprecates
|
||||
# something (https://github.com/flutter/flutter/issues/143312)
|
||||
deprecated_member_use: ignore
|
||||
deprecated_member_use_from_same_package: ignore
|
||||
exclude:
|
||||
- "bin/cache/**"
|
||||
# Ignore protoc generated files
|
||||
- "dev/conductor/lib/proto/*"
|
||||
- "engine/**"
|
||||
|
||||
formatter:
|
||||
page_width: 100
|
||||
|
||||
linter:
|
||||
rules:
|
||||
# This list is derived from the list of all available lints located at
|
||||
# https://github.com/dart-lang/sdk/blob/main/pkg/linter/example/all.yaml
|
||||
- always_declare_return_types
|
||||
- always_put_control_body_on_new_line
|
||||
# - always_put_required_named_parameters_first # we prefer having parameters in the same order as fields https://github.com/flutter/flutter/issues/10219
|
||||
# - always_specify_types # conflicts with omit_obvious_local_variable_types
|
||||
# - always_use_package_imports # we do this commonly
|
||||
- annotate_overrides
|
||||
- annotate_redeclares
|
||||
# - avoid_annotating_with_dynamic # conflicts with type_annotate_public_apis
|
||||
- avoid_bool_literals_in_conditional_expressions
|
||||
# - avoid_catches_without_on_clauses # blocked on https://github.com/dart-lang/linter/issues/3023
|
||||
# - avoid_catching_errors # blocked on https://github.com/dart-lang/linter/issues/4998
|
||||
# - avoid_classes_with_only_static_members # we do this commonly for `abstract final class`es
|
||||
- avoid_double_and_int_checks
|
||||
- avoid_dynamic_calls
|
||||
- avoid_empty_else
|
||||
- avoid_equals_and_hash_code_on_mutable_classes
|
||||
- avoid_escaping_inner_quotes
|
||||
- avoid_field_initializers_in_const_classes
|
||||
# - avoid_final_parameters # incompatible with prefer_final_parameters
|
||||
- avoid_function_literals_in_foreach_calls
|
||||
# - avoid_futureor_void # not yet tested
|
||||
# - avoid_implementing_value_types # see https://github.com/dart-lang/linter/issues/4558
|
||||
- avoid_init_to_null
|
||||
- avoid_js_rounded_ints
|
||||
# - avoid_multiple_declarations_per_line # seems to be a stylistic choice we don't subscribe to
|
||||
- avoid_null_checks_in_equality_operators
|
||||
# - avoid_positional_boolean_parameters # would have been nice to enable this but by now there's too many places that break it
|
||||
- avoid_print
|
||||
# - avoid_private_typedef_functions # we prefer having typedef (discussion in https://github.com/flutter/flutter/pull/16356)
|
||||
- avoid_redundant_argument_values
|
||||
- avoid_relative_lib_imports
|
||||
- avoid_renaming_method_parameters
|
||||
- avoid_return_types_on_setters
|
||||
- avoid_returning_null_for_void
|
||||
# - avoid_returning_this # there are enough valid reasons to return `this` that this lint ends up with too many false positives
|
||||
- avoid_setters_without_getters
|
||||
- avoid_shadowing_type_parameters
|
||||
- avoid_single_cascade_in_expression_statements
|
||||
- avoid_slow_async_io
|
||||
- avoid_type_to_string
|
||||
- avoid_types_as_parameter_names
|
||||
# - avoid_types_on_closure_parameters # not yet tested
|
||||
- avoid_unnecessary_containers
|
||||
- avoid_unused_constructor_parameters
|
||||
- avoid_void_async
|
||||
# - avoid_web_libraries_in_flutter # we use web libraries in web-specific code, and our tests prevent us from using them elsewhere
|
||||
- await_only_futures
|
||||
- camel_case_extensions
|
||||
- camel_case_types
|
||||
- cancel_subscriptions
|
||||
# - cascade_invocations # doesn't match the typical style of this repo
|
||||
- cast_nullable_to_non_nullable
|
||||
# - close_sinks # not reliable enough
|
||||
- collection_methods_unrelated_type
|
||||
- combinators_ordering
|
||||
# - comment_references # blocked on https://github.com/dart-lang/linter/issues/1142
|
||||
- conditional_uri_does_not_exist
|
||||
# - constant_identifier_names # needs an opt-out https://github.com/dart-lang/linter/issues/204
|
||||
- control_flow_in_finally
|
||||
- curly_braces_in_flow_control_structures
|
||||
- dangling_library_doc_comments
|
||||
- depend_on_referenced_packages
|
||||
- deprecated_consistency
|
||||
# - deprecated_member_use_from_same_package # we allow self-references to deprecated members
|
||||
# - diagnostic_describe_all_properties # enabled only at the framework level (packages/flutter/lib)
|
||||
- directives_ordering
|
||||
# - discarded_futures # too many false positives, similar to unawaited_futures
|
||||
# - do_not_use_environment # there are appropriate times to use the environment, especially in our tests and build logic
|
||||
# - document_ignores # not yet tested
|
||||
- empty_catches
|
||||
- empty_constructor_bodies
|
||||
- empty_statements
|
||||
- eol_at_end_of_file
|
||||
- exhaustive_cases
|
||||
- file_names
|
||||
- flutter_style_todos
|
||||
- hash_and_equals
|
||||
- implementation_imports
|
||||
- implicit_call_tearoffs
|
||||
- implicit_reopen
|
||||
- invalid_case_patterns
|
||||
- invalid_runtime_check_with_js_interop_types
|
||||
# - join_return_with_assignment # not required by flutter style
|
||||
- leading_newlines_in_multiline_strings
|
||||
- library_annotations
|
||||
- library_names
|
||||
- library_prefixes
|
||||
- library_private_types_in_public_api
|
||||
# - lines_longer_than_80_chars # not required by flutter style
|
||||
- literal_only_boolean_expressions
|
||||
# - matching_super_parameters # blocked on https://github.com/dart-lang/language/issues/2509
|
||||
- missing_code_block_language_in_doc_comment
|
||||
- missing_whitespace_between_adjacent_strings
|
||||
- no_adjacent_strings_in_list
|
||||
- no_default_cases
|
||||
- no_duplicate_case_values
|
||||
- no_leading_underscores_for_library_prefixes
|
||||
- no_leading_underscores_for_local_identifiers
|
||||
- no_literal_bool_comparisons
|
||||
- no_logic_in_create_state
|
||||
# - no_runtimeType_toString # ok in tests; we enable this only in packages/
|
||||
- no_self_assignments
|
||||
- no_wildcard_variable_uses
|
||||
- non_constant_identifier_names
|
||||
- noop_primitive_operations
|
||||
- null_check_on_nullable_type_parameter
|
||||
- null_closures
|
||||
# - omit_local_variable_types # superset of omit_obvious_local_variable_types
|
||||
- omit_obvious_local_variable_types # not yet tested
|
||||
# - omit_obvious_property_types # conflicts with type_annotate_public_apis
|
||||
# - one_member_abstracts # too many false positives
|
||||
- only_throw_errors # this does get disabled in a few places where we have legacy code that uses strings et al
|
||||
- overridden_fields
|
||||
- package_names
|
||||
- package_prefixed_library_names
|
||||
# - parameter_assignments # we do this commonly
|
||||
- prefer_adjacent_string_concatenation
|
||||
- prefer_asserts_in_initializer_lists
|
||||
# - prefer_asserts_with_message # not required by flutter style
|
||||
- prefer_collection_literals
|
||||
- prefer_conditional_assignment
|
||||
- prefer_const_constructors
|
||||
- prefer_const_constructors_in_immutables
|
||||
- prefer_const_declarations
|
||||
- prefer_const_literals_to_create_immutables
|
||||
# - prefer_constructors_over_static_methods # far too many false positives
|
||||
- prefer_contains
|
||||
# - prefer_double_quotes # opposite of prefer_single_quotes
|
||||
# - prefer_expression_function_bodies # conflicts with ./docs/contributing/Style-guide-for-Flutter-repo.md#consider-using--for-short-functions-and-methods
|
||||
- prefer_final_fields
|
||||
- prefer_final_in_for_each
|
||||
- prefer_final_locals
|
||||
# - prefer_final_parameters # adds too much verbosity
|
||||
- prefer_for_elements_to_map_fromIterable
|
||||
- prefer_foreach
|
||||
- prefer_function_declarations_over_variables
|
||||
- prefer_generic_function_type_aliases
|
||||
- prefer_if_elements_to_conditional_expressions
|
||||
- prefer_if_null_operators
|
||||
- prefer_initializing_formals
|
||||
- prefer_inlined_adds
|
||||
# - prefer_int_literals # conflicts with ./docs/contributing/Style-guide-for-Flutter-repo.md#use-double-literals-for-double-constants
|
||||
- prefer_interpolation_to_compose_strings
|
||||
- prefer_is_empty
|
||||
- prefer_is_not_empty
|
||||
- prefer_is_not_operator
|
||||
- prefer_iterable_whereType
|
||||
- prefer_mixin
|
||||
# - prefer_null_aware_method_calls # "call()" is confusing to people new to the language since it's not documented anywhere
|
||||
- prefer_null_aware_operators
|
||||
- prefer_relative_imports
|
||||
- prefer_single_quotes
|
||||
- prefer_spread_collections
|
||||
- prefer_typing_uninitialized_variables
|
||||
- prefer_void_to_null
|
||||
- provide_deprecation_message
|
||||
# - public_member_api_docs # enabled on a case-by-case basis; see e.g. packages/analysis_options.yaml
|
||||
- recursive_getters
|
||||
# - require_trailing_commas # would be nice, but requires a lot of manual work: 10,000+ code locations would need to be reformatted by hand after bulk fix is applied
|
||||
- secure_pubspec_urls
|
||||
- sized_box_for_whitespace
|
||||
- sized_box_shrink_expand
|
||||
- slash_for_doc_comments
|
||||
- sort_child_properties_last
|
||||
- sort_constructors_first
|
||||
# - sort_pub_dependencies # prevents separating pinned transitive dependencies
|
||||
- sort_unnamed_constructors_first
|
||||
- specify_nonobvious_local_variable_types
|
||||
- specify_nonobvious_property_types
|
||||
- strict_top_level_inference
|
||||
- test_types_in_equals
|
||||
- throw_in_finally
|
||||
- tighten_type_of_initializing_formals
|
||||
- type_annotate_public_apis
|
||||
- type_init_formals
|
||||
- type_literal_in_constant_pattern
|
||||
# - unawaited_futures # too many false positives, especially with the way AnimationController works
|
||||
# - unintended_html_in_doc_comment # blocked on https://github.com/dart-lang/linter/issues/5065
|
||||
# - unnecessary_async # not yet tested
|
||||
- unnecessary_await_in_return
|
||||
- unnecessary_brace_in_string_interps
|
||||
- unnecessary_breaks
|
||||
- unnecessary_const
|
||||
- unnecessary_constructor_name
|
||||
# - unnecessary_final # conflicts with prefer_final_locals
|
||||
- unnecessary_getters_setters
|
||||
# - unnecessary_ignore # Disabled by default to simplify migrations; should be periodically enabled locally to clean up offenders
|
||||
# - unnecessary_lambdas # has false positives: https://github.com/dart-lang/linter/issues/498
|
||||
- unnecessary_late
|
||||
- unnecessary_library_directive
|
||||
# - unnecessary_library_name # blocked on https://github.com/dart-lang/dartdoc/issues/3882
|
||||
- unnecessary_new
|
||||
- unnecessary_null_aware_assignments
|
||||
- unnecessary_null_aware_operator_on_extension_on_nullable
|
||||
- unnecessary_null_checks
|
||||
- unnecessary_null_in_if_null_operators
|
||||
- unnecessary_nullable_for_final_variable_declarations
|
||||
- unnecessary_overrides
|
||||
- unnecessary_parenthesis
|
||||
# - unnecessary_raw_strings # what's "necessary" is a matter of opinion; consistency across strings can help readability more than this lint
|
||||
- unnecessary_statements
|
||||
- unnecessary_string_escapes
|
||||
- unnecessary_string_interpolations
|
||||
- unnecessary_this
|
||||
- unnecessary_to_list_in_spreads
|
||||
- unnecessary_underscores
|
||||
- unreachable_from_main
|
||||
- unrelated_type_equality_checks
|
||||
# - unsafe_variance # not yet tested
|
||||
- use_build_context_synchronously
|
||||
- use_colored_box
|
||||
# - use_decorated_box # leads to bugs: DecoratedBox and Container are not equivalent (Container inserts extra padding)
|
||||
- use_enums
|
||||
- use_full_hex_values_for_flutter_colors
|
||||
- use_function_type_syntax_for_parameters
|
||||
- use_if_null_to_convert_nulls_to_bools
|
||||
- use_is_even_rather_than_modulo
|
||||
- use_key_in_widget_constructors
|
||||
- use_late_for_private_fields_and_variables
|
||||
- use_named_constants
|
||||
- use_raw_strings
|
||||
- use_rethrow_when_possible
|
||||
- use_setters_to_change_properties
|
||||
# - use_string_buffers # has false positives: https://github.com/dart-lang/sdk/issues/34182
|
||||
- use_string_in_part_of_directives
|
||||
- use_super_parameters
|
||||
- use_test_throws_matchers
|
||||
# - use_to_and_as_if_applicable # has false positives, so we prefer to catch this by code-review
|
||||
- use_truncating_division
|
||||
- valid_regexps
|
||||
- void_checks
|
||||
59
.flutter/bin/dart
Executable file
59
.flutter/bin/dart
Executable file
|
|
@ -0,0 +1,59 @@
|
|||
#!/usr/bin/env bash
|
||||
# Copyright 2014 The Flutter Authors. All rights reserved.
|
||||
# Use of this source code is governed by a BSD-style license that can be
|
||||
# found in the LICENSE file.
|
||||
|
||||
# ---------------------------------- NOTE ---------------------------------- #
|
||||
#
|
||||
# Please keep the logic in this file consistent with the logic in the
|
||||
# `dart.bat` script in the same directory to ensure that Flutter & Dart continue
|
||||
# to work across all platforms!
|
||||
#
|
||||
# -------------------------------------------------------------------------- #
|
||||
|
||||
set -e
|
||||
|
||||
# Needed because if it is set, cd may print the path it changed to.
|
||||
unset CDPATH
|
||||
|
||||
# On Mac OS, readlink -f doesn't work, so follow_links traverses the path one
|
||||
# link at a time, and then cds into the link destination and find out where it
|
||||
# ends up.
|
||||
#
|
||||
# The returned filesystem path must be a format usable by Dart's URI parser,
|
||||
# since the Dart command line tool treats its argument as a file URI, not a
|
||||
# filename. For instance, multiple consecutive slashes should be reduced to a
|
||||
# single slash, since double-slashes indicate a URI "authority", and these are
|
||||
# supposed to be filenames. There is an edge case where this will return
|
||||
# multiple slashes: when the input resolves to the root directory. However, if
|
||||
# that were the case, we wouldn't be running this shell, so we don't do anything
|
||||
# about it.
|
||||
#
|
||||
# The function is enclosed in a subshell to avoid changing the working directory
|
||||
# of the caller.
|
||||
function follow_links() (
|
||||
cd -P "$(dirname -- "$1")"
|
||||
file="$PWD/$(basename -- "$1")"
|
||||
while [[ -h "$file" ]]; do
|
||||
cd -P "$(dirname -- "$file")"
|
||||
file="$(readlink -- "$file")"
|
||||
cd -P "$(dirname -- "$file")"
|
||||
file="$PWD/$(basename -- "$file")"
|
||||
done
|
||||
echo "$file"
|
||||
)
|
||||
|
||||
PROG_NAME="$(follow_links "${BASH_SOURCE[0]}")"
|
||||
BIN_DIR="$(cd "${PROG_NAME%/*}" ; pwd -P)"
|
||||
SHARED_NAME="$BIN_DIR/internal/shared.sh"
|
||||
OS="$(uname -s)"
|
||||
|
||||
# If we're on Windows, invoke the batch script instead to get proper locking.
|
||||
if [[ $OS =~ MINGW.* || $OS =~ CYGWIN.* || $OS =~ MSYS.* ]]; then
|
||||
exec "${BIN_DIR}/dart.bat" "$@"
|
||||
fi
|
||||
|
||||
# To define `shared::execute()` function
|
||||
source "$SHARED_NAME"
|
||||
|
||||
shared::execute "$@"
|
||||
49
.flutter/bin/dart.bat
Normal file
49
.flutter/bin/dart.bat
Normal file
|
|
@ -0,0 +1,49 @@
|
|||
@ECHO off
|
||||
REM Copyright 2014 The Flutter Authors. All rights reserved.
|
||||
REM Use of this source code is governed by a BSD-style license that can be
|
||||
REM found in the LICENSE file.
|
||||
|
||||
REM ---------------------------------- NOTE ----------------------------------
|
||||
REM
|
||||
REM Please keep the logic in this file consistent with the logic in the
|
||||
REM `dart` script in the same directory to ensure that Flutter & Dart continue to
|
||||
REM work across all platforms!
|
||||
REM
|
||||
REM --------------------------------------------------------------------------
|
||||
|
||||
SETLOCAL
|
||||
|
||||
FOR %%i IN ("%~dp0..") DO SET FLUTTER_ROOT=%%~fi
|
||||
|
||||
REM Detect which PowerShell executable is available on the host
|
||||
REM PowerShell version <= 5: PowerShell.exe
|
||||
REM PowerShell version >= 6: pwsh.exe
|
||||
WHERE /Q pwsh && (
|
||||
SET "powershell_executable=call pwsh"
|
||||
) || WHERE /Q PowerShell.exe && (
|
||||
SET powershell_executable=PowerShell.exe
|
||||
) || (
|
||||
ECHO Error: PowerShell executable not found. 1>&2
|
||||
ECHO Either pwsh.exe or PowerShell.exe must be in your PATH. 1>&2
|
||||
EXIT /B 1
|
||||
)
|
||||
|
||||
REM Include shared scripts in shared.bat
|
||||
SET shared_bin=%FLUTTER_ROOT%/bin/internal/shared.bat
|
||||
CALL "%shared_bin%"
|
||||
|
||||
SET cache_dir=%FLUTTER_ROOT%\bin\cache
|
||||
SET dart_sdk_path=%cache_dir%\dart-sdk
|
||||
SET dart=%dart_sdk_path%\bin\dart.exe
|
||||
|
||||
SET exit_with_errorlevel=%FLUTTER_ROOT%/bin/internal/exit_with_errorlevel.bat
|
||||
|
||||
REM Chaining the call to 'dart' and 'exit' with an ampersand ensures that
|
||||
REM Windows reads both commands into memory once before executing them. This
|
||||
REM avoids nasty errors that may otherwise occur when the dart command (e.g. as
|
||||
REM part of 'flutter upgrade') modifies this batch script while it is executing.
|
||||
REM
|
||||
REM Do not use the CALL command in the next line to execute Dart. CALL causes
|
||||
REM Windows to re-read the line from disk after the CALL command has finished
|
||||
REM regardless of the ampersand chain.
|
||||
"%dart%" %* & "%exit_with_errorlevel%"
|
||||
64
.flutter/bin/flutter
Executable file
64
.flutter/bin/flutter
Executable file
|
|
@ -0,0 +1,64 @@
|
|||
#!/usr/bin/env bash
|
||||
# Copyright 2014 The Flutter Authors. All rights reserved.
|
||||
# Use of this source code is governed by a BSD-style license that can be
|
||||
# found in the LICENSE file.
|
||||
|
||||
# ---------------------------------- NOTE ---------------------------------- #
|
||||
#
|
||||
# Please keep the logic in this file consistent with the logic in the
|
||||
# `flutter.bat` script in the same directory to ensure that Flutter
|
||||
# continues to work across all platforms!
|
||||
#
|
||||
# -------------------------------------------------------------------------- #
|
||||
|
||||
set -e
|
||||
|
||||
# To debug the tool, you can uncomment the following lines to enable debug
|
||||
# mode and set a VM service port:
|
||||
# FLUTTER_TOOL_ARGS="--enable-asserts $FLUTTER_TOOL_ARGS"
|
||||
# FLUTTER_TOOL_ARGS="$FLUTTER_TOOL_ARGS --observe=65432"
|
||||
|
||||
# Needed because if it is set, cd may print the path it changed to.
|
||||
unset CDPATH
|
||||
|
||||
# On Mac OS, readlink -f doesn't work, so follow_links traverses the path one
|
||||
# link at a time, and then cds into the link destination and find out where it
|
||||
# ends up.
|
||||
#
|
||||
# The returned filesystem path must be a format usable by Dart's URI parser,
|
||||
# since the Dart command line tool treats its argument as a file URI, not a
|
||||
# filename. For instance, multiple consecutive slashes should be reduced to a
|
||||
# single slash, since double-slashes indicate a URI "authority", and these are
|
||||
# supposed to be filenames. There is an edge case where this will return
|
||||
# multiple slashes: when the input resolves to the root directory. However, if
|
||||
# that were the case, we wouldn't be running this shell, so we don't do anything
|
||||
# about it.
|
||||
#
|
||||
# The function is enclosed in a subshell to avoid changing the working directory
|
||||
# of the caller.
|
||||
function follow_links() (
|
||||
cd -P "$(dirname -- "$1")"
|
||||
file="$PWD/$(basename -- "$1")"
|
||||
while [[ -h "$file" ]]; do
|
||||
cd -P "$(dirname -- "$file")"
|
||||
file="$(readlink -- "$file")"
|
||||
cd -P "$(dirname -- "$file")"
|
||||
file="$PWD/$(basename -- "$file")"
|
||||
done
|
||||
echo "$file"
|
||||
)
|
||||
|
||||
PROG_NAME="$(follow_links "${BASH_SOURCE[0]}")"
|
||||
BIN_DIR="$(cd "${PROG_NAME%/*}" ; pwd -P)"
|
||||
SHARED_NAME="$BIN_DIR/internal/shared.sh"
|
||||
OS="$(uname -s)"
|
||||
|
||||
# If we're on Windows, invoke the batch script instead to get proper locking.
|
||||
if [[ $OS =~ MINGW.* || $OS =~ CYGWIN.* || $OS =~ MSYS.* ]]; then
|
||||
exec "${BIN_DIR}/flutter.bat" "$@"
|
||||
fi
|
||||
|
||||
# To define `shared::execute()` function
|
||||
source "$SHARED_NAME"
|
||||
|
||||
shared::execute "$@"
|
||||
72
.flutter/bin/flutter-dev
Executable file
72
.flutter/bin/flutter-dev
Executable file
|
|
@ -0,0 +1,72 @@
|
|||
#!/usr/bin/env bash
|
||||
# Copyright 2014 The Flutter Authors. All rights reserved.
|
||||
# Use of this source code is governed by a BSD-style license that can be
|
||||
# found in the LICENSE file.
|
||||
|
||||
# ---------------------------------- NOTE ---------------------------------- #
|
||||
#
|
||||
# Please keep the logic in this file consistent with the logic in the
|
||||
# `flutter-dev.bat` script in the same directory to ensure that Flutter
|
||||
# continues to work across all platforms!
|
||||
#
|
||||
# -------------------------------------------------------------------------- #
|
||||
|
||||
set -e
|
||||
|
||||
# This is a helper script for development purposes. It runs the Flutter tool
|
||||
# from source code directly, without using the prebuilt snapshot. This is
|
||||
# useful for development, as it allows you to make changes to the tool and see
|
||||
# the effects immediately, but is much slower than using the prebuilt snapshot.
|
||||
|
||||
# To debug the tool, you can uncomment the following lines to enable debug
|
||||
# mode and set a VM service port:
|
||||
# FLUTTER_TOOL_ARGS="--enable-asserts $FLUTTER_TOOL_ARGS"
|
||||
# FLUTTER_TOOL_ARGS="$FLUTTER_TOOL_ARGS --observe=65432"
|
||||
|
||||
# Needed because if it is set, cd may print the path it changed to.
|
||||
unset CDPATH
|
||||
|
||||
# On Mac OS, readlink -f doesn't work, so follow_links traverses the path one
|
||||
# link at a time, and then cds into the link destination and find out where it
|
||||
# ends up.
|
||||
#
|
||||
# The returned filesystem path must be a format usable by Dart's URI parser,
|
||||
# since the Dart command line tool treats its argument as a file URI, not a
|
||||
# filename. For instance, multiple consecutive slashes should be reduced to a
|
||||
# single slash, since double-slashes indicate a URI "authority", and these are
|
||||
# supposed to be filenames. There is an edge case where this will return
|
||||
# multiple slashes: when the input resolves to the root directory. However, if
|
||||
# that were the case, we wouldn't be running this shell, so we don't do anything
|
||||
# about it.
|
||||
#
|
||||
# The function is enclosed in a subshell to avoid changing the working directory
|
||||
# of the caller.
|
||||
function follow_links() (
|
||||
cd -P "$(dirname -- "$1")"
|
||||
file="$PWD/$(basename -- "$1")"
|
||||
while [[ -h "$file" ]]; do
|
||||
cd -P "$(dirname -- "$file")"
|
||||
file="$(readlink -- "$file")"
|
||||
cd -P "$(dirname -- "$file")"
|
||||
file="$PWD/$(basename -- "$file")"
|
||||
done
|
||||
echo "$file"
|
||||
)
|
||||
|
||||
# Lookup the parent directory of the script (../), the Flutter SDK root.
|
||||
PROG_NAME="$(follow_links "${BASH_SOURCE[0]}")"
|
||||
BIN_DIR="$(cd "${PROG_NAME%/*}" ; pwd -P)"
|
||||
SHARED_NAME="$BIN_DIR/internal/shared.sh"
|
||||
FLUTTER_ROOT="$(cd "$BIN_DIR/.." ; pwd -P)"
|
||||
OS="$(uname -s)"
|
||||
|
||||
# If we're on Windows, invoke the batch script instead to get proper locking.
|
||||
if [[ $OS =~ MINGW.* || $OS =~ CYGWIN.* || $OS =~ MSYS.* ]]; then
|
||||
exec "${BIN_DIR}/flutter-dev.bat" "$@"
|
||||
fi
|
||||
|
||||
# To define `shared::execute()` function
|
||||
source "$SHARED_NAME"
|
||||
|
||||
# Run the Flutter tool directly without using the cached snapshot.
|
||||
shared::execute "$@"
|
||||
79
.flutter/bin/flutter-dev.bat
Normal file
79
.flutter/bin/flutter-dev.bat
Normal file
|
|
@ -0,0 +1,79 @@
|
|||
@ECHO off
|
||||
REM Copyright 2014 The Flutter Authors. All rights reserved.
|
||||
REM Use of this source code is governed by a BSD-style license that can be
|
||||
REM found in the LICENSE file.
|
||||
|
||||
REM ---------------------------------- NOTE ----------------------------------
|
||||
REM
|
||||
REM Please keep the logic in this file consistent with the logic in the
|
||||
REM `flutter-dev` script in the same directory to ensure that Flutter & Dart
|
||||
REM continue to work across all platforms!
|
||||
REM
|
||||
REM --------------------------------------------------------------------------
|
||||
|
||||
SETLOCAL
|
||||
|
||||
REM This is a helper script for development purposes. It runs the Flutter tool
|
||||
REM from source code directly, without using the prebuilt snapshot. This is
|
||||
REM useful for development, as it allows you to make changes to the tool and see
|
||||
REM the effects immediately, but is much slower than using the prebuilt snapshot.
|
||||
|
||||
REM To debug the tool, you can uncomment the following line to enable debug mode:
|
||||
REM SET FLUTTER_TOOL_ARGS="--enable-asserts %FLUTTER_TOOL_ARGS%"
|
||||
|
||||
FOR %%i IN ("%~dp0..") DO SET FLUTTER_ROOT=%%~fi
|
||||
|
||||
REM If available, add location of bundled mingit to PATH
|
||||
SET mingit_path=%FLUTTER_ROOT%\bin\mingit\cmd
|
||||
IF EXIST "%mingit_path%" SET PATH=%PATH%;%mingit_path%
|
||||
|
||||
REM Test if Git is available on the host
|
||||
WHERE /Q git
|
||||
IF "%ERRORLEVEL%" NEQ "0" (
|
||||
ECHO Error: Unable to find git in your PATH.
|
||||
EXIT /B 1
|
||||
)
|
||||
|
||||
REM Detect which PowerShell executable is available on the host
|
||||
REM PowerShell version <= 5: PowerShell.exe
|
||||
REM PowerShell version >= 6: pwsh.exe
|
||||
WHERE /Q pwsh && (
|
||||
SET "powershell_executable=call pwsh"
|
||||
) || WHERE /Q PowerShell.exe && (
|
||||
SET powershell_executable=PowerShell.exe
|
||||
) || (
|
||||
ECHO Error: PowerShell executable not found. 1>&2
|
||||
ECHO Either pwsh.exe or PowerShell.exe must be in your PATH. 1>&2
|
||||
EXIT /B 1
|
||||
)
|
||||
|
||||
REM Test if the flutter directory is a git clone, otherwise git rev-parse HEAD would fail
|
||||
IF NOT EXIST "%flutter_root%\.git" (
|
||||
ECHO Error: The Flutter directory is not a clone of the GitHub project.
|
||||
ECHO The flutter tool requires Git in order to operate properly;
|
||||
ECHO to set up Flutter, run the following command:
|
||||
ECHO git clone -b stable https://github.com/flutter/flutter.git
|
||||
EXIT 1
|
||||
)
|
||||
|
||||
REM Include shared scripts in shared.bat
|
||||
SET shared_bin=%FLUTTER_ROOT%\bin\internal\shared.bat
|
||||
CALL "%shared_bin%"
|
||||
|
||||
SET flutter_tools_dir=%FLUTTER_ROOT%\packages\flutter_tools
|
||||
SET cache_dir=%FLUTTER_ROOT%\bin\cache
|
||||
SET script_path=%flutter_tools_dir%\bin\flutter_tools.dart
|
||||
SET dart_sdk_path=%cache_dir%\dart-sdk
|
||||
SET dart=%dart_sdk_path%\bin\dart.exe
|
||||
|
||||
SET exit_with_errorlevel=%FLUTTER_ROOT%/bin/internal/exit_with_errorlevel.bat
|
||||
|
||||
REM Chaining the call to 'dart' and 'exit' with an ampersand ensures that
|
||||
REM Windows reads both commands into memory once before executing them. This
|
||||
REM avoids nasty errors that may otherwise occur when the dart command (e.g. as
|
||||
REM part of 'flutter upgrade') modifies this batch script while it is executing.
|
||||
REM
|
||||
REM Do not use the CALL command in the next line to execute Dart. CALL causes
|
||||
REM Windows to re-read the line from disk after the CALL command has finished
|
||||
REM regardless of the ampersand chain.
|
||||
"%dart%" run --resident --packages="%flutter_tools_dir%\.dart_tool\package_config.json" %FLUTTER_TOOL_ARGS% "%script_path%" %* & "%exit_with_errorlevel%"
|
||||
74
.flutter/bin/flutter.bat
Normal file
74
.flutter/bin/flutter.bat
Normal file
|
|
@ -0,0 +1,74 @@
|
|||
@ECHO off
|
||||
REM Copyright 2014 The Flutter Authors. All rights reserved.
|
||||
REM Use of this source code is governed by a BSD-style license that can be
|
||||
REM found in the LICENSE file.
|
||||
|
||||
REM ---------------------------------- NOTE ----------------------------------
|
||||
REM
|
||||
REM Please keep the logic in this file consistent with the logic in the
|
||||
REM `flutter` script in the same directory to ensure that Flutter & Dart
|
||||
REM continue to work across all platforms!
|
||||
REM
|
||||
REM --------------------------------------------------------------------------
|
||||
|
||||
SETLOCAL
|
||||
|
||||
REM To debug the tool, you can uncomment the following line to enable debug mode:
|
||||
REM SET FLUTTER_TOOL_ARGS="--enable-asserts %FLUTTER_TOOL_ARGS%"
|
||||
|
||||
FOR %%i IN ("%~dp0..") DO SET FLUTTER_ROOT=%%~fi
|
||||
|
||||
REM If available, add location of bundled mingit to PATH
|
||||
SET mingit_path=%FLUTTER_ROOT%\bin\mingit\cmd
|
||||
IF EXIST "%mingit_path%" SET PATH=%PATH%;%mingit_path%
|
||||
|
||||
REM Test if Git is available on the host
|
||||
WHERE /Q git
|
||||
IF "%ERRORLEVEL%" NEQ "0" (
|
||||
ECHO Error: Unable to find git in your PATH.
|
||||
EXIT /B 1
|
||||
)
|
||||
|
||||
REM Detect which PowerShell executable is available on the host
|
||||
REM PowerShell version <= 5: PowerShell.exe
|
||||
REM PowerShell version >= 6: pwsh.exe
|
||||
WHERE /Q pwsh && (
|
||||
SET "powershell_executable=call pwsh"
|
||||
) || WHERE /Q PowerShell.exe && (
|
||||
SET powershell_executable=PowerShell.exe
|
||||
) || (
|
||||
ECHO Error: PowerShell executable not found. 1>&2
|
||||
ECHO Either pwsh.exe or PowerShell.exe must be in your PATH. 1>&2
|
||||
EXIT /B 1
|
||||
)
|
||||
|
||||
REM Test if the flutter directory is a git clone, otherwise git rev-parse HEAD would fail
|
||||
IF NOT EXIST "%flutter_root%\.git" (
|
||||
ECHO Error: The Flutter directory is not a clone of the GitHub project.
|
||||
ECHO The flutter tool requires Git in order to operate properly;
|
||||
ECHO to set up Flutter, run the following command:
|
||||
ECHO git clone -b stable https://github.com/flutter/flutter.git
|
||||
EXIT 1
|
||||
)
|
||||
|
||||
REM Include shared scripts in shared.bat
|
||||
SET shared_bin=%FLUTTER_ROOT%\bin\internal\shared.bat
|
||||
CALL "%shared_bin%"
|
||||
|
||||
SET flutter_tools_dir=%FLUTTER_ROOT%\packages\flutter_tools
|
||||
SET cache_dir=%FLUTTER_ROOT%\bin\cache
|
||||
SET snapshot_path=%cache_dir%\flutter_tools.snapshot
|
||||
SET dart_sdk_path=%cache_dir%\dart-sdk
|
||||
SET dart=%dart_sdk_path%\bin\dart.exe
|
||||
|
||||
SET exit_with_errorlevel=%FLUTTER_ROOT%/bin/internal/exit_with_errorlevel.bat
|
||||
|
||||
REM Chaining the call to 'dart' and 'exit' with an ampersand ensures that
|
||||
REM Windows reads both commands into memory once before executing them. This
|
||||
REM avoids nasty errors that may otherwise occur when the dart command (e.g. as
|
||||
REM part of 'flutter upgrade') modifies this batch script while it is executing.
|
||||
REM
|
||||
REM Do not use the CALL command in the next line to execute Dart. CALL causes
|
||||
REM Windows to re-read the line from disk after the CALL command has finished
|
||||
REM regardless of the ampersand chain.
|
||||
"%dart%" --packages="%flutter_tools_dir%\.dart_tool\package_config.json" %FLUTTER_TOOL_ARGS% "%snapshot_path%" %* & "%exit_with_errorlevel%"
|
||||
15
.flutter/bin/internal/README.md
Normal file
15
.flutter/bin/internal/README.md
Normal file
|
|
@ -0,0 +1,15 @@
|
|||
# Flutter SDK dependency versions
|
||||
|
||||
The files in this directory specifies pinned versions of various
|
||||
dependencies of the flutter SDK.
|
||||
|
||||
The `bin/internal/engine.version` file controls where to find compiled artifacts
|
||||
of the engine. These artifacts are compiled in the Merge Queue for every commit
|
||||
in the flutter repository.
|
||||
|
||||
The `bin/internal/flutter_packages.version` file specifies the version
|
||||
of the `flutter/packages` repository to be used for testing. The
|
||||
`flutter/packages` repository isn't an upstream dependency of
|
||||
`flutter/flutter`; it is only used as part of the test suite for
|
||||
verification, and the pinned version here makes sure that tests are
|
||||
deterministic at each `flutter/flutter` commit.
|
||||
1
.flutter/bin/internal/canvaskit.version
Normal file
1
.flutter/bin/internal/canvaskit.version
Normal file
|
|
@ -0,0 +1 @@
|
|||
61aeJQ9laGfEFF_Vlc_u0MCkqB6xb2hAYHRBxKH-Uw4C
|
||||
84
.flutter/bin/internal/content_aware_hash.ps1
Normal file
84
.flutter/bin/internal/content_aware_hash.ps1
Normal file
|
|
@ -0,0 +1,84 @@
|
|||
# Copyright 2014 The Flutter Authors. All rights reserved.
|
||||
# Use of this source code is governed by a BSD-style license that can be
|
||||
# found in the LICENSE file.
|
||||
|
||||
# ---------------------------------- NOTE ---------------------------------- #
|
||||
#
|
||||
# Please keep the logic in this file consistent with the logic in the
|
||||
# `content_aware_hash.sh` script in the same directory to ensure that Flutter
|
||||
# continues to work across all platforms!
|
||||
#
|
||||
# -------------------------------------------------------------------------- #
|
||||
|
||||
$ErrorActionPreference = "Stop"
|
||||
|
||||
# When called from a submodule hook; these will override `git -C dir`
|
||||
$env:GIT_DIR = $null
|
||||
$env:GIT_INDEX_FILE = $null
|
||||
$env:GIT_WORK_TREE = $null
|
||||
|
||||
$progName = Split-Path -parent $MyInvocation.MyCommand.Definition
|
||||
$flutterRoot = (Get-Item $progName).parent.parent.FullName
|
||||
|
||||
# Cannot use '*' for files in this command
|
||||
# DEPS: tracks third party dependencies related to building the engine
|
||||
# engine: all the code in the engine folder
|
||||
# bin/internal/release-candidate-branch.version: release marker
|
||||
$trackedFiles = "DEPS", "engine", "bin/internal/release-candidate-branch.version"
|
||||
$baseRef = "HEAD"
|
||||
$currentBranch = (git -C "$flutterRoot" rev-parse --abbrev-ref HEAD).Trim()
|
||||
|
||||
# By default, the content hash is based on HEAD.
|
||||
# For local development branches, we want to base the hash on the merge-base
|
||||
# with the remote tracking branch, so that we don't rebuild the world every
|
||||
# time we make a change to the engine.
|
||||
#
|
||||
# The following conditions are exceptions where we want to use HEAD.
|
||||
# 1. The current branch is a release branch (main, master, stable, beta).
|
||||
# 2. The current branch is a GitHub temporary merge branch.
|
||||
# 3. The current branch is a release candidate branch.
|
||||
# 4. The current checkout is a shallow clone.
|
||||
# 5. There is no current branch. E.g. running on CI/CD.
|
||||
$isShallow = Test-Path -Path (Join-Path "$flutterRoot" ".git/shallow")
|
||||
if (($currentBranch -ne "main") -and
|
||||
($currentBranch -ne "master") -and
|
||||
($currentBranch -ne "stable") -and
|
||||
($currentBranch -ne "beta") -and
|
||||
(-not (($currentBranch -eq "HEAD") -and (-not [string]::IsNullOrEmpty($env:LUCI_CONTEXT)))) -and
|
||||
(-not $currentBranch.StartsWith("gh-readonly-queue/master/pr-")) -and
|
||||
(-not ($currentBranch -like "flutter-*-candidate.*")) -and
|
||||
(-not $isShallow)) {
|
||||
|
||||
# This is a development branch. Find the merge-base.
|
||||
# We will fallback to origin if upstream is not detected.
|
||||
$remote = "origin"
|
||||
$ErrorActionPreference = 'SilentlyContinue'
|
||||
git -C "$flutterRoot" remote get-url upstream *> $null
|
||||
if ($LASTEXITCODE -eq 0) {
|
||||
$remote = "upstream"
|
||||
}
|
||||
|
||||
# Try to find the merge-base with master, then main.
|
||||
$mergeBase = (git -C "$flutterRoot" merge-base HEAD "$remote/master" 2>$null).Trim()
|
||||
if ([string]::IsNullOrEmpty($mergeBase)) {
|
||||
$mergeBase = (git -C "$flutterRoot" merge-base HEAD "$remote/main" 2>$null).Trim()
|
||||
}
|
||||
$ErrorActionPreference = "Stop"
|
||||
|
||||
if ($mergeBase) {
|
||||
$baseRef = "$mergeBase"
|
||||
}
|
||||
}
|
||||
|
||||
# Removing the "cmd" requirement enables powershell usage on other hosts
|
||||
# 1. git ls-tree | Out-String - combines output of pipeline into a single string
|
||||
# rather than an array for each line.
|
||||
# "-NoNewline" not available on PS5.1 and also removes all newlines.
|
||||
# 2. -replace "`r`n", "`n" - removes line endings
|
||||
# NOTE: Out-String adds a new line; so Out-File -NoNewline strips that.
|
||||
# 3. Out-File -NoNewline -Encoding ascii outputs 8bit ascii
|
||||
# 4. git hash-object with stdin from a pipeline consumes UTF-16, so consume
|
||||
#. the contents of hash.txt
|
||||
(git -C "$flutterRoot" ls-tree "$baseRef" -- $trackedFiles | Out-String) -replace "`r`n", "`n" | Out-File -NoNewline -Encoding ascii hash.txt
|
||||
git hash-object hash.txt
|
||||
Remove-Item hash.txt
|
||||
71
.flutter/bin/internal/content_aware_hash.sh
Executable file
71
.flutter/bin/internal/content_aware_hash.sh
Executable file
|
|
@ -0,0 +1,71 @@
|
|||
#!/usr/bin/env bash
|
||||
# Copyright 2014 The Flutter Authors. All rights reserved.
|
||||
# Use of this source code is governed by a BSD-style license that can be
|
||||
# found in the LICENSE file.
|
||||
|
||||
# ---------------------------------- NOTE ---------------------------------- #
|
||||
#
|
||||
# Please keep the logic in this file consistent with the logic in the
|
||||
# `content_aware_hash.ps1` script in the same directory to ensure that Flutter
|
||||
# continues to work across all platforms!
|
||||
#
|
||||
# -------------------------------------------------------------------------- #
|
||||
|
||||
set -e
|
||||
|
||||
FLUTTER_ROOT="$(dirname "$(dirname "$(dirname "${BASH_SOURCE[0]}")")")"
|
||||
|
||||
unset GIT_DIR
|
||||
unset GIT_INDEX_FILE
|
||||
unset GIT_WORK_TREE
|
||||
|
||||
# Cannot use '*' for files in this command
|
||||
# DEPS: tracks third party dependencies related to building the engine
|
||||
# engine: all the code in the engine folder
|
||||
# bin/internal/release-candidate-branch.version: release marker
|
||||
TRACKEDFILES=(DEPS engine bin/internal/release-candidate-branch.version)
|
||||
BASEREF="HEAD"
|
||||
CURRENT_BRANCH="$(git -C "$FLUTTER_ROOT" rev-parse --abbrev-ref HEAD)"
|
||||
|
||||
# By default, the content hash is based on HEAD.
|
||||
# For local development branches, we want to base the hash on the merge-base
|
||||
# with the remote tracking branch, so that we don't rebuild the world every
|
||||
# time we make a change to the engine.
|
||||
#
|
||||
# The following conditions are exceptions where we want to use HEAD.
|
||||
# 1. The current branch is a release branch (main, master, stable, beta).
|
||||
# 2. The current branch is a GitHub temporary merge branch.
|
||||
# 3. The current branch is a release candidate branch.
|
||||
# 4. The current checkout is a shallow clone.
|
||||
# 5. There is no current branch. E.g. running on CI/CD.
|
||||
if [[ "$CURRENT_BRANCH" != "main" && \
|
||||
"$CURRENT_BRANCH" != "master" && \
|
||||
"$CURRENT_BRANCH" != "stable" && \
|
||||
"$CURRENT_BRANCH" != "beta" && \
|
||||
"$CURRENT_BRANCH" != "gh-readonly-queue/master/pr-"* && \
|
||||
"$CURRENT_BRANCH" != "flutter-"*"-candidate."* && \
|
||||
! ( "$CURRENT_BRANCH" == "HEAD" && -n "$LUCI_CONTEXT" ) && \
|
||||
! -f "$FLUTTER_ROOT/.git/shallow" ]]; then
|
||||
|
||||
# This is a development branch. Find the merge-base.
|
||||
# We will fallback to origin if upstream is not detected.
|
||||
REMOTE="origin"
|
||||
set +e
|
||||
git -C "$FLUTTER_ROOT" remote get-url upstream >/dev/null 2>&1
|
||||
if [[ $? -eq 0 ]]; then
|
||||
REMOTE="upstream"
|
||||
fi
|
||||
|
||||
# Try to find the merge-base with master, then main.
|
||||
MERGEBASE=$(git -C "$FLUTTER_ROOT" merge-base HEAD "$REMOTE/master" 2>/dev/null)
|
||||
if [[ -z "$MERGEBASE" ]]; then
|
||||
MERGEBASE=$(git -C "$FLUTTER_ROOT" merge-base HEAD "$REMOTE/main" 2>/dev/null)
|
||||
fi
|
||||
set -e
|
||||
|
||||
if [[ -n "$MERGEBASE" ]]; then
|
||||
BASEREF="$MERGEBASE"
|
||||
fi
|
||||
fi
|
||||
|
||||
git -C "$FLUTTER_ROOT" ls-tree "$BASEREF" -- "${TRACKEDFILES[@]}" | git hash-object --stdin
|
||||
13
.flutter/bin/internal/exit_with_errorlevel.bat
Normal file
13
.flutter/bin/internal/exit_with_errorlevel.bat
Normal file
|
|
@ -0,0 +1,13 @@
|
|||
@ECHO off
|
||||
REM Copyright 2014 The Flutter Authors. All rights reserved.
|
||||
REM Use of this source code is governed by a BSD-style license that can be
|
||||
REM found in the LICENSE file.
|
||||
|
||||
REM A script to exit caller script with the last status code.
|
||||
REM This can be used with ampersand without `SETLOCAL ENABLEDELAYEDEXPANSION`.
|
||||
REM
|
||||
REM To use this script like `exit`, do not use with the CALL command.
|
||||
REM Without CALL, this script can exit caller script, but with CALL,
|
||||
REM this script returns back to caller and does not exit caller.
|
||||
|
||||
exit /B %ERRORLEVEL%
|
||||
1
.flutter/bin/internal/flutter_packages.version
Normal file
1
.flutter/bin/internal/flutter_packages.version
Normal file
|
|
@ -0,0 +1 @@
|
|||
039a026124269e6e42d4940af5757f4c397cc9ce
|
||||
1
.flutter/bin/internal/fuchsia-linux.version
Normal file
1
.flutter/bin/internal/fuchsia-linux.version
Normal file
|
|
@ -0,0 +1 @@
|
|||
zvsXvTuk-Z1Mgtn34lhXHPbQAAPOVrHYuEZZJqa6N9oC
|
||||
1
.flutter/bin/internal/gradle_wrapper.version
Normal file
1
.flutter/bin/internal/gradle_wrapper.version
Normal file
|
|
@ -0,0 +1 @@
|
|||
flutter_infra_release/gradle-wrapper/fd5c1f2c013565a3bea56ada6df9d2b8e96d56aa/gradle-wrapper.tgz
|
||||
1
.flutter/bin/internal/ios-deploy.version
Normal file
1
.flutter/bin/internal/ios-deploy.version
Normal file
|
|
@ -0,0 +1 @@
|
|||
7a29ab0b6d611f2bf5de4b6f929a82a091866307
|
||||
66
.flutter/bin/internal/last_engine_commit.ps1
Normal file
66
.flutter/bin/internal/last_engine_commit.ps1
Normal file
|
|
@ -0,0 +1,66 @@
|
|||
# Copyright 2014 The Flutter Authors. All rights reserved.
|
||||
# Use of this source code is governed by a BSD-style license that can be
|
||||
# found in the LICENSE file.
|
||||
|
||||
# Based on the current repository state, writes on stdout the last commit in the
|
||||
# git tree that edited either `DEPS` or any file in the `engine/` sub-folder,
|
||||
# which is used to ensure `bin/internal/engine.version` is set correctly.
|
||||
#
|
||||
# ---------------------------------- NOTE ---------------------------------- #
|
||||
#
|
||||
# Please keep the logic in this file consistent with the logic in the
|
||||
# `last_engine_commit.sh` script in the same directory to ensure that Flutter
|
||||
# continues to work across all platforms!
|
||||
#
|
||||
# https://github.com/flutter/flutter/blob/main/docs/tool/Engine-artifacts.md.
|
||||
#
|
||||
# Want to test this script?
|
||||
# $ cd dev/tools
|
||||
# $ dart test test/last_engine_commit_test.dart
|
||||
#
|
||||
# -------------------------------------------------------------------------- #
|
||||
|
||||
$ErrorActionPreference = "Stop" # Equivalent to 'set -e' in bash
|
||||
|
||||
$progName = Split-Path -parent $MyInvocation.MyCommand.Definition
|
||||
$flutterRoot = (Get-Item $progName).parent.parent.FullName
|
||||
|
||||
$Path1 = Join-Path $flutterRoot "bin"
|
||||
$Path2 = Join-Path $Path1 "internal"
|
||||
$RELEASE_CANDIDATE_VERSION_PATH = Join-Path $Path2 "release-candidate-branch.version"
|
||||
|
||||
# 1. Determine the reference commit: the last commit that changed
|
||||
# 'bin/internal/release-candidate-branch.version'.
|
||||
# This serves as the starting point for evaluating changes on the current branch.
|
||||
$REFERENCE_COMMIT = ""
|
||||
try {
|
||||
$REFERENCE_COMMIT = (git log -1 --pretty=format:%H -- "$RELEASE_CANDIDATE_VERSION_PATH" -ErrorAction Stop).Trim()
|
||||
}
|
||||
catch {
|
||||
# If git log fails (e.g., file not found or no history), $REFERENCE_COMMIT will remain empty.
|
||||
}
|
||||
|
||||
# If we did not find this reference commit, fail.
|
||||
if ([string]::IsNullOrEmpty($REFERENCE_COMMIT)) {
|
||||
Write-Error "Error: Could not determine a suitable engine commit." -ErrorAction Stop
|
||||
Write-Error "Current branch: $((git rev-parse --abbrev-ref HEAD).Trim())" -ErrorAction Stop
|
||||
Write-Error "No file $RELEASE_CANDIDATE_VERSION_PATH found, or it has no history." -ErrorAction Stop
|
||||
exit 1
|
||||
}
|
||||
|
||||
# 2. Define the history range to search within: commits reachable from HEAD
|
||||
# but not from the REFERENCE_COMMIT. This focuses the search on commits
|
||||
# *unique to the current branch* since that file was last changed.
|
||||
$HISTORY_RANGE = "$REFERENCE_COMMIT..HEAD"
|
||||
$DEPS_PATH = Join-Path $flutterRoot "DEPS"
|
||||
$ENGINE_PATH = Join-Path $flutterRoot "engine"
|
||||
|
||||
$ENGINE_COMMIT = (git log -1 --pretty=format:%H --ancestry-path $HISTORY_RANGE -- "$DEPS_PATH" "$ENGINE_PATH")
|
||||
|
||||
# 3. If no engine-related commit was found within the current branch's history,
|
||||
# fallback to the REFERENCE_COMMIT itself.
|
||||
if ([string]::IsNullOrEmpty($ENGINE_COMMIT)) {
|
||||
$ENGINE_COMMIT = $REFERENCE_COMMIT
|
||||
}
|
||||
|
||||
Write-Output $ENGINE_COMMIT
|
||||
52
.flutter/bin/internal/last_engine_commit.sh
Executable file
52
.flutter/bin/internal/last_engine_commit.sh
Executable file
|
|
@ -0,0 +1,52 @@
|
|||
#!/usr/bin/env bash
|
||||
# Copyright 2014 The Flutter Authors. All rights reserved.
|
||||
# Use of this source code is governed by a BSD-style license that can be
|
||||
# found in the LICENSE file.
|
||||
|
||||
# Based on the current repository state, writes on stdout the last commit in the
|
||||
# git tree that edited either `DEPS` or any file in the `engine/` sub-folder,
|
||||
# which is used to ensure `bin/internal/engine.version` is set correctly.
|
||||
#
|
||||
#
|
||||
# ---------------------------------- NOTE ---------------------------------- #
|
||||
#
|
||||
# Please keep the logic in this file consistent with the logic in the
|
||||
# `last_engine_commit.ps1` script in the same directory to ensure that Flutter
|
||||
# continues to work across all platforms!
|
||||
#
|
||||
# https://github.com/flutter/flutter/blob/main/docs/tool/Engine-artifacts.md.
|
||||
#
|
||||
# Want to test this script?
|
||||
# $ cd dev/tools
|
||||
# $ dart test test/last_engine_commit_test.dart
|
||||
#
|
||||
# -------------------------------------------------------------------------- #
|
||||
|
||||
set -e
|
||||
|
||||
FLUTTER_ROOT="$(dirname "$(dirname "$(dirname "${BASH_SOURCE[0]}")")")"
|
||||
|
||||
# 1. Determine when the release branch was started, and prevent set -e from exiting.
|
||||
RELEASE_CANDIDATE_VERSION_PATH="$(git rev-parse --show-toplevel)/bin/internal/release-candidate-branch.version"
|
||||
REFERENCE_COMMIT="$(git log -1 --pretty=format:%H -- "$RELEASE_CANDIDATE_VERSION_PATH")"
|
||||
|
||||
# If we did not find a merge-base, fail
|
||||
if [[ -z "$REFERENCE_COMMIT" ]]; then
|
||||
echo >&2 "Error: Could not determine a suitable engine commit."
|
||||
echo >&2 "Current branch: $(git rev-parse --abbrev-ref HEAD)"
|
||||
echo >&2 "No file $RELEASE_CANDIDATE_VERSION_PATH found"
|
||||
exit 1
|
||||
fi
|
||||
|
||||
# 2. Define and search history range to searhc within (unique to changes on this branch).
|
||||
HISTORY_RANGE="$REFERENCE_COMMIT..HEAD"
|
||||
ENGINE_COMMIT="$(git log -1 --pretty=format:%H --ancestry-path "$HISTORY_RANGE" -- "$(git rev-parse --show-toplevel)/DEPS" "$(git rev-parse --show-toplevel)/engine")"
|
||||
|
||||
# 3. If no engine-related commit was found within the current branch's history, fallback to the first commit on this branch.
|
||||
if [[ -z "$ENGINE_COMMIT" ]]; then
|
||||
# Find the oldest commit on HEAD that is *not* reachable from MERGE_BASE_COMMIT.
|
||||
# This is the first commit *on this branch* after it diverged from 'master'.
|
||||
ENGINE_COMMIT="$REFERENCE_COMMIT"
|
||||
fi
|
||||
|
||||
echo "$ENGINE_COMMIT"
|
||||
1
.flutter/bin/internal/libimobiledevice.version
Normal file
1
.flutter/bin/internal/libimobiledevice.version
Normal file
|
|
@ -0,0 +1 @@
|
|||
0bf0f9e941c85d06ce4b5909d7a61b3a4f2a6a05
|
||||
1
.flutter/bin/internal/libimobiledeviceglue.version
Normal file
1
.flutter/bin/internal/libimobiledeviceglue.version
Normal file
|
|
@ -0,0 +1 @@
|
|||
050ff3bf8fdab6ce53a2ddc6ae49b11b1c02a168
|
||||
1
.flutter/bin/internal/libplist.version
Normal file
1
.flutter/bin/internal/libplist.version
Normal file
|
|
@ -0,0 +1 @@
|
|||
cf5897a71ea412ea2aeb1e2f6b5ea74d4fabfd8c
|
||||
1
.flutter/bin/internal/libusbmuxd.version
Normal file
1
.flutter/bin/internal/libusbmuxd.version
Normal file
|
|
@ -0,0 +1 @@
|
|||
19d6bec393c9f9b31ccb090059f59268da32e281
|
||||
1
.flutter/bin/internal/libzip.version
Normal file
1
.flutter/bin/internal/libzip.version
Normal file
|
|
@ -0,0 +1 @@
|
|||
8fb14f99a8854d4e2b16559c0eb48e7c297065ce
|
||||
1
.flutter/bin/internal/material_fonts.version
Normal file
1
.flutter/bin/internal/material_fonts.version
Normal file
|
|
@ -0,0 +1 @@
|
|||
flutter_infra_release/flutter/fonts/3012db47f3130e62f7cc0beabff968a33cbec8d8/fonts.zip
|
||||
1
.flutter/bin/internal/openssl.version
Normal file
1
.flutter/bin/internal/openssl.version
Normal file
|
|
@ -0,0 +1 @@
|
|||
22dbb176deef7d9a80f5c94f57a4b518ea935f50
|
||||
1
.flutter/bin/internal/release-candidate-branch.version
Normal file
1
.flutter/bin/internal/release-candidate-branch.version
Normal file
|
|
@ -0,0 +1 @@
|
|||
flutter-3.41-candidate.0
|
||||
240
.flutter/bin/internal/shared.bat
Normal file
240
.flutter/bin/internal/shared.bat
Normal file
|
|
@ -0,0 +1,240 @@
|
|||
@ECHO off
|
||||
REM Copyright 2014 The Flutter Authors. All rights reserved.
|
||||
REM Use of this source code is governed by a BSD-style license that can be
|
||||
REM found in the LICENSE file.
|
||||
|
||||
REM ---------------------------------- NOTE ----------------------------------
|
||||
REM
|
||||
REM Please keep the logic in this file consistent with the logic in the
|
||||
REM `shared.sh` script in the same directory to ensure that Flutter & Dart continue to
|
||||
REM work across all platforms!
|
||||
REM
|
||||
REM --------------------------------------------------------------------------
|
||||
|
||||
SETLOCAL
|
||||
|
||||
REM Ensure we are running on 64-bit Windows (32-bit is not supported).
|
||||
REM If this is a 32-bit process emulated by WOW64,
|
||||
REM PROCESSOR_ARCHITECTURE is the process architecture and
|
||||
REM PROCESSOR_ARCHITEW6432 is the processor architecture.
|
||||
IF "%PROCESSOR_ARCHITECTURE%"=="x86" (
|
||||
IF "%PROCESSOR_ARCHITEW6432%"=="" (
|
||||
ECHO Flutter requires 64-bit versions of Windows
|
||||
EXIT 1
|
||||
)
|
||||
)
|
||||
|
||||
SET flutter_tools_dir=%FLUTTER_ROOT%\packages\flutter_tools
|
||||
SET cache_dir=%FLUTTER_ROOT%\bin\cache
|
||||
SET snapshot_path=%cache_dir%\flutter_tools.snapshot
|
||||
SET snapshot_path_old=%cache_dir%\flutter_tools.snapshot.old
|
||||
SET stamp_path=%cache_dir%\flutter_tools.stamp
|
||||
SET script_path=%flutter_tools_dir%\bin\flutter_tools.dart
|
||||
SET dart_sdk_path=%cache_dir%\dart-sdk
|
||||
SET engine_stamp=%cache_dir%\engine-dart-sdk.stamp
|
||||
SET engine_version_path=%cache_dir%\engine.stamp
|
||||
SET dart=%dart_sdk_path%\bin\dart.exe
|
||||
|
||||
REM Ensure that bin/cache exists.
|
||||
IF NOT EXIST "%cache_dir%" MKDIR "%cache_dir%"
|
||||
|
||||
REM If the cache still doesn't exist, fail with an error that we probably don't have permissions.
|
||||
IF NOT EXIST "%cache_dir%" (
|
||||
ECHO Error: Unable to create cache directory at 1>&2
|
||||
ECHO %cache_dir% 1>&2
|
||||
ECHO. 1>&2
|
||||
ECHO This may be because flutter doesn't have write permissions for 1>&2
|
||||
ECHO this path. Try moving the flutter directory to a writable location, 1>&2
|
||||
ECHO such as within your home directory. 1>&2
|
||||
EXIT 1
|
||||
)
|
||||
|
||||
:acquire_lock
|
||||
2>NUL (
|
||||
REM "3" is now stderr because of "2>NUL".
|
||||
CALL :subroutine %* 2>&3 9> "%cache_dir%\flutter.bat.lock" || GOTO acquire_lock
|
||||
)
|
||||
GOTO :after_subroutine
|
||||
|
||||
:subroutine
|
||||
REM If present, run the bootstrap script first
|
||||
SET bootstrap_path=%FLUTTER_ROOT%\bin\internal\bootstrap.bat
|
||||
IF EXIST "%bootstrap_path%" (
|
||||
CALL "%bootstrap_path%"
|
||||
)
|
||||
|
||||
REM Get the Git revision.
|
||||
2>NUL (
|
||||
REM 'FOR /f' spawns a new terminal instance to run the command. If an
|
||||
REM 'AutoRun' command is defined in the user's registry, that command could
|
||||
REM change the working directory, and then we wouldn't be in the directory
|
||||
REM we expect to be in. To prevent this, we need to 'PUSHD %FLUTTER_ROOT%'
|
||||
REM before getting the git revision.
|
||||
REM
|
||||
REM See https://github.com/flutter/flutter/issues/159018
|
||||
FOR /f %%r IN ('PUSHD %FLUTTER_ROOT% ^& $git rev-parse HEAD') DO (
|
||||
SET revision=%%r
|
||||
)
|
||||
)
|
||||
SET compilekey="%revision%:%FLUTTER_TOOL_ARGS%"
|
||||
|
||||
REM Invalidate cache if:
|
||||
REM * SNAPSHOT_PATH is not a file, or
|
||||
REM * STAMP_PATH is not a file, or
|
||||
REM * STAMP_PATH is an empty file, or
|
||||
REM * Contents of STAMP_PATH is not what we are going to compile, or
|
||||
REM * pubspec.yaml last modified after pubspec.lock
|
||||
|
||||
REM The following IF conditions are all linked with a logical OR. However,
|
||||
REM there is no OR operator in batch and a GOTO construct is used as replacement.
|
||||
|
||||
CALL :do_ensure_engine_version
|
||||
IF NOT EXIST "%engine_stamp%" GOTO do_sdk_update_and_snapshot
|
||||
SET /P dart_required_version=<"%engine_version_path%"
|
||||
SET /P dart_installed_version=<"%engine_stamp%"
|
||||
IF %dart_required_version% NEQ %dart_installed_version% GOTO do_sdk_update_and_snapshot
|
||||
IF NOT EXIST "%snapshot_path%" GOTO do_snapshot
|
||||
IF NOT EXIST "%stamp_path%" GOTO do_snapshot
|
||||
SET /P stamp_value=<"%stamp_path%"
|
||||
IF %stamp_value% NEQ %compilekey% GOTO do_snapshot
|
||||
SET pubspec_yaml_path=%flutter_tools_dir%\pubspec.yaml
|
||||
SET pubspec_lock_path=%flutter_tools_dir%\pubspec.lock
|
||||
FOR /F %%i IN ('DIR /B /O:D "%pubspec_yaml_path%" "%pubspec_lock_path%"') DO SET newer_file=%%i
|
||||
FOR %%i IN (%pubspec_yaml_path%) DO SET pubspec_yaml_timestamp=%%~ti
|
||||
FOR %%i IN (%pubspec_lock_path%) DO SET pubspec_lock_timestamp=%%~ti
|
||||
IF "%pubspec_yaml_timestamp%" == "%pubspec_lock_timestamp%" SET newer_file=""
|
||||
IF "%newer_file%" EQU "pubspec.yaml" GOTO do_snapshot
|
||||
|
||||
REM Everything is up-to-date - exit subroutine
|
||||
EXIT /B
|
||||
|
||||
:do_ensure_engine_version
|
||||
SET update_engine_bin=%FLUTTER_ROOT%\bin\internal\update_engine_version.ps1
|
||||
REM Escape apostrophes from the executable path
|
||||
SET "update_engine_bin=%update_engine_bin:'=''%"
|
||||
REM PowerShell command must have exit code set in order to prevent all non-zero exit codes from being translated
|
||||
REM into 1. The exit code 2 is used to detect the case where the major version is incorrect and there should be
|
||||
REM no subsequent retries.
|
||||
%powershell_executable% -ExecutionPolicy Bypass -NoProfile -Command "Unblock-File -Path '%update_engine_bin%'; & '%update_engine_bin%'; exit $LASTEXITCODE;"
|
||||
IF "%ERRORLEVEL%" EQU "2" (
|
||||
EXIT 1
|
||||
)
|
||||
IF "%ERRORLEVEL%" NEQ "0" (
|
||||
ECHO Error: Unable to determine engine version... 1>&2
|
||||
EXIT 1
|
||||
)
|
||||
REM Do not fall through - return from subroutine
|
||||
EXIT /B
|
||||
|
||||
:do_sdk_update_and_snapshot
|
||||
SET /A dart_sdk_retries+=1
|
||||
ECHO Checking Dart SDK version... 1>&2
|
||||
SET update_dart_bin=%FLUTTER_ROOT%\bin\internal\update_dart_sdk.ps1
|
||||
REM Escape apostrophes from the executable path
|
||||
SET "update_dart_bin=%update_dart_bin:'=''%"
|
||||
REM PowerShell command must have exit code set in order to prevent all non-zero exit codes from being translated
|
||||
REM into 1. The exit code 2 is used to detect the case where the major version is incorrect and there should be
|
||||
REM no subsequent retries.
|
||||
ECHO Downloading Dart SDK from Flutter engine %dart_required_version%... 1>&2
|
||||
%powershell_executable% -ExecutionPolicy Bypass -NoProfile -Command "Unblock-File -Path '%update_dart_bin%'; & '%update_dart_bin%'; exit $LASTEXITCODE;"
|
||||
IF "%ERRORLEVEL%" EQU "2" (
|
||||
EXIT 1
|
||||
)
|
||||
SET max_dart_sdk_retries=3
|
||||
IF "%ERRORLEVEL%" NEQ "0" (
|
||||
IF "%dart_sdk_retries%" EQU "%max_dart_sdk_retries%" (
|
||||
ECHO Error: Unable to update Dart SDK after %max_dart_sdk_retries% retries. 1>&2
|
||||
DEL "%engine_stamp%"
|
||||
EXIT 1
|
||||
)
|
||||
ECHO Error: Unable to update Dart SDK. Retrying... 1>&2
|
||||
timeout /t 5 /nobreak
|
||||
GOTO :do_sdk_update_and_snapshot
|
||||
)
|
||||
|
||||
:do_snapshot
|
||||
IF EXIST "%FLUTTER_ROOT%\version" DEL "%FLUTTER_ROOT%\version"
|
||||
IF EXIST "%FLUTTER_ROOT%\bin\cache\flutter.version.json" DEL "%FLUTTER_ROOT%\bin\cache\flutter.version.json"
|
||||
ECHO: > "%cache_dir%\.dartignore"
|
||||
|
||||
ECHO Building flutter tool... 1>&2
|
||||
PUSHD "%flutter_tools_dir%"
|
||||
|
||||
REM Makes changes to PUB_ENVIRONMENT only visible to commands within SETLOCAL/ENDLOCAL
|
||||
SETLOCAL
|
||||
IF "%CI%" == "true" GOTO on_bot
|
||||
IF "%BOT%" == "true" GOTO on_bot
|
||||
IF "%CONTINUOUS_INTEGRATION%" == "true" GOTO on_bot
|
||||
IF "%CHROME_HEADLESS%" == "1" GOTO on_bot
|
||||
GOTO not_on_bot
|
||||
:on_bot
|
||||
SET PUB_ENVIRONMENT=%PUB_ENVIRONMENT%:flutter_bot
|
||||
:not_on_bot
|
||||
SET PUB_SUMMARY_ONLY=1
|
||||
SET PUB_ENVIRONMENT=%PUB_ENVIRONMENT%:flutter_install
|
||||
IF "%PUB_CACHE%" == "" (
|
||||
IF EXIST "%pub_cache_path%" SET PUB_CACHE=%pub_cache_path%
|
||||
)
|
||||
|
||||
SET /A total_tries=10
|
||||
SET /A remaining_tries=%total_tries%-1
|
||||
:retry_pub_upgrade
|
||||
ECHO Running pub upgrade... 1>&2
|
||||
"%dart%" pub upgrade --suppress-analytics
|
||||
IF "%ERRORLEVEL%" EQU "0" goto :upgrade_succeeded
|
||||
ECHO Error (%ERRORLEVEL%): Unable to 'pub upgrade' flutter tool. Retrying in five seconds... (%remaining_tries% tries left) 1>&2
|
||||
timeout /t 5 /nobreak 2>NUL
|
||||
SET /A remaining_tries-=1
|
||||
IF "%remaining_tries%" EQU "0" GOTO upgrade_retries_exhausted
|
||||
GOTO :retry_pub_upgrade
|
||||
:upgrade_retries_exhausted
|
||||
SET exit_code=%ERRORLEVEL%
|
||||
ECHO Error: 'pub upgrade' still failing after %total_tries% tries. 1>&2
|
||||
GOTO final_exit
|
||||
:upgrade_succeeded
|
||||
REM Ensure that pubspec.lock has a >= MTIME to pubspec.yaml at this point
|
||||
REM https://github.com/flutter/flutter/issues/171024
|
||||
SET "PUBSPEC_LOCK_FILE=%FLUTTER_TOOLS_DIR%\pubspec.lock"
|
||||
COPY /B "%PUBSPEC_LOCK_FILE%"+,, "%PUBSPEC_LOCK_FILE%" >NUL
|
||||
|
||||
ENDLOCAL
|
||||
|
||||
POPD
|
||||
|
||||
REM Move the old snapshot - we can't just overwrite it as the VM might currently have it
|
||||
REM memory mapped (e.g. on flutter upgrade), and deleting it might not work if the file
|
||||
REM is in use. For downloading a new dart sdk the folder is moved, so we take the same
|
||||
REM approach of moving the file here.
|
||||
SET /A snapshot_path_suffix=1
|
||||
:move_old_snapshot
|
||||
IF EXIST "%snapshot_path_old%%snapshot_path_suffix%" (
|
||||
SET /A snapshot_path_suffix+=1
|
||||
GOTO move_old_snapshot
|
||||
) ELSE (
|
||||
IF EXIST "%snapshot_path%" (
|
||||
MOVE "%snapshot_path%" "%snapshot_path_old%%snapshot_path_suffix%" 2> NUL > NUL
|
||||
)
|
||||
)
|
||||
|
||||
IF "%FLUTTER_TOOL_ARGS%" == "" (
|
||||
"%dart%" --verbosity=error --snapshot="%snapshot_path%" --snapshot-kind="app-jit" --packages="%flutter_tools_dir%\.dart_tool\package_config.json" --no-enable-mirrors "%script_path%" > NUL
|
||||
) else (
|
||||
"%dart%" "%FLUTTER_TOOL_ARGS%" --verbosity=error --snapshot="%snapshot_path%" --snapshot-kind="app-jit" --packages="%flutter_tools_dir%\.dart_tool\package_config.json" "%script_path%" > NUL
|
||||
)
|
||||
IF "%ERRORLEVEL%" NEQ "0" (
|
||||
ECHO Error: Unable to create dart snapshot for flutter tool. 1>&2
|
||||
SET exit_code=%ERRORLEVEL%
|
||||
GOTO :final_exit
|
||||
)
|
||||
>"%stamp_path%" ECHO %compilekey%
|
||||
|
||||
REM Try to delete any old snapshots now. Swallow any errors though.
|
||||
DEL "%snapshot_path%.old*" 2> NUL > NUL
|
||||
|
||||
REM Exit Subroutine
|
||||
EXIT /B
|
||||
|
||||
:after_subroutine
|
||||
|
||||
:final_exit
|
||||
EXIT /B %exit_code%
|
||||
283
.flutter/bin/internal/shared.sh
Normal file
283
.flutter/bin/internal/shared.sh
Normal file
|
|
@ -0,0 +1,283 @@
|
|||
#!/usr/bin/env bash
|
||||
# Copyright 2014 The Flutter Authors. All rights reserved.
|
||||
# Use of this source code is governed by a BSD-style license that can be
|
||||
# found in the LICENSE file.
|
||||
|
||||
# ---------------------------------- NOTE ---------------------------------- #
|
||||
#
|
||||
# Please keep the logic in this file consistent with the logic in the
|
||||
# `shared.bat` script in the same directory to ensure that Flutter & Dart continue
|
||||
# to work across all platforms!
|
||||
#
|
||||
# -------------------------------------------------------------------------- #
|
||||
|
||||
set -e
|
||||
|
||||
# Needed because if it is set, cd may print the path it changed to.
|
||||
unset CDPATH
|
||||
|
||||
function pub_upgrade_with_retry {
|
||||
local total_tries="10"
|
||||
local remaining_tries=$((total_tries - 1))
|
||||
while [[ "$remaining_tries" -gt 0 ]]; do
|
||||
(cd "$FLUTTER_TOOLS_DIR" && "$DART" pub upgrade --suppress-analytics >&2) && break
|
||||
>&2 echo "Error: Unable to 'pub upgrade' flutter tool. Retrying in five seconds... ($remaining_tries tries left)"
|
||||
remaining_tries=$((remaining_tries - 1))
|
||||
sleep 5
|
||||
done
|
||||
|
||||
if [[ "$remaining_tries" == 0 ]]; then
|
||||
>&2 echo "Command 'pub upgrade' still failed after $total_tries tries, giving up."
|
||||
return 1
|
||||
fi
|
||||
|
||||
# Touch the pubspec.lock to ensure, even if this was a NOP, it is newer than pubspec.yaml.
|
||||
# See https://github.com/flutter/flutter/issues/171024.
|
||||
touch "$FLUTTER_TOOLS_DIR/pubspec.lock" >&2
|
||||
|
||||
return 0
|
||||
}
|
||||
|
||||
# Trap function for removing any remaining lock file at exit.
|
||||
function _rmlock () {
|
||||
[ -n "$FLUTTER_UPGRADE_LOCK" ] && rm -rf "$FLUTTER_UPGRADE_LOCK"
|
||||
}
|
||||
|
||||
# Determines which lock method to use, based on what is available on the system.
|
||||
# Returns a non-zero value if the lock was not acquired, zero if acquired.
|
||||
function _lock () {
|
||||
if hash flock 2>/dev/null; then
|
||||
flock --nonblock --exclusive 7 2>/dev/null
|
||||
elif hash shlock 2>/dev/null; then
|
||||
shlock -f "$1" -p $$
|
||||
else
|
||||
mkdir "$1" 2>/dev/null
|
||||
fi
|
||||
}
|
||||
|
||||
# Waits for an update lock to be acquired.
|
||||
#
|
||||
# To ensure that we don't simultaneously update Dart in multiple parallel
|
||||
# instances, we try to obtain an exclusive lock on this file descriptor (and
|
||||
# thus this script's source file) while we are updating Dart and compiling the
|
||||
# script. To do this, we try to use the command line program "flock", which is
|
||||
# available on many Unix-like platforms, in particular on most Linux
|
||||
# distributions. You give it a file descriptor, and it locks the corresponding
|
||||
# file, having inherited the file descriptor from the shell.
|
||||
#
|
||||
# Complicating matters, there are two major scenarios where this will not
|
||||
# work.
|
||||
#
|
||||
# The first is if the platform doesn't have "flock", for example on macOS. There
|
||||
# is not a direct equivalent, so on platforms that don't have flock, we fall
|
||||
# back to using trying to use the shlock command, and if that doesn't exist,
|
||||
# then we use mkdir as an atomic operation to create a lock directory. If mkdir
|
||||
# is able to create the directory, then the lock is acquired. To determine if we
|
||||
# have "flock" or "shlock" available, we use the "hash" shell built-in.
|
||||
#
|
||||
# The second complication is on network file shares. On NFS, to obtain an
|
||||
# exclusive lock you need a file descriptor that is open for writing. Thus, we
|
||||
# ignore errors from flock by redirecting all output to /dev/null, since users
|
||||
# will typically not care about errors from flock and are more likely to be
|
||||
# confused by them than helped. The "shlock" method doesn't work for network
|
||||
# shares, since it is PID-based. The "mkdir" method does work over NFS
|
||||
# implementations that support atomic directory creation (which is most of
|
||||
# them). The "schlock" and "flock" commands are more reliable than the mkdir
|
||||
# method, however, or we would use mkdir in all cases.
|
||||
#
|
||||
# The upgrade_flutter function calling _wait_for_lock is executed in a subshell
|
||||
# with a redirect that pipes the source of this script into file descriptor 7.
|
||||
# A flock lock is released when this subshell exits and file descriptor 7 is
|
||||
# closed. The mkdir lock is released via an exit trap from the subshell that
|
||||
# deletes the lock directory.
|
||||
function _wait_for_lock () {
|
||||
FLUTTER_UPGRADE_LOCK="$FLUTTER_ROOT/bin/cache/.upgrade_lock"
|
||||
local waiting_message_displayed
|
||||
while ! _lock "$FLUTTER_UPGRADE_LOCK"; do
|
||||
if [[ -z $waiting_message_displayed ]]; then
|
||||
# Print with a return so that if the Dart code also prints this message
|
||||
# when it does its own lock, the message won't appear twice. Be sure that
|
||||
# the clearing printf below has the same number of space characters.
|
||||
printf "Waiting for another flutter command to release the startup lock...\r" >&2;
|
||||
waiting_message_displayed="true"
|
||||
fi
|
||||
sleep .1;
|
||||
done
|
||||
if [[ $waiting_message_displayed == "true" ]]; then
|
||||
# Clear the waiting message so it doesn't overlap any following text.
|
||||
printf " \r" >&2;
|
||||
fi
|
||||
unset waiting_message_displayed
|
||||
# If the lock file is acquired, make sure that it is removed on exit.
|
||||
trap _rmlock INT TERM EXIT
|
||||
}
|
||||
|
||||
# This function is always run in a subshell. Running the function in a subshell
|
||||
# is required to make sure any lock directory is cleaned up by the exit trap in
|
||||
# _wait_for_lock.
|
||||
function upgrade_flutter () (
|
||||
mkdir -p "$FLUTTER_ROOT/bin/cache"
|
||||
|
||||
# Ensure the engine.version is populated
|
||||
"$FLUTTER_ROOT/bin/internal/update_engine_version.sh"
|
||||
|
||||
local revision="$(cd "$FLUTTER_ROOT"; git rev-parse HEAD)"
|
||||
local compilekey="$revision:$FLUTTER_TOOL_ARGS"
|
||||
|
||||
# Invalidate cache if:
|
||||
# * SNAPSHOT_PATH is not a file, or
|
||||
# * STAMP_PATH is not a file, or
|
||||
# * STAMP_PATH is an empty file, or
|
||||
# * Contents of STAMP_PATH is not what we are going to compile, or
|
||||
# * pubspec.yaml last modified after pubspec.lock
|
||||
if [[ ! -f "$SNAPSHOT_PATH" || \
|
||||
! -s "$STAMP_PATH" || \
|
||||
"$(cat "$STAMP_PATH")" != "$compilekey" || \
|
||||
"$FLUTTER_TOOLS_DIR/pubspec.yaml" -nt "$FLUTTER_TOOLS_DIR/pubspec.lock" ]]; then
|
||||
# Waits for the update lock to be acquired. Placing this check inside the
|
||||
# conditional allows the majority of flutter/dart installations to bypass
|
||||
# the lock entirely, but as a result this required a second verification that
|
||||
# the SDK is up to date.
|
||||
_wait_for_lock
|
||||
|
||||
# A different shell process might have updated the tool/SDK.
|
||||
if [[ -f "$SNAPSHOT_PATH" && -s "$STAMP_PATH" && "$(cat "$STAMP_PATH")" == "$compilekey" && "$FLUTTER_TOOLS_DIR/pubspec.yaml" -ot "$FLUTTER_TOOLS_DIR/pubspec.lock" ]]; then
|
||||
exit $?
|
||||
fi
|
||||
|
||||
# Fetch Dart...
|
||||
rm -f "$FLUTTER_ROOT/version"
|
||||
rm -f "$FLUTTER_ROOT/bin/cache/flutter.version.json"
|
||||
touch "$FLUTTER_ROOT/bin/cache/.dartignore"
|
||||
"$FLUTTER_ROOT/bin/internal/update_dart_sdk.sh"
|
||||
|
||||
if [[ "$BIN_NAME" == 'dart' || "$BIN_NAME" == 'flutter-dev' ]]; then
|
||||
# Don't try to build tool
|
||||
return
|
||||
fi
|
||||
|
||||
>&2 echo Building flutter tool...
|
||||
|
||||
# Prepare packages...
|
||||
if [[ "$CI" == "true" || "$BOT" == "true" || "$CONTINUOUS_INTEGRATION" == "true" || "$CHROME_HEADLESS" == "1" ]]; then
|
||||
PUB_ENVIRONMENT="$PUB_ENVIRONMENT:flutter_bot"
|
||||
else
|
||||
export PUB_SUMMARY_ONLY=1
|
||||
fi
|
||||
export PUB_ENVIRONMENT="$PUB_ENVIRONMENT:flutter_install"
|
||||
pub_upgrade_with_retry
|
||||
|
||||
# Move the old snapshot - we can't just overwrite it as the VM might currently have it
|
||||
# memory mapped (e.g. on flutter upgrade). For downloading a new dart sdk the folder is moved,
|
||||
# so we take the same approach of moving the file here.
|
||||
SNAPSHOT_PATH_OLD="$SNAPSHOT_PATH.old"
|
||||
if [ -f "$SNAPSHOT_PATH" ]; then
|
||||
mv "$SNAPSHOT_PATH" "$SNAPSHOT_PATH_OLD"
|
||||
fi
|
||||
|
||||
# Compile...
|
||||
"$DART" --verbosity=error $FLUTTER_TOOL_ARGS --snapshot="$SNAPSHOT_PATH" --snapshot-kind="app-jit" --packages="$FLUTTER_TOOLS_DIR/.dart_tool/package_config.json" --no-enable-mirrors "$SCRIPT_PATH" > /dev/null
|
||||
echo "$compilekey" > "$STAMP_PATH"
|
||||
|
||||
# Delete any temporary snapshot path.
|
||||
if [ -f "$SNAPSHOT_PATH_OLD" ]; then
|
||||
rm -f "$SNAPSHOT_PATH_OLD"
|
||||
fi
|
||||
fi
|
||||
# The exit here is extraneous since the function is run in a subshell, but
|
||||
# this serves as documentation that running the function in a subshell is
|
||||
# required to make sure any lock directory created by mkdir is cleaned up.
|
||||
exit $?
|
||||
)
|
||||
|
||||
# This function is intended to be executed by entrypoints (e.g. `//bin/flutter`
|
||||
# and `//bin/dart`). PROG_NAME and BIN_DIR should already be set by those
|
||||
# entrypoints.
|
||||
function shared::execute() {
|
||||
export FLUTTER_ROOT="$(cd "${BIN_DIR}/.." ; pwd -P)"
|
||||
|
||||
# If present, run the bootstrap script first
|
||||
BOOTSTRAP_PATH="$FLUTTER_ROOT/bin/internal/bootstrap.sh"
|
||||
if [ -f "$BOOTSTRAP_PATH" ]; then
|
||||
source "$BOOTSTRAP_PATH"
|
||||
fi
|
||||
|
||||
FLUTTER_TOOLS_DIR="$FLUTTER_ROOT/packages/flutter_tools"
|
||||
SNAPSHOT_PATH="$FLUTTER_ROOT/bin/cache/flutter_tools.snapshot"
|
||||
STAMP_PATH="$FLUTTER_ROOT/bin/cache/flutter_tools.stamp"
|
||||
SCRIPT_PATH="$FLUTTER_TOOLS_DIR/bin/flutter_tools.dart"
|
||||
DART_SDK_PATH="$FLUTTER_ROOT/bin/cache/dart-sdk"
|
||||
|
||||
DART="$DART_SDK_PATH/bin/dart"
|
||||
|
||||
# If running over git-bash, overrides the default UNIX executables with win32
|
||||
# executables
|
||||
case "$(uname -s)" in
|
||||
MINGW* | MSYS* )
|
||||
DART="$DART.exe"
|
||||
;;
|
||||
esac
|
||||
|
||||
# Test if running as superuser – but don't warn if running within Docker or CI.
|
||||
if [[ "$EUID" == "0" && ! -f /.dockerenv && "$CI" != "true" && "$BOT" != "true" && "$CONTINUOUS_INTEGRATION" != "true" ]]; then
|
||||
>&2 echo " Woah! You appear to be trying to run flutter as root."
|
||||
>&2 echo " We strongly recommend running the flutter tool without superuser privileges."
|
||||
>&2 echo " /"
|
||||
>&2 echo "📎"
|
||||
fi
|
||||
|
||||
# Test if Git is available on the Host
|
||||
if ! hash git 2>/dev/null; then
|
||||
>&2 echo "Error: Unable to find git in your PATH."
|
||||
exit 1
|
||||
fi
|
||||
# Test if the flutter directory is a git clone (otherwise git rev-parse HEAD
|
||||
# would fail)
|
||||
if [[ ! -e "$FLUTTER_ROOT/.git" ]]; then
|
||||
>&2 echo "Error: The Flutter directory is not a clone of the GitHub project."
|
||||
>&2 echo " The flutter tool requires Git in order to operate properly;"
|
||||
>&2 echo " to install Flutter, see the instructions at:"
|
||||
>&2 echo " https://docs.flutter.dev/get-started"
|
||||
exit 1
|
||||
fi
|
||||
|
||||
BIN_NAME="$(basename "$PROG_NAME")"
|
||||
|
||||
# File descriptor 7 is prepared here so that we can use it with
|
||||
# flock(1) in _lock() (see above).
|
||||
#
|
||||
# We use number 7 because it's a luckier number than 3; luck is
|
||||
# important when making locks work reliably. Also because that way
|
||||
# if anyone is redirecting other file descriptors there's less
|
||||
# chance of a conflict.
|
||||
#
|
||||
# In any case, the file we redirect into this file descriptor is
|
||||
# this very source file you are reading right now, because that's
|
||||
# the only file we can truly guarantee exists, since we're running
|
||||
# it. We don't use PROG_NAME because otherwise if you run `dart` and
|
||||
# `flutter` simultaneously they'll end up using different lock files
|
||||
# and will corrupt each others' downloads.
|
||||
#
|
||||
# SHARED_NAME itself is prepared by the caller script.
|
||||
upgrade_flutter 7< "$SHARED_NAME"
|
||||
|
||||
case "$BIN_NAME" in
|
||||
flutter-dev)
|
||||
# FLUTTER_TOOL_ARGS aren't quoted below, because it is meant to be
|
||||
# considered as separate space-separated args.
|
||||
exec "$DART" run --resident --packages="$FLUTTER_TOOLS_DIR/.dart_tool/package_config.json" $FLUTTER_TOOL_ARGS "$SCRIPT_PATH" "$@"
|
||||
;;
|
||||
flutter*)
|
||||
# FLUTTER_TOOL_ARGS aren't quoted below, because it is meant to be
|
||||
# considered as separate space-separated args.
|
||||
exec "$DART" --packages="$FLUTTER_TOOLS_DIR/.dart_tool/package_config.json" $FLUTTER_TOOL_ARGS "$SNAPSHOT_PATH" "$@"
|
||||
;;
|
||||
dart*)
|
||||
exec "$DART" "$@"
|
||||
;;
|
||||
*)
|
||||
>&2 echo "Error! Executable name $BIN_NAME not recognized!"
|
||||
exit 1
|
||||
;;
|
||||
esac
|
||||
}
|
||||
127
.flutter/bin/internal/update_dart_sdk.ps1
Normal file
127
.flutter/bin/internal/update_dart_sdk.ps1
Normal file
|
|
@ -0,0 +1,127 @@
|
|||
# Copyright 2014 The Flutter Authors. All rights reserved.
|
||||
# Use of this source code is governed by a BSD-style license that can be
|
||||
# found in the LICENSE file.
|
||||
|
||||
|
||||
# ---------------------------------- NOTE ---------------------------------- #
|
||||
#
|
||||
# Please keep the logic in this file consistent with the logic in the
|
||||
# `update_dart_sdk.sh` script in the same directory to ensure that Flutter
|
||||
# continues to work across all platforms!
|
||||
#
|
||||
# -------------------------------------------------------------------------- #
|
||||
|
||||
$ErrorActionPreference = "Stop"
|
||||
|
||||
$progName = Split-Path -parent $MyInvocation.MyCommand.Definition
|
||||
$flutterRoot = (Get-Item $progName).parent.parent.FullName
|
||||
|
||||
$cachePath = "$flutterRoot\bin\cache"
|
||||
$dartSdkPath = "$cachePath\dart-sdk"
|
||||
$dartSdkLicense = "$cachePath\LICENSE.dart_sdk_archive.md"
|
||||
$engineStamp = "$cachePath\engine-dart-sdk.stamp"
|
||||
$engineVersion = (Get-Content "$flutterRoot\bin\cache\engine.stamp")
|
||||
$engineRealm = (Get-Content "$flutterRoot\bin\cache\engine.realm")
|
||||
|
||||
$oldDartSdkPrefix = "dart-sdk.old"
|
||||
|
||||
# Make sure that PowerShell has expected version.
|
||||
$psMajorVersionRequired = 5
|
||||
$psMajorVersionLocal = $PSVersionTable.PSVersion.Major
|
||||
if ($psMajorVersionLocal -lt $psMajorVersionRequired) {
|
||||
Write-Host "Flutter requires PowerShell $psMajorVersionRequired.0 or newer."
|
||||
Write-Host "Current version is $psMajorVersionLocal."
|
||||
# Use exit code 2 to signal that shared.bat should exit immediately instead of retrying.
|
||||
exit 2
|
||||
}
|
||||
|
||||
if ((Test-Path $engineStamp) -and ($engineVersion -eq (Get-Content $engineStamp))) {
|
||||
return
|
||||
}
|
||||
|
||||
$dartSdkBaseUrl = $Env:FLUTTER_STORAGE_BASE_URL
|
||||
if (-not $dartSdkBaseUrl) {
|
||||
$dartSdkBaseUrl = "https://storage.googleapis.com"
|
||||
}
|
||||
if ($engineRealm) {
|
||||
$dartSdkBaseUrl = "$dartSdkBaseUrl/$engineRealm"
|
||||
}
|
||||
|
||||
# It's important to use the native Dart SDK as the default target architecture
|
||||
# for Flutter Windows builds depend on the Dart executable's architecture.
|
||||
$dartZipNameX64 = "dart-sdk-windows-x64.zip"
|
||||
$dartZipNameArm64 = "dart-sdk-windows-arm64.zip"
|
||||
$dartZipName = $dartZipNameX64
|
||||
if ($env:PROCESSOR_ARCHITECTURE -eq "ARM64") {
|
||||
$dartSdkArm64Url = "$dartSdkBaseUrl/flutter_infra_release/flutter/$engineVersion/$dartZipNameArm64"
|
||||
Try {
|
||||
Invoke-WebRequest -Uri $dartSdkArm64Url -UseBasicParsing -Method Head | Out-Null
|
||||
$dartZipName = $dartZipNameArm64
|
||||
}
|
||||
Catch {
|
||||
Write-Host "The current channel's Dart SDK does not support Windows Arm64, falling back to Windows x64..."
|
||||
}
|
||||
}
|
||||
$dartSdkUrl = "$dartSdkBaseUrl/flutter_infra_release/flutter/$engineVersion/$dartZipName"
|
||||
|
||||
if ((Test-Path $dartSdkPath) -or (Test-Path $dartSdkLicense)) {
|
||||
# Move old SDK to a new location instead of deleting it in case it is still in use (e.g. by IntelliJ).
|
||||
$oldDartSdkSuffix = 1
|
||||
while (Test-Path "$cachePath\$oldDartSdkPrefix$oldDartSdkSuffix") { $oldDartSdkSuffix++ }
|
||||
|
||||
if (Test-Path $dartSdkPath) {
|
||||
Rename-Item $dartSdkPath "$oldDartSdkPrefix$oldDartSdkSuffix"
|
||||
}
|
||||
|
||||
if (Test-Path $dartSdkLicense) {
|
||||
Rename-Item $dartSdkLicense "$oldDartSdkPrefix$oldDartSdkSuffix.LICENSE.md"
|
||||
}
|
||||
}
|
||||
New-Item $dartSdkPath -force -type directory | Out-Null
|
||||
$dartSdkZip = "$cachePath\$dartZipName"
|
||||
|
||||
Try {
|
||||
Import-Module BitsTransfer
|
||||
$ProgressPreference = 'SilentlyContinue'
|
||||
Start-BitsTransfer -Source $dartSdkUrl -Destination $dartSdkZip -ErrorAction Stop
|
||||
}
|
||||
Catch {
|
||||
Write-Host "Downloading the Dart SDK using the BITS service failed, retrying with WebRequest..."
|
||||
# Invoke-WebRequest is very slow when the progress bar is visible - a 28
|
||||
# second download can become a 33 minute download. Disable it with
|
||||
# $ProgressPreference and then restore the original value afterwards.
|
||||
# https://github.com/flutter/flutter/issues/37789
|
||||
$OriginalProgressPreference = $ProgressPreference
|
||||
$ProgressPreference = 'SilentlyContinue'
|
||||
Invoke-WebRequest -Uri $dartSdkUrl -OutFile $dartSdkZip
|
||||
$ProgressPreference = $OriginalProgressPreference
|
||||
}
|
||||
|
||||
If (Get-Command 7z -errorAction SilentlyContinue) {
|
||||
Write-Host "Expanding downloaded archive with 7z..."
|
||||
# The built-in unzippers are painfully slow. Use 7-Zip, if available.
|
||||
& 7z x $dartSdkZip "-o$cachePath" -bd | Out-Null
|
||||
} ElseIf (Get-Command 7za -errorAction SilentlyContinue) {
|
||||
Write-Host "Expanding downloaded archive with 7za..."
|
||||
# Use 7-Zip's standalone version 7za.exe, if available.
|
||||
& 7za x $dartSdkZip "-o$cachePath" -bd | Out-Null
|
||||
} ElseIf (Get-Command Microsoft.PowerShell.Archive\Expand-Archive -errorAction SilentlyContinue) {
|
||||
Write-Host "Expanding downloaded archive with PowerShell..."
|
||||
# Use PowerShell's built-in unzipper, if available (requires PowerShell 5+).
|
||||
$global:ProgressPreference='SilentlyContinue'
|
||||
Microsoft.PowerShell.Archive\Expand-Archive $dartSdkZip -DestinationPath $cachePath
|
||||
} Else {
|
||||
Write-Host "Expanding downloaded archive with Windows..."
|
||||
# As last resort: fall back to the Windows GUI.
|
||||
$shell = New-Object -com shell.application
|
||||
$zip = $shell.NameSpace($dartSdkZip)
|
||||
foreach($item in $zip.items()) {
|
||||
$shell.Namespace($cachePath).copyhere($item)
|
||||
}
|
||||
}
|
||||
|
||||
Remove-Item $dartSdkZip
|
||||
$engineVersion | Out-File $engineStamp -Encoding ASCII
|
||||
|
||||
# Try to delete all old SDKs and license files.
|
||||
Get-ChildItem -Path $cachePath | Where {$_.BaseName.StartsWith($oldDartSdkPrefix)} | Remove-Item -Recurse -ErrorAction SilentlyContinue
|
||||
188
.flutter/bin/internal/update_dart_sdk.sh
Executable file
188
.flutter/bin/internal/update_dart_sdk.sh
Executable file
|
|
@ -0,0 +1,188 @@
|
|||
#!/usr/bin/env bash
|
||||
# Copyright 2014 The Flutter Authors. All rights reserved.
|
||||
# Use of this source code is governed by a BSD-style license that can be
|
||||
# found in the LICENSE file.
|
||||
|
||||
|
||||
# ---------------------------------- NOTE ---------------------------------- #
|
||||
#
|
||||
# Please keep the logic in this file consistent with the logic in the
|
||||
# `update_dart_sdk.ps1` script in the same directory to ensure that Flutter
|
||||
# continues to work across all platforms!
|
||||
#
|
||||
# -------------------------------------------------------------------------- #
|
||||
|
||||
set -e
|
||||
|
||||
FLUTTER_ROOT="$(dirname "$(dirname "$(dirname "${BASH_SOURCE[0]}")")")"
|
||||
|
||||
DART_SDK_PATH="$FLUTTER_ROOT/bin/cache/dart-sdk"
|
||||
DART_SDK_PATH_OLD="$DART_SDK_PATH.old"
|
||||
ENGINE_STAMP="$FLUTTER_ROOT/bin/cache/engine-dart-sdk.stamp"
|
||||
OS="$(uname -s)"
|
||||
|
||||
ENGINE_VERSION=$(cat "$FLUTTER_ROOT/bin/cache/engine.stamp")
|
||||
ENGINE_REALM=$(cat "$FLUTTER_ROOT/bin/cache/engine.realm" | tr -d '[:space:]')
|
||||
|
||||
if [ ! -f "$ENGINE_STAMP" ] || [ "$ENGINE_VERSION" != `cat "$ENGINE_STAMP"` ]; then
|
||||
command -v curl > /dev/null 2>&1 || {
|
||||
>&2 echo
|
||||
>&2 echo 'Missing "curl" tool. Unable to download Dart SDK.'
|
||||
case "$OS" in
|
||||
Darwin)
|
||||
>&2 echo 'Consider running "brew install curl".'
|
||||
;;
|
||||
Linux)
|
||||
>&2 echo 'Consider running "sudo apt-get install curl".'
|
||||
;;
|
||||
*)
|
||||
>&2 echo "Please install curl."
|
||||
;;
|
||||
esac
|
||||
echo
|
||||
exit 1
|
||||
}
|
||||
command -v unzip > /dev/null 2>&1 || {
|
||||
>&2 echo
|
||||
>&2 echo 'Missing "unzip" tool. Unable to extract Dart SDK.'
|
||||
case "$OS" in
|
||||
Darwin)
|
||||
echo 'Consider running "brew install unzip".'
|
||||
;;
|
||||
Linux)
|
||||
echo 'Consider running "sudo apt-get install unzip".'
|
||||
;;
|
||||
*)
|
||||
echo "Please install unzip."
|
||||
;;
|
||||
esac
|
||||
echo
|
||||
exit 1
|
||||
}
|
||||
|
||||
# `uname -m` may be running in Rosetta mode, instead query sysctl
|
||||
if [ "$OS" = 'Darwin' ]; then
|
||||
# Allow non-zero exit so we can do control flow
|
||||
set +e
|
||||
# -n means only print value, not key
|
||||
QUERY="sysctl -n hw.optional.arm64"
|
||||
# Do not wrap $QUERY in double quotes, otherwise the args will be treated as
|
||||
# part of the command
|
||||
QUERY_RESULT=$($QUERY 2>/dev/null)
|
||||
if [ $? -eq 1 ]; then
|
||||
# If this command fails, we're certainly not on ARM
|
||||
ARCH='x64'
|
||||
elif [ "$QUERY_RESULT" = '0' ]; then
|
||||
# If this returns 0, we are also not on ARM
|
||||
ARCH='x64'
|
||||
elif [ "$QUERY_RESULT" = '1' ]; then
|
||||
ARCH='arm64'
|
||||
else
|
||||
>&2 echo "'$QUERY' returned unexpected output: '$QUERY_RESULT'"
|
||||
exit 1
|
||||
fi
|
||||
set -e
|
||||
else
|
||||
# On x64 stdout is "uname -m: x86_64"
|
||||
# On arm64 stdout is "uname -m: aarch64, arm64_v8a"
|
||||
case "$(uname -m)" in
|
||||
x86_64)
|
||||
ARCH="x64"
|
||||
;;
|
||||
*)
|
||||
ARCH="arm64"
|
||||
;;
|
||||
esac
|
||||
fi
|
||||
|
||||
case "$OS" in
|
||||
Darwin)
|
||||
DART_ZIP_NAME="dart-sdk-darwin-${ARCH}.zip"
|
||||
IS_USER_EXECUTABLE="-perm +100"
|
||||
;;
|
||||
Linux)
|
||||
DART_ZIP_NAME="dart-sdk-linux-${ARCH}.zip"
|
||||
IS_USER_EXECUTABLE="-perm /u+x"
|
||||
;;
|
||||
MINGW* | MSYS* )
|
||||
DART_ZIP_NAME="dart-sdk-windows-x64.zip"
|
||||
IS_USER_EXECUTABLE="-perm /u+x"
|
||||
;;
|
||||
*)
|
||||
echo "Unknown operating system. Cannot install Dart SDK."
|
||||
exit 1
|
||||
;;
|
||||
esac
|
||||
|
||||
>&2 echo "Downloading $OS $ARCH Dart SDK from Flutter engine $ENGINE_VERSION..."
|
||||
|
||||
# Use the default find if possible.
|
||||
if [ -e /usr/bin/find ]; then
|
||||
FIND=/usr/bin/find
|
||||
else
|
||||
FIND=find
|
||||
fi
|
||||
|
||||
DART_SDK_BASE_URL="${FLUTTER_STORAGE_BASE_URL:-https://storage.googleapis.com}${ENGINE_REALM:+/$ENGINE_REALM}"
|
||||
DART_SDK_URL="$DART_SDK_BASE_URL/flutter_infra_release/flutter/$ENGINE_VERSION/$DART_ZIP_NAME"
|
||||
|
||||
# if the sdk path exists, copy it to a temporary location
|
||||
if [ -d "$DART_SDK_PATH" ]; then
|
||||
rm -rf "$DART_SDK_PATH_OLD"
|
||||
mv "$DART_SDK_PATH" "$DART_SDK_PATH_OLD"
|
||||
fi
|
||||
|
||||
# install the new sdk
|
||||
rm -rf -- "$DART_SDK_PATH"
|
||||
mkdir -m 755 -p -- "$DART_SDK_PATH"
|
||||
DART_SDK_ZIP="$FLUTTER_ROOT/bin/cache/$DART_ZIP_NAME"
|
||||
|
||||
# Conditionally set verbose flag for LUCI
|
||||
verbose_curl=""
|
||||
if [[ -n "$LUCI_CI" ]]; then
|
||||
verbose_curl="--verbose"
|
||||
fi
|
||||
|
||||
curl ${verbose_curl} --retry 3 --continue-at - --location --output "$DART_SDK_ZIP" "$DART_SDK_URL" 2>&1 || {
|
||||
curlExitCode=$?
|
||||
# Handle range errors specially: retry again with disabled ranges (`--continue-at -` argument)
|
||||
# When this could happen:
|
||||
# - missing support of ranges in proxy servers
|
||||
# - curl with broken handling of completed downloads
|
||||
# This is not a proper fix, but doesn't require any user input
|
||||
# - mirror of flutter storage without support of ranges
|
||||
#
|
||||
# 33 HTTP range error. The range "command" didn't work.
|
||||
# https://man7.org/linux/man-pages/man1/curl.1.html#EXIT_CODES
|
||||
if [ $curlExitCode != 33 ]; then
|
||||
return $curlExitCode
|
||||
fi
|
||||
curl ${verbose_curl} --retry 3 --location --output "$DART_SDK_ZIP" "$DART_SDK_URL" 2>&1
|
||||
} || {
|
||||
>&2 echo
|
||||
>&2 echo "Failed to retrieve the Dart SDK from: $DART_SDK_URL"
|
||||
>&2 echo "If you're located in China, please see this page:"
|
||||
>&2 echo " https://flutter.dev/community/china"
|
||||
>&2 echo
|
||||
rm -f -- "$DART_SDK_ZIP"
|
||||
exit 1
|
||||
}
|
||||
unzip -o -q "$DART_SDK_ZIP" -d "$FLUTTER_ROOT/bin/cache" || {
|
||||
>&2 echo
|
||||
>&2 echo "It appears that the downloaded file is corrupt; please try again."
|
||||
>&2 echo "If this problem persists, please report the problem at:"
|
||||
>&2 echo " https://github.com/flutter/flutter/issues/new?template=01_activation.yml"
|
||||
>&2 echo
|
||||
rm -f -- "$DART_SDK_ZIP"
|
||||
exit 1
|
||||
}
|
||||
rm -f -- "$DART_SDK_ZIP"
|
||||
$FIND "$DART_SDK_PATH" -type d -exec chmod 755 {} \;
|
||||
$FIND "$DART_SDK_PATH" -type f $IS_USER_EXECUTABLE -exec chmod a+x,a+r {} \;
|
||||
echo "$ENGINE_VERSION" > "$ENGINE_STAMP"
|
||||
|
||||
# delete any temporary sdk path
|
||||
if [ -d "$DART_SDK_PATH_OLD" ]; then
|
||||
rm -rf "$DART_SDK_PATH_OLD"
|
||||
fi
|
||||
fi
|
||||
71
.flutter/bin/internal/update_engine_version.ps1
Normal file
71
.flutter/bin/internal/update_engine_version.ps1
Normal file
|
|
@ -0,0 +1,71 @@
|
|||
# Copyright 2014 The Flutter Authors. All rights reserved.
|
||||
# Use of this source code is governed by a BSD-style license that can be
|
||||
# found in the LICENSE file.
|
||||
|
||||
# Based on the current repository state, writes the following two files to disk:
|
||||
#
|
||||
# bin/cache/engine.stamp <-- SHA of the commit that engine artifacts were built
|
||||
# bin/cache/engine.realm <-- optional; ; whether the SHA is from presubmit builds or staging (bringup: true).
|
||||
|
||||
# ---------------------------------- NOTE ---------------------------------- #
|
||||
#
|
||||
# Please keep the logic in this file consistent with the logic in the
|
||||
# `update_engine_version.sh` script in the same directory to ensure that Flutter
|
||||
# continues to work across all platforms!
|
||||
#
|
||||
# https://github.com/flutter/flutter/blob/main/docs/tool/Engine-artifacts.md.
|
||||
#
|
||||
# Want to test this script?
|
||||
# $ cd dev/tools
|
||||
# $ dart test test/update_engine_version_test.dart
|
||||
#
|
||||
# -------------------------------------------------------------------------- #
|
||||
|
||||
$ErrorActionPreference = "Stop"
|
||||
|
||||
# When called from a submodule hook; these will override `git -C dir`
|
||||
$env:GIT_DIR = $null
|
||||
$env:GIT_INDEX_FILE = $null
|
||||
$env:GIT_WORK_TREE = $null
|
||||
|
||||
$progName = Split-Path -parent $MyInvocation.MyCommand.Definition
|
||||
$flutterRoot = (Get-Item $progName).parent.parent.FullName
|
||||
|
||||
# Generate a bin/cache directory, which won't initially exist for a fresh checkout.
|
||||
New-Item -Path "$flutterRoot/bin/cache" -ItemType Directory -Force | Out-Null
|
||||
|
||||
# Check if FLUTTER_PREBUILT_ENGINE_VERSION is set
|
||||
#
|
||||
# This is intended for systems where we intentionally want to (ephemerally) use
|
||||
# a specific engine artifacts version (which includes the Flutter engine and
|
||||
# the Dart SDK), such as on CI.
|
||||
#
|
||||
# If set, it takes precedence over any other source of engine version.
|
||||
if (![string]::IsNullOrEmpty($env:FLUTTER_PREBUILT_ENGINE_VERSION)) {
|
||||
$engineVersion = $env:FLUTTER_PREBUILT_ENGINE_VERSION
|
||||
|
||||
# Check if bin/internal/engine.version exists and is a tracked file in git.
|
||||
#
|
||||
# This is intended for a user-shipped stable or beta release, where the release
|
||||
# has a specific (pinned) engine artifacts version.
|
||||
#
|
||||
# If set, it takes precedence over the git hash.
|
||||
} elseif (git -C "$flutterRoot" ls-files bin/internal/engine.version) {
|
||||
$engineVersion = Get-Content -Path "$flutterRoot/bin/internal/engine.version"
|
||||
|
||||
# Fallback to using git to triangulate which upstream/master (or origin/master)
|
||||
# the current branch is forked from, which would be the last version of the
|
||||
# engine artifacts built from CI.
|
||||
} else {
|
||||
$engineVersion = Invoke-Expression "& '$flutterRoot/bin/internal/content_aware_hash.ps1'"
|
||||
}
|
||||
|
||||
# Write the engine version out so downstream tools know what to look for.
|
||||
Set-Content -Path $flutterRoot/bin/cache/engine.stamp -Value $engineVersion -Encoding Ascii
|
||||
|
||||
# The realm on CI is passed in.
|
||||
if ($env:FLUTTER_REALM) {
|
||||
Set-Content -Path $flutterRoot/bin/cache/engine.realm -Value $env:FLUTTER_REALM -Encoding Ascii
|
||||
} else {
|
||||
Set-Content -Path $flutterRoot/bin/cache/engine.realm -Value "" -Encoding Ascii
|
||||
}
|
||||
71
.flutter/bin/internal/update_engine_version.sh
Executable file
71
.flutter/bin/internal/update_engine_version.sh
Executable file
|
|
@ -0,0 +1,71 @@
|
|||
#!/usr/bin/env bash
|
||||
# Copyright 2014 The Flutter Authors. All rights reserved.
|
||||
# Use of this source code is governed by a BSD-style license that can be
|
||||
# found in the LICENSE file.
|
||||
|
||||
# Based on the current repository state, writes the following two files to disk:
|
||||
#
|
||||
# bin/cache/engine.stamp <-- SHA of the commit that engine artifacts were built
|
||||
# bin/cache/engine.realm <-- optional; whether the SHA is from presubmit builds or staging (bringup: true).
|
||||
|
||||
# ---------------------------------- NOTE ---------------------------------- #
|
||||
#
|
||||
# Please keep the logic in this file consistent with the logic in the
|
||||
# `update_engine_version.ps1` script in the same directory to ensure that Flutter
|
||||
# continues to work across all platforms!
|
||||
#
|
||||
# https://github.com/flutter/flutter/blob/main/docs/tool/Engine-artifacts.md.
|
||||
#
|
||||
# Want to test this script?
|
||||
# $ cd dev/tools
|
||||
# $ dart test test/update_engine_version_test.dart
|
||||
#
|
||||
# -------------------------------------------------------------------------- #
|
||||
|
||||
set -e
|
||||
|
||||
# When called from a submodule hook; these will override `git -C dir`
|
||||
unset GIT_DIR
|
||||
unset GIT_INDEX_FILE
|
||||
unset GIT_WORK_TREE
|
||||
|
||||
FLUTTER_ROOT="$(dirname "$(dirname "$(dirname "${BASH_SOURCE[0]}")")")"
|
||||
|
||||
# Generate a bin/cache directory, which won't initially exist for a fresh checkout.
|
||||
mkdir -p "$FLUTTER_ROOT/bin/cache"
|
||||
|
||||
# Check if FLUTTER_PREBUILT_ENGINE_VERSION is set
|
||||
#
|
||||
# This is intended for systems where we intentionally want to (ephemerally) use
|
||||
# a specific engine artifacts version (which includes the Flutter engine and
|
||||
# the Dart SDK), such as on CI.
|
||||
#
|
||||
# If set, it takes precedence over any other source of engine version.
|
||||
if [ -n "${FLUTTER_PREBUILT_ENGINE_VERSION}" ]; then
|
||||
ENGINE_VERSION="${FLUTTER_PREBUILT_ENGINE_VERSION}"
|
||||
|
||||
# Check if bin/internal/engine.version exists and is a tracked file in git.
|
||||
#
|
||||
# This is intended for a user-shipped stable or beta release, where the release
|
||||
# has a specific (pinned) engine artifacts version.
|
||||
#
|
||||
# If set, it takes precedence over the git hash.
|
||||
elif [ -n "$(git -C "$FLUTTER_ROOT" ls-files bin/internal/engine.version)" ]; then
|
||||
ENGINE_VERSION="$(cat "$FLUTTER_ROOT/bin/internal/engine.version")"
|
||||
|
||||
# Fallback to using git to triangulate which upstream/master (or origin/master)
|
||||
# the current branch is forked from, which would be the last version of the
|
||||
# engine artifacts built from CI.
|
||||
else
|
||||
ENGINE_VERSION=$("$FLUTTER_ROOT/bin/internal/content_aware_hash.sh")
|
||||
fi
|
||||
|
||||
# Write the engine version out so downstream tools know what to look for.
|
||||
echo $ENGINE_VERSION >"$FLUTTER_ROOT/bin/cache/engine.stamp"
|
||||
|
||||
# The realm on CI is passed in.
|
||||
if [ -n "${FLUTTER_REALM}" ]; then
|
||||
echo $FLUTTER_REALM >"$FLUTTER_ROOT/bin/cache/engine.realm"
|
||||
else
|
||||
echo "" >"$FLUTTER_ROOT/bin/cache/engine.realm"
|
||||
fi
|
||||
1
.flutter/buildtools/README.md
Normal file
1
.flutter/buildtools/README.md
Normal file
|
|
@ -0,0 +1 @@
|
|||
This directory is a placeholder intended to make Flutter's source tree match the expectations of [depot_tools](https://www.chromium.org/developers/how-tos/depottools/), which is used to build the Flutter engine.
|
||||
42
.flutter/dartdoc_options.yaml
Normal file
42
.flutter/dartdoc_options.yaml
Normal file
|
|
@ -0,0 +1,42 @@
|
|||
# This file is used by dartdoc when generating API documentation for Flutter.
|
||||
dartdoc:
|
||||
# Before you can run dartdoc, the snippets tool needs to be
|
||||
# activated with "pub global activate snippets <version>"
|
||||
# The dev/bots/docs.sh script does this automatically.
|
||||
tools:
|
||||
snippet:
|
||||
command: ["bin/cache/artifacts/snippets/snippets", "--output-directory=doc/snippets", "--type=snippet"]
|
||||
description: "Creates sample code documentation output from embedded documentation samples."
|
||||
sample:
|
||||
command: ["bin/cache/artifacts/snippets/snippets", "--output-directory=doc/snippets", "--type=sample"]
|
||||
description: "Creates full application sample code documentation output from embedded documentation samples."
|
||||
dartpad:
|
||||
command: ["bin/cache/artifacts/snippets/snippets", "--output-directory=doc/snippets", "--type=dartpad"]
|
||||
description: "Creates full application sample code documentation output from embedded documentation samples and displays it in an embedded DartPad."
|
||||
errors:
|
||||
## Default errors of dartdoc:
|
||||
- duplicate-file
|
||||
- invalid-parameter
|
||||
- tool-error
|
||||
- unresolved-export
|
||||
## Warnings that are elevated to errors:
|
||||
- ambiguous-doc-reference
|
||||
- ambiguous-reexport
|
||||
- broken-link
|
||||
- category-order-gives-missing-package-name
|
||||
- deprecated
|
||||
- ignored-canonical-for
|
||||
- missing-example-file
|
||||
- missing-from-search-index
|
||||
- no-canonical-found
|
||||
- no-documentable-libraries
|
||||
- no-library-level-docs
|
||||
- orphaned-file
|
||||
- reexported-private-api-across-packages
|
||||
- unknown-file
|
||||
- unknown-html-fragment
|
||||
- unknown-macro
|
||||
- unresolved-doc-reference
|
||||
## Ignores that are elevated to errors:
|
||||
# - type-as-html # broken, https://github.com/dart-lang/dartdoc/issues/3545
|
||||
- missing-constant-constructor
|
||||
7
.flutter/dev/README.md
Normal file
7
.flutter/dev/README.md
Normal file
|
|
@ -0,0 +1,7 @@
|
|||
This directory contains tools and resources that the Flutter team uses
|
||||
during the development of the framework. The tools in this directory
|
||||
should not be necessary for developing Flutter applications, though of
|
||||
course, they may be interesting if you are curious.
|
||||
|
||||
The tests in this directory are run in the `framework_tests_misc-*`
|
||||
shards.
|
||||
45
.flutter/dev/a11y_assessments/.metadata
Normal file
45
.flutter/dev/a11y_assessments/.metadata
Normal file
|
|
@ -0,0 +1,45 @@
|
|||
# This file tracks properties of this Flutter project.
|
||||
# Used by Flutter tool to assess capabilities and perform upgrades etc.
|
||||
#
|
||||
# This file should be version controlled and should not be manually edited.
|
||||
|
||||
version:
|
||||
revision: "b9c3f1f74c075a1766fd74418b5d79f528cf8c74"
|
||||
channel: "master"
|
||||
|
||||
project_type: app
|
||||
|
||||
# Tracks metadata for the flutter migrate command
|
||||
migration:
|
||||
platforms:
|
||||
- platform: root
|
||||
create_revision: b9c3f1f74c075a1766fd74418b5d79f528cf8c74
|
||||
base_revision: b9c3f1f74c075a1766fd74418b5d79f528cf8c74
|
||||
- platform: android
|
||||
create_revision: b9c3f1f74c075a1766fd74418b5d79f528cf8c74
|
||||
base_revision: b9c3f1f74c075a1766fd74418b5d79f528cf8c74
|
||||
- platform: ios
|
||||
create_revision: b9c3f1f74c075a1766fd74418b5d79f528cf8c74
|
||||
base_revision: b9c3f1f74c075a1766fd74418b5d79f528cf8c74
|
||||
- platform: linux
|
||||
create_revision: b9c3f1f74c075a1766fd74418b5d79f528cf8c74
|
||||
base_revision: b9c3f1f74c075a1766fd74418b5d79f528cf8c74
|
||||
- platform: macos
|
||||
create_revision: b9c3f1f74c075a1766fd74418b5d79f528cf8c74
|
||||
base_revision: b9c3f1f74c075a1766fd74418b5d79f528cf8c74
|
||||
- platform: web
|
||||
create_revision: b9c3f1f74c075a1766fd74418b5d79f528cf8c74
|
||||
base_revision: b9c3f1f74c075a1766fd74418b5d79f528cf8c74
|
||||
- platform: windows
|
||||
create_revision: b9c3f1f74c075a1766fd74418b5d79f528cf8c74
|
||||
base_revision: b9c3f1f74c075a1766fd74418b5d79f528cf8c74
|
||||
|
||||
# User provided section
|
||||
|
||||
# List of Local paths (relative to this file) that should be
|
||||
# ignored by the migrate tool.
|
||||
#
|
||||
# Files that are not part of the templates will be ignored by default.
|
||||
unmanaged_files:
|
||||
- 'lib/main.dart'
|
||||
- 'ios/Runner.xcodeproj/project.pbxproj'
|
||||
9
.flutter/dev/a11y_assessments/GEMINI.md
Normal file
9
.flutter/dev/a11y_assessments/GEMINI.md
Normal file
|
|
@ -0,0 +1,9 @@
|
|||
This directory contains the source code for a test app used to test widget accessibility.
|
||||
|
||||
The directory structure is as follows:
|
||||
|
||||
* lib/use_cases contains widgets implementing specific use-cases that the team
|
||||
has decided to be important to test.
|
||||
* lib/use_cases/use_cases.dart provides a basic framework for use-cases, and a
|
||||
list of use-cases included in the app.
|
||||
* lib/common contains code shared by multiple use-cases.
|
||||
33
.flutter/dev/a11y_assessments/README.md
Normal file
33
.flutter/dev/a11y_assessments/README.md
Normal file
|
|
@ -0,0 +1,33 @@
|
|||
# a11y_assessments
|
||||
|
||||
This app is used for internal testing.
|
||||
|
||||
## Release a new version for Android
|
||||
|
||||
pre-requisite: This can and should only be done by a googler and you must also
|
||||
be in the flutter.dev play console account.
|
||||
|
||||
1. Follow https://docs.flutter.dev/deployment/android to create a keystore file if you don't already
|
||||
have one.
|
||||
|
||||
2. Bump the pubspec.yaml version
|
||||
|
||||
3. Create a key.properties file in `android/` directory following this format.
|
||||
```
|
||||
storePassword=<password>
|
||||
keyPassword=<password>
|
||||
keyAlias=upload
|
||||
storeFile=<keystore path>
|
||||
```
|
||||
|
||||
4. Run `flutter build appbundle` and upload the artifact to play console
|
||||
|
||||
## Release a new version for iOS
|
||||
|
||||
pre-requisite: This can and should only be done by a googler and you must also
|
||||
be in the FLUTTER.IO LLC developer account with iOS distribution permission.
|
||||
|
||||
1. Bump the pubspec.yaml version
|
||||
2. Run `flutter build ipa` and upload the artifact to app store using transporter or other tools.
|
||||
For more information, see https://docs.flutter.dev/deployment/ios.
|
||||
3. Once the app is in TestFlight, add appropriate testers to the app so they can start testing.
|
||||
1
.flutter/dev/a11y_assessments/analysis_options.yaml
Normal file
1
.flutter/dev/a11y_assessments/analysis_options.yaml
Normal file
|
|
@ -0,0 +1 @@
|
|||
include: ../../analysis_options.yaml
|
||||
14
.flutter/dev/a11y_assessments/android/.gitignore
vendored
Normal file
14
.flutter/dev/a11y_assessments/android/.gitignore
vendored
Normal file
|
|
@ -0,0 +1,14 @@
|
|||
gradle-wrapper.jar
|
||||
/.gradle
|
||||
/captures/
|
||||
/gradlew
|
||||
/gradlew.bat
|
||||
/local.properties
|
||||
GeneratedPluginRegistrant.java
|
||||
.cxx/
|
||||
|
||||
# Remember to never publicly share your keystore.
|
||||
# See https://flutter.dev/to/reference-keystore
|
||||
key.properties
|
||||
**/*.keystore
|
||||
**/*.jks
|
||||
85
.flutter/dev/a11y_assessments/android/app/build.gradle
Normal file
85
.flutter/dev/a11y_assessments/android/app/build.gradle
Normal file
|
|
@ -0,0 +1,85 @@
|
|||
// Copyright 2014 The Flutter Authors. All rights reserved.
|
||||
// Use of this source code is governed by a BSD-style license that can be
|
||||
// found in the LICENSE file.
|
||||
|
||||
plugins {
|
||||
id "com.android.application"
|
||||
id "kotlin-android"
|
||||
id "dev.flutter.flutter-gradle-plugin"
|
||||
}
|
||||
|
||||
def localProperties = new Properties()
|
||||
def localPropertiesFile = rootProject.file('local.properties')
|
||||
if (localPropertiesFile.exists()) {
|
||||
localPropertiesFile.withReader('UTF-8') { reader ->
|
||||
localProperties.load(reader)
|
||||
}
|
||||
}
|
||||
|
||||
def flutterVersionCode = localProperties.getProperty('flutter.versionCode')
|
||||
if (flutterVersionCode == null) {
|
||||
flutterVersionCode = '1'
|
||||
}
|
||||
|
||||
def flutterVersionName = localProperties.getProperty('flutter.versionName')
|
||||
if (flutterVersionName == null) {
|
||||
flutterVersionName = '1.0'
|
||||
}
|
||||
|
||||
def keystoreProperties = new Properties()
|
||||
def keystorePropertiesFile = rootProject.file('key.properties')
|
||||
if (keystorePropertiesFile.exists()) {
|
||||
keystoreProperties.load(new FileInputStream(keystorePropertiesFile))
|
||||
}
|
||||
|
||||
android {
|
||||
namespace = "com.example.a11y_assessments"
|
||||
compileSdk = flutter.compileSdkVersion
|
||||
|
||||
|
||||
compileOptions {
|
||||
sourceCompatibility = JavaVersion.VERSION_17
|
||||
targetCompatibility = JavaVersion.VERSION_17
|
||||
}
|
||||
|
||||
kotlinOptions {
|
||||
jvmTarget = JavaVersion.VERSION_17.toString()
|
||||
}
|
||||
|
||||
sourceSets {
|
||||
main.java.srcDirs += 'src/main/kotlin'
|
||||
}
|
||||
|
||||
defaultConfig {
|
||||
// TODO: Specify your own unique Application ID (https://developer.android.com/studio/build/application-id.html).
|
||||
applicationId "dev.flutter.a11yassessments"
|
||||
// You can update the following values to match your application needs.
|
||||
// For more information, see: https://docs.flutter.dev/deployment/android#reviewing-the-gradle-build-configuration.
|
||||
minSdk = flutter.minSdkVersion
|
||||
targetSdk = flutter.targetSdkVersion
|
||||
versionCode = flutterVersionCode.toInteger()
|
||||
versionName = flutterVersionName
|
||||
}
|
||||
signingConfigs {
|
||||
release {
|
||||
keyAlias keystoreProperties['keyAlias']
|
||||
keyPassword keystoreProperties['keyPassword']
|
||||
storeFile keystoreProperties['storeFile'] ? file(keystoreProperties['storeFile']) : null
|
||||
storePassword keystoreProperties['storePassword']
|
||||
}
|
||||
}
|
||||
|
||||
buildTypes {
|
||||
release {
|
||||
// TODO: Add your own signing config for the release build.
|
||||
// Signing with the debug keys for now, so `flutter run --release` works.
|
||||
signingConfig = signingConfigs.release
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
flutter {
|
||||
source = '../..'
|
||||
}
|
||||
|
||||
dependencies {}
|
||||
|
|
@ -0,0 +1,11 @@
|
|||
<!-- Copyright 2014 The Flutter Authors. All rights reserved.
|
||||
Use of this source code is governed by a BSD-style license that can be
|
||||
found in the LICENSE file. -->
|
||||
|
||||
<manifest xmlns:android="http://schemas.android.com/apk/res/android">
|
||||
<!-- The INTERNET permission is required for development. Specifically,
|
||||
the Flutter tool needs it to communicate with the running application
|
||||
to allow setting breakpoints, to provide hot reload, etc.
|
||||
-->
|
||||
<uses-permission android:name="android.permission.INTERNET"/>
|
||||
</manifest>
|
||||
|
|
@ -0,0 +1,37 @@
|
|||
<!-- Copyright 2014 The Flutter Authors. All rights reserved.
|
||||
Use of this source code is governed by a BSD-style license that can be
|
||||
found in the LICENSE file. -->
|
||||
|
||||
<manifest xmlns:android="http://schemas.android.com/apk/res/android">
|
||||
<application
|
||||
android:label="a11y_assessments"
|
||||
android:name="${applicationName}"
|
||||
android:icon="@mipmap/ic_launcher">
|
||||
<activity
|
||||
android:name=".MainActivity"
|
||||
android:exported="true"
|
||||
android:launchMode="singleTop"
|
||||
android:theme="@style/LaunchTheme"
|
||||
android:configChanges="orientation|keyboardHidden|keyboard|screenSize|smallestScreenSize|locale|layoutDirection|fontScale|screenLayout|density|uiMode"
|
||||
android:hardwareAccelerated="true"
|
||||
android:windowSoftInputMode="adjustResize">
|
||||
<!-- Specifies an Android theme to apply to this Activity as soon as
|
||||
the Android process has started. This theme is visible to the user
|
||||
while the Flutter UI initializes. After that, this theme continues
|
||||
to determine the Window background behind the Flutter UI. -->
|
||||
<meta-data
|
||||
android:name="io.flutter.embedding.android.NormalTheme"
|
||||
android:resource="@style/NormalTheme"
|
||||
/>
|
||||
<intent-filter>
|
||||
<action android:name="android.intent.action.MAIN"/>
|
||||
<category android:name="android.intent.category.LAUNCHER"/>
|
||||
</intent-filter>
|
||||
</activity>
|
||||
<!-- Don't delete the meta-data below.
|
||||
This is used by the Flutter tool to generate GeneratedPluginRegistrant.java -->
|
||||
<meta-data
|
||||
android:name="flutterEmbedding"
|
||||
android:value="2" />
|
||||
</application>
|
||||
</manifest>
|
||||
|
|
@ -0,0 +1,5 @@
|
|||
package com.example.a11y_assessments
|
||||
|
||||
import io.flutter.embedding.android.FlutterActivity
|
||||
|
||||
class MainActivity : FlutterActivity()
|
||||
|
|
@ -0,0 +1,16 @@
|
|||
<?xml version="1.0" encoding="utf-8"?>
|
||||
<!-- Copyright 2014 The Flutter Authors. All rights reserved.
|
||||
Use of this source code is governed by a BSD-style license that can be
|
||||
found in the LICENSE file. -->
|
||||
|
||||
<!-- Modify this file to customize your launch splash screen -->
|
||||
<layer-list xmlns:android="http://schemas.android.com/apk/res/android">
|
||||
<item android:drawable="?android:colorBackground" />
|
||||
|
||||
<!-- You can insert your own image assets here -->
|
||||
<!-- <item>
|
||||
<bitmap
|
||||
android:gravity="center"
|
||||
android:src="@mipmap/launch_image" />
|
||||
</item> -->
|
||||
</layer-list>
|
||||
|
|
@ -0,0 +1,16 @@
|
|||
<?xml version="1.0" encoding="utf-8"?>
|
||||
<!-- Copyright 2014 The Flutter Authors. All rights reserved.
|
||||
Use of this source code is governed by a BSD-style license that can be
|
||||
found in the LICENSE file. -->
|
||||
|
||||
<!-- Modify this file to customize your launch splash screen -->
|
||||
<layer-list xmlns:android="http://schemas.android.com/apk/res/android">
|
||||
<item android:drawable="@android:color/white" />
|
||||
|
||||
<!-- You can insert your own image assets here -->
|
||||
<!-- <item>
|
||||
<bitmap
|
||||
android:gravity="center"
|
||||
android:src="@mipmap/launch_image" />
|
||||
</item> -->
|
||||
</layer-list>
|
||||
Binary file not shown.
|
After Width: | Height: | Size: 544 B |
Binary file not shown.
|
After Width: | Height: | Size: 442 B |
Binary file not shown.
|
After Width: | Height: | Size: 721 B |
Binary file not shown.
|
After Width: | Height: | Size: 1 KiB |
Binary file not shown.
|
After Width: | Height: | Size: 1.4 KiB |
|
|
@ -0,0 +1,22 @@
|
|||
<?xml version="1.0" encoding="utf-8"?>
|
||||
<!-- Copyright 2014 The Flutter Authors. All rights reserved.
|
||||
Use of this source code is governed by a BSD-style license that can be
|
||||
found in the LICENSE file. -->
|
||||
|
||||
<resources>
|
||||
<!-- Theme applied to the Android Window while the process is starting when the OS's Dark Mode setting is on -->
|
||||
<style name="LaunchTheme" parent="@android:style/Theme.Black.NoTitleBar">
|
||||
<!-- Show a splash screen on the activity. Automatically removed when
|
||||
the Flutter engine draws its first frame -->
|
||||
<item name="android:windowBackground">@drawable/launch_background</item>
|
||||
</style>
|
||||
<!-- Theme applied to the Android Window as soon as the process has started.
|
||||
This theme determines the color of the Android Window while your
|
||||
Flutter UI initializes, as well as behind your Flutter UI while its
|
||||
running.
|
||||
|
||||
This Theme is only used starting with V2 of Flutter's Android embedding. -->
|
||||
<style name="NormalTheme" parent="@android:style/Theme.Black.NoTitleBar">
|
||||
<item name="android:windowBackground">?android:colorBackground</item>
|
||||
</style>
|
||||
</resources>
|
||||
|
|
@ -0,0 +1,22 @@
|
|||
<?xml version="1.0" encoding="utf-8"?>
|
||||
<!-- Copyright 2014 The Flutter Authors. All rights reserved.
|
||||
Use of this source code is governed by a BSD-style license that can be
|
||||
found in the LICENSE file. -->
|
||||
|
||||
<resources>
|
||||
<!-- Theme applied to the Android Window while the process is starting when the OS's Dark Mode setting is off -->
|
||||
<style name="LaunchTheme" parent="@android:style/Theme.Light.NoTitleBar">
|
||||
<!-- Show a splash screen on the activity. Automatically removed when
|
||||
the Flutter engine draws its first frame -->
|
||||
<item name="android:windowBackground">@drawable/launch_background</item>
|
||||
</style>
|
||||
<!-- Theme applied to the Android Window as soon as the process has started.
|
||||
This theme determines the color of the Android Window while your
|
||||
Flutter UI initializes, as well as behind your Flutter UI while its
|
||||
running.
|
||||
|
||||
This Theme is only used starting with V2 of Flutter's Android embedding. -->
|
||||
<style name="NormalTheme" parent="@android:style/Theme.Light.NoTitleBar">
|
||||
<item name="android:windowBackground">?android:colorBackground</item>
|
||||
</style>
|
||||
</resources>
|
||||
|
|
@ -0,0 +1,11 @@
|
|||
<!-- Copyright 2014 The Flutter Authors. All rights reserved.
|
||||
Use of this source code is governed by a BSD-style license that can be
|
||||
found in the LICENSE file. -->
|
||||
|
||||
<manifest xmlns:android="http://schemas.android.com/apk/res/android">
|
||||
<!-- The INTERNET permission is required for development. Specifically,
|
||||
the Flutter tool needs it to communicate with the running application
|
||||
to allow setting breakpoints, to provide hot reload, etc.
|
||||
-->
|
||||
<uses-permission android:name="android.permission.INTERNET"/>
|
||||
</manifest>
|
||||
35
.flutter/dev/a11y_assessments/android/build.gradle
Normal file
35
.flutter/dev/a11y_assessments/android/build.gradle
Normal file
|
|
@ -0,0 +1,35 @@
|
|||
// Copyright 2014 The Flutter Authors. All rights reserved.
|
||||
// Use of this source code is governed by a BSD-style license that can be
|
||||
// found in the LICENSE file.
|
||||
|
||||
// This file is auto generated.
|
||||
// To update all the build.gradle files in the Flutter repo,
|
||||
// See dev/tools/bin/generate_gradle_lockfiles.dart.
|
||||
|
||||
allprojects {
|
||||
repositories {
|
||||
google()
|
||||
mavenCentral()
|
||||
}
|
||||
}
|
||||
|
||||
rootProject.layout.buildDirectory.value(rootProject.layout.buildDirectory.dir("../../build").get())
|
||||
|
||||
subprojects {
|
||||
project.layout.buildDirectory.value(rootProject.layout.buildDirectory.dir(project.name).get())
|
||||
}
|
||||
subprojects {
|
||||
project.evaluationDependsOn(':app')
|
||||
dependencyLocking {
|
||||
ignoredDependencies.add('io.flutter:*')
|
||||
lockFile = file("${rootProject.projectDir}/project-${project.name}.lockfile")
|
||||
def ignoreFile = file("${rootProject.projectDir}/.ignore-locking.md")
|
||||
if (!ignoreFile.exists() && !project.hasProperty('local-engine-repo')) {
|
||||
lockAllConfigurations()
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
tasks.register("clean", Delete) {
|
||||
delete rootProject.layout.buildDirectory
|
||||
}
|
||||
|
|
@ -0,0 +1,155 @@
|
|||
# This is a Gradle generated file for dependency locking.
|
||||
# Manual edits can break the build and are not advised.
|
||||
# This file is expected to be part of source control.
|
||||
androidx.databinding:databinding-common:8.11.1=classpath
|
||||
androidx.databinding:databinding-compiler-common:8.11.1=classpath
|
||||
com.android.application:com.android.application.gradle.plugin:8.11.1=classpath
|
||||
com.android.databinding:baseLibrary:8.11.1=classpath
|
||||
com.android.tools.analytics-library:crash:31.11.1=classpath
|
||||
com.android.tools.analytics-library:protos:31.11.1=classpath
|
||||
com.android.tools.analytics-library:shared:31.11.1=classpath
|
||||
com.android.tools.analytics-library:tracker:31.11.1=classpath
|
||||
com.android.tools.build.jetifier:jetifier-core:1.0.0-beta10=classpath
|
||||
com.android.tools.build.jetifier:jetifier-processor:1.0.0-beta10=classpath
|
||||
com.android.tools.build:aapt2-proto:8.11.1-12782657=classpath
|
||||
com.android.tools.build:aaptcompiler:8.11.1=classpath
|
||||
com.android.tools.build:apksig:8.11.1=classpath
|
||||
com.android.tools.build:apkzlib:8.11.1=classpath
|
||||
com.android.tools.build:builder-model:8.11.1=classpath
|
||||
com.android.tools.build:builder-test-api:8.11.1=classpath
|
||||
com.android.tools.build:builder:8.11.1=classpath
|
||||
com.android.tools.build:bundletool:1.18.1=classpath
|
||||
com.android.tools.build:gradle-api:8.11.1=classpath
|
||||
com.android.tools.build:gradle-settings-api:8.11.1=classpath
|
||||
com.android.tools.build:gradle:8.11.1=classpath
|
||||
com.android.tools.build:manifest-merger:31.11.1=classpath
|
||||
com.android.tools.build:transform-api:2.0.0-deprecated-use-gradle-api=classpath
|
||||
com.android.tools.ddms:ddmlib:31.11.1=classpath
|
||||
com.android.tools.layoutlib:layoutlib-api:31.11.1=classpath
|
||||
com.android.tools.lint:lint-model:31.11.1=classpath
|
||||
com.android.tools.lint:lint-typedef-remover:31.11.1=classpath
|
||||
com.android.tools.utp:android-device-provider-ddmlib-proto:31.11.1=classpath
|
||||
com.android.tools.utp:android-device-provider-gradle-proto:31.11.1=classpath
|
||||
com.android.tools.utp:android-device-provider-profile-proto:31.11.1=classpath
|
||||
com.android.tools.utp:android-test-plugin-host-additional-test-output-proto:31.11.1=classpath
|
||||
com.android.tools.utp:android-test-plugin-host-apk-installer-proto:31.11.1=classpath
|
||||
com.android.tools.utp:android-test-plugin-host-coverage-proto:31.11.1=classpath
|
||||
com.android.tools.utp:android-test-plugin-host-emulator-control-proto:31.11.1=classpath
|
||||
com.android.tools.utp:android-test-plugin-host-logcat-proto:31.11.1=classpath
|
||||
com.android.tools.utp:android-test-plugin-result-listener-gradle-proto:31.11.1=classpath
|
||||
com.android.tools:annotations:31.11.1=classpath
|
||||
com.android.tools:common:31.11.1=classpath
|
||||
com.android.tools:dvlib:31.11.1=classpath
|
||||
com.android.tools:repository:31.11.1=classpath
|
||||
com.android.tools:sdk-common:31.11.1=classpath
|
||||
com.android.tools:sdklib:31.11.1=classpath
|
||||
com.android:signflinger:8.11.1=classpath
|
||||
com.android:zipflinger:8.11.1=classpath
|
||||
com.google.android:annotations:4.1.1.4=classpath
|
||||
com.google.api.grpc:proto-google-common-protos:2.48.0=classpath
|
||||
com.google.auto.value:auto-value-annotations:1.6.2=classpath
|
||||
com.google.code.findbugs:jsr305:3.0.2=classpath
|
||||
com.google.code.gson:gson:2.11.0=classpath
|
||||
com.google.crypto.tink:tink:1.7.0=classpath
|
||||
com.google.dagger:dagger:2.28.3=classpath
|
||||
com.google.errorprone:error_prone_annotations:2.30.0=classpath
|
||||
com.google.flatbuffers:flatbuffers-java:1.12.0=classpath
|
||||
com.google.guava:failureaccess:1.0.2=classpath
|
||||
com.google.guava:guava:33.3.1-jre=classpath
|
||||
com.google.guava:listenablefuture:9999.0-empty-to-avoid-conflict-with-guava=classpath
|
||||
com.google.j2objc:j2objc-annotations:3.0.0=classpath
|
||||
com.google.jimfs:jimfs:1.1=classpath
|
||||
com.google.protobuf:protobuf-java-util:3.25.5=classpath
|
||||
com.google.protobuf:protobuf-java:3.25.5=classpath
|
||||
com.google.testing.platform:core-proto:0.0.9-alpha03=classpath
|
||||
com.googlecode.juniversalchardet:juniversalchardet:1.0.3=classpath
|
||||
com.squareup:javapoet:1.10.0=classpath
|
||||
com.squareup:javawriter:2.5.0=classpath
|
||||
com.sun.activation:javax.activation:1.2.0=classpath
|
||||
com.sun.istack:istack-commons-runtime:3.0.8=classpath
|
||||
com.sun.xml.fastinfoset:FastInfoset:1.2.16=classpath
|
||||
commons-codec:commons-codec:1.11=classpath
|
||||
commons-io:commons-io:2.16.1=classpath
|
||||
commons-logging:commons-logging:1.2=classpath
|
||||
io.grpc:grpc-api:1.69.1=classpath
|
||||
io.grpc:grpc-context:1.69.1=classpath
|
||||
io.grpc:grpc-core:1.69.1=classpath
|
||||
io.grpc:grpc-inprocess:1.69.1=classpath
|
||||
io.grpc:grpc-netty:1.69.1=classpath
|
||||
io.grpc:grpc-protobuf-lite:1.69.1=classpath
|
||||
io.grpc:grpc-protobuf:1.69.1=classpath
|
||||
io.grpc:grpc-stub:1.69.1=classpath
|
||||
io.grpc:grpc-util:1.69.1=classpath
|
||||
io.netty:netty-buffer:4.1.110.Final=classpath
|
||||
io.netty:netty-codec-http2:4.1.110.Final=classpath
|
||||
io.netty:netty-codec-http:4.1.110.Final=classpath
|
||||
io.netty:netty-codec-socks:4.1.110.Final=classpath
|
||||
io.netty:netty-codec:4.1.110.Final=classpath
|
||||
io.netty:netty-common:4.1.110.Final=classpath
|
||||
io.netty:netty-handler-proxy:4.1.110.Final=classpath
|
||||
io.netty:netty-handler:4.1.110.Final=classpath
|
||||
io.netty:netty-resolver:4.1.110.Final=classpath
|
||||
io.netty:netty-transport-native-unix-common:4.1.110.Final=classpath
|
||||
io.netty:netty-transport:4.1.110.Final=classpath
|
||||
io.perfmark:perfmark-api:0.27.0=classpath
|
||||
jakarta.activation:jakarta.activation-api:1.2.1=classpath
|
||||
jakarta.xml.bind:jakarta.xml.bind-api:2.3.2=classpath
|
||||
javax.annotation:javax.annotation-api:1.3.2=classpath
|
||||
javax.inject:javax.inject:1=classpath
|
||||
net.java.dev.jna:jna-platform:5.6.0=classpath
|
||||
net.java.dev.jna:jna:5.6.0=classpath
|
||||
net.sf.jopt-simple:jopt-simple:4.9=classpath
|
||||
net.sf.kxml:kxml2:2.3.0=classpath
|
||||
org.apache.commons:commons-compress:1.21=classpath
|
||||
org.apache.httpcomponents:httpclient:4.5.14=classpath
|
||||
org.apache.httpcomponents:httpcore:4.4.16=classpath
|
||||
org.apache.httpcomponents:httpmime:4.5.6=classpath
|
||||
org.bitbucket.b_c:jose4j:0.9.5=classpath
|
||||
org.bouncycastle:bcpkix-jdk18on:1.79=classpath
|
||||
org.bouncycastle:bcprov-jdk18on:1.79=classpath
|
||||
org.bouncycastle:bcutil-jdk18on:1.79=classpath
|
||||
org.checkerframework:checker-qual:3.43.0=classpath
|
||||
org.codehaus.mojo:animal-sniffer-annotations:1.24=classpath
|
||||
org.glassfish.jaxb:jaxb-runtime:2.3.2=classpath
|
||||
org.glassfish.jaxb:txw2:2.3.2=classpath
|
||||
org.jdom:jdom2:2.0.6=classpath
|
||||
org.jetbrains.kotlin.android:org.jetbrains.kotlin.android.gradle.plugin:2.2.20=classpath
|
||||
org.jetbrains.kotlin:abi-tools-api:2.2.20=classpath
|
||||
org.jetbrains.kotlin:fus-statistics-gradle-plugin:2.2.20=classpath
|
||||
org.jetbrains.kotlin:kotlin-build-statistics:2.2.20=classpath
|
||||
org.jetbrains.kotlin:kotlin-build-tools-api:2.2.20=classpath
|
||||
org.jetbrains.kotlin:kotlin-compiler-runner:2.2.20=classpath
|
||||
org.jetbrains.kotlin:kotlin-daemon-client:2.2.20=classpath
|
||||
org.jetbrains.kotlin:kotlin-gradle-plugin-annotations:2.2.20=classpath
|
||||
org.jetbrains.kotlin:kotlin-gradle-plugin-api:2.2.20=classpath
|
||||
org.jetbrains.kotlin:kotlin-gradle-plugin-idea-proto:2.2.20=classpath
|
||||
org.jetbrains.kotlin:kotlin-gradle-plugin-idea:2.2.20=classpath
|
||||
org.jetbrains.kotlin:kotlin-gradle-plugin-model:2.2.20=classpath
|
||||
org.jetbrains.kotlin:kotlin-gradle-plugin:2.2.20=classpath
|
||||
org.jetbrains.kotlin:kotlin-gradle-plugins-bom:2.2.20=classpath
|
||||
org.jetbrains.kotlin:kotlin-klib-commonizer-api:2.2.20=classpath
|
||||
org.jetbrains.kotlin:kotlin-native-utils:2.2.20=classpath
|
||||
org.jetbrains.kotlin:kotlin-reflect:2.1.20=classpath
|
||||
org.jetbrains.kotlin:kotlin-stdlib-common:2.1.20=classpath
|
||||
org.jetbrains.kotlin:kotlin-stdlib-jdk7:2.1.20=classpath
|
||||
org.jetbrains.kotlin:kotlin-stdlib-jdk8:2.1.20=classpath
|
||||
org.jetbrains.kotlin:kotlin-stdlib:2.1.20=classpath
|
||||
org.jetbrains.kotlin:kotlin-tooling-core:2.2.20=classpath
|
||||
org.jetbrains.kotlin:kotlin-util-io:2.2.20=classpath
|
||||
org.jetbrains.kotlin:kotlin-util-klib-metadata:2.2.20=classpath
|
||||
org.jetbrains.kotlin:kotlin-util-klib:2.2.20=classpath
|
||||
org.jetbrains.kotlinx:kotlinx-coroutines-core-jvm:1.8.0=classpath
|
||||
org.jetbrains.kotlinx:kotlinx-serialization-core-jvm:1.4.0=classpath
|
||||
org.jetbrains.kotlinx:kotlinx-serialization-core:1.4.0=classpath
|
||||
org.jetbrains.kotlinx:kotlinx-serialization-json-jvm:1.4.0=classpath
|
||||
org.jetbrains.kotlinx:kotlinx-serialization-json:1.4.0=classpath
|
||||
org.jetbrains:annotations:23.0.0=classpath
|
||||
org.jvnet.staxex:stax-ex:1.8.1=classpath
|
||||
org.ow2.asm:asm-analysis:9.7.1=classpath
|
||||
org.ow2.asm:asm-commons:9.7.1=classpath
|
||||
org.ow2.asm:asm-tree:9.7.1=classpath
|
||||
org.ow2.asm:asm-util:9.7.1=classpath
|
||||
org.ow2.asm:asm:9.7.1=classpath
|
||||
org.slf4j:slf4j-api:1.7.30=classpath
|
||||
org.tensorflow:tensorflow-lite-metadata:0.2.0=classpath
|
||||
empty=
|
||||
2
.flutter/dev/a11y_assessments/android/gradle.properties
Normal file
2
.flutter/dev/a11y_assessments/android/gradle.properties
Normal file
|
|
@ -0,0 +1,2 @@
|
|||
org.gradle.jvmargs=-Xmx8G -XX:MaxMetaspaceSize=4G -XX:ReservedCodeCacheSize=512m -XX:+HeapDumpOnOutOfMemoryError
|
||||
android.useAndroidX=true
|
||||
Some files were not shown because too many files have changed in this diff Show more
Loading…
Reference in a new issue