Skip to content

Conversation

@bkonyi
Copy link
Contributor

@bkonyi bkonyi commented Oct 1, 2025

Projects within the same workspace can depend on each other without explicitly specifying path dependencies or dependency overrides using the following syntax:

dependencies:
  my_workspace_project: # No constraint or path

This is treated as a "hosted" dependency, which conflicts with the path dependencies used by the widget_preview_scaffold.

This change introduces dependency_overrides for each package in the workspace watched by the widget previewer to allow for dependencies to be resolved correctly.

Fixes #176018

Projects within the same workspace can depend on each other without
explicitly specifying path dependencies or dependency overrides using
the following syntax:

```
dependencies:
  my_workspace_project: # No constraint or path
```

This is treated as a "hosted" dependency, which conflicts with the path
dependencies used by the widget_preview_scaffold.

This change introduces dependency_overrides for each package in the
workspace watched by the widget previewer to allow for dependencies to
be resolved correctly.

Fixes #176018
@bkonyi bkonyi requested a review from DanTup October 1, 2025 15:01
@github-actions github-actions bot added the tool Affects the "flutter" command-line tool. See also t: labels. label Oct 1, 2025
Copy link
Contributor

@gemini-code-assist gemini-code-assist bot left a comment

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Code Review

This pull request fixes an issue with resolving workspace dependencies in widget previews by adding dependency_overrides for workspace packages. The change is well-reasoned and includes a new regression test to cover this specific scenario. The implementation of the fix in preview_pubspec_builder.dart is correct. However, I've found a critical issue in the validation logic of the new regression test (regress_176018_test.dart), where the assertions are incorrect and would not properly validate the behavior. I've provided a code suggestion to fix the test.

@bkonyi bkonyi added the autosubmit Merge PR when tree becomes green via auto submit App label Oct 2, 2025
@auto-submit auto-submit bot added this pull request to the merge queue Oct 2, 2025
Merged via the queue into master with commit f35a287 Oct 2, 2025
153 checks passed
@auto-submit auto-submit bot deleted the fix_issue_176018 branch October 2, 2025 12:00
@flutter-dashboard flutter-dashboard bot removed the autosubmit Merge PR when tree becomes green via auto submit App label Oct 2, 2025
engine-flutter-autoroll added a commit to engine-flutter-autoroll/packages that referenced this pull request Oct 2, 2025
auto-submit bot pushed a commit to flutter/packages that referenced this pull request Oct 2, 2025
flutter/flutter@7811e89...65aca36

2025-10-02 [email protected] Roll Skia from 257c1f94afaa to 05c1f5803415 (4 revisions) (flutter/flutter#176402)
2025-10-02 [email protected] [ Widget Preview ] Fix resolution for workspace "hosted" dependencies (flutter/flutter#176358)
2025-10-02 [email protected] Roll Skia from b5d8ae8d3410 to 257c1f94afaa (6 revisions) (flutter/flutter#176389)
2025-10-02 [email protected] Delete Skia-specific performance overlay implementation (flutter/flutter#176364)
2025-10-02 [email protected] Roll Fuchsia Linux SDK from 1Ai6VL4vb_GdGnWhg... to Vnoygds8HtDUvGLCK... (flutter/flutter#176381)
2025-10-01 [email protected] [ Widget Preview ] Persist "Filter by Selected File" toggle (flutter/flutter#176289)
2025-10-01 [email protected] Roll Skia from c44a36470d07 to b5d8ae8d3410 (5 revisions) (flutter/flutter#176367)
2025-10-01 [email protected] Reapply "Update the AccessibilityPlugin::Announce method to account f… (flutter/flutter#176107)
2025-10-01 [email protected] Roll Dart SDK from 8ffec1435cf3 to 4f90a06328cb (3 revisions) (flutter/flutter#176369)
2025-10-01 [email protected] [ Tool / l10n ] Fix issue where localization generator assumed current directory was the target project (flutter/flutter#175881)
2025-10-01 [email protected] Make sure that a DateRangePickerDialog doesn't crash in 0x0 environments (flutter/flutter#173754)
2025-10-01 [email protected] Make sure that a DrawerButton doesn't crash in 0x0 environment (flutter/flutter#172948)

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] 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
mboetger pushed a commit to mboetger/flutter that referenced this pull request Oct 7, 2025
…flutter#176358)

Projects within the same workspace can depend on each other without
explicitly specifying path dependencies or dependency overrides using
the following syntax:

```
dependencies:
  my_workspace_project: # No constraint or path
```

This is treated as a "hosted" dependency, which conflicts with the path
dependencies used by the widget_preview_scaffold.

This change introduces dependency_overrides for each package in the
workspace watched by the widget previewer to allow for dependencies to
be resolved correctly.

Fixes flutter#176018
okorohelijah pushed a commit to okorohelijah/flutter that referenced this pull request Oct 7, 2025
…flutter#176358)

Projects within the same workspace can depend on each other without
explicitly specifying path dependencies or dependency overrides using
the following syntax:

```
dependencies:
  my_workspace_project: # No constraint or path
```

This is treated as a "hosted" dependency, which conflicts with the path
dependencies used by the widget_preview_scaffold.

This change introduces dependency_overrides for each package in the
workspace watched by the widget previewer to allow for dependencies to
be resolved correctly.

Fixes flutter#176018
engine-flutter-autoroll added a commit to engine-flutter-autoroll/packages that referenced this pull request Nov 12, 2025
reidbaker pushed a commit to AbdeMohlbi/flutter that referenced this pull request Dec 10, 2025
…flutter#176358)

Projects within the same workspace can depend on each other without
explicitly specifying path dependencies or dependency overrides using
the following syntax:

```
dependencies:
  my_workspace_project: # No constraint or path
```

This is treated as a "hosted" dependency, which conflicts with the path
dependencies used by the widget_preview_scaffold.

This change introduces dependency_overrides for each package in the
workspace watched by the widget previewer to allow for dependencies to
be resolved correctly.

Fixes flutter#176018
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

tool Affects the "flutter" command-line tool. See also t: labels.

Projects

None yet

Development

Successfully merging this pull request may close these issues.

[widget previews] workspaces with nested projects (like examples) don't work

2 participants