Skip to content

306 Repository-derived curriculum hierarchy and YAML-backed homework units - #311

Draft
alexeygrigorev wants to merge 7 commits into
mainfrom
c5.4-repository-derived-curriculum-hierarchy
Draft

alexeygrigorev wants to merge 7 commits into
mainfrom
c5.4-repository-derived-curriculum-hierarchy

Conversation

@alexeygrigorev

Copy link
Copy Markdown
Member

Goal

Make the physical course repository the shared source of truth for nested and mixed curriculum structure, including YAML-backed homework units with Markdown prose companions.

Changed

  • Parse and validate recursive module trees with one ordered sibling sequence for direct units and child modules.
  • Parse structured homework units from homework.yaml plus exactly one homework.md, carrying stable unit/question identity, form fields, dates, scoring metadata, bonus/section metadata, and project references through the shared graph.
  • Import/reparent existing unit and coursework rows in place, preserving learner progress, answers, and submissions; keep authored scoring answers out of learner-facing projections.
  • Add recursive ordered curriculum projections, update shared rendering, format documentation, and mixed-tree/import identity regressions.
  • Bump package metadata and lockfile to 0.5.13.

Verification

  • uv sync --all-extras -> completed; full extras installed.
  • uv run pytest -> 2,249 passed, 2 existing collection warnings.
  • uv run ruff check . -> passed.
  • uv run ruff format --check . -> 848 files already formatted.
  • uv run python testproject/manage.py check -> no issues.
  • uv run python testproject/manage.py makemigrations --check --dry-run -> no changes detected.
  • Fresh SQLite migrate -> all migrations applied successfully.
  • uv run pytest tests/test_boundaries.py -> 1 passed.
  • uv run python scripts/plan.py check -> 172 issues, STATUS consistent.

Done when

  • A mixed fixture preserves physical parentage and one authored order across direct Markdown units, YAML homework, and nested modules.
  • Reparenting a YAML homework unit with the same content_id updates the existing row and preserves question, answer, submission, and progress identity.
  • Homework prose comes from Markdown; structured values come from YAML; correctness is imported to the scoring field and absent from learner projections.
  • Invalid manifests, companions, identities, sibling orders, and project references are rejected with actionable diagnostics; valid mixed siblings are accepted.
  • Recursive module, bonus, syllabus-section, and project metadata is carried through shared projections and rendering, including one-unit modules.
  • AISL and DTC consumer suites pass against this package revision.

Not run here, needs

  • AISL and DTC cross-repo CI jobs are triggered by this pull request; their on-call verdict is pending.
  • No package tag or release is created in this change.

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

1 participant