Closed
Description
tl;dr: Dart tooling is landing support for so-called Pub workspaces, the engine should use them when ready.
Right now, flutter/engine
has many, many pubspec.yaml
file each of which needs to be independently maintained, and comply with our policy of not resolving any packages to external data sources (i.e., all packages have to either be vended by the Dart SDK, or via our own DEPS
file).
The impact of this is perhaps most profound when you look at the necessary dependencies needed to use package:test
as a dependency, which at the time of this writing, was nearly ~50 packages (and hand-written paths that resolve to different directories depending on the package).
With upcoming pub workspaces, we could instead:
- Have a single root
flutter/engine/pubspec.yaml
listing all pub dependencies we use. - Have nested packages use
resolution: workspace
Unblocks #133569.
See also: