Files
viexp/docs/sprints/sprint-00-setup.md
T
2026-10-18 18:09:14 +03:00

65 lines
2.9 KiB
Markdown
Raw Blame History

This file contains ambiguous Unicode characters
This file contains Unicode characters that might be confused with other characters. If you think that this is intentional, you can safely ignore this warning. Use the Escape button to reveal them.
---
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