3.9 KiB
3.9 KiB
MIL-001 foundation
Metadata
| Key | Value |
|---|---|
| ID | MIL-001 |
| CrossReference | BC-001 |
| Language | en |
| Domain | it |
Version History
| Date | Status | Author | Reviewer | Change | Commit |
|---|---|---|---|---|---|
| 2026-10-28 | Accepted | Jens Tirsvad Nielsen | AI as stand-in for S01 | Initial version Accepted after review (RC-004 Go) |
f9765fd |
Purpose
Decide whether the repository is ready for feature work: project configuration, environment instructions, documentation skeleton and host metadata are in place.
Deliverable
Branch mil-001-foundation merged: pyproject.toml, .gitignore, .env.example, constants.py, Doxyfile, README from the framework template, a passing smoke test, and the repository description and topics on the host (set through its application programming interface, API).
Go / No-Go Criteria
| # | Criterion (objectively checkable) | Go | No-Go |
|---|---|---|---|
| 1 | python -m pip install -e .[dev] works in a fresh .venv on Python 3.13 or newer |
python -m pytest exits 0 |
Install or tests fail |
| 2 | .env is ignored and no secret is tracked |
git ls-files lists no .env |
A secret is tracked |
| 3 | README follows the template and explains venv, python -m pip install --upgrade pip, run and test |
framework/scripts/check-readme.sh passes |
Check fails |
| 4 | Repository description and at least five topics are set | Read back from the Gitea API | Missing |
Dependencies
| Depends on | Reason |
|---|---|
| None | First gateway; it has no predecessor |
Traceability
| Business Case objective / KPI / user story | Reference |
|---|---|
| Objective 6 (repository set-up, README, metadata) and the Constraints section of BC-001 | Tasks of this gateway |
Ownership
| Role | Stakeholder ID (SA) |
|---|---|
| Owner | S01 |
| Approving reviewer | S01 |
Target Date
2026-10-28 — within the Business Case constraints (one branch and pull request per milestone).
Tasks
| # | Task | Summary | Needs its own Use Case/User Story? | Reference |
|---|---|---|---|---|
| 1 | Set repository description and topics | Set a one-sentence description and topics (python, web-scraping, beautifulsoup, smtp, udemy, 100-days-of-code) on the Gitea repository through its API. The token is read from the personal .env at call time; it is never copied into the project, imported or tested. |
No | |
| 2 | Create pyproject.toml and package layout | Python >=3.13, setuptools src layout with package amazon_price_tracker, runtime dependencies requests, beautifulsoup4, python-dotenv only, a dev extra with pytest, and pytest config (pythonpath, testpaths). |
No | |
| 3 | Add constants.py and .env.example | constants.py holds the practice URL, target price, default headers and environment variable names. .env.example lists SMTP_ADDRESS, EMAIL_ADDRESS, EMAIL_PASSWORD with placeholders so S02 knows what to create. |
No | |
| 4 | Add Python .gitignore and Doxyfile | Standard Python .gitignore plus .env, .venv, docs/doxygen. A Doxyfile that reads src/ and writes HTML to docs/doxygen; source comments use the Doxygen style (@brief, @param, @return). |
No | |
| 5 | Write README from the framework template | Fill framework/templates/README-template.md: overview, requirements, setup with python -m venv .venv, activation on Windows and Linux, python -m pip install --upgrade pip, run, tests, license, links, appendix. |
No | |
| 6 | Add smoke test | A first test that imports the package and checks constants so the test run and CI path work before features arrive. |
No |