Repository navigation
build: replace flake.nix with a Kai 0.0.11 Kaifile - #131
thebrandonlucas wants to merge 1 commit into
Conversation
20fa739 to
34b29ce
Compare
34b29ce to
7d1b80f
Compare
7d1b80f to
e4b5760
Compare
The Kai shell matches the flake's: the toolchain from rust-toolchain.toml plus llvm-tools-preview, Python 3 and cargo-machete, and on entry it builds voltage and puts target/debug on PATH. .kai/lock.json pins nixpkgs and rust-overlay. The Kaifile declares x86_64 and aarch64 Linux and Apple Silicon macOS. Kai 0.0.11 ships for Linux only, so macOS developers keep using rustup until a macOS release exists.
e4b5760 to
bbc165d
Compare
tee8z
left a comment
There was a problem hiding this comment.
Reviewed draft head bbc165d02f1e794b8d9e1e9f29522edfa4994dc7 against #123 at d6a4f611bb749183eec2f410004ff9f54bbfb533.
No blocking finding in this build-only diff. The configuration uses primitives present in Kai 0.0.11, preserves the pinned Rust toolchain, adds LLVM tools/Python/cargo-machete, commits the input lock, and retains the build-on-entry behavior. The loss of Intel macOS support and the macOS installation limitation are disclosed.
Independent validation on this head: verified the aarch64 Kai release against its SHA256SUMS; kai check passed. Formatting, full-target Clippy with warnings denied, dependency hygiene, contract/docs checks, and full cargo test --locked passed (222 unit + 166 integration tests). Shell syntax, lock JSON, and diff whitespace checks passed. No CRAP rerun is required for this layer because it changes neither src nor tests.
Limits: kai shell default -- rustc --version could not run because Nix is absent in this workspace. This checks the parser and Rust package, not the new shell, direnv activation, or other platforms. The PR remains a draft; this is a comment review, not an approval or a readiness change. The parent #123 still has its own unresolved findings.
Replaces
flake.nix/flake.lockwith aKaifile.rocon Kai 0.0.11 and a committed.kai/lock.json. The Kai shell matches the flake's:rust-toolchain.tomlthrough rust-overlay, plusllvm-tools-previewfor the CRAP report (RustToolchainWith, new in 0.0.11).cargo-macheteare added.cargo build --lockedand putstarget/debugonPATH. The flake's shellHook does the same; the Kaifile sets it withRaw("nix", "shell:default", ...)..envrc,.gitignore,AGENTS.md(the friction-logrepro.sh),docs/development.mdanddocs/quality.mdare updated to match.This PR is stacked on
brandon/dev-2953-voltage-cli-add-environments-create.Gaps against the flake
docs/development.mdsends macOS developers to rustup until a release exists. Intel macOS is not declared.nixpkgsfollows Kai's defaultnixos-unstablenixos-26.05to keep Intel macOS, which Kai does not support.Verified
In a
nixos/nixaarch64-linux container with Kai 0.0.11 (release tarball, checked againstSHA256SUMS):kai check:Kaifile.roc is validkai updatecreated.kai/lock.json(nixpkgs1d060086, rust-overlay19e0e6c9)kai shell default -- ...:rustc 1.98.1,cargo-machete 0.9.2,Python 3.14.8,llvm-toolsbinaries in the sysroot, andvoltage 0.2.0fromtarget/debugonPATHcargo fmt --check,clippy -D warnings,cargo machete,cargo test --locked(221 + 166 passed) andscripts/check-coverage.pyall passOn Apple Silicon macOS, with Kai 0.0.11 built from source as Kai's nightly CI builds it:
kai checkpasses,kai updatereports no input changed (declaring macOS leaves the lock as it is), and the shell and the full gate pass (rustc foraarch64-apple-darwin).nix run/nix shell github:thebrandonlucas/kai/v0.0.11both print0.0.11on aarch64-linux, asdocs/development.mdinstructs.These checks ran on this PR's tree: the one commit on top of
brandon/dev-2953-voltage-cli-add-environments-createat1748a5d. x86_64-linux was not run. This PR changes no Rust source, so the CRAP report was not rerun.Note: in Docker Desktop containers, Roc fails to download the platform and std bundles (
DownloadFailed). The cause is a last line of/etc/resolv.confthat holds only a space. Rewrite that file to itsnameserverline, or put the bundles in~/.cache/roc/packages/<hash>/by hand.Try it
On this branch, on Linux with Nix (flakes enabled):
Expect:
Kaifile.roc is valid;rustc 1.98.1; then the developmentvoltagebuilt from this checkout.