Skip to content

Conversation

@loic-sharma
Copy link
Member

@loic-sharma loic-sharma commented Mar 25, 2025

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:

image

Part of #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
  2. 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

If you need help, consider asking for advice on the #hackers-new channel on Discord.

@github-actions github-actions bot added platform-ios iOS applications specifically tool Affects the "flutter" command-line tool. See also t: labels. a: desktop Running on desktop team-ios Owned by iOS platform team labels Mar 25, 2025
final DateTime referenceModified = referenceFile.statSync().modified;
final DateTime entityModified = entity.statSync().modified;

return referenceModified.isAfter(entityModified);
Copy link
Member Author

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);
Copy link
Member Author

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() {
Copy link
Member Author

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.

@loic-sharma loic-sharma force-pushed the darwin_dev_dependencies_error branch from 2793300 to 266dc56 Compare March 25, 2025 20:34
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";
Copy link
Member Author

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:

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.

@loic-sharma loic-sharma force-pushed the darwin_dev_dependencies_error branch 5 times, most recently from fd766a4 to 985853f Compare March 25, 2025 23:57
pluginAPath,
'--template=plugin',
'--project-name=plugin_a_real_dependency',
'--platforms=ios',
Copy link
Member Author

@loic-sharma loic-sharma Mar 25, 2025

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.

@loic-sharma loic-sharma marked this pull request as ready for review March 27, 2025 23:11
platformDirectory: path.join(projectDirectory, 'macos'),
destination: 'platform=macOS',
testName: 'native_ui_tests_macos',
configuration: 'Debug',
Copy link
Member Author

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');
Copy link
Member Author

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
Copy link
Member Author

@loic-sharma loic-sharma Mar 27, 2025

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

@loic-sharma loic-sharma force-pushed the darwin_dev_dependencies_error branch from b1d4fad to 0b37c85 Compare March 28, 2025 15:33
@loic-sharma loic-sharma marked this pull request as draft March 28, 2025 18:43
@loic-sharma loic-sharma force-pushed the darwin_dev_dependencies_error branch from d9d7610 to d7d3599 Compare March 28, 2025 21:03
github-merge-queue bot pushed a commit that referenced this pull request Mar 31, 2025
…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>
github-merge-queue bot pushed a commit that referenced this pull request Apr 1, 2025
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
auto-submit bot pushed a commit to flutter/packages that referenced this pull request Apr 16, 2025
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)
...
nick-llewellyn pushed a commit to labrystechnology/flutter_packages that referenced this pull request Apr 23, 2025
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.
CodixNinja pushed a commit to CodixNinja/packages that referenced this pull request May 15, 2025
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.
CodixNinja pushed a commit to CodixNinja/packages that referenced this pull request May 15, 2025
…(#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)
...
androidseb pushed a commit to androidseb/packages that referenced this pull request Jun 8, 2025
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.
androidseb pushed a commit to androidseb/packages that referenced this pull request Jun 8, 2025
)

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)
...
zhangyuang pushed a commit to zhangyuang/flutter-fork that referenced this pull request Jun 9, 2025
…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>
zhangyuang pushed a commit to zhangyuang/flutter-fork that referenced this pull request Jun 9, 2025
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
FMorschel pushed a commit to FMorschel/packages that referenced this pull request Jun 9, 2025
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.
FMorschel pushed a commit to FMorschel/packages that referenced this pull request Jun 9, 2025
)

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)
...
Ortes pushed a commit to Ortes/packages that referenced this pull request Jun 25, 2025
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.
Ortes pushed a commit to Ortes/packages that referenced this pull request Jun 25, 2025
)

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)
...
romanejaquez pushed a commit to romanejaquez/flutter that referenced this pull request Aug 14, 2025
…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>
romanejaquez pushed a commit to romanejaquez/flutter that referenced this pull request Aug 14, 2025
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
romanejaquez pushed a commit to romanejaquez/flutter that referenced this pull request Aug 14, 2025
…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:


![image](https://github.com/user-attachments/assets/621c4a8f-1c19-44b9-8866-93bef6b4a384)

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
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

a: desktop Running on desktop platform-ios iOS applications specifically team-ios Owned by iOS platform team tool Affects the "flutter" command-line tool. See also t: labels.

Projects

None yet

Development

Successfully merging this pull request may close these issues.

2 participants