--- type: task status: done priority: P0 sprint: 0 gitea-issue: "#1, #2" created: 2026-10-17 finished: 2026-10-18 due: tags: [task, ci] --- # Bootstrap cargo project and CI ## Goal A compiling `viexp` crate with lib/bin split, one passing test, and green Gitea Actions CI. ## Acceptance criteria - [x] `cargo new`-style skeleton: `src/main.rs` + `src/lib.rs` (`main` calls `viexp::run()`) - [x] `cargo test` green with one sanity test - [x] `.gitea/workflows/ci.yaml`: `fmt --check` + `clippy -D warnings` + `test` on push (with `dtolnay/rust-toolchain@stable`; file is `.yaml`, same thing) - [x] First Conventional Commit pushed to `main` (merged via PR #13; CI green, run #14) ## Notes Rust Book ch. 1–2; see [[sprints/sprint-00-setup|Sprint 0]] drill D2/D4. ## Log - 2026-10-17 — task created. - 2026-10-18 — done. Drills D2+D4: skeleton, sanity test, CI workflow. Two CI fix commits (added the rust-toolchain step), merged to `main` via PR #13. Run #14 red → rerun green: the runner's download from static.rust-lang.org timed out once (flaky network, not code).