DataTalksClub / DataTalksClub/website

Quality contract red on main: zip strict=, format drift, and typecheck narrowing (CI cancelled since 6db5c2b3)

Open
#402 0 comments 0 reactions 0 assignees View on GitHub

Nobody has claimed this yet.

bug operations P0
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: quality job failed; its fail-fast step cancelled django, playwright, and container; ci-gate failed → run cancelled.
  • Deploy Dev run 35010874633: verify-ci (requires a green CI verdict for the exact SHA) failed → publish/deploy skipped.

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)

  1. lint — B905 zip() without explicit strict= at courses/tests/test_course_illustrations.py:127, introduced by 6db5c2b3 (no issue reference).
  2. format-check (would have failed next) — drift in content/sync_parsers/podcasts.py and content/tests/test_sync_parsers.py (via the #382 merge) and courses/tests/test_family_page_content.py.
  3. typecheck (would have failed next) — 3 mypy errors from dict | None not narrowed after assertIsNotNone in content/tests/test_faq.py:405,417 and courses/tests/test_course_family_landing.py:425.

Fix (on-call, this issue)

  • strict=True on the flagged zip (both iterables have length 3; mispairing would silently build wrong fixtures).
  • ruff format applied to the four drifted files.
  • Bare assert x is not None narrowing lines added after the three assertIsNotNone calls (matches the existing pattern in content/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

  1. Read the whole issue, then the project's contributing guide.
  2. Comment on the issue to say you are picking it up — it saves two people doing the same work.
  3. Fork the repository and make your change on a branch.
  4. 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

Get new issues in your inbox

A short digest of beginner-friendly GitHub issues.