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:
parent
314a901fa1
commit
9643412be9
12 changed files with 113 additions and 96 deletions
|
|
@ -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
|
||||
|
|
|
|||
|
|
@ -1,2 +1,2 @@
|
|||
# The workspace's lint rules (see ../analysis_options.yaml).
|
||||
include: ../analysis_options.yaml
|
||||
include: ../../../analysis_options.yaml
|
||||
|
|
|
|||
|
|
@ -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:
|
||||
|
|
|
|||
|
|
@ -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.
|
||||
|
|
|
|||
|
|
@ -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:
|
||||
|
|
|
|||
|
|
@ -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).
|
||||
|
|
|
|||
|
|
@ -2,10 +2,10 @@ name: halkyon_todo_client
|
|||
description: Starting point for a Serverpod client.
|
||||
|
||||
environment:
|
||||
sdk: '^3.12.2'
|
||||
sdk: '^3.13.0'
|
||||
|
||||
resolution: workspace
|
||||
|
||||
dependencies:
|
||||
serverpod_auth_idp_client: 4.0.3
|
||||
serverpod_client: 4.0.3
|
||||
serverpod_auth_idp_client: 4.0.4
|
||||
serverpod_client: 4.0.4
|
||||
|
|
|
|||
|
|
@ -18,7 +18,7 @@ publish_to: 'none' # Remove this line if you wish to publish to pub.dev
|
|||
version: 1.0.0+1
|
||||
|
||||
environment:
|
||||
sdk: '^3.12.2'
|
||||
sdk: '^3.13.0'
|
||||
flutter: '^3.44.4'
|
||||
|
||||
resolution: workspace
|
||||
|
|
@ -29,11 +29,10 @@ dependencies:
|
|||
cupertino_icons: ^1.0.5
|
||||
flutter:
|
||||
sdk: flutter
|
||||
google_fonts: ^8.1.0
|
||||
halkyon_todo_client:
|
||||
path: ../halkyon_todo_client
|
||||
serverpod_auth_idp_flutter: 4.0.3
|
||||
serverpod_flutter: 4.0.3
|
||||
serverpod_auth_idp_flutter: 4.0.4
|
||||
serverpod_flutter: 4.0.4
|
||||
|
||||
dev_dependencies:
|
||||
# Used for agents to drive the app through the Dart MCP
|
||||
|
|
@ -43,9 +42,6 @@ dev_dependencies:
|
|||
flutter_test:
|
||||
sdk: flutter
|
||||
|
||||
dependency_overrides:
|
||||
flutter_secure_storage: ^10.0.0
|
||||
|
||||
# For information on the generic Dart part of this file, see the
|
||||
# following page: https://dart.dev/tools/pub/pubspec
|
||||
|
||||
|
|
|
|||
|
|
@ -12,7 +12,7 @@ class AppConfigRoute extends WidgetRoute {
|
|||
AppConfigWidget widget;
|
||||
|
||||
AppConfigRoute({
|
||||
required final ServerConfig apiConfig,
|
||||
required ServerConfig apiConfig,
|
||||
}) : widget = AppConfigWidget(apiUrl: apiConfig.apiUrl.toString());
|
||||
|
||||
@override
|
||||
|
|
|
|||
|
|
@ -4,18 +4,18 @@ description: Starting point for a Serverpod server.
|
|||
# homepage: https://www.example.com
|
||||
|
||||
environment:
|
||||
sdk: '^3.12.2'
|
||||
sdk: '^3.13.0'
|
||||
|
||||
resolution: workspace
|
||||
|
||||
dependencies:
|
||||
serverpod: 4.0.3
|
||||
serverpod_auth_idp_server: 4.0.3
|
||||
serverpod_cloud_storage: 4.0.3
|
||||
serverpod: 4.0.4
|
||||
serverpod_auth_idp_server: 4.0.4
|
||||
serverpod_cloud_storage: 4.0.4
|
||||
|
||||
dev_dependencies:
|
||||
lints: '>=3.0.0 <7.0.0'
|
||||
serverpod_test: 4.0.3
|
||||
serverpod_test: 4.0.4
|
||||
test: ^1.25.5
|
||||
|
||||
serverpod:
|
||||
|
|
|
|||
109
pubspec.lock
109
pubspec.lock
|
|
@ -1,6 +1,14 @@
|
|||
# Generated by pub
|
||||
# See https://dart.dev/tools/pub/glossary#lockfile
|
||||
packages:
|
||||
_discoveryapis_commons:
|
||||
dependency: transitive
|
||||
description:
|
||||
name: _discoveryapis_commons
|
||||
sha256: "55dd9e9cb83f8b62aa5dd8744d3bfedf79d33f9457c1684916c2b5c69c6e3a9b"
|
||||
url: "https://pub.dev"
|
||||
source: hosted
|
||||
version: "1.0.8"
|
||||
_fe_analyzer_shared:
|
||||
dependency: transitive
|
||||
description:
|
||||
|
|
@ -9,6 +17,14 @@ packages:
|
|||
url: "https://pub.dev"
|
||||
source: hosted
|
||||
version: "103.0.0"
|
||||
amazon_cognito_identity_dart_2:
|
||||
dependency: transitive
|
||||
description:
|
||||
name: amazon_cognito_identity_dart_2
|
||||
sha256: ff3d493eb94d9dc624bd8f0a92bf49754e67d39717e6a52ff0c7dd14e5c0e20b
|
||||
url: "https://pub.dev"
|
||||
source: hosted
|
||||
version: "3.8.2"
|
||||
analysis_server_plugin:
|
||||
dependency: transitive
|
||||
description:
|
||||
|
|
@ -760,6 +776,14 @@ packages:
|
|||
url: "https://pub.dev"
|
||||
source: hosted
|
||||
version: "18.0.2"
|
||||
google_cloud:
|
||||
dependency: transitive
|
||||
description:
|
||||
name: google_cloud
|
||||
sha256: b385e20726ef5315d302c5933bfb728103116c5be2d3d17094b01a82da538c1f
|
||||
url: "https://pub.dev"
|
||||
source: hosted
|
||||
version: "0.5.0"
|
||||
google_fonts:
|
||||
dependency: transitive
|
||||
description:
|
||||
|
|
@ -816,51 +840,22 @@ packages:
|
|||
url: "https://pub.dev"
|
||||
source: hosted
|
||||
version: "1.1.3"
|
||||
halkyon_app:
|
||||
googleapis:
|
||||
dependency: transitive
|
||||
description:
|
||||
path: "packages/halkyon_app"
|
||||
ref: "96f2d1461803599bdf5b14783f4b3d3a2810742f"
|
||||
resolved-ref: "96f2d1461803599bdf5b14783f4b3d3a2810742f"
|
||||
url: "https://code.halkyon.app/project-halkyon/halkyon_shared.git"
|
||||
source: git
|
||||
version: "0.1.0"
|
||||
halkyon_base_client:
|
||||
name: googleapis
|
||||
sha256: d38bb64016ef27eca7fde992994b9d2999bcea307685807e15d6a08bff05dc61
|
||||
url: "https://pub.dev"
|
||||
source: hosted
|
||||
version: "17.0.0"
|
||||
googleapis_auth:
|
||||
dependency: transitive
|
||||
description:
|
||||
path: "packages/halkyon_base_client"
|
||||
ref: "96f2d1461803599bdf5b14783f4b3d3a2810742f"
|
||||
resolved-ref: "96f2d1461803599bdf5b14783f4b3d3a2810742f"
|
||||
url: "https://code.halkyon.app/project-halkyon/halkyon_shared.git"
|
||||
source: git
|
||||
version: "0.1.0"
|
||||
halkyon_base_server:
|
||||
dependency: transitive
|
||||
description:
|
||||
path: "packages/halkyon_base_server"
|
||||
ref: "96f2d1461803599bdf5b14783f4b3d3a2810742f"
|
||||
resolved-ref: "96f2d1461803599bdf5b14783f4b3d3a2810742f"
|
||||
url: "https://code.halkyon.app/project-halkyon/halkyon_shared.git"
|
||||
source: git
|
||||
version: "0.1.0"
|
||||
halkyon_core:
|
||||
dependency: transitive
|
||||
description:
|
||||
path: "packages/halkyon_core"
|
||||
ref: "96f2d1461803599bdf5b14783f4b3d3a2810742f"
|
||||
resolved-ref: "96f2d1461803599bdf5b14783f4b3d3a2810742f"
|
||||
url: "https://code.halkyon.app/project-halkyon/halkyon_shared.git"
|
||||
source: git
|
||||
version: "0.0.1"
|
||||
halkyon_ui:
|
||||
dependency: transitive
|
||||
description:
|
||||
path: "packages/halkyon_ui"
|
||||
ref: "96f2d1461803599bdf5b14783f4b3d3a2810742f"
|
||||
resolved-ref: "96f2d1461803599bdf5b14783f4b3d3a2810742f"
|
||||
url: "https://code.halkyon.app/project-halkyon/halkyon_shared.git"
|
||||
source: git
|
||||
version: "0.1.0"
|
||||
name: googleapis_auth
|
||||
sha256: d31822528becea550f7c7a9ab73a4518e31e48f201ab574be7e141f262923f27
|
||||
url: "https://pub.dev"
|
||||
source: hosted
|
||||
version: "2.3.4"
|
||||
hex:
|
||||
dependency: transitive
|
||||
description:
|
||||
|
|
@ -970,6 +965,14 @@ packages:
|
|||
url: "https://pub.dev"
|
||||
source: hosted
|
||||
version: "1.0.0"
|
||||
js:
|
||||
dependency: transitive
|
||||
description:
|
||||
name: js
|
||||
sha256: "53385261521cc4a0c4658fd0ad07a7d14591cf8fc33abbceae306ddb974888dc"
|
||||
url: "https://pub.dev"
|
||||
source: hosted
|
||||
version: "0.7.2"
|
||||
json_annotation:
|
||||
dependency: transitive
|
||||
description:
|
||||
|
|
@ -1595,6 +1598,30 @@ packages:
|
|||
url: "https://pub.dev"
|
||||
source: hosted
|
||||
version: "4.0.4"
|
||||
serverpod_cloud_storage:
|
||||
dependency: transitive
|
||||
description:
|
||||
name: serverpod_cloud_storage
|
||||
sha256: "49d33119165b60020f900666eeae7751b695d200c86fd68a75c39410f6f61284"
|
||||
url: "https://pub.dev"
|
||||
source: hosted
|
||||
version: "4.0.4"
|
||||
serverpod_cloud_storage_gcp:
|
||||
dependency: transitive
|
||||
description:
|
||||
name: serverpod_cloud_storage_gcp
|
||||
sha256: "9861459d8707beb8d60ac174fc0ee8d7992fa4b966ccb1b9eeeb751ce3e3d46d"
|
||||
url: "https://pub.dev"
|
||||
source: hosted
|
||||
version: "4.0.4"
|
||||
serverpod_cloud_storage_s3_compat:
|
||||
dependency: transitive
|
||||
description:
|
||||
name: serverpod_cloud_storage_s3_compat
|
||||
sha256: e2639d1cf21c82a2b86876584480241da51cbde8fc59de12e7f6a7ae39b4fd70
|
||||
url: "https://pub.dev"
|
||||
source: hosted
|
||||
version: "4.0.4"
|
||||
serverpod_database:
|
||||
dependency: transitive
|
||||
description:
|
||||
|
|
|
|||
22
pubspec.yaml
22
pubspec.yaml
|
|
@ -1,3 +1,5 @@
|
|||
# The Halkyon project: every app and the packages they share, one pub workspace.
|
||||
#
|
||||
# `_` is the conventional name of a pub workspace's root, which is never published or
|
||||
# imported, so the naming lint doesn't apply to it.
|
||||
name: _ # ignore: package_names
|
||||
|
|
@ -6,11 +8,23 @@ publish_to: none
|
|||
environment:
|
||||
sdk: '^3.13.0'
|
||||
|
||||
# Every package of every Halkyon app and the packages they share (ADR 0015): one
|
||||
# resolution, one lockfile, one version of each dependency across the apps.
|
||||
workspace:
|
||||
- halkyon_learn_client
|
||||
- halkyon_learn_server
|
||||
- halkyon_learn_flutter
|
||||
- halkyon_learn_curator
|
||||
- apps/learn/halkyon_learn_client
|
||||
- apps/learn/halkyon_learn_server
|
||||
- apps/learn/halkyon_learn_flutter
|
||||
- apps/learn/halkyon_learn_curator
|
||||
- apps/todo/halkyon_todo_client
|
||||
- apps/todo/halkyon_todo_server
|
||||
- apps/todo/halkyon_todo_flutter
|
||||
- packages/halkyon_app
|
||||
- packages/halkyon_base_client
|
||||
- packages/halkyon_base_server
|
||||
- packages/halkyon_core
|
||||
- packages/halkyon_interop
|
||||
- packages/halkyon_ui
|
||||
- packages/halkyon_ui/example
|
||||
|
||||
dev_dependencies:
|
||||
# Referenced by analysis_options.yaml in this directory.
|
||||
|
|
|
|||
Loading…
Reference in a new issue