Skip to content

feat: Support packages check licenses with workspaces #1273

@IchordeDionysos

Description

@IchordeDionysos

Description

When setting up a mono-repo with Pub workspaces your project will look this this:

  • app/
    • pubspec.yaml
  • packages/
    • packageA/
      • pubspec.yaml
    • packageB/
      • pubspec.yaml
  • pubspec.yaml
  • pubspec.lock

Meaning you can't run very_good_cli packages check licenses in the individual projects/packages (there is no pubspec.lock file anymore).

And you can't run very_good_cli packages check licenses in the workspace root, as it will look something like:

name: _
publish_to: none
environment:
  sdk: ^3.6.0
workspace:
  - app
  - packages/packageA
  - packages/packageB

# No direct dependencies
# dependencies:

dev_dependencies:
  build_runner: ^2.4.14
  freezed: ^2.5.7
  json_serializable: ^6.9.0

And as the dependencies are not installed in the pubspec.yaml file next to the pubspec.lock file, the output will be something like:

very_good packages check licenses
No hosted dependencies found in /Users/steve/flutter_monorepo of type: direct-main.

Requirements

  • Dependencies are also checked in downstream workspaces
    (e.g. when a pubspec.yaml file has a workspaces properties, go through the list of directories and read the dependencies there as if they were in the root file).
  • Multiple nested workspaces also work
    (if the root-pubspec.yaml links to the app-pubspec.yaml and the app-pubspec.yaml links to an internal-package-pubspec.yaml, also the dependencies of the internal-package-pubspec.yaml should be considered)
  • All CI/CD checks are passing.
  • There is no drop in the test coverage percentage.

Additional Context

No response

Metadata

Metadata

Assignees

No one assigned

    Labels

    Type

    No type
    No fields configured for issues without a type.

    Projects

    Status

    Community

    Milestone

    No milestone

    Relationships

    None yet

    Development

    No branches or pull requests

    Issue actions