Quality contract red on main: zip strict=, format drift, and typecheck narrowing (CI cancelled since 6db5c2b3)
まだ誰も着手していません。
評価
- 難易度
- 3/5
- 見積もり時間
- 1〜2日
- 初心者へのやさしさ
- 82/100
調査の方向性
まず python -m ci.quality_contract --repository . を実行し、その後、courses/tests/test_course_illustrations.py、content/sync_parsers/podcasts.py、content/tests/test_sync_parsers.py、courses/tests/test_family_page_content.py、content/tests/test_faq.py、courses/tests/test_course_family_landing.py のフラグが付いた箇所を調べます。content/tests/test_queries.py にある既存の narrowing パターンを参考にしてください。quality contract がエンドツーエンドで成功すれば完了です。
索引モデルが issue の本文から書いたものです。
説明
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.
- 主要言語
- Python
- スター
- 0
- フォーク
- 0
- PR マージ指標
- 30日以内にマージされた PR はありません
環境構築
- Dockerfile または Docker Compose ファイルあり
- プルリクエストのテンプレートなし
- コントリビューションガイドなし
はじめの一歩
- issue を最後まで読み、次にプロジェクトのコントリビューションガイドを読みます。
- 着手することを issue にコメントします — 二人が同じ作業をするのを防げます。
- リポジトリをフォークし、ブランチを切って変更します。
- issue 番号を参照したプルリクエストを送ります。
DataTalksClub/website のほかの issue
-
bug infra operations P1 testing
難易度 2/5 1〜3時間 初心者へのやさしさ 72/100
DataTalksClub/website#329 ·
-
bug content data-migration documentation events operations P1
難易度 2/5 1〜3時間 初心者へのやさしさ 84/100
DataTalksClub/website#327 ·
-
bug frontend P0 testing
難易度 2/5 1〜3時間 初心者へのやさしさ 90/100
DataTalksClub/website#300 · コメント 7 件 ·
-
bug data-migration events P0 testing
難易度 2/5 1〜3時間 初心者へのやさしさ 72/100
DataTalksClub/website#295 · コメント 6 件 ·
-
admin courses data-migration email enhancement integration operations P1
難易度 4/5 3〜5日 初心者へのやさしさ 35/100
DataTalksClub/website#468 · コメント 6 件 ·
DataTalksClub/website の issue をすべて見る
似ている issue
-
documentation
難易度 2/5 1〜3時間 初心者へのやさしさ 67/100
メンテナーはふだん 1 日以内に返信
-
good first issue module-baseline needs triage ux
難易度 2/5 1〜3時間 初心者へのやさしさ 82/100
darnitdevorg/darnit#650 ·
メンテナーはふだん 2 日以内に返信
-
難易度 2/5 1〜3時間 初心者へのやさしさ 65/100
nyjc-computing/campus#938 ·
メンテナーはふだん 1 日以内に返信
-
難易度 2/5 1〜3時間 初心者へのやさしさ 70/100
nf-osi/nf-metadata-dictionary#1027 ·
メンテナーはふだん 1 日以内に返信
-
bug documentation
難易度 1/5 1時間未満 初心者へのやさしさ 92/100
qatrackplus/qatrackplus#913 ·
メンテナーはふだん 3 日以内に返信