Files
Tirsvad 9ec3fd9970
TirSystem/git-workflows: Publish wiki / publish-wiki (push) Skipped
TirSystem/git-workflows: Validate / validate (pull_request) Successful in 36s
TirSystem/git-workflows: Release / release (pull_request) Successful in 23s
TirSystem/git-workflows: OpenGrep / opengrep (pull_request) Successful in 4m5s
TirSystem/git-workflows: Sync GitHub mirror metadata / sync-metadata (push) Successful in 14s
TirSystem/git-workflows: Validate / validate (push) Successful in 40s
TirSystem/git-workflows: Publish accepted milestones / publish (push) Successful in 44s
TirSystem/git-workflows: OpenGrep / opengrep (push) Successful in 4m25s
Resolve pending commit links
2026-11-06 12:18:21 +08:00

4.1 KiB

MIL-001 Project foundation

Metadata

Key Value
ID MIL-001
CrossReference BC-001, ADR-0001
Language en
Domain it

Version History

Date Status Author Reviewer Change Commit
2026-11-06 Deprecated Jens Tirsvad Nielsen S01 Initial version 73a5a95
2026-11-06 Accepted Jens Tirsvad Nielsen S01 Paths follow the layered layout of ADR-0001 0f4e36b

Purpose

Decide whether the project skeleton (configuration, tooling, documentation baseline and repository metadata) is ready for the lecture code.

Deliverable

A repository with pyproject.toml, .gitignore, constants.py files in the domain and infrastructure layers of src/flask_day_54/, a Doxyfile, a README with .venv instructions, the repository description and topics, and a passing (empty-but-collecting) pytest run.

Go / No-Go Criteria

# Criterion (objectively checkable) Go No-Go
1 python -m pytest runs and exits 0 on a fresh .venv Met Not met
2 pyproject.toml declares Python 3.13 or newer, the optional extras web and dev, and no mandatory runtime dependency Met Not met
3 .gitignore excludes .venv/ and .env Met Not met
4 doxygen Doxyfile finishes without errors Met Not met
5 The repository has a description and at least 5 topics on the git host Met Not met
6 README follows the framework template and passes check-readme.sh Met Not met

Dependencies

Depends on Reason
None First gateway after the accepted baseline (BC-001, SA-001, PP-001)

Traceability

Business Case objective / KPI / user story Reference
Objective 3 and 5; constraints on tooling BC-001
CN-004, CN-005, CN-006 SA-001

Ownership

Role Stakeholder ID (SA)
Owner S01
Approving reviewer S01

Target Date

2026-11-06 - same day as the plan; fits the Business Case effort estimate.

Tasks

# Task Summary Needs its own Use Case/User Story? Reference
1 Add pyproject.toml Configure the project with requires-python >=3.13, the optional extras web (Flask) and dev (pytest), and pytest settings so tests import modules from src/. Keeps the pure-Python lectures free of runtime dependencies (SA-001 CN-006). No
2 Add Python .gitignore Ignore virtual environments, caches, build output, Doxygen output and the personal .env file so no token can be committed. No
3 Add constants.py and package layout Create constants.py files in the domain and infrastructure layers of src/flask_day_54/ for all constants (greeting, host, port, command names) and the empty tests/ folder, as the constraints require constants in one place. No
4 Add Doxyfile Generate a Doxyfile that reads src/ (the flask_day_54 package), writes to docs/doxygen/ (ignored by git) and extracts documentation from Doxygen comments. No
5 Write README from the framework template Use the framework README template; describe creating and activating a local .venv, running python -m pip install --upgrade pip, installing extras, running the app and running pytest. No
6 Set repository description and topics Use the Gitea REST API with the token from the author's environment (never stored in the repository) to set a description and topics so visitors (S03) can find and understand the repository. No
7 Record the AI prompt log Add docs/ai-prompts/session-001/ as framework/process/ai-prompt-log.md requires. No