melos icon indicating copy to clipboard operation
melos copied to clipboard

fix: Detect if a package is flutter-based using SDK

Open provokateurin opened this issue 1 year ago • 4 comments

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

  1. Create package A with dependency on flutter
  2. Create package B without dependency on flutter but with dependency on package A
  3. 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

provokateurin avatar Sep 12 '24 10:09 provokateurin

Good catch, would you like to work on a PR for this?

spydon avatar Sep 12 '24 10:09 spydon

Sure, I'll give it a try.

provokateurin avatar Sep 12 '24 11:09 provokateurin

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.

provokateurin avatar Sep 12 '24 11:09 provokateurin

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.

ARau87 avatar Oct 08 '25 17:10 ARau87