# 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 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: - 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. leancode_lint: ^27.0.0 dependency_overrides: # The offline sync package's shared part from our fork: v0.0.10 with seven # changes. Byte payloads compared as bytes: v0.0.10 compares them byte by byte # through a UUID parse that throws for each byte, so a sync touching a few thousand # cards kept the server busy for minutes, answering nobody, while its client timed # out and sent everything again (2026-10-12). onInboundMerge, called only when # changes from the remote peer were merged: onMergeSuccess fires for a space this # device only pushed to, so every repository read everything again after each # save's sync (2026-10-17). A local delete, and a merge only inserting new rows # or only deleting rows, skip the foreign key projection pass when they can't # change it: the pass loaded nearly every synced row, 8 s for one delete and 9.5 s # for each rating another device made, in a library of 8,000 cards (2026-10-17). # Such a merge writes its new rows up to 1,000 to a statement: a first push of # that library took the server 35 s, now 5 (2026-10-17). And projections are # rebuilt once after the synced tables changed, not on every session and merge # (upstream #150). Pinned to a signed commit of the fork's branch # halkyon/batch-inserts (on halkyon/fast-merge-deletes, on halkyon/fast-merges, # on halkyon/fast-deletes, on halkyon/inbound-merges, on halkyon/byte-payloads); # drop each change once a release of the package has it. serverpod_offline_sync: git: url: https://code.halkyon.app/project-halkyon/serverpod-offline-sync.git path: packages/serverpod_offline_sync ref: 949a6645e08af27bb61c96d7ddc2b6d145fed554