D5.3a Prove the course source and policy contract for shared curriculum
Chưa có ai nhận issue này.
Đánh giá
- Độ khó
- 5/5
- Thời gian dự kiến
- Hơn một tuần
- Mức phù hợp với người mới
- 25/100
- Loại issue
- Tính năng
- Độ rõ ràng
- Khá rõ ràng
- Mức độ hoạt động
- Sôi nổi
- Công nghệ
- python
- Lĩnh vực
- backend, documentation, testing-qa
Hướng nghiên cứu
Read DTC AGENTS/process/spec 04, docs/plan/STATUS.md, #436 and #414, then inspect courses/services/curriculum_source.py, existing source fixtures, the route contract, and the named shared-course files. Run the maintained DTC source-contract and route-baseline tests; completion requires tagged package fixtures, conversion and route/policy evidence, documented owners for gaps, and no production reader, schema, database, template, or UI changes.
Do mô hình lập chỉ mục viết ra từ nội dung của issue.
Mô tả
Plan issue D5.3a, phase 5 of the community-base unification plan; child milestone of DTC #436.
Authority: D5.3a in the reviewed docs/plan/phase-5.md sequencing correction tracked by community-base #348. Implementation waits for that plan change and this milestone’s prerequisites. docs/plan/STATUS.md remains the source of truth.
Process and boundaries
DTC AGENTS.md, _docs/PROCESS.md, _docs/specs/ and coding-standard govern implementation, verification, independent QA and PM acceptance. Use an isolated worktree; preserve other sessions' work. Package changes must be tagged before site dependency adoption. No live source conversion, database reset or production operation is authorized by this issue. No visible UI change or feature removal is allowed.
Spec
Repository: DataTalksClub/website. Depends on: C5.4, C7.12b, C7.12d / community-base #366. Freeze required: no.
Goal: establish executable source and DTC policy expectations against a tagged shared package,
without adopting package storage, changing production readers or converting a live repository.
Read first
- DTC AGENTS/process/spec 04 and current source-format specs.
- #436, #414,
courses/services/curriculum_source.py, existing source fixtures and route contract. - Package FORMAT, public course parser, converter and #347 semantic regression evidence.
courses/views/shared_course.py,curriculum_flow.py,course_context.pyand the existing
mapping document; read the affected contracts, do not reopen a broad inventory.
Steps
- Inventory the exact public source commits and accepted source shapes for the six repositories,
plus target-required content absent from them. Record dispositions as decisions still owned by
D5.1; do not assume a source-only import recreates the public catalog. - Add bounded executable fixtures consuming public tagged converter/parser APIs. Establish
expected source IDs, order, parentage, homework schemas/bindings, section/bonus metadata,
project references, explicit ignores and route identities from source data. For an ordered
cohort project flow that FORMAT section 3.8 cannot represent, prove a cohort-scoped refusal
rather than treating a successful lossy conversion as a supported graph. - Compare supported legacy flat source expectations with converted graphs; include the newly
supported mixed/YAML-homework shapes as synthetic contracts. Preserve module boundaries. - Record DTC policy mappings separately from generic structure: publication, archive behavior,
cohort context, homework/project flow, module-local neighbors, access, asset links and URLs. - Name unresolved metadata/storage/behavior gaps explicitly; each required field/feature needs
a known target owner before this milestone can be accepted. Do not introduce a runtime shim
or duplicate parser to make the contract look complete.
Acceptance criteria
- Exact tagged package and source/fixture identities are recorded. No branch/path dependency
is committed and DTC source guards pass. - Flat and mixed source fixtures produce the expected authored identities/parentage/order;
YAML homework/questions and explicit cohort bindings survive conversion without loss. - Course source conversion is idempotent and obeys the accepted #347 partial-refusal policy. A test using a published immutable package release containing C7.12d/#366 proves that a cohort with ordered module/project
flowis refused with its path and reason, retains its exact source bytes, and does not prevent unrelated valid cohort/source conversion. The test must fail against v0.5.20, whose successful report drops the project placement. Do not count refusal as project-flow adoption. - Explicit expected DTC canonical slugs/routes and module-local navigation are recorded;
package default prefix stripping or whole-course neighbors cannot silently replace them. - The required public-content inventory and field/policy owner matrix are reviewable. Missing
import paths/owners are unresolved blockers, not omissions from the contract. - Required DTC verification passes; no production reader, schema, database, template or UI
changes. This is source-contract proof, not imported-data/render/deployment equivalence.
Verification
- Run the selected source-contract and route-baseline tests through the maintained DTC test
runner and all components selected by its verification plan; record exact counts and source
identities. Validate converter output and the unsupported-flow refusal with the immutable tagged
package, not a copied parser or local/path dependency. Record the tag and package identity. - Complete independent QA and PM review under the DTC process. Package capability evidence is
linked separately; imported site rows and deployed reader parity remain D5.1/D5.3b work.
Docs: DTC source-contract/mapping documentation and this plan's STATUS row. Test additions use
existing bounded fixture owners; no new general parser or generated production content files.
Browser and operations scenarios
No product page changes belong to this source-contract milestone. Characterize the existing flat route/policy baseline through its owning tests; the generated site verification plan still selects its required browser tier. No new screenshots or live source/database operations are required by a pure source-contract diff. Imported-data and deployed reader equivalence remain #414/#447.
Sequencing references
- Source/policy proof: D5.3a / #446.
- Storage and single source-writer activation: D5.1 / #414.
- Reader projection: D5.3b / #447.
- Full preservation acceptance: D5.3 / #436.
- Coordinated course cutover: D5.2 / #415.
- Plan sequencing correction: community-base #348; its phase-5/phase-7 and generated STATUS update must merge before these revised dependencies govern implementation. No milestone is completed by this grooming.
- Package conversion semantics: C7.12b / community-base #347; fail-closed ordered-flow correction: C7.12d / community-base #366. Package capability, donor compatibility and site adoption remain separate gates.
- D5.1/#414 retains the full feature gate: DTC-owned source, importer, durable target placement and reader projection must preserve project identity and its interleaved cohort order before shared storage or writer activation. C7.12d refusal prevents silent loss but is not feature adoption.
- Ngôn ngữ chính
- Python
- Star
- 0
- Fork
- 0
- Chỉ số merge pull request
- Không có pull request nào được merge trong 30 ngày
Chuẩn bị môi trường
- Có Dockerfile hoặc tệp Docker Compose
- Không có mẫu pull request
- Không có hướng dẫn đóng góp
Bắt đầu từ đâu
- Đọc hết issue, rồi đọc hướng dẫn đóng góp của dự án.
- Bình luận trên issue rằng bạn sẽ nhận — tránh hai người làm cùng một việc.
- Fork repository và làm thay đổi trên một nhánh.
- Mở pull request có tham chiếu số hiệu của issue.
Issue khác của DataTalksClub/website
-
bug infra operations P1 testing
Độ khó 2/5 1-3 giờ Mức phù hợp với người mới 72/100
DataTalksClub/website#329 ·
-
bug content data-migration documentation events operations P1
Độ khó 2/5 1-3 giờ Mức phù hợp với người mới 84/100
DataTalksClub/website#327 ·
-
bug frontend P0 testing
Độ khó 2/5 1-3 giờ Mức phù hợp với người mới 90/100
DataTalksClub/website#300 · 7 bình luận ·
-
bug data-migration events P0 testing
Độ khó 2/5 1-3 giờ Mức phù hợp với người mới 72/100
DataTalksClub/website#295 · 6 bình luận ·
-
content courses enhancement P1
Độ khó 5/5 Hơn một tuần Mức phù hợp với người mới 35/100
DataTalksClub/website#450 · 8 bình luận ·
Tất cả issue của DataTalksClub/website
Issue tương tự
-
Độ khó 2/5 1-3 giờ Mức phù hợp với người mới 88/100
BasedHardware/omi#20271 ·
Maintainer thường phản hồi trong vòng 1 ngày
-
Độ khó 2/5 1-3 giờ Mức phù hợp với người mới 92/100
openai/openai-cookbook#3153 ·
Maintainer thường phản hồi trong vòng 1 ngày
-
cvss-severity:high devguard l3montree-cybersecurity/devguard/devguard pkg:golang/github.com/l3montree-dev/devguard risk:low state:open
Độ khó 2/5 1-3 giờ Mức phù hợp với người mới 65/100
l3montree-dev/devguard#3146 · 1 bình luận ·
Maintainer thường phản hồi trong vòng 1 ngày
-
Độ khó 2/5 1-3 giờ Mức phù hợp với người mới 76/100
-
bug confirmed issue
Độ khó 2/5 1-3 giờ Mức phù hợp với người mới 76/100
open-webui/open-webui#31849 · 2 bình luận ·
Maintainer thường phản hồi trong vòng 1 ngày