The section and the project layout still named .github/workflows/ci.yml and said CI
builds the documentation. The workflow is .gitea/workflows/ci.yml, runs on Gitea
Actions, and runs pytest, ruff and mypy; it has no Doxygen step, so the README now
points to doxygen Doxyfile and says why the file is not under .github/workflows.
S01 accepted the assistant's runs as the measure for success criteria 1 and 5 and
recorded Go on the re-check of the Business Case success criteria on main. All seven
criteria are met, and the conditions of RC-018 are closed. The traceability matrix
row follows the verdict.
Refs #28
RC-019 repeats the check of RC-018 against main (7d2c9e3), using a fresh clone from
the README's own GitHub URL, the README steps under PowerShell, the real command,
the host's CI runs, settings and pull requests. All seven criteria are met. It
closes the conditions of RC-018 on criterion 5 and on how main reaches GitHub;
S01's own run of the five commands (criterion 1) is the one left. The proposed
verdict is Go and S01 decides.
Refs #28
The step ran pip install --group dev, which needs a dependency-groups table in
pyproject.toml. This project declares the development tools as the dev extra, so the
step failed with "[dependency-groups] table was missing". It now installs with
pip install -e ".[dev]", the command the README documents.
S01 decided the check of the Business Case success criteria on 2026-10-08. Six of the
seven criteria are met; criterion 5 is not met until the code is on main and on
GitHub, so the first three action items of RC-018 are the conditions. The
traceability matrix row follows the verdict.
Refs #28
A new row for the check of the success criteria of BC-001 against the delivered
repository, for the gate of MIL-004. Its record RC-018 is a draft with the verdict
Pending, so the row says draft, no verdict.
Refs #28
RC-018 checks the seven success criteria of BC-001 against the delivered repository
with a fresh clone, the README steps under PowerShell, the real command, the host's
CI runs and settings, and the pull requests. Criteria 1 to 4, 6 and 7 are met.
Criterion 5 is not met as written yet: the README clones the GitHub repository,
which holds only the initial commit until the pull requests are merged. The proposed
verdict is Go-with-conditions and S01 decides.
Refs #28
The Reviews open issue now records the code reviews of the four milestones against
QC-PY-001 (RC-014 to RC-017, all Go). S01, the Product Owner, accepted the new
version on 2026-10-08, so the Version History gets a new Accepted row and the
previous one becomes Deprecated.
RC-014 to RC-017 review the Python code each milestone added or changed and all
four end in Go. S01 accepted the imports inside create_window and create_pen as a
documented exception, the name tim, N-A for criterion 10 (the project has no
design class diagram) and the lower-bounded development tools. The traceability
matrix lists the code of each milestone.
Closes#8Closes#15Closes#22Closes#29
S01, the Product Owner, accepted PP-001 on 2026-10-08: the Version History gets
a new Accepted row and the Reviews open issue says so. The Gateway Schedule now
links the four milestones that were created on the Gitea host (issues #1 to #29).
Draws int(360 / size_of_gap) circles, each in a random RGB color, turning the heading
by the gap after each. A gap that is not positive raises ValueError, and the integer
count avoids the TypeError that range raises for a float.
Task: MIL-004#2
Task: MIL-004#3
200 steps of equal length, each in a random heading of 0, 90, 180 or 270 degrees and
a random RGB color, with a thick line and the fastest speed.
Task: MIL-004#1
draw_shape turns 360 divided by the number of sides after each side and rejects
fewer than 3 sides. draw_shapes draws a triangle up to a decagon, each in a color
from the palette.
Task: MIL-003#3
Task: MIL-003#4
Task: MIL-003#5
random_color returns an immutable (red, green, blue) tuple of integers from 0 to 255
and random_palette_color picks a named color. Both take an optional random.Random
so that tests can seed them.
Task: MIL-003#1
Task: MIL-003#2
python -m turtle_challenges <challenge> and the turtle-challenges command open a
window, run the named challenge and wait for a click. square and dashed-line are
registered; a missing Tk is reported with a hint instead of a traceback.
Task: MIL-002#6
Challenge 1 draws four sides and turns right 90 degrees after each. Challenge 2 puts
the pen down for a dash and up for a gap and leaves it down at the end. Lengths and
counts come from constants.py; invalid values raise ValueError.
Task: MIL-002#3
Task: MIL-002#4
Task: MIL-002#5
The drawing functions take a Pen, the part of turtle.Turtle they use, so a test can
pass a fake that records every call. window.py is the only module that imports
turtle, and it does so inside the functions so that importing the package needs no Tk.
Task: MIL-002#1
Task: MIL-002#2
Requirements, set-up for Windows PowerShell, Linux Debian and macOS with a local
.venv and an upgraded pip, how to run the tests, continuous integration, the
source documentation, the project layout and the licence. The Run section is
completed with the last milestone.
Task: MIL-001#6
Installs the project, then runs ruff, mypy, pytest and the Doxygen build. No step
opens a turtle window. GitHub Actions and Gitea Actions both read this folder.
Task: MIL-001#5
The Doxyfile builds the source documentation from the Doxygen comments in src/
and treats any warning as an error. Output goes to build/html.
Task: MIL-001#4
pyproject.toml declares Python 3.13 or later, an empty runtime dependency list and
pytest, ruff and mypy as development tools. The package has constants.py, the one
place for constants, and a smoke test keeps the test run green.
Task: MIL-001#1
Task: MIL-001#2
Task: MIL-001#3
Business case BC-001, stakeholder analysis SA-001, project plan PP-001, the four
milestones MIL-001 to MIL-004, the domain dictionary DICT-001, the review records
RC-001 to RC-013 and the traceability matrix.
The reviews end in Go: the business case, stakeholder analysis, dictionary and the
four milestones are Accepted. The project plan is still Proposed; it has no
checklist and is accepted directly by the Product Owner.