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 engine-flutter-autoroll@skia.org Roll Skia from 257c1f94afaa to 05c1f5803415 (4 revisions) (flutter/flutter#176402)
2025-10-02 bkonyi@google.com [ Widget Preview ] Fix resolution for workspace "hosted" dependencies (flutter/flutter#176358)
2025-10-02 engine-flutter-autoroll@skia.org Roll Skia from b5d8ae8d3410 to 257c1f94afaa (6 revisions) (flutter/flutter#176389)
2025-10-02 flar@google.com Delete Skia-specific performance overlay implementation (flutter/flutter#176364)
2025-10-02 engine-flutter-autoroll@skia.org Roll Fuchsia Linux SDK from 1Ai6VL4vb_GdGnWhg... to Vnoygds8HtDUvGLCK... (flutter/flutter#176381)
2025-10-01 bkonyi@google.com [ Widget Preview ] Persist "Filter by Selected File" toggle (flutter/flutter#176289)
2025-10-01 engine-flutter-autoroll@skia.org Roll Skia from c44a36470d07 to b5d8ae8d3410 (5 revisions) (flutter/flutter#176367)
2025-10-01 47866232+chunhtai@users.noreply.github.com Reapply "Update the AccessibilityPlugin::Announce method to account f… (flutter/flutter#176107)
2025-10-01 engine-flutter-autoroll@skia.org Roll Dart SDK from 8ffec1435cf3 to 4f90a06328cb (3 revisions) (flutter/flutter#176369)
2025-10-01 bkonyi@google.com [ Tool / l10n ] Fix issue where localization generator assumed current directory was the target project (flutter/flutter#175881)
2025-10-01 ahmedsameha1@gmail.com Make sure that a DateRangePickerDialog doesn't crash in 0x0 environments (flutter/flutter#173754)
2025-10-01 ahmedsameha1@gmail.com 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 stuartmorgan@google.com 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