build: one workspace for every app and the packages they share

The root pubspec lists Learn's, Todo's and the shared packages, which
the apps now take by path instead of pinned commits of halkyon_shared:
one resolution, one lockfile. Learn's versions stay as they were; Todo
moves to Serverpod 4.0.4 and Dart 3.13 with the rest (its generated code
unchanged), drops google_fonts, which it never used, and a template
line Dart 3.13 refuses.

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:14:07 +02:00
commit 9643412be9
Signed by: raisondetredev
GPG key ID: 07F6FCF405488B64
6 changed files with 113 additions and 96 deletions

View file

@ -9,10 +9,7 @@ resolution: workspace
dependencies:
# The client side of halkyon_base (ADR 0014), as the server's.
halkyon_base_client:
git:
url: https://code.halkyon.app/project-halkyon/halkyon_shared.git
path: packages/halkyon_base_client
ref: 96f2d1461803599bdf5b14783f4b3d3a2810742f
path: ../../../packages/halkyon_base_client
serverpod_auth_idp_client: 4.0.4
serverpod_client: 4.0.4
serverpod_offline_sync_client: 0.0.10

View file

@ -1,2 +1,2 @@
# The workspace's lint rules (see ../analysis_options.yaml).
include: ../analysis_options.yaml
include: ../../../analysis_options.yaml

View file

@ -2,7 +2,7 @@
#
# If this app ever leaves the pub workspace, it has to enable the analyzer plugin itself:
# include package:leancode_lint/analysis_options.yaml and add the `plugins:` section here.
include: ../analysis_options.yaml
include: ../../../analysis_options.yaml
analyzer:
exclude:

View file

@ -66,33 +66,21 @@ dependencies:
# schedules.
fsrs: 2.0.1
go_router: ^18.0.2
# What every Halkyon app is built around (halkyon_shared): the instances a
# What every Halkyon app is built around (a shared package): the instances a
# device keeps accounts on, signing in through halkyon_base, each person's
# data opened and closed, and syncing it, with texts of its own. As
# halkyon_ui, pinned to a signed commit of halkyon_shared's main.
# data opened and closed, and syncing it, with texts of its own.
halkyon_app:
git:
url: https://code.halkyon.app/project-halkyon/halkyon_shared.git
path: packages/halkyon_app
ref: 96f2d1461803599bdf5b14783f4b3d3a2810742f
# Halkyon's low-level parts (halkyon_shared): the queues the repositories
path: ../../../packages/halkyon_app
# Halkyon's low-level parts (a shared package): the queues the repositories
# run their work in (SerialQueue, CoalescingRunner).
halkyon_core:
git:
url: https://code.halkyon.app/project-halkyon/halkyon_shared.git
path: packages/halkyon_core
ref: 96f2d1461803599bdf5b14783f4b3d3a2810742f
path: ../../../packages/halkyon_core
halkyon_learn_client:
path: ../halkyon_learn_client
# Halkyon's look, shared by its apps (halkyon_shared): the theme, the bundled Noto
# Sans, window sizes and the widgets every screen is built of. Pinned to a signed
# commit of halkyon_shared's main; for local work on both, a git-ignored
# pubspec_overrides.yaml at the workspace root points it at a checkout.
# Halkyon's look, shared by its apps (a shared package): the theme, the bundled
# Noto Sans, window sizes and the widgets every screen is built of.
halkyon_ui:
git:
url: https://code.halkyon.app/project-halkyon/halkyon_shared.git
path: packages/halkyon_ui
ref: 96f2d1461803599bdf5b14783f4b3d3a2810742f
path: ../../../packages/halkyon_ui
# Anki's fields are HTML; the editor brings this parser along already.
html: ^0.15.6
# Talks to Jellyfin servers; Serverpod's client brings it along already.

View file

@ -1,5 +1,5 @@
# The workspace's lint rules (see ../analysis_options.yaml), minus generated code.
include: ../analysis_options.yaml
include: ../../../analysis_options.yaml
analyzer:
exclude:

View file

@ -12,15 +12,10 @@ dependencies:
clock: ^1.1.3
crypto: ^3.0.7
# What every Halkyon server has (ADR 0014): signing in, the account and its
# deletion, pruning, the instance's basics. A Serverpod module in
# halkyon_shared, pinned to a signed commit of its main; for local work on
# both, a git-ignored pubspec_overrides.yaml at the workspace root points it
# at a checkout.
# deletion, pruning, the instance's basics. A Serverpod module among the
# repository's shared packages.
halkyon_base_server:
git:
url: https://code.halkyon.app/project-halkyon/halkyon_shared.git
path: packages/halkyon_base_server
ref: 96f2d1461803599bdf5b14783f4b3d3a2810742f
path: ../../../packages/halkyon_base_server
# Reads the pages profile links point to, for their rel="me" back-links.
html: ^0.15.6
# Mails email sign-in's codes over SMTP (ADR 0010).