Contributing
Issues and pull requests are welcome: github.com/dk0d/shki.
git clone https://github.com/dk0d/shkicd shkicargo buildDev tooling is driven by Task:
task tools:install # cargo-nextest, bacon, cargo-dist, cargo-release, llvm-covtask up # start the PostgreSQL container used by integration teststask down # stop it and drop volumestask test # cargo nextest runtask test:cov:html # coverage report in the browsercargo nextest run # everythingcargo nextest run --test integration # CLI/end-to-end behaviorcargo nextest run --test querygen # typed query generationQuery codegen fixtures live in tests/fixtures/querygen/<case>/. Each
queries.sql keeps a -- ```rust expectation block immediately above its
query annotation; the default fixture test compares that exact function output
and parses the generated module:
cargo nextest run --test querygen -E 'test(generated_query_code_is_valid_rust)'The slower Cargo type-check is ignored by default:
cargo nextest run --test querygen -E 'test(generated_query_code_compiles)' --run-ignored ignored-onlyDesign decisions
Section titled “Design decisions”Architecture decision records live in docs/adr/ — start there before reworking a subsystem.
Docs site
Section titled “Docs site”This site is an Astro Starlight project under
docs-site/, deployed to GitHub Pages on every push to main that touches it.
cd docs-sitebun installbun run dev # local previewbun run build # what CI runsPages are Markdown under docs-site/src/content/docs/; the sidebar is defined in
docs-site/astro.config.mjs.