Restructure to require fewer runtime dependency constraint checks
- 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
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