Hacktoberfest 2026: the issues maintainers tagged for October, open and beginner-friendly. Browse Hacktoberfest issues

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.

Assessment

Difficulty
4/5
Estimated time
3-5 days
Newbie friendliness
30/100
Issue type
Bug
Clarity
Clearly specified
Activity status
Active
Tech stack
python

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.

Description

bug operations P0

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.

Dominant language
Python
Stars
0
Forks
0
PR merge metrics
No merged PRs in 30d

Getting set up

  • Ships a Dockerfile or Docker Compose file
  • No pull request template
  • No contributing guide

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.

More from DataTalksClub/website

All issues in DataTalksClub/website

Similar issues

More Python issues

Get new issues in your inbox

A short digest of beginner-friendly GitHub issues.