refactor: split server and clients/desktop into standalone workspaces

Add [workspace] / [workspace.package] / [workspace.dependencies]
blocks to server/Cargo.toml and clients/desktop/Cargo.toml so each
becomes a self-contained workspace with its own Cargo.lock.

Remove the root Cargo.toml and Cargo.lock; the repo now hosts
three independent build worlds: server, clients/desktop, experiments.

Convert common/Cargo.toml to concrete versions (was workspace-
inherited from the root). common/ is consumed via path-dep from
all three worlds, but is not itself a workspace -- consumers
unify versions via their own lockfiles. Add common/Cargo.lock to
.gitignore per Cargo lib-only-crate convention.

Verification:
- server/Cargo.lock has 0 eframe/egui/winit entries
- cargo build --release --locked passes in server/
- test split: server 385 + desktop 89 + common 34 = 508 total
- bin output: clients/desktop/target/debug/doctate (named "doctate")
This commit is contained in:
2026-05-02 12:17:50 +02:00
parent 0c66fc6010
commit 7b4fe87f95
7 changed files with 2873 additions and 487 deletions
+6
View File
@@ -6,3 +6,9 @@ settings.toml
repomix-output.xml
tmpdata/
.idea/
# common/ is a library-only crate (no [[bin]]), consumed via path-dep
# from server/, clients/desktop/, and experiments/. Cargo convention
# is to NOT version Cargo.lock for lib-only crates -- consumers
# unify versions via their own workspace lockfiles.
common/Cargo.lock