-
Notifications
You must be signed in to change notification settings - Fork 29.8k
[iOS/macOS] Add Xcode error if dev dependencies are incorrect #165916
New issue
Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.
By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.
Already on GitHub? Sign in to your account
[iOS/macOS] Add Xcode error if dev dependencies are incorrect #165916
Conversation
| final DateTime referenceModified = referenceFile.statSync().modified; | ||
| final DateTime entityModified = entity.statSync().modified; | ||
|
|
||
| return referenceModified.isAfter(entityModified); |
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
This is the exact same logic but makes it easier to debug the date times.
| }); | ||
|
|
||
| tearDown(() { | ||
| tryToDelete(tempProjectDir); |
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
This only deleted the project dir but not the plugin dirs.
| const String _kMacosAssembleErrorHeader = | ||
| '========================================================================'; | ||
|
|
||
| void main() { |
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
These tests were missing and cover existing behavior.
2793300 to
266dc56
Compare
| runOnlyForDeploymentPostprocessing = 0; | ||
| shellPath = /bin/sh; | ||
| shellScript = "\"$FLUTTER_ROOT\"/packages/flutter_tools/bin/macos_assemble.sh\ntouch Flutter/ephemeral/tripwire\n"; | ||
| shellScript = "\"$FLUTTER_ROOT\"/packages/flutter_tools/bin/macos_assemble.sh && touch Flutter/ephemeral/tripwire\n"; |
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
This matches the latest macOS template:
flutter/packages/flutter_tools/templates/app/macos.tmpl/Runner.xcodeproj/project.pbxproj.tmpl
Line 346 in bf64811
| shellScript = "\"$FLUTTER_ROOT\"/packages/flutter_tools/bin/macos_assemble.sh && touch Flutter/ephemeral/tripwire"; |
Without this, the Xcode build succeeds even if the macOS assemble step fails.
fd766a4 to
985853f
Compare
| pluginAPath, | ||
| '--template=plugin', | ||
| '--project-name=plugin_a_real_dependency', | ||
| '--platforms=ios', |
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
Previously the plugin was Dart-only. This adds a platform so that the .flutter-plugins-dependencies file has plugins in the platform-specific section.
| platformDirectory: path.join(projectDirectory, 'macos'), | ||
| destination: 'platform=macOS', | ||
| testName: 'native_ui_tests_macos', | ||
| configuration: 'Debug', |
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
Line 19 above does a debug build, Xcode tests must use the same configuration.
| // Native unit tests rely on building the app first to generate necessary | ||
| // build files. | ||
| await build(buildTarget, validateNativeBuildProject: false); | ||
| await build(buildTarget, validateNativeBuildProject: false, buildMode: 'debug'); |
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
Previously there was a mixture of release and debug here. That broke Xcode tests. I made everything debug.
|
|
||
| dev_dependencies: | ||
| integration_test: | ||
| sdk: flutter |
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
This adds a dev dependency with platform-specific code. This is needed for the integration tests to verify that the dev dependency check fails as expected on Flutter iOS modules
b1d4fad to
0b37c85
Compare
packages/flutter_tools/lib/src/build_system/targets/darwin.dart
Outdated
Show resolved
Hide resolved
packages/flutter_tools/lib/src/build_system/targets/darwin.dart
Outdated
Show resolved
Hide resolved
packages/flutter_tools/lib/src/build_system/targets/darwin.dart
Outdated
Show resolved
Hide resolved
packages/flutter_tools/lib/src/build_system/targets/darwin.dart
Outdated
Show resolved
Hide resolved
packages/flutter_tools/lib/src/build_system/targets/darwin.dart
Outdated
Show resolved
Hide resolved
d9d7610 to
d7d3599
Compare
…changed (#166164) Currently, `refreshPlugins` always updates the `.flutter-plugins-dependencies` file. In a future change, `flutter assemble` will use the `.flutter-plugins-dependencies` file as an input. Unnecessary writes to this file will invalidate build targets. This updates the logic to only write .flutter-plugins-dependencies if it has "significant" changes. Part of #163874 Next pull request: #165916 ## Pre-launch Checklist - [x] I read the [Contributor Guide] and followed the process outlined there for submitting PRs. - [x] I read the [Tree Hygiene] wiki page, which explains my responsibilities. - [x] I read and followed the [Flutter Style Guide], including [Features we expect every widget to implement]. - [x] I signed the [CLA]. - [x] I listed at least one issue that this PR fixes in the description above. - [x] I updated/added relevant documentation (doc comments with `///`). - [x] I added new tests to check the change I am making, or this PR is [test-exempt]. - [x] I followed the [breaking change policy] and added [Data Driven Fixes] where supported. - [x] All existing and new tests are passing. If you need help, consider asking for advice on the #hackers-new channel on [Discord]. <!-- 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 --------- Co-authored-by: Victoria Ashworth <15619084+vashworth@users.noreply.github.com>
The Flutter tool's build system executes targets that take inputs and
produces outputs. Previously, targets would hardcode paths if they
needed to use Flutter project files as inputs/outputs. For example:
```dart
class FooTarget extends Target {
@OverRide
List<Source> get inputs => <Source>[
Source.pattern('{PROJECT_DIR}/foo/bar'),
];
}
```
This is problematic as the
[`FlutterProject`](https://github.com/flutter/flutter/blob/05b5e79105441acb55e98a778ff7854cd191de8c/packages/flutter_tools/lib/src/project.dart#L89)
is the source of truth for where a Flutter project's files are located:
1. If we change a project file's location, we need to update
`FlutterProject` as well as any hardcoded target inputs/outputs.
2. Project files' location can be dynamic. For example, a Flutter app
puts iOS files in the `ios/` directory, but a Flutter module puts iOS
files in the `.ios/` directory. Targets need to duplicate
`FlutterProject`'s logic to determine the project file's location.
As a result, hardcoding project file paths in targets can be
error-prone.
This introduces a new `Source` factory that lets you use the
`FlutterProject` to create the source:
```dart
class FooTarget extends Target {
@OverRide
List<Source> get inputs => <Source>[
Source.fromProject((FlutterProject project) => project.fooFile),
];
}
```
Part of #163874
Next pull request: #165916
## Pre-launch Checklist
- [x] I read the [Contributor Guide] and followed the process outlined
there for submitting PRs.
- [x] I read the [Tree Hygiene] wiki page, which explains my
responsibilities.
- [x] I read and followed the [Flutter Style Guide], including [Features
we expect every widget to implement].
- [x] I signed the [CLA].
- [x] I listed at least one issue that this PR fixes in the description
above.
- [x] I updated/added relevant documentation (doc comments with `///`).
- [x] I added new tests to check the change I am making, or this PR is
[test-exempt].
- [x] I followed the [breaking change policy] and added [Data Driven
Fixes] where supported.
- [x] All existing and new tests are passing.
If you need help, consider asking for advice on the #hackers-new channel
on [Discord].
<!-- 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
Manual roll Flutter from 30e53b0 to db68c95 (98 revisions) Manual roll requested by tarrinneal@google.com flutter/flutter@30e53b0...db68c95 2025-04-15 aam@google.com [customer_testing] Pick up the fix for issue found by flutter/dart hh. (flutter/flutter#167212) 2025-04-15 engine-flutter-autoroll@skia.org Roll Packages from f26b681 to 2fcc403 (4 revisions) (flutter/flutter#167218) 2025-04-15 34465683+rkishan516@users.noreply.github.com Fix: Update sheet route bottom padding with top padding (flutter/flutter#164473) 2025-04-15 36861262+QuncCccccc@users.noreply.github.com Add Irish(ga) to Flutter (flutter/flutter#167129) 2025-04-15 engine-flutter-autoroll@skia.org Roll Fuchsia Linux SDK from 91RIHvX0YC3wzD7qj... to 7bWzHwIPBTyU6R9nO... (flutter/flutter#167213) 2025-04-15 bent@bent.party Change saturation calculation for HSLColor.fromColor (flutter/flutter#166639) 2025-04-15 34465683+rkishan516@users.noreply.github.com fix: Update time picker dialog input size (flutter/flutter#163184) 2025-04-15 matanlurey@users.noreply.github.com Clarify how/when `FLUTTER_PREBUILT_ENGINE_VERSION` is passed in Flutter's CI (flutter/flutter#167204) 2025-04-15 bkonyi@google.com [ Widget Preview ] Add support for `theme` and `brightness` properties on `Preview` (flutter/flutter#167001) 2025-04-15 matanlurey@users.noreply.github.com Update `tests.version` to fix `customer_testing`. (flutter/flutter#167206) 2025-04-15 victorsanniay@gmail.com Persistent CupertinoListTile leading and trailing (flutter/flutter#166799) 2025-04-15 rmacnak@google.com Add buildroot compatibility for HWASAN. (flutter/flutter#167133) 2025-04-15 victorsanniay@gmail.com Correct max height calculation to fade and animate insets on scroll in CupertinoSearchTextField (flutter/flutter#166569) 2025-04-15 victorsanniay@gmail.com Clip bottom widgets in nav bar transition (flutter/flutter#166705) 2025-04-14 engine-flutter-autoroll@skia.org Roll Skia from e7aa93f33a20 to 76cb5d4fba27 (13 revisions) (flutter/flutter#167132) 2025-04-14 68449066+zijiehe-google-com@users.noreply.github.com [fuchsia] Uprev test-scripts with FUCHSIA_READELF env (flutter/flutter#166929) 2025-04-14 lukin.bogdan.a@gmail.com Cleanup links to flutter/engine in ci/builders docs (flutter/flutter#166916) 2025-04-14 engine-flutter-autoroll@skia.org Roll Packages from 465bcff to f26b681 (1 revision) (flutter/flutter#167122) 2025-04-14 jacksongardner@google.com [skwasm] Use `queueMicrotask` instead of `postMessage` when single-threaded (flutter/flutter#166997) 2025-04-14 jason-simmons@users.noreply.github.com Remove some unused third party library build scripts (flutter/flutter#166960) 2025-04-14 34871572+gmackall@users.noreply.github.com [reland] Fix regression in NDK version checking (flutter/flutter#167011) 2025-04-14 1063596+reidbaker@users.noreply.github.com Add network permissions information to the dart doc of network image. (flutter/flutter#167110) 2025-04-14 1063596+reidbaker@users.noreply.github.com Include 3.29.3 and 3.29.2 changelog entries to master (flutter/flutter#166994) 2025-04-12 jonahwilliams@google.com [Impeller] various iOS cleanups. (flutter/flutter#166859) 2025-04-11 jonahwilliams@google.com [Impeller] reland: defer vulkan context initialization as long as possible. (flutter/flutter#167000) 2025-04-11 98614782+auto-submit[bot]@users.noreply.github.com Reverts "Fix regression in NDK version checking (#166998)" (flutter/flutter#167007) 2025-04-11 34871572+gmackall@users.noreply.github.com Fix regression in NDK version checking (flutter/flutter#166998) 2025-04-11 koji.wakamiya@gmail.com [iOS] Infer autocorrect value from autofillHints (flutter/flutter#165637) 2025-04-11 jonahwilliams@google.com [Impeller] fix vulkan/gl color space decode. (flutter/flutter#166957) 2025-04-11 56130129+MaironLucas@users.noreply.github.com modify toggle mode style with DatePickerTheme (flutter/flutter#164102) 2025-04-11 737941+loic-sharma@users.noreply.github.com [iOS/macOS] Add Xcode error if dev dependencies are incorrect (flutter/flutter#165916) 2025-04-11 98614782+auto-submit[bot]@users.noreply.github.com Reverts "[Impeller] defer vulkan context initialization as long as possible. (#166941)" (flutter/flutter#166990) 2025-04-11 engine-flutter-autoroll@skia.org Roll Packages from 431dc61 to 465bcff (2 revisions) (flutter/flutter#166982) 2025-04-11 jonahwilliams@google.com [Impeller] defer vulkan context initialization as long as possible. (flutter/flutter#166941) 2025-04-11 bkonyi@google.com Reland "[ Widget Preview ] Add initial support for communications over the Dart Tooling Daemon (DTD) (#166698)" (flutter/flutter#166877) 2025-04-11 dacoharkes@google.com [native assets] Use workspace pubspec for user-defines (flutter/flutter#166977) 2025-04-11 dacoharkes@google.com [native assets] Roll dependencies (flutter/flutter#166969) 2025-04-11 engine-flutter-autoroll@skia.org Roll Skia from 98deb838d3b8 to e7aa93f33a20 (1 revision) (flutter/flutter#166966) 2025-04-11 engine-flutter-autoroll@skia.org Roll Fuchsia Linux SDK from vYisSsIgqw0mqFRVJ... to 91RIHvX0YC3wzD7qj... (flutter/flutter#166963) 2025-04-11 dacoharkes@google.com [native assets] Support user-defines in pubspec (flutter/flutter#166940) 2025-04-11 jonahwilliams@google.com [Impeller] correct render pass bariers when resolve has mips. (flutter/flutter#166892) 2025-04-11 jonahwilliams@google.com [Impeller] re-make AHB swapchain lazy and allow usage on < 34 (flutter/flutter#166943) 2025-04-11 rmolivares@renzo-olivares.dev Reland "SliverEnsureSemantics (#165589)" (flutter/flutter#166889) 2025-04-11 engine-flutter-autoroll@skia.org Roll Skia from 171b2bf1e496 to 98deb838d3b8 (2 revisions) (flutter/flutter#166955) ...
Currently xcode-analyze relies on the native project files already having been generated. This is unreliably locally, and now is problematic on CI as well since Xcode builds now (as of flutter/flutter#165916) must match the last build mode, so analysis will fail if the previous CI step built in release mode (as is currently the case). This adds a config-only build call in debug mode before analyzing. Since running a config-only build is a common operation in the tool, this extracts a helper to abstract the logic. Unblocks the flutter/flutter->flutter/packages roller.
Currently xcode-analyze relies on the native project files already having been generated. This is unreliably locally, and now is problematic on CI as well since Xcode builds now (as of flutter/flutter#165916) must match the last build mode, so analysis will fail if the previous CI step built in release mode (as is currently the case). This adds a config-only build call in debug mode before analyzing. Since running a config-only build is a common operation in the tool, this extracts a helper to abstract the logic. Unblocks the flutter/flutter->flutter/packages roller.
…(#9092) Manual roll Flutter from 30e53b0d9caa to db68c950c599 (98 revisions) Manual roll requested by tarrinneal@google.com flutter/flutter@30e53b0...db68c95 2025-04-15 aam@google.com [customer_testing] Pick up the fix for issue found by flutter/dart hh. (flutter/flutter#167212) 2025-04-15 engine-flutter-autoroll@skia.org Roll Packages from 853e96a to a5ed6cb (4 revisions) (flutter/flutter#167218) 2025-04-15 34465683+rkishan516@users.noreply.github.com Fix: Update sheet route bottom padding with top padding (flutter/flutter#164473) 2025-04-15 36861262+QuncCccccc@users.noreply.github.com Add Irish(ga) to Flutter (flutter/flutter#167129) 2025-04-15 engine-flutter-autoroll@skia.org Roll Fuchsia Linux SDK from 91RIHvX0YC3wzD7qj... to 7bWzHwIPBTyU6R9nO... (flutter/flutter#167213) 2025-04-15 bent@bent.party Change saturation calculation for HSLColor.fromColor (flutter/flutter#166639) 2025-04-15 34465683+rkishan516@users.noreply.github.com fix: Update time picker dialog input size (flutter/flutter#163184) 2025-04-15 matanlurey@users.noreply.github.com Clarify how/when `FLUTTER_PREBUILT_ENGINE_VERSION` is passed in Flutter's CI (flutter/flutter#167204) 2025-04-15 bkonyi@google.com [ Widget Preview ] Add support for `theme` and `brightness` properties on `Preview` (flutter/flutter#167001) 2025-04-15 matanlurey@users.noreply.github.com Update `tests.version` to fix `customer_testing`. (flutter/flutter#167206) 2025-04-15 victorsanniay@gmail.com Persistent CupertinoListTile leading and trailing (flutter/flutter#166799) 2025-04-15 rmacnak@google.com Add buildroot compatibility for HWASAN. (flutter/flutter#167133) 2025-04-15 victorsanniay@gmail.com Correct max height calculation to fade and animate insets on scroll in CupertinoSearchTextField (flutter/flutter#166569) 2025-04-15 victorsanniay@gmail.com Clip bottom widgets in nav bar transition (flutter/flutter#166705) 2025-04-14 engine-flutter-autoroll@skia.org Roll Skia from e7aa93f33a20 to 76cb5d4fba27 (13 revisions) (flutter/flutter#167132) 2025-04-14 68449066+zijiehe-google-com@users.noreply.github.com [fuchsia] Uprev test-scripts with FUCHSIA_READELF env (flutter/flutter#166929) 2025-04-14 lukin.bogdan.a@gmail.com Cleanup links to flutter/engine in ci/builders docs (flutter/flutter#166916) 2025-04-14 engine-flutter-autoroll@skia.org Roll Packages from 4808eff to 853e96a (1 revision) (flutter/flutter#167122) 2025-04-14 jacksongardner@google.com [skwasm] Use `queueMicrotask` instead of `postMessage` when single-threaded (flutter/flutter#166997) 2025-04-14 jason-simmons@users.noreply.github.com Remove some unused third party library build scripts (flutter/flutter#166960) 2025-04-14 34871572+gmackall@users.noreply.github.com [reland] Fix regression in NDK version checking (flutter/flutter#167011) 2025-04-14 1063596+reidbaker@users.noreply.github.com Add network permissions information to the dart doc of network image. (flutter/flutter#167110) 2025-04-14 1063596+reidbaker@users.noreply.github.com Include 3.29.3 and 3.29.2 changelog entries to master (flutter/flutter#166994) 2025-04-12 jonahwilliams@google.com [Impeller] various iOS cleanups. (flutter/flutter#166859) 2025-04-11 jonahwilliams@google.com [Impeller] reland: defer vulkan context initialization as long as possible. (flutter/flutter#167000) 2025-04-11 98614782+auto-submit[bot]@users.noreply.github.com Reverts "Fix regression in NDK version checking (#166998)" (flutter/flutter#167007) 2025-04-11 34871572+gmackall@users.noreply.github.com Fix regression in NDK version checking (flutter/flutter#166998) 2025-04-11 koji.wakamiya@gmail.com [iOS] Infer autocorrect value from autofillHints (flutter/flutter#165637) 2025-04-11 jonahwilliams@google.com [Impeller] fix vulkan/gl color space decode. (flutter/flutter#166957) 2025-04-11 56130129+MaironLucas@users.noreply.github.com modify toggle mode style with DatePickerTheme (flutter/flutter#164102) 2025-04-11 737941+loic-sharma@users.noreply.github.com [iOS/macOS] Add Xcode error if dev dependencies are incorrect (flutter/flutter#165916) 2025-04-11 98614782+auto-submit[bot]@users.noreply.github.com Reverts "[Impeller] defer vulkan context initialization as long as possible. (#166941)" (flutter/flutter#166990) 2025-04-11 engine-flutter-autoroll@skia.org Roll Packages from b2c45f9 to 4808eff (2 revisions) (flutter/flutter#166982) 2025-04-11 jonahwilliams@google.com [Impeller] defer vulkan context initialization as long as possible. (flutter/flutter#166941) 2025-04-11 bkonyi@google.com Reland "[ Widget Preview ] Add initial support for communications over the Dart Tooling Daemon (DTD) (#166698)" (flutter/flutter#166877) 2025-04-11 dacoharkes@google.com [native assets] Use workspace pubspec for user-defines (flutter/flutter#166977) 2025-04-11 dacoharkes@google.com [native assets] Roll dependencies (flutter/flutter#166969) 2025-04-11 engine-flutter-autoroll@skia.org Roll Skia from 98deb838d3b8 to e7aa93f33a20 (1 revision) (flutter/flutter#166966) 2025-04-11 engine-flutter-autoroll@skia.org Roll Fuchsia Linux SDK from vYisSsIgqw0mqFRVJ... to 91RIHvX0YC3wzD7qj... (flutter/flutter#166963) 2025-04-11 dacoharkes@google.com [native assets] Support user-defines in pubspec (flutter/flutter#166940) 2025-04-11 jonahwilliams@google.com [Impeller] correct render pass bariers when resolve has mips. (flutter/flutter#166892) 2025-04-11 jonahwilliams@google.com [Impeller] re-make AHB swapchain lazy and allow usage on < 34 (flutter/flutter#166943) 2025-04-11 rmolivares@renzo-olivares.dev Reland "SliverEnsureSemantics (#165589)" (flutter/flutter#166889) 2025-04-11 engine-flutter-autoroll@skia.org Roll Skia from 171b2bf1e496 to 98deb838d3b8 (2 revisions) (flutter/flutter#166955) ...
Currently xcode-analyze relies on the native project files already having been generated. This is unreliably locally, and now is problematic on CI as well since Xcode builds now (as of flutter/flutter#165916) must match the last build mode, so analysis will fail if the previous CI step built in release mode (as is currently the case). This adds a config-only build call in debug mode before analyzing. Since running a config-only build is a common operation in the tool, this extracts a helper to abstract the logic. Unblocks the flutter/flutter->flutter/packages roller.
) Manual roll Flutter from 30e53b0 to db68c95 (98 revisions) Manual roll requested by tarrinneal@google.com flutter/flutter@30e53b0...db68c95 2025-04-15 aam@google.com [customer_testing] Pick up the fix for issue found by flutter/dart hh. (flutter/flutter#167212) 2025-04-15 engine-flutter-autoroll@skia.org Roll Packages from f26b681 to 2fcc403 (4 revisions) (flutter/flutter#167218) 2025-04-15 34465683+rkishan516@users.noreply.github.com Fix: Update sheet route bottom padding with top padding (flutter/flutter#164473) 2025-04-15 36861262+QuncCccccc@users.noreply.github.com Add Irish(ga) to Flutter (flutter/flutter#167129) 2025-04-15 engine-flutter-autoroll@skia.org Roll Fuchsia Linux SDK from 91RIHvX0YC3wzD7qj... to 7bWzHwIPBTyU6R9nO... (flutter/flutter#167213) 2025-04-15 bent@bent.party Change saturation calculation for HSLColor.fromColor (flutter/flutter#166639) 2025-04-15 34465683+rkishan516@users.noreply.github.com fix: Update time picker dialog input size (flutter/flutter#163184) 2025-04-15 matanlurey@users.noreply.github.com Clarify how/when `FLUTTER_PREBUILT_ENGINE_VERSION` is passed in Flutter's CI (flutter/flutter#167204) 2025-04-15 bkonyi@google.com [ Widget Preview ] Add support for `theme` and `brightness` properties on `Preview` (flutter/flutter#167001) 2025-04-15 matanlurey@users.noreply.github.com Update `tests.version` to fix `customer_testing`. (flutter/flutter#167206) 2025-04-15 victorsanniay@gmail.com Persistent CupertinoListTile leading and trailing (flutter/flutter#166799) 2025-04-15 rmacnak@google.com Add buildroot compatibility for HWASAN. (flutter/flutter#167133) 2025-04-15 victorsanniay@gmail.com Correct max height calculation to fade and animate insets on scroll in CupertinoSearchTextField (flutter/flutter#166569) 2025-04-15 victorsanniay@gmail.com Clip bottom widgets in nav bar transition (flutter/flutter#166705) 2025-04-14 engine-flutter-autoroll@skia.org Roll Skia from e7aa93f33a20 to 76cb5d4fba27 (13 revisions) (flutter/flutter#167132) 2025-04-14 68449066+zijiehe-google-com@users.noreply.github.com [fuchsia] Uprev test-scripts with FUCHSIA_READELF env (flutter/flutter#166929) 2025-04-14 lukin.bogdan.a@gmail.com Cleanup links to flutter/engine in ci/builders docs (flutter/flutter#166916) 2025-04-14 engine-flutter-autoroll@skia.org Roll Packages from 465bcff to f26b681 (1 revision) (flutter/flutter#167122) 2025-04-14 jacksongardner@google.com [skwasm] Use `queueMicrotask` instead of `postMessage` when single-threaded (flutter/flutter#166997) 2025-04-14 jason-simmons@users.noreply.github.com Remove some unused third party library build scripts (flutter/flutter#166960) 2025-04-14 34871572+gmackall@users.noreply.github.com [reland] Fix regression in NDK version checking (flutter/flutter#167011) 2025-04-14 1063596+reidbaker@users.noreply.github.com Add network permissions information to the dart doc of network image. (flutter/flutter#167110) 2025-04-14 1063596+reidbaker@users.noreply.github.com Include 3.29.3 and 3.29.2 changelog entries to master (flutter/flutter#166994) 2025-04-12 jonahwilliams@google.com [Impeller] various iOS cleanups. (flutter/flutter#166859) 2025-04-11 jonahwilliams@google.com [Impeller] reland: defer vulkan context initialization as long as possible. (flutter/flutter#167000) 2025-04-11 98614782+auto-submit[bot]@users.noreply.github.com Reverts "Fix regression in NDK version checking (#166998)" (flutter/flutter#167007) 2025-04-11 34871572+gmackall@users.noreply.github.com Fix regression in NDK version checking (flutter/flutter#166998) 2025-04-11 koji.wakamiya@gmail.com [iOS] Infer autocorrect value from autofillHints (flutter/flutter#165637) 2025-04-11 jonahwilliams@google.com [Impeller] fix vulkan/gl color space decode. (flutter/flutter#166957) 2025-04-11 56130129+MaironLucas@users.noreply.github.com modify toggle mode style with DatePickerTheme (flutter/flutter#164102) 2025-04-11 737941+loic-sharma@users.noreply.github.com [iOS/macOS] Add Xcode error if dev dependencies are incorrect (flutter/flutter#165916) 2025-04-11 98614782+auto-submit[bot]@users.noreply.github.com Reverts "[Impeller] defer vulkan context initialization as long as possible. (#166941)" (flutter/flutter#166990) 2025-04-11 engine-flutter-autoroll@skia.org Roll Packages from 431dc61 to 465bcff (2 revisions) (flutter/flutter#166982) 2025-04-11 jonahwilliams@google.com [Impeller] defer vulkan context initialization as long as possible. (flutter/flutter#166941) 2025-04-11 bkonyi@google.com Reland "[ Widget Preview ] Add initial support for communications over the Dart Tooling Daemon (DTD) (#166698)" (flutter/flutter#166877) 2025-04-11 dacoharkes@google.com [native assets] Use workspace pubspec for user-defines (flutter/flutter#166977) 2025-04-11 dacoharkes@google.com [native assets] Roll dependencies (flutter/flutter#166969) 2025-04-11 engine-flutter-autoroll@skia.org Roll Skia from 98deb838d3b8 to e7aa93f33a20 (1 revision) (flutter/flutter#166966) 2025-04-11 engine-flutter-autoroll@skia.org Roll Fuchsia Linux SDK from vYisSsIgqw0mqFRVJ... to 91RIHvX0YC3wzD7qj... (flutter/flutter#166963) 2025-04-11 dacoharkes@google.com [native assets] Support user-defines in pubspec (flutter/flutter#166940) 2025-04-11 jonahwilliams@google.com [Impeller] correct render pass bariers when resolve has mips. (flutter/flutter#166892) 2025-04-11 jonahwilliams@google.com [Impeller] re-make AHB swapchain lazy and allow usage on < 34 (flutter/flutter#166943) 2025-04-11 rmolivares@renzo-olivares.dev Reland "SliverEnsureSemantics (#165589)" (flutter/flutter#166889) 2025-04-11 engine-flutter-autoroll@skia.org Roll Skia from 171b2bf1e496 to 98deb838d3b8 (2 revisions) (flutter/flutter#166955) ...
…changed (flutter#166164) Currently, `refreshPlugins` always updates the `.flutter-plugins-dependencies` file. In a future change, `flutter assemble` will use the `.flutter-plugins-dependencies` file as an input. Unnecessary writes to this file will invalidate build targets. This updates the logic to only write .flutter-plugins-dependencies if it has "significant" changes. Part of flutter#163874 Next pull request: flutter#165916 ## Pre-launch Checklist - [x] I read the [Contributor Guide] and followed the process outlined there for submitting PRs. - [x] I read the [Tree Hygiene] wiki page, which explains my responsibilities. - [x] I read and followed the [Flutter Style Guide], including [Features we expect every widget to implement]. - [x] I signed the [CLA]. - [x] I listed at least one issue that this PR fixes in the description above. - [x] I updated/added relevant documentation (doc comments with `///`). - [x] I added new tests to check the change I am making, or this PR is [test-exempt]. - [x] I followed the [breaking change policy] and added [Data Driven Fixes] where supported. - [x] All existing and new tests are passing. If you need help, consider asking for advice on the #hackers-new channel on [Discord]. <!-- 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 --------- Co-authored-by: Victoria Ashworth <15619084+vashworth@users.noreply.github.com>
The Flutter tool's build system executes targets that take inputs and
produces outputs. Previously, targets would hardcode paths if they
needed to use Flutter project files as inputs/outputs. For example:
```dart
class FooTarget extends Target {
@OverRide
List<Source> get inputs => <Source>[
Source.pattern('{PROJECT_DIR}/foo/bar'),
];
}
```
This is problematic as the
[`FlutterProject`](https://github.com/flutter/flutter/blob/05b5e79105441acb55e98a778ff7854cd191de8c/packages/flutter_tools/lib/src/project.dart#L89)
is the source of truth for where a Flutter project's files are located:
1. If we change a project file's location, we need to update
`FlutterProject` as well as any hardcoded target inputs/outputs.
2. Project files' location can be dynamic. For example, a Flutter app
puts iOS files in the `ios/` directory, but a Flutter module puts iOS
files in the `.ios/` directory. Targets need to duplicate
`FlutterProject`'s logic to determine the project file's location.
As a result, hardcoding project file paths in targets can be
error-prone.
This introduces a new `Source` factory that lets you use the
`FlutterProject` to create the source:
```dart
class FooTarget extends Target {
@OverRide
List<Source> get inputs => <Source>[
Source.fromProject((FlutterProject project) => project.fooFile),
];
}
```
Part of flutter#163874
Next pull request: flutter#165916
## Pre-launch Checklist
- [x] I read the [Contributor Guide] and followed the process outlined
there for submitting PRs.
- [x] I read the [Tree Hygiene] wiki page, which explains my
responsibilities.
- [x] I read and followed the [Flutter Style Guide], including [Features
we expect every widget to implement].
- [x] I signed the [CLA].
- [x] I listed at least one issue that this PR fixes in the description
above.
- [x] I updated/added relevant documentation (doc comments with `///`).
- [x] I added new tests to check the change I am making, or this PR is
[test-exempt].
- [x] I followed the [breaking change policy] and added [Data Driven
Fixes] where supported.
- [x] All existing and new tests are passing.
If you need help, consider asking for advice on the #hackers-new channel
on [Discord].
<!-- 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
Currently xcode-analyze relies on the native project files already having been generated. This is unreliably locally, and now is problematic on CI as well since Xcode builds now (as of flutter/flutter#165916) must match the last build mode, so analysis will fail if the previous CI step built in release mode (as is currently the case). This adds a config-only build call in debug mode before analyzing. Since running a config-only build is a common operation in the tool, this extracts a helper to abstract the logic. Unblocks the flutter/flutter->flutter/packages roller.
) Manual roll Flutter from 30e53b0 to db68c95 (98 revisions) Manual roll requested by tarrinneal@google.com flutter/flutter@30e53b0...db68c95 2025-04-15 aam@google.com [customer_testing] Pick up the fix for issue found by flutter/dart hh. (flutter/flutter#167212) 2025-04-15 engine-flutter-autoroll@skia.org Roll Packages from f26b681 to 2fcc403 (4 revisions) (flutter/flutter#167218) 2025-04-15 34465683+rkishan516@users.noreply.github.com Fix: Update sheet route bottom padding with top padding (flutter/flutter#164473) 2025-04-15 36861262+QuncCccccc@users.noreply.github.com Add Irish(ga) to Flutter (flutter/flutter#167129) 2025-04-15 engine-flutter-autoroll@skia.org Roll Fuchsia Linux SDK from 91RIHvX0YC3wzD7qj... to 7bWzHwIPBTyU6R9nO... (flutter/flutter#167213) 2025-04-15 bent@bent.party Change saturation calculation for HSLColor.fromColor (flutter/flutter#166639) 2025-04-15 34465683+rkishan516@users.noreply.github.com fix: Update time picker dialog input size (flutter/flutter#163184) 2025-04-15 matanlurey@users.noreply.github.com Clarify how/when `FLUTTER_PREBUILT_ENGINE_VERSION` is passed in Flutter's CI (flutter/flutter#167204) 2025-04-15 bkonyi@google.com [ Widget Preview ] Add support for `theme` and `brightness` properties on `Preview` (flutter/flutter#167001) 2025-04-15 matanlurey@users.noreply.github.com Update `tests.version` to fix `customer_testing`. (flutter/flutter#167206) 2025-04-15 victorsanniay@gmail.com Persistent CupertinoListTile leading and trailing (flutter/flutter#166799) 2025-04-15 rmacnak@google.com Add buildroot compatibility for HWASAN. (flutter/flutter#167133) 2025-04-15 victorsanniay@gmail.com Correct max height calculation to fade and animate insets on scroll in CupertinoSearchTextField (flutter/flutter#166569) 2025-04-15 victorsanniay@gmail.com Clip bottom widgets in nav bar transition (flutter/flutter#166705) 2025-04-14 engine-flutter-autoroll@skia.org Roll Skia from e7aa93f33a20 to 76cb5d4fba27 (13 revisions) (flutter/flutter#167132) 2025-04-14 68449066+zijiehe-google-com@users.noreply.github.com [fuchsia] Uprev test-scripts with FUCHSIA_READELF env (flutter/flutter#166929) 2025-04-14 lukin.bogdan.a@gmail.com Cleanup links to flutter/engine in ci/builders docs (flutter/flutter#166916) 2025-04-14 engine-flutter-autoroll@skia.org Roll Packages from 465bcff to f26b681 (1 revision) (flutter/flutter#167122) 2025-04-14 jacksongardner@google.com [skwasm] Use `queueMicrotask` instead of `postMessage` when single-threaded (flutter/flutter#166997) 2025-04-14 jason-simmons@users.noreply.github.com Remove some unused third party library build scripts (flutter/flutter#166960) 2025-04-14 34871572+gmackall@users.noreply.github.com [reland] Fix regression in NDK version checking (flutter/flutter#167011) 2025-04-14 1063596+reidbaker@users.noreply.github.com Add network permissions information to the dart doc of network image. (flutter/flutter#167110) 2025-04-14 1063596+reidbaker@users.noreply.github.com Include 3.29.3 and 3.29.2 changelog entries to master (flutter/flutter#166994) 2025-04-12 jonahwilliams@google.com [Impeller] various iOS cleanups. (flutter/flutter#166859) 2025-04-11 jonahwilliams@google.com [Impeller] reland: defer vulkan context initialization as long as possible. (flutter/flutter#167000) 2025-04-11 98614782+auto-submit[bot]@users.noreply.github.com Reverts "Fix regression in NDK version checking (#166998)" (flutter/flutter#167007) 2025-04-11 34871572+gmackall@users.noreply.github.com Fix regression in NDK version checking (flutter/flutter#166998) 2025-04-11 koji.wakamiya@gmail.com [iOS] Infer autocorrect value from autofillHints (flutter/flutter#165637) 2025-04-11 jonahwilliams@google.com [Impeller] fix vulkan/gl color space decode. (flutter/flutter#166957) 2025-04-11 56130129+MaironLucas@users.noreply.github.com modify toggle mode style with DatePickerTheme (flutter/flutter#164102) 2025-04-11 737941+loic-sharma@users.noreply.github.com [iOS/macOS] Add Xcode error if dev dependencies are incorrect (flutter/flutter#165916) 2025-04-11 98614782+auto-submit[bot]@users.noreply.github.com Reverts "[Impeller] defer vulkan context initialization as long as possible. (#166941)" (flutter/flutter#166990) 2025-04-11 engine-flutter-autoroll@skia.org Roll Packages from 431dc61 to 465bcff (2 revisions) (flutter/flutter#166982) 2025-04-11 jonahwilliams@google.com [Impeller] defer vulkan context initialization as long as possible. (flutter/flutter#166941) 2025-04-11 bkonyi@google.com Reland "[ Widget Preview ] Add initial support for communications over the Dart Tooling Daemon (DTD) (#166698)" (flutter/flutter#166877) 2025-04-11 dacoharkes@google.com [native assets] Use workspace pubspec for user-defines (flutter/flutter#166977) 2025-04-11 dacoharkes@google.com [native assets] Roll dependencies (flutter/flutter#166969) 2025-04-11 engine-flutter-autoroll@skia.org Roll Skia from 98deb838d3b8 to e7aa93f33a20 (1 revision) (flutter/flutter#166966) 2025-04-11 engine-flutter-autoroll@skia.org Roll Fuchsia Linux SDK from vYisSsIgqw0mqFRVJ... to 91RIHvX0YC3wzD7qj... (flutter/flutter#166963) 2025-04-11 dacoharkes@google.com [native assets] Support user-defines in pubspec (flutter/flutter#166940) 2025-04-11 jonahwilliams@google.com [Impeller] correct render pass bariers when resolve has mips. (flutter/flutter#166892) 2025-04-11 jonahwilliams@google.com [Impeller] re-make AHB swapchain lazy and allow usage on < 34 (flutter/flutter#166943) 2025-04-11 rmolivares@renzo-olivares.dev Reland "SliverEnsureSemantics (#165589)" (flutter/flutter#166889) 2025-04-11 engine-flutter-autoroll@skia.org Roll Skia from 171b2bf1e496 to 98deb838d3b8 (2 revisions) (flutter/flutter#166955) ...
Currently xcode-analyze relies on the native project files already having been generated. This is unreliably locally, and now is problematic on CI as well since Xcode builds now (as of flutter/flutter#165916) must match the last build mode, so analysis will fail if the previous CI step built in release mode (as is currently the case). This adds a config-only build call in debug mode before analyzing. Since running a config-only build is a common operation in the tool, this extracts a helper to abstract the logic. Unblocks the flutter/flutter->flutter/packages roller.
) Manual roll Flutter from 30e53b0 to db68c95 (98 revisions) Manual roll requested by tarrinneal@google.com flutter/flutter@30e53b0...db68c95 2025-04-15 aam@google.com [customer_testing] Pick up the fix for issue found by flutter/dart hh. (flutter/flutter#167212) 2025-04-15 engine-flutter-autoroll@skia.org Roll Packages from f26b681 to 2fcc403 (4 revisions) (flutter/flutter#167218) 2025-04-15 34465683+rkishan516@users.noreply.github.com Fix: Update sheet route bottom padding with top padding (flutter/flutter#164473) 2025-04-15 36861262+QuncCccccc@users.noreply.github.com Add Irish(ga) to Flutter (flutter/flutter#167129) 2025-04-15 engine-flutter-autoroll@skia.org Roll Fuchsia Linux SDK from 91RIHvX0YC3wzD7qj... to 7bWzHwIPBTyU6R9nO... (flutter/flutter#167213) 2025-04-15 bent@bent.party Change saturation calculation for HSLColor.fromColor (flutter/flutter#166639) 2025-04-15 34465683+rkishan516@users.noreply.github.com fix: Update time picker dialog input size (flutter/flutter#163184) 2025-04-15 matanlurey@users.noreply.github.com Clarify how/when `FLUTTER_PREBUILT_ENGINE_VERSION` is passed in Flutter's CI (flutter/flutter#167204) 2025-04-15 bkonyi@google.com [ Widget Preview ] Add support for `theme` and `brightness` properties on `Preview` (flutter/flutter#167001) 2025-04-15 matanlurey@users.noreply.github.com Update `tests.version` to fix `customer_testing`. (flutter/flutter#167206) 2025-04-15 victorsanniay@gmail.com Persistent CupertinoListTile leading and trailing (flutter/flutter#166799) 2025-04-15 rmacnak@google.com Add buildroot compatibility for HWASAN. (flutter/flutter#167133) 2025-04-15 victorsanniay@gmail.com Correct max height calculation to fade and animate insets on scroll in CupertinoSearchTextField (flutter/flutter#166569) 2025-04-15 victorsanniay@gmail.com Clip bottom widgets in nav bar transition (flutter/flutter#166705) 2025-04-14 engine-flutter-autoroll@skia.org Roll Skia from e7aa93f33a20 to 76cb5d4fba27 (13 revisions) (flutter/flutter#167132) 2025-04-14 68449066+zijiehe-google-com@users.noreply.github.com [fuchsia] Uprev test-scripts with FUCHSIA_READELF env (flutter/flutter#166929) 2025-04-14 lukin.bogdan.a@gmail.com Cleanup links to flutter/engine in ci/builders docs (flutter/flutter#166916) 2025-04-14 engine-flutter-autoroll@skia.org Roll Packages from 465bcff to f26b681 (1 revision) (flutter/flutter#167122) 2025-04-14 jacksongardner@google.com [skwasm] Use `queueMicrotask` instead of `postMessage` when single-threaded (flutter/flutter#166997) 2025-04-14 jason-simmons@users.noreply.github.com Remove some unused third party library build scripts (flutter/flutter#166960) 2025-04-14 34871572+gmackall@users.noreply.github.com [reland] Fix regression in NDK version checking (flutter/flutter#167011) 2025-04-14 1063596+reidbaker@users.noreply.github.com Add network permissions information to the dart doc of network image. (flutter/flutter#167110) 2025-04-14 1063596+reidbaker@users.noreply.github.com Include 3.29.3 and 3.29.2 changelog entries to master (flutter/flutter#166994) 2025-04-12 jonahwilliams@google.com [Impeller] various iOS cleanups. (flutter/flutter#166859) 2025-04-11 jonahwilliams@google.com [Impeller] reland: defer vulkan context initialization as long as possible. (flutter/flutter#167000) 2025-04-11 98614782+auto-submit[bot]@users.noreply.github.com Reverts "Fix regression in NDK version checking (#166998)" (flutter/flutter#167007) 2025-04-11 34871572+gmackall@users.noreply.github.com Fix regression in NDK version checking (flutter/flutter#166998) 2025-04-11 koji.wakamiya@gmail.com [iOS] Infer autocorrect value from autofillHints (flutter/flutter#165637) 2025-04-11 jonahwilliams@google.com [Impeller] fix vulkan/gl color space decode. (flutter/flutter#166957) 2025-04-11 56130129+MaironLucas@users.noreply.github.com modify toggle mode style with DatePickerTheme (flutter/flutter#164102) 2025-04-11 737941+loic-sharma@users.noreply.github.com [iOS/macOS] Add Xcode error if dev dependencies are incorrect (flutter/flutter#165916) 2025-04-11 98614782+auto-submit[bot]@users.noreply.github.com Reverts "[Impeller] defer vulkan context initialization as long as possible. (#166941)" (flutter/flutter#166990) 2025-04-11 engine-flutter-autoroll@skia.org Roll Packages from 431dc61 to 465bcff (2 revisions) (flutter/flutter#166982) 2025-04-11 jonahwilliams@google.com [Impeller] defer vulkan context initialization as long as possible. (flutter/flutter#166941) 2025-04-11 bkonyi@google.com Reland "[ Widget Preview ] Add initial support for communications over the Dart Tooling Daemon (DTD) (#166698)" (flutter/flutter#166877) 2025-04-11 dacoharkes@google.com [native assets] Use workspace pubspec for user-defines (flutter/flutter#166977) 2025-04-11 dacoharkes@google.com [native assets] Roll dependencies (flutter/flutter#166969) 2025-04-11 engine-flutter-autoroll@skia.org Roll Skia from 98deb838d3b8 to e7aa93f33a20 (1 revision) (flutter/flutter#166966) 2025-04-11 engine-flutter-autoroll@skia.org Roll Fuchsia Linux SDK from vYisSsIgqw0mqFRVJ... to 91RIHvX0YC3wzD7qj... (flutter/flutter#166963) 2025-04-11 dacoharkes@google.com [native assets] Support user-defines in pubspec (flutter/flutter#166940) 2025-04-11 jonahwilliams@google.com [Impeller] correct render pass bariers when resolve has mips. (flutter/flutter#166892) 2025-04-11 jonahwilliams@google.com [Impeller] re-make AHB swapchain lazy and allow usage on < 34 (flutter/flutter#166943) 2025-04-11 rmolivares@renzo-olivares.dev Reland "SliverEnsureSemantics (#165589)" (flutter/flutter#166889) 2025-04-11 engine-flutter-autoroll@skia.org Roll Skia from 171b2bf1e496 to 98deb838d3b8 (2 revisions) (flutter/flutter#166955) ...
…changed (flutter#166164) Currently, `refreshPlugins` always updates the `.flutter-plugins-dependencies` file. In a future change, `flutter assemble` will use the `.flutter-plugins-dependencies` file as an input. Unnecessary writes to this file will invalidate build targets. This updates the logic to only write .flutter-plugins-dependencies if it has "significant" changes. Part of flutter#163874 Next pull request: flutter#165916 ## Pre-launch Checklist - [x] I read the [Contributor Guide] and followed the process outlined there for submitting PRs. - [x] I read the [Tree Hygiene] wiki page, which explains my responsibilities. - [x] I read and followed the [Flutter Style Guide], including [Features we expect every widget to implement]. - [x] I signed the [CLA]. - [x] I listed at least one issue that this PR fixes in the description above. - [x] I updated/added relevant documentation (doc comments with `///`). - [x] I added new tests to check the change I am making, or this PR is [test-exempt]. - [x] I followed the [breaking change policy] and added [Data Driven Fixes] where supported. - [x] All existing and new tests are passing. If you need help, consider asking for advice on the #hackers-new channel on [Discord]. <!-- 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 --------- Co-authored-by: Victoria Ashworth <15619084+vashworth@users.noreply.github.com>
The Flutter tool's build system executes targets that take inputs and
produces outputs. Previously, targets would hardcode paths if they
needed to use Flutter project files as inputs/outputs. For example:
```dart
class FooTarget extends Target {
@OverRide
List<Source> get inputs => <Source>[
Source.pattern('{PROJECT_DIR}/foo/bar'),
];
}
```
This is problematic as the
[`FlutterProject`](https://github.com/flutter/flutter/blob/05b5e79105441acb55e98a778ff7854cd191de8c/packages/flutter_tools/lib/src/project.dart#L89)
is the source of truth for where a Flutter project's files are located:
1. If we change a project file's location, we need to update
`FlutterProject` as well as any hardcoded target inputs/outputs.
2. Project files' location can be dynamic. For example, a Flutter app
puts iOS files in the `ios/` directory, but a Flutter module puts iOS
files in the `.ios/` directory. Targets need to duplicate
`FlutterProject`'s logic to determine the project file's location.
As a result, hardcoding project file paths in targets can be
error-prone.
This introduces a new `Source` factory that lets you use the
`FlutterProject` to create the source:
```dart
class FooTarget extends Target {
@OverRide
List<Source> get inputs => <Source>[
Source.fromProject((FlutterProject project) => project.fooFile),
];
}
```
Part of flutter#163874
Next pull request: flutter#165916
## Pre-launch Checklist
- [x] I read the [Contributor Guide] and followed the process outlined
there for submitting PRs.
- [x] I read the [Tree Hygiene] wiki page, which explains my
responsibilities.
- [x] I read and followed the [Flutter Style Guide], including [Features
we expect every widget to implement].
- [x] I signed the [CLA].
- [x] I listed at least one issue that this PR fixes in the description
above.
- [x] I updated/added relevant documentation (doc comments with `///`).
- [x] I added new tests to check the change I am making, or this PR is
[test-exempt].
- [x] I followed the [breaking change policy] and added [Data Driven
Fixes] where supported.
- [x] All existing and new tests are passing.
If you need help, consider asking for advice on the #hackers-new channel
on [Discord].
<!-- 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
…r#165916) Recently, the Flutter tool was updated to remove dev dependencies for release builds and add dev dependencies for debug/profile builds. However when building from Xcode directly, dev dependencies are not enabled/disabled. As a result, it was possible for debug builds to not have dev dependencies (or vice versa). Example: 1. `flutter build ios --release` - Release build using Flutter tool. Disables dev dependencies 2. `open ios/Runner.xcworkspace` - Open the iOS project in Xcode 3. In Xcode, **Product** > **Build** - Do a debug build Previously, step 3 would result in debug artifacts that are missing dev dependencies. This PR now makes this an error:  Part of flutter#163874 ## Implementation The Flutter tool now writes a `FLUTTER_DEV_DEPENDENCIES_ENABLED` in the generated config file. This tracks whether the currently generated project has dev dependencies. In the Xcode build: 1. The Xcode backend script passes the `FLUTTER_DEV_DEPENDENCIES_ENABLED` config to `flutter assemble` using the `DevDependenciesEnabled` define 6. The new `CheckDevDependencies` target verifies dev dependencies: 1. It checks if the dev dependencies status is correct for the current build mode 2. It checks whether the app has dev dependencies by reading the `.flutter-plugins-dependencies` file. If the app has no dev dependencies, the error is suppressed. ## Pre-launch Checklist - [x] I read the [Contributor Guide] and followed the process outlined there for submitting PRs. - [x] I read the [Tree Hygiene] wiki page, which explains my responsibilities. - [x] I read and followed the [Flutter Style Guide], including [Features we expect every widget to implement]. - [x] I signed the [CLA]. - [x] I listed at least one issue that this PR fixes in the description above. - [x] I updated/added relevant documentation (doc comments with `///`). - [x] I added new tests to check the change I am making, or this PR is [test-exempt]. - [x] I followed the [breaking change policy] and added [Data Driven Fixes] where supported. - [x] All existing and new tests are passing. If you need help, consider asking for advice on the #hackers-new channel on [Discord]. <!-- 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
Recently, the Flutter tool was updated to remove dev dependencies for release builds and add dev dependencies for debug/profile builds.
However when building from Xcode directly, dev dependencies are not enabled/disabled. As a result, it was possible for debug builds to not have dev dependencies (or vice versa). Example:
flutter build ios --release- Release build using Flutter tool. Disables dev dependenciesopen ios/Runner.xcworkspace- Open the iOS project in XcodePreviously, step 3 would result in debug artifacts that are missing dev dependencies. This PR now makes this an error:
Part of #163874
Implementation
The Flutter tool now writes a
FLUTTER_DEV_DEPENDENCIES_ENABLEDin the generated config file. This tracks whether the currently generated project has dev dependencies.In the Xcode build:
FLUTTER_DEV_DEPENDENCIES_ENABLEDconfig toflutter assembleusing theDevDependenciesEnableddefineCheckDevDependenciestarget verifies dev dependencies:.flutter-plugins-dependenciesfile. If the app has no dev dependencies, the error is suppressed.Pre-launch Checklist
///).If you need help, consider asking for advice on the #hackers-new channel on Discord.