Repository navigation
[CP-stable][ Widget Preview ] Fix crash when widget_preview_scaffold/.dart_tool doesn't exist - #179042
Conversation
…` doesn't exist (flutter#178662) If the `.dart_tool/widget_preview_scaffold/.dart_tool/` directory wasn't created during the initial run of `flutter widget-preview start` due to the command being interrupted or `pub` being disabled, `flutter widget-preview start` would crash due to the `package_config.json` logic walking up the directory structure looking for the nearest `package_config.json`. This would point to the parent project's `package_config.json`, which would not be compatible with the widget preview scaffold project. Fixes flutter#178660 and flutter#177655
|
@bkonyi please fill out the PR description above, afterwards the release team will review this request. |
|
This pull request was opened from and to a release candidate branch. This should only be done as part of the official Flutter release process. If you are attempting to make a regular contribution to the Flutter project, please close this PR and follow the instructions at Tree Hygiene for detailed instructions on contributing to Flutter. Reviewers: Use caution before merging pull requests to release branches. Ensure the proper procedure has been followed. |
There was a problem hiding this comment.
Code Review
This pull request addresses a crash in the widget preview feature that occurs when the widget_preview_scaffold/.dart_tool directory is missing. The fix introduces a check for this directory's existence and, if absent, generates the necessary package configuration. This logic is encapsulated in a new, reusable method within PreviewPubspecBuilder. Additionally, a new integration test has been added to verify the fix and prevent future regressions. The changes are well-structured and effectively resolve the issue.
aa5986c
into
flutter:flutter-3.38-candidate.0
…scaffold/.dart_tool` doesn't exist (flutter/flutter#179042)
…scaffold/.dart_tool` doesn't exist (flutter/flutter#179042)
This pull request is created by automatic cherry pick workflow
Please fill in the form below, and a flutter domain expert will evaluate this cherry pick request.
Issue Link:
What is the link to the issue this cherry-pick is addressing?
#178660
Changelog Description:
Explain this cherry pick in one line that is accessible to most Flutter developers. See best practices for examples
flutter widget-preview startcan crash if.dart_tool/widget_preview_scaffold/.dart_tooldoesn't exist on subsequent runs.Impact Description:
What is the impact (ex. visual jank on Samsung phones, app crash, cannot ship an iOS app)? Does it impact development (ex. flutter doctor crashes when Android Studio is installed), or the shipping production app (the app crashes on launch)
If the
.dart_tool/widget_preview_scaffold/.dart_tool/directory wasn't created during the initial run offlutter widget-preview startdue to the command being interrupted or pub being disabled,flutter widget-preview startwould crash due to thepackage_config.jsonlogic walking up the directory structure looking for the nearestpackage_config.json. This would point to the parent project'spackage_config.json, which would not be compatible with the widget preview scaffold project.Workaround:
Is there a workaround for this issue?
Manually running
flutter pub getin.dart_tool/widget_preview_scaffold/.Risk:
What is the risk level of this cherry-pick?
Test Coverage:
Are you confident that your fix is well-tested by automated tests?
Validation Steps:
What are the steps to validate that this fix works?
flutter widget-preview startand close it once the previewer opens.dart_tool/widget_preview_scaffold/.dart_toolflutter widget-preview startand verify the previewer opens