Development

kikx is three Cargo packages and a Next.js app. Each one builds and tests on its own.

Before you start

You need:

  • a checkout of the kikx repository;

  • a Rust toolchain (cargo, clippy, rustfmt);

  • Node.js with npm;

  • Python 3, to build the documentation.

Check the Rust packages

Run the tests, clippy and rustfmt in each package:

cd cli && cargo test && cargo clippy --all-targets -- -D warnings && cargo fmt --check
cd backend && cargo test && cargo clippy --all-targets -- -D warnings && cargo fmt --check
cd backend/core && cargo test && cargo clippy --all-targets -- -D warnings && cargo fmt --check

Tests live in each package’s tests/ directory, never in the source files.

Check the dashboard

cd web
npm install
npx tsc --noEmit
npm run lint
npm run build

Build the documentation

The documentation is built with Sphinx from docs/. Install the pinned dependencies once:

pip install -r docs/requirements.txt

Then build the English and French sites. Both treat warnings as errors:

make -C docs html
make -C docs html-fr

After changing an English page, refresh the French catalogues in docs/locales/fr/ and translate the new entries:

make -C docs update-po

To rebuild on every save while you write:

make -C docs serve

See also