Repository navigation
chore(deps): upgrade Melos to 8, remove lock files, rewrite CI from scratch - #37
Merged
Merged
Conversation
Melos 8 changes how scripts are declared: a plain string is handed to /bin/sh verbatim, so a nested `melos exec` call only resolves when a global melos binary happens to be on PATH. Declaring `exec` with a `command` lets Melos 8 rewrite the nested call to `dart run melos:melos`, and `packageFilters` replaces the `--dir-exists`/`--depends-on` CLI flags with their camel-cased config keys. The `ci` script becomes a `steps` list, so the same rewrite applies to each step that is a bare script name. The workspace now resolves Melos 8.9.0 from the lock file, which also drops the platform/cli_util/pub_updater/coverage constraints that Melos 7.8.2 required. Signed-off-by: Dimoshka <dmytro.prylutskyi@outlook.com>
The global install pinned Melos 7 while the workspace lock now resolves Melos 8, so the runner and the workspace disagreed about the script schema. Running `dart run melos:melos` uses the version from pubspec.lock, which keeps CI and local runs on the same tool. `flutter pub get` stays ahead of every `dart run` step because `dart run` resolves the package through the workspace `.dart_tool/package_config.json`. `flutter pub get` is required rather than `dart pub get` because the workspace contains Flutter packages. Signed-off-by: Dimoshka <dmytro.prylutskyi@outlook.com>
The pin comment only said that build 4 was needed, which left the reasoning implicit. Name the two packages that actually hold build at ^4.0.4 - injectable_generator 3.1.3 and schemantic_builder 1.0.0 - so the ceiling can be revisited when either of them moves to build 5. The constraint itself is unchanged, so the resolution is unchanged. Signed-off-by: Dimoshka <dmytro.prylutskyi@outlook.com>
The spec pinned Melos 7 while 8.9.0 was the current pub.dev release, and the question of the line was open as Q2 with the technical check T12 on the script syntax. The owner approved the Melos 8 line on 2026-10-20. The record is needed because two constraints are not visible from the pubspecs alone: Melos 8 rewrites a nested melos call to 'dart run melos:melos' only in the exec: and steps: forms, and two dependencies cannot move because the generators pin build ^4.0.4 and genkit_openai pins openai_dart ^8.1.0. Signed-off-by: Dimoshka <dmytro.prylutskyi@outlook.com>
The spec pinned Melos 7 in six places and repeated the number in files that only need to point at it. Architecture section 4 now carries the version and the new build_runner ceiling; product.md and the glossary keep a pointer instead of a copy; roadmap.md names the new invocation and the M0 line; open-questions.md closes Q2 and T12 and names ADR-0011. Section 5.2 is rewritten around the Melos 8 exec:/steps: forms and drops the [VERIFY] line, because the result of that check now lives in ADR-0011 and in open-questions.md instead of in a third place. Signed-off-by: Dimoshka <dmytro.prylutskyi@outlook.com>
T12 checked the melos.scripts syntax and the melos exec flags. It is verified on Melos 8.9.0 with the exec: and steps: forms, and Melos now runs from the workspace lock, so the check is closed and the milestone names the ADR that records the line. The umbrella spike list stays unchecked: seven of those spikes are still open, so the closure is recorded under Open checks, the same pattern M1 uses for T2 and T14. Signed-off-by: Dimoshka <dmytro.prylutskyi@outlook.com>
The workspace moved to Melos 8 and the scripts now run from the workspace lock file as 'dart run melos:melos run <script>'. The global 'melos run' form needs 'dart pub global activate melos', which the Dart SDK shipped with Flutter stable no longer provides, so the old invocations in AGENTS.md, CONTRIBUTING.md, README.md, and the pull request template would fail on a clean machine. The canonical invocation is stated once, in docs/spec/architecture.md, section 5.2. The contributor documents now point at it instead of repeating a second form of it, and the requirements lines no longer pin Melos 7 as a prerequisite. Signed-off-by: Dimoshka <dmytro.prylutskyi@outlook.com>
The workstation guide asks for a TODO.md in the project root: one item per line, newest first, with a link to where each item is described. The repository had none, so the open work was only visible in the milestone plans and the open-questions table. Every line was checked against the repository before it was written: the four tools are still entry-point stubs, the listed spikes are still open in docs/spec/open-questions.md, and the build_runner ceiling comes from the generators pinning build 4. Signed-off-by: Dimoshka <dmytro.prylutskyi@outlook.com>
schemantic_builder 1.0.0 is a dev-dependency of schemantic, and the dev-dependencies of a dependency are not resolved. The only package in this workspace's resolution that pins build: ^4.0.4 is injectable_generator 3.1.3, so the previous wording named a package that does not hold the pin. Name injectable_generator 3.1.3 in the five member pubspecs, in the build_runner row of docs/spec/architecture.md, and in ADR-0011, and state in ADR-0011 that schemantic_builder is not a dependency of this workspace yet. The same commit corrects three statements of ADR-0011 that the Melos 8 move left inaccurate: the Dart SDK only lost the `dart global activate` shortcut (`dart pub global activate` still works), the lock file also moved cli_util, pub_updater, and coverage, and docs/plan/M0.md still listed the closed spike T12 among the open ones. TODO.md loses two wordings that no longer match the recorded state. Signed-off-by: Dimoshka <dmytro.prylutskyi@outlook.com>
`melos version` and `melos run` are melos CLI commands, not workspace scripts. With no global melos installation they fail with `melos: command not found`, so the reference has to be the workspace invocation `dart run melos:melos`. State it in CONTRIBUTING.md, in the versions and publishing paragraph of docs/spec/architecture.md, and in the M0 acceptance criterion, which is a live criterion in a file this branch edits. docs/spec/governance.md keeps its bare `melos version`: there the subcommand is named as part of a process description, not as a command to type. Signed-off-by: Dimoshka <dmytro.prylutskyi@outlook.com>
Signed-off-by: Dimoshka <dmytro.prylutskyi@outlook.com>
Reverts all 11 commits of PR #36 on the owner's request. The Melos 8 upgrade, the migration of the melos: scripts block to the Melos 8 forms, the removal of the global Melos install from CI, the ADR, the spec and contributor-doc updates, and the TODO.md are all undone. This restores the pre-existing state of main, including the red CI caused by the removal of the dart global command. That problem is not addressed by this revert and needs a separate decision. Refs #33 Signed-off-by: Dimoshka <dmytro.prylutskyi@outlook.com>
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment
Add this suggestion to a batch that can be applied as a single commit.This suggestion is invalid because no changes were made to the code.Suggestions cannot be applied while the pull request is closed.Suggestions cannot be applied while viewing a subset of changes.Only one suggestion per line can be applied in a batch.Add this suggestion to a batch that can be applied as a single commit.Applying suggestions on deleted lines is not supported.You must change the existing code in this line in order to create a valid suggestion.Outdated suggestions cannot be applied.This suggestion has been applied or marked resolved.Suggestions cannot be applied from pending reviews.Suggestions cannot be applied on multi-line comments.Suggestions cannot be applied while the pull request is queued to merge.Suggestion cannot be applied right now. Please check back later.
Summary
Verification
melos run ci(analyze/format/gen/arch/test) green on the upgraded toolchain.main.Refs #34