65 lines
2.9 KiB
Markdown
65 lines
2.9 KiB
Markdown
---
|
||
type: sprint
|
||
number: 0
|
||
status: active
|
||
started: 2026-10-17
|
||
finished:
|
||
hours-planned: 6
|
||
hours-logged: 3
|
||
tags: [sprint, setup]
|
||
---
|
||
|
||
# Sprint 0 — Setup & deconstruction
|
||
|
||
## Theme
|
||
Remove every barrier to practice: toolchain, fast feedback, project board, CI. After this
|
||
sprint, a practice session starts in 60 seconds and never touches configuration.
|
||
|
||
## App deliverable
|
||
`viexp` cargo project skeleton that compiles, one trivial test green, Gitea Actions CI green,
|
||
`bacon` watching check+clippy+test on save, Gitea board (project + labels + milestones) ready.
|
||
|
||
## Rust focus — the vital 20%
|
||
- What `rustc` / `cargo` / `crates.io` / `Cargo.toml` / `Cargo.lock` are and who owns which file.
|
||
- The compile cycle: `cargo check` (fast) vs `build` vs `run`; `cargo fmt`, `cargo clippy`.
|
||
- Reading a compiler error: error code (e.g. E0382), span, help hint — where to look first.
|
||
|
||
## Practice drills (20–30 min each)
|
||
- [ ] D1 — Install/verify: `rustup default stable`, `cargo --version`; run `rustup component
|
||
add clippy rustfmt`; install `bacon` (`cargo install --locked bacon`).
|
||
- [x] D2 — `cargo new viexp --bin`, add a `lib.rs` skeleton (src split: `main.rs` calls
|
||
`viexp::run()`), one `#[test] fn sanity()` — make it fail, read the output, make it pass.
|
||
(Done 2026-10-18: used `cargo init` in the existing repo; task 0001.)
|
||
- [ ] D3 — Break it on purpose: introduce E0382 (move a `String`, then use it), E0308 (wrong
|
||
type), E0384 (reassign immutable). Paste each into the ErrorJournal **with a self-correction cue**.
|
||
- [x] D4 — Gitea CI: `.gitea/workflows/ci.yml` running `fmt --check`, `clippy -D warnings`,
|
||
`test`. Push and watch it go green.
|
||
(Done 2026-10-18: green on `main` after PR #13; needed `dtolnay/rust-toolchain@stable`
|
||
and one rerun — runner network to static.rust-lang.org is flaky.)
|
||
- [x] D5 — Gitea board: labels, milestone "Sprint 1", issues imported from Sprint-1 DoD.
|
||
(Done 2026-10-17: 11 labels, 13 sprint milestones, issues #1–#12; kanban board still needs
|
||
one-time manual creation in the web UI — Gitea 1.26.2 has no projects API.)
|
||
|
||
## English focus
|
||
README "Status" section (done), DevLog habit starts today, commit messages from now on:
|
||
Conventional Commits, imperative mood.
|
||
|
||
## Session rhythm (45 min)
|
||
5 min review → 30 min drill → 10 min DevLog + ErrorJournal.
|
||
|
||
## Definition of done
|
||
- [ ] `cargo bacon` shows check+test passing on save
|
||
- [x] CI green on `main` (2026-10-18, run #14)
|
||
- [ ] ErrorJournal has ≥3 entries with cues
|
||
- [ ] Sprint-1 milestone and issues exist on Gitea
|
||
- [ ] Retro filled
|
||
|
||
## Retrospective
|
||
### Shipped
|
||
- Task 0001 / issues #1–#2: cargo skeleton (lib/bin split, sanity test) + CI green on `main`
|
||
via PR #13.
|
||
### Frustrations
|
||
- Reading English text (docs, tool output) eats a lot of session time — agree on a fix
|
||
at retro (e.g. theory digests in Russian in chat, artifacts stay English).
|
||
### Hours logged / English notes
|