DataTalksClub / DataTalksClub/website
Quality contract red on main: zip strict=, format drift, and typecheck narrowing (CI cancelled since 6db5c2b3)
Nobody has claimed this yet.
- Dominant language
- Python
- Stars
- 0
- Forks
- 0
- PR merge metrics
- No merged PRs in 30d
Description
What happened
The push of d7e53f5f (merge of #382) went red:
- CI run 35010874544:
qualityjob failed; its fail-fast step cancelleddjango,playwright, andcontainer;ci-gatefailed → run cancelled. - Deploy Dev run 35010874633:
verify-ci(requires a green CI verdict for the exact SHA) failed →publish/deployskipped.
Main has therefore had no green release pipeline since the run for 55a400c7 (15:56Z); the intervening runs for b297191d and d7e53f5f died in the quality job.
Root causes (all in the versioned quality contract, target order)
lint— B905zip()without explicitstrict=atcourses/tests/test_course_illustrations.py:127, introduced by6db5c2b3(no issue reference).format-check(would have failed next) — drift incontent/sync_parsers/podcasts.pyandcontent/tests/test_sync_parsers.py(via the #382 merge) andcourses/tests/test_family_page_content.py.typecheck(would have failed next) — 3 mypy errors fromdict | Nonenot narrowed afterassertIsNotNoneincontent/tests/test_faq.py:405,417andcourses/tests/test_course_family_landing.py:425.
Fix (on-call, this issue)
strict=Trueon the flaggedzip(both iterables have length 3; mispairing would silently build wrong fixtures).ruff formatapplied to the four drifted files.- Bare
assert x is not Nonenarrowing lines added after the threeassertIsNotNonecalls (matches the existing pattern incontent/tests/test_queries.py).
Verified locally: python -m ci.quality_contract --repository . passes end-to-end (lint, format 832 files, typecheck, migrations, django-check, deployment-check, test-ci 671 passed).
Refs the introducing commit 6db5c2b3; also hardens files touched by #382.
Contributor guide
No contributing guide indexed for this repository
First steps
- Read the whole issue, then the project's contributing guide.
- Comment on the issue to say you are picking it up — it saves two people doing the same work.
- Fork the repository and make your change on a branch.
- Open a pull request that references the issue number.
Research direction
Start with the listed locations: courses/tests/test_course_illustrations.py, the four files with format drift, and content/tests/test_faq.py plus courses/tests/test_course_family_landing.py. Run python -m ci.quality_contract --repository . after reviewing the existing narrowing pattern in content/tests/test_queries.py. Done means the quality contract passes all lint, format, typecheck, migration, deployment, and CI checks.
Written by the indexing model from the issue text.
Assessment
- Tech stack
- python
- Domain
- ci-cd, testing-qa, tooling
- Issue type
- Bug
- Difficulty
- 4/5
- Estimated time
- 3-5 days
- Activity status
- Active
- Clarity
- Clearly specified
- Newbie friendliness
- 30/100