build: Melos, a Dart check and every path for the single repository

- Melos 8.9 as the root's dev dependency, with scripts across the
  workspace (analyze, test:dart, test:flutter, generate, check) and its
  filters (--diff, --include-dependents); cli_util overridden to 0.5.2
  for it, since Learn's flutter_launcher_icons asks for 0.4 and uses only
  its logger, unchanged in 0.5.
- tool/check.dart in place of tool/check.sh: packages, formatting of our
  own files, analysis, the tools' tests, then every package's tests
  through Melos (--changed-since=<commit> for only what changed and what
  depends on it). tool/pre-push is the hook: the signature check, then
  the checks. CI generates every server's code and runs the same check.
- The images build from the root with a workspace narrowed to what they
  need (tool/workspace_only.sh); compose, the deploy's migration test,
  the snap, the release script, the editor's launch files and Learn's
  asset tools (run from apps/learn) follow the new layout.
- The project's source is named as project-halkyon/halkyon (source link,
  snap, F-Droid listing, release uploads); the AGPL packages carry the
  licence's own text.

Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
Signed-off-by: Tizian 「ティツィアーン」 <raisondetredev@pm.me>
This commit is contained in:
Tizian 「ティツィアーン」 2026-10-19 20:39:09 +02:00
commit af1dbee509
Signed by: raisondetredev
GPG key ID: 07F6FCF405488B64
2 changed files with 3771 additions and 792 deletions

6
.vscode/launch.json vendored
View file

@ -4,7 +4,7 @@
// If the server pubspec configures multiple Flutter apps, add an attach
// configuration like this for each app and add every configuration name
// to the compound below. Use the VM-service info file pattern
// `${workspaceFolder}/halkyon_learn_server/.dart_tool/serverpod/flutter-vm-service-info-<appId>.json`,
// `${workspaceFolder}/apps/learn/halkyon_learn_server/.dart_tool/serverpod/flutter-vm-service-info-<appId>.json`,
// where `<appId>` is the app's key under `serverpod.flutter_apps` in the
// server pubspec.
{
@ -13,7 +13,7 @@
"name": "halkyon_learn_flutter",
"type": "dart",
"request": "attach",
"vmServiceInfoFile": "${workspaceFolder}/halkyon_learn_server/.dart_tool/serverpod/flutter-vm-service-info-halkyon_learn.json",
"vmServiceInfoFile": "${workspaceFolder}/apps/learn/halkyon_learn_server/.dart_tool/serverpod/flutter-vm-service-info-halkyon_learn.json",
"preLaunchTask": "serverpod_start",
"internalConsoleOptions": "neverOpen"
},
@ -21,7 +21,7 @@
"name": "halkyon_learn_server",
"type": "dart",
"request": "attach",
"vmServiceInfoFile": "${workspaceFolder}/halkyon_learn_server/.dart_tool/serverpod/vm-service-info.json",
"vmServiceInfoFile": "${workspaceFolder}/apps/learn/halkyon_learn_server/.dart_tool/serverpod/vm-service-info.json",
"preLaunchTask": "serverpod_start",
"internalConsoleOptions": "neverOpen"
}

2
.vscode/tasks.json vendored
View file

@ -7,7 +7,7 @@
"command": "serverpod",
"args": ["--no-analytics", "start"],
"options": {
"cwd": "${workspaceFolder}/halkyon_learn_server",
"cwd": "${workspaceFolder}/apps/learn/halkyon_learn_server",
"env": {
// Marks a `serverpod start` launched from the IDE, which is the
// only kind that honors the Flutter device picked in VS Code. A run