diff --git a/.github/ci-paths.yaml b/.github/ci-paths.yaml index d48edf51..971679e5 100644 --- a/.github/ci-paths.yaml +++ b/.github/ci-paths.yaml @@ -37,6 +37,8 @@ shared: &shared - crates/komorebic-core/** - crates/schemars-nixgen/** - nix/nixgen/** + - crates/schemars-docgen/** + - nix/docgen/** - nix/recorder/** - komorebi-recorder/** - docs/recorder/** diff --git a/.github/workflows/ci.yaml b/.github/workflows/ci.yaml index 7895dc2b..ed04b74e 100644 --- a/.github/workflows/ci.yaml +++ b/.github/workflows/ci.yaml @@ -204,7 +204,7 @@ jobs: strategy: fail-fast: false matrix: - set: [windows-lint, linux-lint, recorder-lint, nixgen-lint] + set: [windows-lint, linux-lint, recorder-lint, nixgen-lint, docgen-lint] steps: - uses: actions/checkout@v6 - uses: ./.github/actions/nix @@ -241,7 +241,7 @@ jobs: strategy: fail-fast: false matrix: - set: [linux-test, windows-test, recorder-test, nixgen-test] + set: [linux-test, windows-test, recorder-test, nixgen-test, docgen-test] steps: - uses: actions/checkout@v6 - uses: ./.github/actions/nix diff --git a/.github/workflows/windows.yaml b/.github/workflows/windows.yaml index fb11fa72..6efdf299 100644 --- a/.github/workflows/windows.yaml +++ b/.github/workflows/windows.yaml @@ -60,7 +60,7 @@ jobs: if ($crlf) { $crlf; exit 1 } - run: cargo +nightly fmt --check - run: cargo clippy - - run: cargo test --workspace --exclude komorebi-recorder --exclude komorebi-linux --exclude komorebi-macos --exclude komorebi-hotkeys --exclude schemars-nixgen + - run: cargo test --workspace --exclude komorebi-recorder --exclude komorebi-linux --exclude komorebi-macos --exclude komorebi-hotkeys --exclude schemars-nixgen --exclude schemars-docgen # Informational until it has been seen green on Windows: the recorder's tests were written on a Mac # and nothing has run them here. Make it blocking by removing `continue-on-error`. - run: cargo test -p komorebi-recorder diff --git a/docs/dev/ci.md b/docs/dev/ci.md index 3b27ecbb..fe738d2f 100644 --- a/docs/dev/ci.md +++ b/docs/dev/ci.md @@ -22,9 +22,9 @@ each is `success` or `skipped`: it is the only check a ruleset needs to require. | 0 | `fmt` | ubuntu-24.04, `nix develop .#hygiene` | the nightly rustfmt of the flake over every file (`tools/format-all --check`), all platforms | always | | 0 | `deny` | ubuntu-24.04, `nix develop .#hygiene` | `cargo deny check` over the workspace | always | | 1 | `nix-eval` | ubuntu-24.04, nix, swap | `nix flake check --no-build --all-systems` (every output of every system evaluates: the Windows, Linux and macOS packages and checks); builds `checkSets.fmt`, `checkSets.linux-options`, `checkSets.macos-options` (the macOS options and the nix-darwin module, evaluated on Linux), and the Windows e2e Python | always | -| 2 | `lint` (4 legs) | ubuntu-24.04, nix | `checkSets.{windows-lint,linux-lint,recorder-lint,nixgen-lint}`: clippy and rustdoc, Windows by cross build | always | +| 2 | `lint` (5 legs) | ubuntu-24.04, nix | `checkSets.{windows-lint,linux-lint,recorder-lint,nixgen-lint,docgen-lint}`: clippy and rustdoc, Windows by cross build | always | | 2 | `mac-typecheck` | ubuntu-24.04, nix | `tools/mac-check.sh`: the macOS packages type-checked for `aarch64-apple-darwin`, no link, no run | macOS paths on a pull request; always on a push | -| 3 | `test` (4 legs) | ubuntu-24.04, nix | `checkSets.{linux-test,windows-test,recorder-test,nixgen-test}`: Linux tests, the Windows test executables cross-built (not run), the recorder's and nixgen's tests | always | +| 3 | `test` (5 legs) | ubuntu-24.04, nix | `checkSets.{linux-test,windows-test,recorder-test,nixgen-test,docgen-test}`: Linux tests, the Windows test executables cross-built (not run), the recorder's, nixgen's and docgen's tests | always | | 3 | `windows-native-test` | windows-latest | `cargo nextest` of the `windows` and `os_sensitive` classes of `tools/test-partition` | Windows or shared paths | | 3 | `windows-native-test-arm` | windows-11-arm | the same on ARM | label `ci:win-arm`; a push to master with Windows paths; by hand | | 3 | `macos-hosted` | macos-latest (`_macos.yaml`) | the macOS checks, the whole test suite of the recorder, the `os_sensitive` packages of `tools/test-partition` and the tests and clippy of the e2e tools (all in `nix develop .#native`: the default shell builds for Windows), the binaries, the schemas | macOS paths | diff --git a/justfile b/justfile index b83eefa4..f6966975 100644 --- a/justfile +++ b/justfile @@ -34,7 +34,7 @@ packages := "" packages := "--workspace --exclude komorebi-windows --exclude komorebi-linux --exclude komorebi-gui --exclude komorebic-no-console --exclude komorebi-shortcuts --exclude komorebi-e2e-agent --exclude komorebi-testwin" [linux] -packages := "-p schemars-nixgen -p komorebi-recorder -p komorebi-linux -p komorebi -p komorebic -p komorebi-client -p komorebi-hotkeys -p komorebi-protocol -p komorebi-config -p komorebi-collections -p komorebi-core -p komorebi-backend -p komorebi-settings -p komorebi-transport -p komorebic-core -p komorebi-bar-core -p komorebi-layouts -p komorebi-scrolling" +packages := "-p schemars-nixgen -p schemars-docgen -p komorebi-recorder -p komorebi-linux -p komorebi -p komorebic -p komorebi-client -p komorebi-hotkeys -p komorebi-protocol -p komorebi-config -p komorebi-collections -p komorebi-core -p komorebi-backend -p komorebi-settings -p komorebi-transport -p komorebic-core -p komorebi-bar-core -p komorebi-layouts -p komorebi-scrolling" # How cargo is invoked. Outside nix it is rustup's, which takes the +toolchain. Inside `nix develop` (IN_NIX_SHELL) the # toolchain is the nix one: there is no rustup to take +toolchain, and its cargo already formats with the nightly @@ -93,7 +93,7 @@ test-windows: # every test of the Windows workspace, the neutral packages and the recorder included [windows] test-windows-full: - cargo test --workspace --exclude komorebi-recorder --exclude komorebi-linux --exclude komorebi-macos --exclude komorebi-hotkeys --exclude schemars-nixgen + cargo test --workspace --exclude komorebi-recorder --exclude komorebi-linux --exclude komorebi-macos --exclude komorebi-hotkeys --exclude schemars-nixgen --exclude schemars-docgen cargo test -p komorebi-recorder # the KWin bridge of the KDE daemon (JavaScript): its types by tsc, its tests by node against a fake KWin