Files
054-flask/docs/milestones/mil-003-cli-and-main.md
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

3.5 KiB

MIL-003 Command line and main

Metadata

Key Value
ID MIL-003
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 lectures 3 and 4 (the command line and the __name__ / __main__ idiom) are implemented, tested and illustrated.

Deliverable

hello.py starts through python -m flask_day_54.presentation.hello guarded by if __name__ == "__main__", src/flask_day_54/domain/cli_basics.py and src/flask_day_54/domain/name_demo.py with tests, and screenshots for lectures 3 and 4.

Go / No-Go Criteria

# Criterion (objectively checkable) Go No-Go
1 python -m flask_day_54.presentation.hello starts the server; importing flask_day_54.presentation.hello does not start it (tested) Met Not met
2 name_demo reports the main program versus an imported module (tested) Met Not met
3 cli_basics lists the lecture's commands with their Windows and macOS/Linux forms (tested) Met Not met
4 Screenshots lecture-03.png and lecture-04.png exist in docs/images/ and are shown in the README Met Not met

Dependencies

Depends on Reason
MIL-002 Extends hello.py

Traceability

Business Case objective / KPI / user story Reference
Objectives 1 to 3 BC-001
CN-002, CN-003 SA-001

Ownership

Role Stakeholder ID (SA)
Owner S01
Approving reviewer S01

Target Date

2026-11-08 - within the Business Case constraints.

Tasks

# Task Summary Needs its own Use Case/User Story? Reference
1 Guard app.run with main Add a main() function that calls app.run with the host, port and debug flag from constants.py, called only under if __name__ == "__main__". Tests use a stub so no server is started. No
2 Add name_demo module Add a function that explains whether a module name means the file is the main program or an import, mirroring lecture 4, with tests. No
3 Add cli_basics module Add the lecture's commands (pwd, ls, cd, mkdir, touch, rm) with Windows and macOS/Linux equivalents and a warning for destructive ones, with tests. No
4 Screenshot lecture 3: command line Run the lecture's commands in a temporary folder, render the real transcript and capture it headlessly. No
5 Screenshot lecture 4: main and app.run Capture the real output of python -m flask_day_54.domain.name_demo and of the server start from python -m flask_day_54.presentation.hello. No
6 README section for lectures 3 and 4 Add the two screenshots and the two ways to start the server (flask run versus python -m flask_day_54.presentation.hello). No