dart-lang / dart-lang/webdev

Restructure to require fewer runtime dependency constraint checks

Open
#430 1 comment 2 reactions 0 assignees View on GitHub
package:webdev type-enhancement
Dominant language
Dart
Stars
224
Forks
94
Avg merge
7h 14m
Merged PRs (30d)
2

Description

The current situation makes it difficult to ensure all users can get a valid version solve. Today it can require downgrading your global webdev version just to satisfy the constraints of a single package on your machine. In the worst case you may even have to repeatedly upgrade/downgrade webdev as you switch projects.

One proposed way of resolving this is to move the bulk of the code out of the `webdev` package and into a new package, which would be a local dependency only. This could be on a different version per project, and would be a part of the normal pub solve. The webdev package would then become a very simple wrapper which checks that the package has certain required dependencies _at all_, but not their specific versions. Essentially, it would become the equivalent of the `doctor` command in flutter.

Contributor guide

Open the contributing guide

Research direction

Start by reading the webdev package structure and its dependency constraints, then compare the proposal with Flutter's doctor command. Determine how the bulk of the code could move into a project-local package while webdev checks only that required dependencies exist; done means projects can resolve independently without repeatedly changing the global webdev version.

Written by the indexing model from the issue text.

Assessment

Tech stack
dart
Domain
cli
Issue type
Refactor
Difficulty
5/5
Estimated time
Over a week
Activity status
Stale
Clarity
Mostly clear
Newbie friendliness
30/100

Get new issues in your inbox

A short digest of beginner-friendly GitHub issues.