mirror of
https://github.com/harivansh-afk/deskctl.git
synced 2026-04-15 03:00:45 +00:00
* init openspec * clean out src, move mod into lib, remove trash * create tests * pre-commit hook * add tests to CI * update website * README, CONTRIBUTING and Makefile * openspec * archive task * fix ci order * fix integration test * fix validation tests
1.5 KiB
1.5 KiB
Contributing
Prerequisites
- Rust toolchain
makepre-commitfor commit-time hookspnpmfor site formatting checks- Linux with
xvfb-runfor integration tests
Install site dependencies before running site checks:
pnpm --dir site install
Repository Layout
src/lib.rsexposes the library target used by integration testssrc/main.rsis the thin CLI binary wrappersrc/holds production code and unit teststests/holds integration teststests/support/holds shared X11 and daemon helpers for integration coverage
Keep integration-only helpers out of src/.
Local Validation
The repo uses one local validation surface through make:
make fmt-check
make lint
make test-unit
make test-integration
make site-format-check
make validate
make validate runs the full Phase 2 validation stack. It requires Linux, xvfb-run, and site dependencies to be installed.
Pre-commit Hooks
Install the hook workflow once:
pre-commit install
Run hooks across the repo on demand:
pre-commit run --all-files
The hook config intentionally stays small:
- Rust files use default
rustfmt - Site files reuse the existing
site/Prettier setup - Slower checks stay in CI or
make validate
Integration Tests
Integration coverage is Linux/X11-only in this phase. The supported local entrypoint is:
make test-integration
That command runs the top-level X11 integration tests under xvfb-run with one test thread so the shared display/session environment stays deterministic.