mirror of
https://github.com/LGUG2Z/komorebi.git
synced 2026-11-14 04:43:42 +01:00
Step 8 (Option A of docs/dev/unified-binaries.md). The main.rs of komorebi-windows, komorebi-linux and komorebi-macos becomes daemon.rs of the library (pub fn run; komorebi:: paths are crate:: paths now, the inner attributes and the unit tests move with it), and their [[bin]] is gone, so each is a library only. The new package komorebi (komorebi-daemon/, version 0.1.42) is the one binary: its main calls komorebi_windows::daemon::run, komorebi_linux::daemon::run or komorebi_macos::daemon::run by cfg_select! on the target OS, through target-gated dependencies (one key per library, cargo allows one path per key), and forwards the features deadlock_detection and schemars. The binary name komorebi now comes from exactly one package. The four KDE integration tests that run the binary (no_kwin, socket, hot_reload, version) move to komorebi-daemon/tests/linux_*.rs; the version test compares with the KDE version crate, since the package version is now shared. Old names: komorebi-windows, komorebi-linux and komorebi-macos still build, as libraries (no binary any more: use -p komorebi). The flakes build -p komorebi with the KDE and macOS packages, the source filters take komorebi-daemon (manifest, main.rs, linux tests), the Windows filter leaves its linux tests out, deny.toml clarify entries gain komorebi, the release workflow's cargo wix and the justfile version lookup name komorebi, tools/fast-check checks -p komorebi on KDE and macOS. Behaviour: the same code runs, the same binary name; the Windows executable is rebuilt from the library (BEHAVIOUR for the e2e gate: the Windows e2e must run). Gates run: Windows clippy --all-targets -D warnings PASS; KDE check; macOS fake-CC check of -p komorebi -p komorebi-macos PASS (type check only); KDE cargo test -p komorebi -p komorebi-linux -p komorebic -p komorebi-client -p komorebi-hotkeys -p komorebi-core: 903 passed, 0 failed (the four moved tests and the unit test of daemon.rs included); CLI docs oracle identical x3; bar schema harness identical both bars; kde-closure-check ok; nix evaluation of the root and both nested flakes PASS; by evaluation an edit of komorebi/src/daemon.rs changes the Windows derivations only, of the KDE daemon.rs kfde only, of the macOS one neither (the shared komorebi-daemon/src/main.rs changes all, as expected). Not run: nix builds, VM, e2e, any Mac run.