Files

41 lines
2.1 KiB
Markdown

# Gitea workflow
The project is tracked at **https://git.v-port.ru/vaskes/viexp** (Gitea 1.26.2).
CLI access: `tea` (logged in as `vaskes`); API access with the saved token.
## Verified capabilities (2026-10-17)
| Feature | Via API? | Notes |
|---------|----------|-------|
| Labels | ✅ | 11 labels created (`type/*`, `priority/*`, `lang/english`) |
| Milestones | ✅ | 13 sprint milestones with due dates |
| Issues | ✅ | labels by **ID**, not by name (`POST /repos/vaskes/viexp/issues`) |
| Project board (kanban) | ❌ | endpoint missing in Gitea 1.26.2 — create once via web UI |
| Actions CI | ✅ | `.gitea/workflows/ci.yml` (repo has `has_actions: true`) |
## Organization
- **Project board** ("viexp development", created manually in the web UI):
columns `Backlog → In Progress → Review → Done`; sprints are tracked by milestones.
- **Milestones** = sprints: `Sprint 0 — Setup & deconstruction` … `Sprint 12 — Release & docs`
(one 20-hour sprint ≈ one month at ~45 min/day). Due dates are targets, not deadlines.
- **Labels**: `type/bug|feature|docs|research|chore|spike`, `priority/P0…P3`, `lang/english`.
- **Issues** are created from task notes (`docs/tasks/`) and sprint definitions-of-done;
the task note's `gitea-issue` property stores the issue number.
- Bootstrap/repeat script: `scripts/gitea-bootstrap.sh` (labels + milestones + seed issues).
## Rules
1. One issue = one demoable outcome; acceptance criteria copied from the task note.
2. Branch per issue: `sprint-N/slug` or `feat/slug`; squash-merge into `main`.
3. Commit messages: Conventional Commits **in English** (`feat(preview): add kitty graphics support`)
— every commit is a micro English exercise.
4. An issue is closed only when its acceptance criteria are demoable.
5. Sprint retro (from the sprint note) is posted as a comment on the milestone's closing issue.
## Automation notes
- Gitea Actions can run `cargo fmt --check && cargo clippy -- -D warnings && cargo test` on push.
- Everything set up via API/`tea` is documented in `docs/workflows/` so it can be re-created
from scratch (the setup commands are in the sprint-0 task note).