Skip to content

chore: upgrade Melos to 8 and run it from the workspace lock in CI #33

Closed as not planned

Description

@Dimoshka

The CI workflow on main is red. The Install Melos step runs dart global activate melos ^7.0.0, and the Dart SDK shipped with Flutter stable removed the dart global command ("Could not find a command named 'global'", exit 64). The step fails before any build step runs, so every push to main and every pull request is red.

What this change does

  1. Upgrade the only direct dependency that can be upgraded: melos 7.8.2 -> 8.9.0 in the root pubspec.yaml. The owner approved the move to the 8.x line (open question Q2, technical check T12).
  2. Migrate the melos: scripts: block in the root pubspec.yaml to the melos 8 forms (exec: with command:/concurrency:/packageFilters:, and steps: for the composite ci script). Melos 8 rewrites nested melos invocations only in those forms; the legacy plain-string scripts shell out to a bare melos and fail without a global install.
  3. Drop the global install from .github/workflows/ci.yml and invoke melos as dart run melos:melos run <script>, so the CI uses the exact version pinned in pubspec.lock.
  4. Update the specification: docs/spec/architecture.md (sections 4 and 5.2), docs/spec/product.md, docs/spec/forbidden-glossary.md, docs/spec/roadmap.md, and close Q2/T12 in docs/spec/open-questions.md.
  5. Record the decision as an ADR.

Dependencies that could not be upgraded, and why

  • build_runner 2.16.1 -> 2.17.1 is blocked: 2.17.1 requires build >=5.0.0 <5.1.0, but injectable_generator 3.1.3 and schemantic_builder 1.0.0 both pin build: ^4.0.4. No published release of either generator allows build 5. The existing pin >=2.16.1 <2.17.0 stays.
  • openai_dart 8.1.0 -> 11.0.1 is blocked: genkit_openai 1.0.0 (the latest) pins openai_dart: ^8.1.0.
  • Every other direct dependency in the workspace is already at its latest published version.

Acceptance criteria

  • melos run ci is green locally with no global melos on PATH
  • .github/workflows/ci.yml contains no global melos install
  • The pull request check on GitHub Actions is green
  • The specification and the ADR record the decision

Activity

  1. added a commit that references this issue on Oct 20, 2026
  2. Dimoshka commented on Oct 20, 2026

    @Dimoshka
    ContributorAuthor

    The approach (Melos 8 + running Melos from the workspace lock, no global install) was implemented in PR #36 and then reverted in commit e6090eb on the owner's request. The PR is closed without merge.

    The underlying problem remains open: CI is red because the workflow runs dart global activate melos ^7.0.0 and the Dart SDK in Flutter stable no longer has the dart global command. A different fix is needed.

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Metadata

Metadata

Assignees

No one assigned

    Labels

    No labels
    No labels

    Type

    No type

    Projects

    No projects

      Milestone

      No milestone

      Relationships

      None yet

      Development

      No branches or pull requests

      Issue actions