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

View file

@ -2,9 +2,10 @@
"""Makes the app's icons for every platform from its own, the kingfisher on white
(halkyon_learn_flutter/assets/icon/halkyon_icon.png).
- The snap's, snap/gui/halkyon-learn.png (512 x 512 pixels, the Snap Store's size),
which the Store and the desktop file show as they are: the picture with rounded
corners, as other apps' white tiles have (radius 142.222 of 512, about 28 %).
- The snap's, snap/gui/halkyon-learn.png at the repository's root (512 x 512
pixels, the Snap Store's size), which the Store and the desktop file show as they
are: the picture with rounded corners, as other apps' white tiles have (radius
142.222 of 512, about 28 %).
- Through flutter_launcher_icons, configured in the app's pubspec: Android's adaptive
icon and its older square one, iOS's, macOS's (the rounded tile on Apple's grid,
824 of 1024 pixels) and Windows' (the rounded tile).
@ -19,7 +20,7 @@ The derived images it hands to the tool go to halkyon_learn_flutter/build/icons/
which git ignores. The rounded corners' mask is drawn at four times the size and
scaled down, so their edges are smooth.
Run from the repository root with Python 3 and Pillow (python3-pil on Ubuntu), the
Run from apps/learn with Python 3 and Pillow (python3-pil on Ubuntu), the
app's dependencies fetched:
python3 tool/app_icons.py
@ -33,7 +34,7 @@ from PIL import Image, ImageDraw
APP = Path("halkyon_learn_flutter")
SOURCE = APP / "assets/icon/halkyon_icon.png"
DERIVED = APP / "build/icons"
SNAP_ICON = Path("snap/gui/halkyon-learn.png")
SNAP_ICON = Path("../../snap/gui/halkyon-learn.png")
WINDOWS_ICON = APP / "windows/runner/resources/app_icon.ico"
IOS_PROJECT = APP / "ios/Runner.xcodeproj/project.pbxproj"
RADIUS = 142.222 / 512