Moritz
70aa4b3e54
Workspace (#169556)
Reland after https://github.com/flutter/flutter/issues/169844.
Switch Flutter to use pub workspaces as a preparation to unpin selected
packages.
Assumptions:
1. No packages in this repository are published to pub.dev --> We can
use `any` dependencies in most local pubspecs, as the global constraint
defines the version. An exception are the packages used outside of this
repo with an `sdk` dependency, namely `flutter_localizations`,
`flutter_test`, and `flutter`.
2. The "universes" `{flutter_tools}` and `{flutter,
flutter_localizations, flutter_goldens}` can use different packages
versions, as they are not resolved together. --> We do not need to
upgrade them in sync, we can first do one "universe", then the other.
Based on these assumptions, we use
https://github.com/mosuem/pubspec_merger.dart to merge all packages in
the `flutter` universe into a top-level pub workspace.
The `flutter` and `flutter_tools` workspaces being separate also ensures
that changes to `flutter` will not inadvertently break `flutter_tools`,
with not-so-nice consequences for our users which would be unable to run
`flutter upgrade`.
There is a third "top-level" pubspec besides `./pubspec.yaml` and
`packages/flutter_tools/pubspec.yaml`, namely
`packages/flutter_tools/.../widget_preview_scaffold/pubspec.yaml`. This
is an artifact due to it living under `flutter_tools`, so it can't be
part of the `./pubspec.yaml` workspace. Moving it would be a larger
change, and out of the scope of this PR.
This required a rewrite of the update-packages tool, but the main
functionality stays the same, as well as the argument names, to ensure a
seamless transition.
## Pre-launch Checklist
- [x] I read the [Contributor Guide] and followed the process outlined
there for submitting PRs.
- [x] I read the [Tree Hygiene] wiki page, which explains my
responsibilities.
- [x] I read and followed the [Flutter Style Guide], including [Features
we expect every widget to implement].
- [x] I signed the [CLA].
- [x] I listed at least one issue that this PR fixes in the description
above.
- [x] I updated/added relevant documentation (doc comments with `///`).
- [x] I added new tests to check the change I am making, or this PR is
[test-exempt].
- [x] I followed the [breaking change policy] and added [Data Driven
Fixes] where supported.
- [x] All existing and new tests are passing.
If you need help, consider asking for advice on the #hackers-new channel
on [Discord].
<!-- Links -->
[Contributor Guide]:
https://github.com/flutter/flutter/blob/main/docs/contributing/Tree-hygiene.md#overview
[Tree Hygiene]:
https://github.com/flutter/flutter/blob/main/docs/contributing/Tree-hygiene.md
[test-exempt]:
https://github.com/flutter/flutter/blob/main/docs/contributing/Tree-hygiene.md#tests
[Flutter Style Guide]:
https://github.com/flutter/flutter/blob/main/docs/contributing/Style-guide-for-Flutter-repo.md
[Features we expect every widget to implement]:
https://github.com/flutter/flutter/blob/main/docs/contributing/Style-guide-for-Flutter-repo.md#features-we-expect-every-widget-to-implement
[CLA]: https://cla.developers.google.com/
[flutter/tests]: https://github.com/flutter/tests
[breaking change policy]:
https://github.com/flutter/flutter/blob/main/docs/contributing/Tree-hygiene.md#handling-breaking-changes
[Discord]:
https://github.com/flutter/flutter/blob/main/docs/contributing/Chat.md
[Data Driven Fixes]:
https://github.com/flutter/flutter/blob/main/docs/contributing/Data-driven-Fixes.md
2025-06-03 08:48:14 +00:00
..
2021-07-13 16:45:09 -07:00
2022-02-28 10:16:21 -08:00
2021-07-13 16:45:09 -07:00
2025-02-12 19:42:39 +00:00
2025-04-14 16:38:16 +00:00
2025-04-22 23:38:39 +00:00
2022-03-01 15:26:21 -08:00
2025-02-10 21:53:55 +00:00
2022-02-08 16:10:43 -08:00
2025-05-22 21:42:50 +00:00
2021-07-13 16:45:09 -07:00
2021-07-13 16:45:09 -07:00
2024-01-24 23:11:12 +00:00
2023-08-09 10:57:35 -07:00
2023-08-09 10:57:35 -07:00
2024-12-19 20:06:21 +00:00
2023-03-31 20:54:51 +00:00
2023-03-31 20:54:51 +00:00
2024-12-19 20:06:21 +00:00
2022-11-29 01:59:19 +00:00
2022-04-25 18:14:06 -07:00
2022-08-26 14:06:26 -07:00
2023-01-18 22:33:49 +00:00
2024-12-19 20:06:21 +00:00
2021-07-13 16:45:09 -07:00
2021-07-13 16:45:09 -07:00
2021-07-13 16:45:09 -07:00
2021-07-13 16:45:09 -07:00
2021-07-13 16:45:09 -07:00
2021-07-13 16:45:09 -07:00
2021-07-13 16:45:09 -07:00
2022-08-26 15:29:14 +00:00
2021-07-13 16:45:09 -07:00
2025-05-22 21:42:50 +00:00
2025-05-29 17:06:51 +00:00
2025-05-21 16:54:42 +00:00
2025-05-22 21:42:50 +00:00
2021-07-13 16:45:09 -07:00
2022-09-08 22:39:07 +00:00
2021-07-13 16:45:09 -07:00
2021-07-13 16:45:09 -07:00
2022-05-13 14:04:06 +08:00
2021-07-13 16:45:09 -07:00
2021-07-13 16:45:09 -07:00
2022-08-26 14:06:26 -07:00
2022-03-16 19:15:13 -07:00
2022-07-20 19:13:06 +00:00
2021-07-13 16:45:09 -07:00
2021-07-13 16:45:09 -07:00
2021-07-13 16:45:09 -07:00
2022-08-25 23:35:00 +00:00
2024-12-19 20:06:21 +00:00
2024-12-19 20:06:21 +00:00
2021-07-13 16:45:09 -07:00
2022-08-26 18:50:07 +00:00
2023-12-04 19:23:26 +00:00
2023-12-04 19:23:26 +00:00
2021-10-08 09:25:14 -07:00
2023-01-19 21:29:19 +00:00
2024-12-19 20:06:21 +00:00
2022-08-17 09:38:41 -04:00
2021-07-13 16:45:09 -07:00
2021-07-13 16:45:09 -07:00
2021-07-13 16:45:09 -07:00
2021-07-13 16:45:09 -07:00
2021-07-13 16:45:09 -07:00
2024-12-19 20:06:21 +00:00
2023-08-14 18:47:08 +00:00
2023-08-14 18:47:08 +00:00
2023-08-14 18:47:08 +00:00
2023-05-15 19:14:58 +00:00
2023-08-14 18:47:08 +00:00
2023-08-14 18:47:08 +00:00
2023-08-14 18:47:08 +00:00
2024-12-19 20:06:21 +00:00
2025-04-10 21:38:08 +00:00
2025-04-10 21:38:08 +00:00
2023-08-14 18:47:08 +00:00
2023-08-14 18:47:08 +00:00
2021-07-13 16:45:09 -07:00
2025-03-02 00:54:33 +00:00
2022-03-28 18:15:10 -07:00
2024-01-26 01:07:08 +00:00
2024-07-29 20:15:25 +00:00
2021-07-13 16:45:09 -07:00
2024-12-19 20:06:21 +00:00
2024-12-19 20:06:21 +00:00
2025-02-19 20:37:35 +00:00
2025-02-19 20:37:35 +00:00
2025-02-24 04:40:29 +00:00
2024-12-19 20:06:21 +00:00
2024-12-19 20:06:21 +00:00
2024-12-19 20:06:21 +00:00
2024-12-19 20:06:21 +00:00
2021-10-06 09:43:02 -07:00
2021-07-13 22:04:03 -07:00
2023-05-10 00:50:11 +00:00
2022-09-07 20:19:20 +00:00
2022-09-07 20:19:20 +00:00
2024-12-19 20:06:21 +00:00
2022-05-12 09:54:10 -07:00
2021-07-13 22:04:03 -07:00
2021-07-13 22:04:03 -07:00
2021-07-13 22:04:03 -07:00
2025-04-10 15:11:10 +00:00
2022-08-26 17:29:39 +00:00
2022-09-08 16:49:17 +00:00
2025-02-10 21:53:55 +00:00
2024-12-19 20:06:21 +00:00
2021-07-13 22:04:03 -07:00
2022-08-17 09:38:41 -04:00
2022-08-17 09:38:41 -04:00
2024-12-19 20:06:21 +00:00
2023-04-21 22:33:07 +00:00
2021-07-13 22:04:03 -07:00
2021-07-13 22:04:03 -07:00
2022-09-14 23:44:14 +00:00
2022-08-17 09:38:41 -04:00
2021-07-13 22:04:03 -07:00
2021-07-13 22:04:03 -07:00
2022-08-26 14:06:26 -07:00
2021-07-13 22:04:03 -07:00
2022-04-08 17:20:22 -07:00
2022-04-08 17:20:22 -07:00
2022-04-08 17:20:22 -07:00
2024-12-19 20:06:21 +00:00
2024-12-19 20:06:21 +00:00
2025-02-10 21:53:55 +00:00
2025-04-08 18:37:14 +00:00
2024-12-19 20:06:21 +00:00
2025-02-10 21:53:55 +00:00
2021-07-13 22:04:03 -07:00
2024-12-19 20:06:21 +00:00
2021-07-13 22:04:03 -07:00
2022-08-24 18:04:42 +00:00
2022-08-17 09:38:41 -04:00
2021-07-13 22:04:03 -07:00
2021-07-13 22:04:03 -07:00
2024-12-19 20:06:21 +00:00
2021-12-10 15:39:07 -08:00
2023-10-12 15:53:00 +00:00
2021-07-13 22:04:03 -07:00
2022-10-18 22:26:16 +00:00
2022-10-20 03:23:12 +00:00
2021-07-13 22:04:03 -07:00
2021-07-13 22:04:03 -07:00
2024-12-19 20:06:21 +00:00
2024-12-19 20:06:21 +00:00
2021-07-13 22:04:03 -07:00
2022-08-26 14:06:26 -07:00
2025-02-04 00:07:19 +00:00
2025-02-04 00:07:19 +00:00
2021-07-13 22:04:03 -07:00
2021-07-13 22:04:03 -07:00
2021-07-13 22:04:03 -07:00
2021-07-15 17:11:09 -07:00
2021-07-13 22:04:03 -07:00
2021-07-15 17:11:09 -07:00
2021-07-13 22:04:03 -07:00
2021-07-13 22:04:03 -07:00
2021-07-13 22:04:03 -07:00
2021-07-13 22:04:03 -07:00
2021-07-13 22:04:03 -07:00
2022-09-26 17:45:19 +00:00
2021-07-13 22:04:03 -07:00
2025-06-03 08:48:14 +00:00
2021-07-13 16:41:06 -07:00
2021-07-13 16:41:06 -07:00
2025-04-22 23:33:02 +00:00
2024-12-19 20:06:21 +00:00
2024-12-19 20:06:21 +00:00
2021-07-13 16:41:06 -07:00
2024-10-31 21:31:07 +00:00
2023-03-10 16:16:30 +00:00
2022-06-21 18:17:07 +00:00
2024-10-31 21:31:07 +00:00
2021-07-13 16:41:06 -07:00
2021-07-13 16:41:06 -07:00
2021-07-13 16:41:06 -07:00
2025-02-24 16:47:12 +00:00
2024-12-19 20:06:21 +00:00
2025-05-29 19:00:56 +00:00
2021-07-13 16:41:06 -07:00
2023-12-07 16:29:11 +00:00
2024-12-19 20:06:21 +00:00
2023-09-10 08:07:13 +00:00
2024-12-19 20:06:21 +00:00
2025-04-11 19:34:38 +00:00
2024-12-19 20:06:21 +00:00
2024-02-15 22:32:38 +00:00
2024-02-15 22:32:38 +00:00
2024-12-19 20:06:21 +00:00
2024-02-15 22:32:38 +00:00
2024-02-15 22:32:38 +00:00
2024-02-15 22:32:38 +00:00
2024-12-19 20:06:21 +00:00
2022-01-27 13:25:17 -08:00
2021-12-01 01:39:02 -08:00
2021-12-01 01:39:02 -08:00
2022-01-27 13:25:17 -08:00
2021-12-01 01:39:02 -08:00
2021-12-01 01:39:02 -08:00
2021-12-01 01:39:02 -08:00
2022-07-21 20:01:06 +00:00
2021-07-13 16:41:06 -07:00
2021-07-13 16:41:06 -07:00
2021-07-13 16:41:06 -07:00
2023-03-23 11:56:23 -07:00
2021-07-13 16:41:06 -07:00
2022-06-30 14:54:07 +00:00
2021-07-13 16:41:06 -07:00
2024-12-19 20:06:21 +00:00
2024-12-19 20:06:21 +00:00
2021-07-13 16:41:06 -07:00
2021-07-13 16:41:06 -07:00
2021-07-13 16:41:06 -07:00
2024-12-19 20:06:21 +00:00
2022-09-08 19:35:20 +00:00
2022-08-17 09:38:41 -04:00
2025-02-11 02:12:49 +00:00
2021-07-13 16:41:06 -07:00
2024-03-16 05:44:21 +00:00
2024-07-08 21:01:58 +00:00
2023-06-23 18:40:17 -07:00
2021-07-13 16:41:06 -07:00
2023-03-10 16:16:30 +00:00
2025-02-10 21:53:55 +00:00
2025-02-10 21:53:55 +00:00
2024-12-19 20:06:21 +00:00
2024-12-19 20:06:21 +00:00
2024-12-19 20:06:21 +00:00
2024-12-19 20:06:21 +00:00
2024-12-19 20:06:21 +00:00
2021-10-08 09:25:14 -07:00
2025-02-10 21:53:55 +00:00
2025-02-10 21:53:55 +00:00
2024-05-29 22:19:10 +00:00
2024-05-29 22:19:10 +00:00
2022-12-12 22:39:49 +00:00
2023-01-13 19:17:12 +00:00
2022-12-12 22:39:49 +00:00
2022-12-12 22:39:49 +00:00
2023-01-13 19:17:12 +00:00
2022-11-08 23:00:04 +00:00
2022-12-08 14:05:53 -08:00
2022-12-06 21:57:25 +00:00
2025-02-10 21:53:55 +00:00
2022-03-28 00:15:07 -07:00
2021-10-08 09:25:14 -07:00
2023-04-24 23:25:28 +00:00
2022-12-20 14:15:39 -08:00
2024-12-19 20:06:21 +00:00
2021-07-13 16:41:06 -07:00
2023-11-29 08:41:27 +00:00
2024-12-19 20:06:21 +00:00
2021-07-13 16:41:06 -07:00
2022-12-22 02:47:11 +00:00
2022-08-17 16:16:02 +00:00
2025-04-10 21:38:08 +00:00
2025-04-10 21:38:08 +00:00
2023-08-14 18:47:08 +00:00
2023-08-14 18:47:08 +00:00
2025-06-03 08:48:14 +00:00
2021-07-13 16:41:06 -07:00
2021-07-13 16:41:06 -07:00
2021-07-13 16:41:06 -07:00
2021-07-13 16:41:06 -07:00
2023-08-31 19:03:14 +00:00
2023-08-31 19:03:14 +00:00
2025-04-16 03:29:36 +00:00
2025-04-16 03:29:36 +00:00
2025-04-16 03:29:36 +00:00
2025-04-16 03:29:36 +00:00
2025-04-16 03:29:36 +00:00
2024-12-19 20:06:21 +00:00
2023-02-13 22:33:19 +00:00
2021-07-13 16:41:06 -07:00
2024-10-31 21:31:07 +00:00
2022-03-04 15:41:14 -08:00
2022-08-25 18:54:20 -07:00