name: cherrypick_workspace

sdkPath: .fvm/flutter_sdk

packages:
  - benchmark_di
  - cherrypick
  - cherrypick_flutter
  - cherrypick_annotations
  - cherrypick_generator
  - talker_cherrypick_logger
  - examples/client_app
  - examples/postly

scripts:
  clean_all:
    run: |
      melos clean
      melos exec -- rm -rf lib/**.g.dart lib/**/**.g.dart lib/generated/
      melos exec -- rm -rf .dart_tool build pubspec_overrides.yaml
    description: |
      Очищает build артефакты flutter и сгенерированный код во всех пакетах.

  all:
    steps:
      - codegen
      - analyze
      - format
      - test
    description: Run all steps.

  lint:all:
    steps:
      - analyze
      - format
    description: Run all static analysis checks.

  analyze:
    exec: dart analyze

  format:
    exec: dart format lib

  test:
    steps:
      - test:dart
      - test:flutter
    description: Run all tests.

  test:dart:
    description: "Run tests for Dart packages only"
    exec: dart test --reporter=compact
    packageFilters:
      scope: ["cherrypick", "cherrypick_annotations", "cherrypick_generator"]

  test:flutter:
    description: "Run tests for Flutter packages only"  
    exec: flutter test --reporter=compact
    packageFilters:
      scope: ["cherrypick_flutter"]

  codegen:
    run: |
      melos exec --scope="postly" -- dart run build_runner build --delete-conflicting-outputs

  outdated:
    exec: dart pub outdated 

  upgrade:
    exec: dart pub upgrade --major-versions

  drop:
    exec: flutter clean
