Commit Graph
43 Commits
Author SHA1 Message Date
Tirsvad 382d799dfe Correct the README Continuous integration section
CI / checks (push) Successful in 46s
CI / checks (pull_request) Successful in 49s
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.
2026-10-08 01:34:30 +08:00
Tirsvad ca6c9d9f3c Merge pull request 'Record the verdict Go on RC-019' (#38) from record-go-on-rc-019 into main
CI / checks (push) Successful in 47s
TirSystem/github-action: Sync GitHub mirror metadata / sync-metadata (push) Successful in 4s
Reviewed-on: #38
2026-10-07 19:29:56 +02:00
Tirsvad 0fe106d2f0 Resolve pending commit links
CI / checks (push) Successful in 44s
CI / checks (pull_request) Successful in 48s
Replace pending in the Version History of RC-019 and of the traceability matrix with
the link to the commit that recorded the verdict.
2026-10-08 01:28:07 +08:00
Tirsvad 6dac0d6762 Record the verdict Go on RC-019
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
2026-10-08 01:28:05 +08:00
Tirsvad 1b3d2d2db1 Merge pull request 'Record the re-check of the Business Case success criteria on main' (#37) from rc-019-success-criteria-recheck into main
CI / checks (push) Successful in 45s
TirSystem/github-action: Sync GitHub mirror metadata / sync-metadata (push) Successful in 4s
Reviewed-on: #37
2026-10-07 19:24:14 +02:00
Tirsvad cca1499de5 Resolve pending commit links
CI / checks (push) Successful in 46s
CI / checks (pull_request) Successful in 44s
Replace pending in the Version History of RC-019 with the link to the commit that
added it.
2026-10-08 01:22:27 +08:00
Tirsvad 03700b8de2 Record the re-check of the Business Case success criteria on main
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
2026-10-08 01:22:25 +08:00
Tirsvad 7d2c9e3d08 Merge pull request 'Fix the install step of the Gitea workflow' (#36) from fix-ci-install-step into main
CI / checks (push) Successful in 56s
TirSystem/github-action: Sync GitHub mirror metadata / sync-metadata (push) Successful in 4s
Reviewed-on: #36
2026-10-07 19:17:00 +02:00
Tirsvad 99c721003e Fix the install step of the Gitea workflow
CI / checks (push) Successful in 45s
CI / checks (pull_request) Successful in 48s
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.
2026-10-08 01:13:28 +08:00
Tirsvad 8d9c1a0a09 Merge pull request 'Fix workflow for gitea' (#35) from mil-004-random-walk-and-spirograph into main
CI / checks (push) Failing after 28s
TirSystem/github-action: Sync GitHub mirror metadata / sync-metadata (push) Failing after 5s
Reviewed-on: #35
2026-10-07 18:55:16 +02:00
Tirsvad 1334730f8e Fix workflow for gitea
CI / checks (pull_request) Failing after 29s
CI / checks (push) Failing after 24s
2026-10-08 00:54:05 +08:00
Tirsvad daee0f5c98 Merge pull request 'Land milestones 002 to 004 on main' (#34) from mil-004-random-walk-and-spirograph into main
CI / checks (push) Successful in 1m2s
TirSystem/github-action: Sync GitHub mirror metadata / sync-metadata (push) Successful in 4s
Reviewed-on: #34
2026-10-07 18:47:25 +02:00
Tirsvad 79d008fb70 Merge pull request 'Milestone 001: Project Foundation' (#30) from mil-001-project-foundation into main
CI / checks (push) Successful in 1m3s
TirSystem/github-action: Sync GitHub mirror metadata / sync-metadata (push) Successful in 5s
Reviewed-on: #30
2026-10-07 18:42:07 +02:00
Tirsvad 45c0cf8acf Resolve pending commit links
CI / checks (pull_request) Successful in 1m2s
Replace pending in the Version History of RC-018 and of the traceability matrix with
the link to the commit that recorded the verdict.
2026-10-08 00:41:16 +08:00
Tirsvad 54f60a951a Record the verdict Go-with-conditions on RC-018
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
2026-10-08 00:41:15 +08:00
Tirsvad 4cb75dff77 Resolve pending commit links
CI / checks (pull_request) Successful in 1m3s
Replace pending in the Version History of the traceability matrix with the link to
the commit that added the RC-018 row.
2026-10-08 00:39:11 +08:00
Tirsvad 88aee4051d Add RC-018 to the traceability matrix
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
2026-10-08 00:39:10 +08:00
Tirsvad 665301689d Resolve pending commit links
CI / checks (pull_request) Successful in 1m2s
Replace pending in the Version History of RC-018 with the link to the commit that
added it.
2026-10-08 00:37:08 +08:00
Tirsvad 76ac50e591 Record the verification of the Business Case success criteria
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
2026-10-08 00:37:07 +08:00
Tirsvad 575df4d07f Resolve pending commit links
CI / checks (pull_request) Successful in 59s
Replace pending in the Version History of the project plan with the link to the
commit that accepted the new version.
2026-10-08 00:26:05 +08:00
Tirsvad c893fc1a17 Update the project plan Reviews wording after the code reviews
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.
2026-10-08 00:26:04 +08:00
Tirsvad eb73bb33e4 Resolve pending commit links
CI / checks (pull_request) Successful in 1m4s
Replace pending in the Version History of the traceability matrix and of the four
code review records with the link to the commit that added them.
2026-10-08 00:22:58 +08:00
Tirsvad 4d7cc33cac Record the code reviews of the four milestones against QC-PY-001
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 #8
Closes #15
Closes #22
Closes #29
2026-10-08 00:22:56 +08:00
Tirsvad 795b9dba39 Resolve pending commit links
CI / checks (pull_request) Successful in 1m1s
Replace pending in the Version History of the project plan with the link to the
commit that accepted it.
2026-10-08 00:12:24 +08:00
Tirsvad 16183ccff6 Accept the project plan and link the synced milestones
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).
2026-10-08 00:12:23 +08:00
Tirsvad 3e8269c4fb Complete the README run instructions
The Run section now covers all five challenges, the --gap option and how to call the
functions from other code.

Task: MIL-004#5
2026-10-07 23:59:17 +08:00
Tirsvad b5483a7373 Add the random-walk and spirograph challenges to the command line
turtle-challenges random-walk and turtle-challenges spirograph, the latter with
--gap for the degrees between two circles.

Task: MIL-004#4
2026-10-07 23:59:15 +08:00
Tirsvad 2328490945 Add draw_spirograph with tests
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
2026-10-07 23:59:12 +08:00
Tirsvad 949d2edb63 Add random_walk with tests
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
2026-10-07 23:59:10 +08:00
Tirsvad c695c47929 Add the shapes challenge to the command line
CI / checks (pull_request) Successful in 1m7s
turtle-challenges shapes draws the polygons. The argument parsing tests already
cover every registered name.

Task: MIL-003#6
2026-10-07 23:59:08 +08:00
Tirsvad 32861fc58f Add draw_shape and draw_shapes with tests
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
2026-10-07 23:59:05 +08:00
Tirsvad 9318a07fa0 Add random_color and the color palette
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
2026-10-07 23:59:02 +08:00
Tirsvad b3153b9dc1 Add the command line entry point
CI / checks (pull_request) Successful in 1m13s
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
2026-10-07 23:58:56 +08:00
Tirsvad a34bf6bbc2 Add draw_square and draw_dashed_line with tests
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
2026-10-07 23:58:52 +08:00
Tirsvad e2249de46e Add the Pen protocol, window helpers and a recording fake turtle
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
2026-10-07 23:58:50 +08:00
Tirsvad d38f114cc2 Write the README from the agreed template
CI / checks (pull_request) Successful in 1m3s
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
2026-10-07 23:58:41 +08:00
Tirsvad dbeba7baa0 Add the continuous integration workflow
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
2026-10-07 23:58:40 +08:00
Tirsvad dc08b107f1 Add the Doxygen configuration
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
2026-10-07 23:58:40 +08:00
Tirsvad 2cd19dfd03 Add project configuration, .gitignore and the package skeleton
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
2026-10-07 23:58:37 +08:00
Tirsvad 1526262910 Resolve pending commit links
Replace pending in the Version History of the documents with the link to
the commit that added them.
2026-10-07 23:58:35 +08:00
Tirsvad 4b3391b226 Add the business case, stakeholder analysis, plan, milestones, dictionary and reviews
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.
2026-10-07 23:58:31 +08:00
Tirsvad fe45ebfcbe Add the framework submodule
The quality framework is mounted at framework/ as a git submodule.
2026-10-07 23:58:30 +08:00
Tirsvad 3c51d0adf8 Initial commit 2026-10-07 16:37:09 +02:00