-
Notifications
You must be signed in to change notification settings - Fork 29.8k
[ Tool ] Fix update-packages not accounting for path dependencies #179951
New issue
Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.
By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.
Already on GitHub? Sign in to your account
Conversation
Each project's `pubspec.yaml` is copied into a temporary directory before trying to determine which packages can be updated, but this `pubspec.yaml` is currently deleted immediately after the dependencies have been determined for the single package. This means that projects that have path dependencies on other projects in the repository don't have their dependencies updated properly as the path dependencies fail to resolve. This change updates the `update-packages` logic to copy each project's `pubspec.yaml` to a temporary directory with a consistent relative directory structure. The `_upgrade` function has been updated to support processing multiple projects before deleting the temporary directory, allowing for projects with path dependencies on each other to have their pubspecs placed in the correct relative directories for them to resolve correctly. Fixes flutter#179941
There was a problem hiding this 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 refactors the update-packages command to correctly handle path dependencies between projects by processing multiple projects' pubspec.yaml files within a shared temporary directory structure. The overall approach is sound and directly addresses the issue of path resolution. However, I've identified a critical issue in how the temporary directory structure is created that will cause it to fail on non-Windows platforms. My review includes a suggested fix for this issue. The test updates are a great addition for ensuring this functionality remains stable.
|
autosubmit label was removed for flutter/flutter/179951, because Pull request flutter/flutter/179951 is not in a mergeable state. |
Manual roll Flutter from d81baab to 57c3f8b (38 revisions) Manual roll requested by stuartmorgan@google.com flutter/flutter@d81baab...57c3f8b 2025-12-17 bruno.leroux@gmail.com Add FloatingActionButtonTheme (flutter/flutter#179736) 2025-12-17 engine-flutter-autoroll@skia.org Roll Skia from b1569739f431 to fb576bd6827a (1 revision) (flutter/flutter#179989) 2025-12-17 bruno.leroux@gmail.com Update more comments related to theme normalization (flutter/flutter#179682) 2025-12-17 engine-flutter-autoroll@skia.org Roll Skia from cce9b86bda7d to b1569739f431 (1 revision) (flutter/flutter#179979) 2025-12-17 jobguldemeester@gmail.com Adds property passthrough for CheckboxListTile, SwitchListTile and RadioListTile (flutter/flutter#178098) 2025-12-17 engine-flutter-autoroll@skia.org Roll Dart SDK from ca949b915846 to 3793f3d2d0c4 (2 revisions) (flutter/flutter#179973) 2025-12-17 engine-flutter-autoroll@skia.org Roll Skia from 318400199beb to cce9b86bda7d (1 revision) (flutter/flutter#179976) 2025-12-17 ahmedsameha1@gmail.com Make sure that a CupertinoTextFormFieldRow doesn't crash in 0x0 envir… (flutter/flutter#179932) 2025-12-17 ahmedsameha1@gmail.com Make sure that a CupertinoTabView doesn't crash in 0x0 environment (flutter/flutter#179845) 2025-12-17 ahmedsameha1@gmail.com Make sure that a CupertinoTextField doesn't crash in 0x0 environment (flutter/flutter#179865) 2025-12-17 ahmedsameha1@gmail.com Make sure that a CupertinoSwitch doesn't crash in 0x0 environment (flutter/flutter#179748) 2025-12-17 116356835+AbdeMohlbi@users.noreply.github.com Update `BuildContext` docs to make it easier to understand (flutter/flutter#178616) 2025-12-17 41930132+hellohuanlin@users.noreply.github.com [ios][pv] quick fix to enable and re-enable web view's gesture recognizer (flutter/flutter#179908) 2025-12-17 biggs0125@gmail.com Deduplicate wasm dry run entries in analytics. (flutter/flutter#179970) 2025-12-17 engine-flutter-autoroll@skia.org Roll Skia from 99899cbb415b to 318400199beb (1 revision) (flutter/flutter#179969) 2025-12-17 engine-flutter-autoroll@skia.org Roll Skia from 2ac4a8709bc9 to 99899cbb415b (1 revision) (flutter/flutter#179968) 2025-12-17 engine-flutter-autoroll@skia.org Roll Dart SDK from 95a92bc705d3 to ca949b915846 (6 revisions) (flutter/flutter#179967) 2025-12-17 biggs0125@gmail.com Add package info to wasm dry run events. (flutter/flutter#179826) 2025-12-17 matt.boetger@gmail.com Platform View Hide/Show Integration test (flutter/flutter#179902) 2025-12-16 engine-flutter-autoroll@skia.org Roll Skia from 61162d72343f to 2ac4a8709bc9 (14 revisions) (flutter/flutter#179961) 2025-12-16 engine-flutter-autoroll@skia.org Roll Fuchsia Linux SDK from 433KtmJvbMyaDMJvD... to fAoyBAT99XxwPE5hL... (flutter/flutter#179960) 2025-12-16 bkonyi@google.com [ Tool ] Fix update-packages not accounting for path dependencies (flutter/flutter#179951) 2025-12-16 45459898+RamonFarizel@users.noreply.github.com ListTile fix MinIntrinsicHeight calculation (flutter/flutter#179515) 2025-12-16 108678139+manu-sncf@users.noreply.github.com Fix pinned header in NestedScrollView (flutter/flutter#179210) 2025-12-16 bruno.leroux@gmail.com Update some comments related to theme normalization (flutter/flutter#179624) 2025-12-16 iliyazelenkog@gmail.com Add Cyrillic keyboard layout support for flutter_tools terminal commands (flutter/flutter#177855) 2025-12-16 lauren@selfisekai.rocks Minor fixes for libstdc++ 15 (flutter/flutter#178601) 2025-12-16 34465683+rkishan516@users.noreply.github.com Feat: Add top gap for cupertino sheet (flutter/flutter#171348) 2025-12-16 116356835+AbdeMohlbi@users.noreply.github.com Align `Build.API_LEVELS` usage in `FlutterImageDecoder.java` with existing usage (flutter/flutter#179868) 2025-12-16 41930132+hellohuanlin@users.noreply.github.com Revert "[ios][pv] accept/reject gesture based on hitTest (with new wi… (flutter/flutter#179895) 2025-12-16 codefu@google.com fix: line endings for flutter/dart/flutter-dev (flutter/flutter#179912) 2025-12-16 22373191+Hari-07@users.noreply.github.com Platform view blur clipping - Rounded Rect (iOS) (flutter/flutter#177551) 2025-12-16 engine-flutter-autoroll@skia.org Roll Dart SDK from 20d114f951db to 95a92bc705d3 (1 revision) (flutter/flutter#179909) 2025-12-16 34871572+gmackall@users.noreply.github.com [Reland] Unmodified android sdk bundle (flutter/flutter#179920) 2025-12-16 engine-flutter-autoroll@skia.org Roll Skia from 6903a4e65c3f to 61162d72343f (2 revisions) (flutter/flutter#179915) 2025-12-16 engine-flutter-autoroll@skia.org Roll Packages from 2cd921c to 57725eb (1 revision) (flutter/flutter#179942) 2025-12-16 45490440+shindonghwi@users.noreply.github.com Filter out FrameEvents/updateAcquireFence log spam from adb logcat (flutter/flutter#179884) 2025-12-16 30870216+gaaclarke@users.noreply.github.com `flutter update-packages --force-upgrade --update-hashes` (flutter/flutter#179950) 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 bmparr@google.com,stuartmorgan@google.com on the revert to ensure that a human is aware of the problem. ...
Each project's
pubspec.yamlis copied into a temporary directory before trying to determine which packages can be updated, but thispubspec.yamlis currently deleted immediately after the dependencies have been determined for the single package. This means that projects that have path dependencies on other projects in the repository don't have their dependencies updated properly as the path dependencies fail to resolve.This change updates the
update-packageslogic to copy each project'spubspec.yamlto a temporary directory with a consistent relative directory structure. The_upgradefunction has been updated to support processing multiple projects before deleting the temporary directory, allowing for projects with path dependencies on each other to have their pubspecs placed in the correct relative directories for them to resolve correctly.Fixes #179941