fix: Detect if a package is flutter-based using SDK
Is there an existing issue for this?
- [X] I have searched the existing issues.
Version
6.0.0
Description
Currently melos detects if a package is flutter based by checking if flutter is listed as a dependency.
This is not entirely correct, as you can have a package that does not need flutter itself (so it has no dependency specified for it, but depends on another package that uses flutter.
The correct way to detect if a package needs flutter is to check if environment.flutter is specified.
Steps to reproduce
- Create package A with dependency on flutter
- Create package B without dependency on flutter but with dependency on package A
- Run
melos list --flutter.
Expected behavior
Both package A and B should be listed, but only A is present.
Screenshots
No response
Additional context and comments
No response
Good catch, would you like to work on a PR for this?
Sure, I'll give it a try.
Hm it seems I might be wrong, as it is also possible to not have the flutter SDK specified. Only the pubspec.lock always indicates if flutter is used or not (under the environment key).
This is a bit more complex than I anticipated, so I don't think I have the time to fix this myself given that I have no knowledge of the melos internals.
With pub workspaces, it’s no longer possible to identify Flutter packages by their individual lockfiles, since there’s now only a single global pubspec.lock file.