Repository navigation
[ Tool ] Use a separate output directory when the native hooks run the build system - #178840
Merged
Merged
Conversation
…e build system FlutterBuildSystem.trackSharedBuildDirectory stores a hash of the most recently run build configuration in the output directory defined in the environment. If the build executed by FlutterHookRunnerNative uses the same output directory as other builds, then trackSharedBuildDirectory may think that the hook build's output list replaces the outputs of those previous builds. trackSharedBuildDirectory will then incorrectly delete files in the previous output list because they are not part of the hook build's outputs. See flutter#178529
Contributor
There was a problem hiding this comment.
Code Review
This pull request correctly addresses an issue with incorrect file deletion during builds by using a separate output directory for native hooks. This is achieved by creating a new Environment for the hook runner with a dedicated output path. The changes are logical, and a new test has been added to verify the fix. I have one suggestion regarding the maintainability of how the new Environment object is created.
bkonyi
approved these changes
Nov 20, 2025
engine-flutter-autoroll
added a commit
to engine-flutter-autoroll/packages
that referenced
this pull request
Nov 21, 2025
…s run the build system (flutter/flutter#178840)
auto-submit Bot
pushed a commit
to flutter/packages
that referenced
this pull request
Nov 21, 2025
flutter/flutter@9f383e0...d438df3 2025-11-21 [email protected] [ Tool ] Use a separate output directory when the native hooks run the build system (flutter/flutter#178840) 2025-11-21 [email protected] Fix Windows Enter key after focus loss (flutter/flutter#178523) 2025-11-21 [email protected] Roll Dart SDK from 369795548c09 to c788b6a7aefd (1 revision) (flutter/flutter#178924) 2025-11-21 [email protected] Roll Skia from 51fd48dccfb8 to d4e9d2873bfd (4 revisions) (flutter/flutter#178912) 2025-11-21 [email protected] Add changelog for 3.38.2 (flutter/flutter#178796) 2025-11-21 [email protected] Roll Dart SDK from 003a42bad376 to 369795548c09 (2 revisions) (flutter/flutter#178899) 2025-11-21 [email protected] Roll Skia from b9eafe0fab0c to 51fd48dccfb8 (1 revision) (flutter/flutter#178897) 2025-11-21 [email protected] Roll Dart SDK from 0894b46fff76 to 003a42bad376 (1 revision) (flutter/flutter#178889) 2025-11-21 [email protected] Make sure that a TextSelectionToolbarTextButton doesn't crash in 0x0 … (flutter/flutter#178374) 2025-11-21 [email protected] Make sure that a CupertinoSpellCheckSuggestionsToolbar doesn't crash … (flutter/flutter#177978) 2025-11-21 [email protected] Make sure that a TabBar doesn't crash in 0x0 environment (flutter/flutter#178201) 2025-11-20 [email protected] Make sure that a ToggleButtons doesn't crash in 0x0 environment (flutter/flutter#178454) 2025-11-20 [email protected] Roll Skia from d7b961c5f305 to b9eafe0fab0c (6 revisions) (flutter/flutter#178888) 2025-11-20 [email protected] Add macrobenchmark perf test for drawing arcs (flutter/flutter#178690) 2025-11-20 [email protected] Roll Dart SDK from 5b21f8a7d5d3 to 0894b46fff76 (1 revision) (flutter/flutter#178881) 2025-11-20 [email protected] Roll Skia from 6284b4f09e14 to d7b961c5f305 (1 revision) (flutter/flutter#178867) 2025-11-20 [email protected] Roll Fuchsia Linux SDK from 0z3qxzY6CWb8iVxEf... to Y-cMdgKy3d6EnibWR... (flutter/flutter#178865) 2025-11-20 [email protected] Roll Packages from 8f72e4b to b1e2fb0 (6 revisions) (flutter/flutter#178868) If this roll has caused a breakage, revert this CL and stop the roller using the controls here: https://autoroll.skia.org/r/flutter-packages Please CC [email protected],[email protected] on the revert to ensure that a human is aware of the problem. To file a bug in Packages: https://github.com/flutter/flutter/issues/new/choose To report a problem with the AutoRoller itself, please file a bug: https://issues.skia.org/issues/new?component=1389291&template=1850622 Documentation for the AutoRoller is here: https://skia.googlesource.com/buildbot/+doc/main/autoroll/README.md
okorohelijah
pushed a commit
to okorohelijah/flutter
that referenced
this pull request
Nov 21, 2025
…e build system (flutter#178840) FlutterBuildSystem.trackSharedBuildDirectory stores a hash of the most recently run build configuration in the output directory defined in the environment. If the build executed by FlutterHookRunnerNative uses the same output directory as other builds, then trackSharedBuildDirectory may think that the hook build's output list replaces the outputs of those previous builds. trackSharedBuildDirectory will then incorrectly delete files in the previous output list because they are not part of the hook build's outputs. See flutter#178529
flutteractionsbot
pushed a commit
to flutteractionsbot/flutter
that referenced
this pull request
Nov 24, 2025
…e build system (flutter#178840) FlutterBuildSystem.trackSharedBuildDirectory stores a hash of the most recently run build configuration in the output directory defined in the environment. If the build executed by FlutterHookRunnerNative uses the same output directory as other builds, then trackSharedBuildDirectory may think that the hook build's output list replaces the outputs of those previous builds. trackSharedBuildDirectory will then incorrectly delete files in the previous output list because they are not part of the hook build's outputs. See flutter#178529
flutteractionsbot
pushed a commit
to flutteractionsbot/flutter
that referenced
this pull request
Nov 24, 2025
…e build system (flutter#178840) FlutterBuildSystem.trackSharedBuildDirectory stores a hash of the most recently run build configuration in the output directory defined in the environment. If the build executed by FlutterHookRunnerNative uses the same output directory as other builds, then trackSharedBuildDirectory may think that the hook build's output list replaces the outputs of those previous builds. trackSharedBuildDirectory will then incorrectly delete files in the previous output list because they are not part of the hook build's outputs. See flutter#178529
mboetger
pushed a commit
to mboetger/flutter
that referenced
this pull request
Dec 2, 2025
…e build system (flutter#178840) FlutterBuildSystem.trackSharedBuildDirectory stores a hash of the most recently run build configuration in the output directory defined in the environment. If the build executed by FlutterHookRunnerNative uses the same output directory as other builds, then trackSharedBuildDirectory may think that the hook build's output list replaces the outputs of those previous builds. trackSharedBuildDirectory will then incorrectly delete files in the previous output list because they are not part of the hook build's outputs. See flutter#178529
reidbaker
pushed a commit
to AbdeMohlbi/flutter
that referenced
this pull request
Dec 10, 2025
…e build system (flutter#178840) FlutterBuildSystem.trackSharedBuildDirectory stores a hash of the most recently run build configuration in the output directory defined in the environment. If the build executed by FlutterHookRunnerNative uses the same output directory as other builds, then trackSharedBuildDirectory may think that the hook build's output list replaces the outputs of those previous builds. trackSharedBuildDirectory will then incorrectly delete files in the previous output list because they are not part of the hook build's outputs. See flutter#178529
engine-flutter-autoroll
added a commit
to engine-flutter-autoroll/packages
that referenced
this pull request
Feb 11, 2026
…s run the build system (flutter/flutter#178840)
creatorpiyush
pushed a commit
to creatorpiyush/packages
that referenced
this pull request
Jun 10, 2026
flutter/flutter@9f383e0...d438df3 2025-11-21 [email protected] [ Tool ] Use a separate output directory when the native hooks run the build system (flutter/flutter#178840) 2025-11-21 [email protected] Fix Windows Enter key after focus loss (flutter/flutter#178523) 2025-11-21 [email protected] Roll Dart SDK from 369795548c09 to c788b6a7aefd (1 revision) (flutter/flutter#178924) 2025-11-21 [email protected] Roll Skia from 51fd48dccfb8 to d4e9d2873bfd (4 revisions) (flutter/flutter#178912) 2025-11-21 [email protected] Add changelog for 3.38.2 (flutter/flutter#178796) 2025-11-21 [email protected] Roll Dart SDK from 003a42bad376 to 369795548c09 (2 revisions) (flutter/flutter#178899) 2025-11-21 [email protected] Roll Skia from b9eafe0fab0c to 51fd48dccfb8 (1 revision) (flutter/flutter#178897) 2025-11-21 [email protected] Roll Dart SDK from 0894b46fff76 to 003a42bad376 (1 revision) (flutter/flutter#178889) 2025-11-21 [email protected] Make sure that a TextSelectionToolbarTextButton doesn't crash in 0x0 … (flutter/flutter#178374) 2025-11-21 [email protected] Make sure that a CupertinoSpellCheckSuggestionsToolbar doesn't crash … (flutter/flutter#177978) 2025-11-21 [email protected] Make sure that a TabBar doesn't crash in 0x0 environment (flutter/flutter#178201) 2025-11-20 [email protected] Make sure that a ToggleButtons doesn't crash in 0x0 environment (flutter/flutter#178454) 2025-11-20 [email protected] Roll Skia from d7b961c5f305 to b9eafe0fab0c (6 revisions) (flutter/flutter#178888) 2025-11-20 [email protected] Add macrobenchmark perf test for drawing arcs (flutter/flutter#178690) 2025-11-20 [email protected] Roll Dart SDK from 5b21f8a7d5d3 to 0894b46fff76 (1 revision) (flutter/flutter#178881) 2025-11-20 [email protected] Roll Skia from 6284b4f09e14 to d7b961c5f305 (1 revision) (flutter/flutter#178867) 2025-11-20 [email protected] Roll Fuchsia Linux SDK from 0z3qxzY6CWb8iVxEf... to Y-cMdgKy3d6EnibWR... (flutter/flutter#178865) 2025-11-20 [email protected] Roll Packages from 8f72e4b to b1e2fb0 (6 revisions) (flutter/flutter#178868) If this roll has caused a breakage, revert this CL and stop the roller using the controls here: https://autoroll.skia.org/r/flutter-packages Please CC [email protected],[email protected] on the revert to ensure that a human is aware of the problem. To file a bug in Packages: https://github.com/flutter/flutter/issues/new/choose To report a problem with the AutoRoller itself, please file a bug: https://issues.skia.org/issues/new?component=1389291&template=1850622 Documentation for the AutoRoller is here: https://skia.googlesource.com/buildbot/+doc/main/autoroll/README.md
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment
Add this suggestion to a batch that can be applied as a single commit.This suggestion is invalid because no changes were made to the code.Suggestions cannot be applied while the pull request is closed.Suggestions cannot be applied while viewing a subset of changes.Only one suggestion per line can be applied in a batch.Add this suggestion to a batch that can be applied as a single commit.Applying suggestions on deleted lines is not supported.You must change the existing code in this line in order to create a valid suggestion.Outdated suggestions cannot be applied.This suggestion has been applied or marked resolved.Suggestions cannot be applied from pending reviews.Suggestions cannot be applied on multi-line comments.Suggestions cannot be applied while the pull request is queued to merge.Suggestion cannot be applied right now. Please check back later.
FlutterBuildSystem.trackSharedBuildDirectory stores a hash of the most recently run build configuration in the output directory defined in the environment.
If the build executed by FlutterHookRunnerNative uses the same output directory as other builds, then trackSharedBuildDirectory may think that the hook build's output list replaces the outputs of those previous builds. trackSharedBuildDirectory will then incorrectly delete files in the previous output list because they are not part of the hook build's outputs.
See #178529