Files
TirsvadandClaude Sonnet 5.5 28ec0e85d8
CI / test (push) Successful in 46s
CI / test (pull_request) Successful in 46s
Resolve pending commit links and add framework submodule
Replace `pending` in the Version History of the planning documents and
review records with the link to commit c24f412, and add the framework
gitlink that was missing from that commit.

Refs #1
Refs #2
Refs #3
Refs #4
Refs #5

Co-Authored-By: Claude Sonnet 5.5 <noreply@anthropic.com>
2026-10-07 10:45:17 +08:00

76 lines
3.1 KiB
Markdown

# Phase 1: Project Setup
## Metadata
| Key | Value |
| --- | --- |
| ID | MIL-001 |
| CrossReference | [BC-001], [SA-001], [PP-001] |
| Language | en |
| Domain | it |
## Version History
| Date | Status | Author | Reviewer | Change | Commit |
| --- | --- | --- | --- | --- | --- |
| 2026-10-07 | Deprecated | Jens Tirsvad Nielsen | S01 | Initial version | [c24f412] |
| 2026-10-07 | Accepted | Jens Tirsvad Nielsen | S01 | Accepted after RC-003 (Go) | [c24f412] |
---
## Purpose
Decide whether the project skeleton, tooling and configuration are ready so that application code can be written on top of them.
## Deliverable
Repository skeleton with `pyproject.toml`, Python `.gitignore`, `src/`, `tests/`, `constants.py`, `Doxyfile` and a CI workflow that runs pytest.
## Go / No-Go Criteria
| # | Criterion (objectively checkable) | Go | No-Go |
| --- | --- | --- | --- |
| 1 | `pip install -e .[dev]` succeeds in a fresh `.venv` on Python 3.13+ | Met | Not met |
| 2 | `pytest` runs (collects zero or more tests) without configuration errors | Met | Not met |
| 3 | `[project] dependencies` in `pyproject.toml` is empty | Met | Not met |
| 4 | `.env` and `.venv` are ignored by `.gitignore` | Met | Not met |
| 5 | `doxygen Doxyfile` runs without errors | Met | Not met |
## Dependencies
| Depends on | Reason |
| --- | --- |
| None | First phase |
## Traceability
| Business Case objective / KPI / user story | Reference |
| --- | --- |
| Objectives 2 and 3; success criteria 1 and 2 | [BC-001] |
## Ownership
| Role | Stakeholder ID (SA) |
| --- | --- |
| Owner | S01 |
| Approving reviewer | S01 |
## Target Date
2026-10-09 — start of the course project, no external deadline.
## Tasks
| # | Task | Summary | Needs its own Use Case/User Story? | Reference |
| --- | --- | --- | --- | --- |
| 1 | Add pyproject.toml | Configure the project with `requires-python >= 3.13`, a `src/` layout, no runtime dependencies and pytest as an optional `dev` dependency, so that setup is reproducible for S02. | No | |
| 2 | Review Python .gitignore | Confirm the Python `.gitignore` ignores `.venv/`, `.env`, caches and generated Doxygen output so tokens and build artefacts never reach the repository (risk in BC-001). | No | |
| 3 | Create src and tests skeleton with constants.py | Create `src/coffee_machine/` with `__init__.py` and `constants.py` (menu data, resources, coin values, command words) and an empty `tests/` package, following the coding conventions. | No | |
| 4 | Add Doxyfile | Add a Doxyfile configured for Python (`OPTIMIZE_OUTPUT_JAVA`, input `src/`, output `docs/api/`) so Doxygen comments in the source can be built into documentation. | No | |
| 5 | Configure CI workflow | Add a CI workflow for the git host that creates a venv, installs the project with the `dev` extra and runs pytest on Python 3.13, to be described in the README. | No | |
---
[BC-001]: ../business-case.md
[SA-001]: ../stakeholder-analysis.md
[PP-001]: ../project-plan.md
[c24f412]: https://git.tirsystem.com/Tirsvad-Udemy-100_days_of_code/016-oop_coffee_machine/commit/c24f41207fb15f39b0ad6501e1f3126d3bd9232e