You signed in with another tab or window. Reload to refresh your session.You signed out in another tab or window. Reload to refresh your session.You switched accounts on another tab or window. Reload to refresh your session.Dismiss alert
The Code Quality Checks CI job (just check cpy311 -> check-typing -> ty check)
fails on master, independently of any PR content. It was observed failing on
PR #2255 while every other job was green, and the diagnostics are entirely in files
that PR never touched (router/session.py, shell/repl.py, router/auth/cryptosign.py, network/_backend.py, edge/node/docker.py, common/checkconfig.py).
ty reports:
Found 35 diagnostics
and those 35 are exactly two rules:
count
rule
19
warning[unused-type-ignore-comment]
16
warning[possibly-missing-submodule]
Both are warnings, yet ty exits non-zero, so the gate fails.
The gate is not missing — it has drifted
crossbar's check-typing recipe already uses the same ratcheted --ignore
allowlist pattern as Autobahn|Python (~27 ignore occurrences in the justfile vs
autobahn's ~31). The problem is that crossbar's allowlist is behind autobahn's: both of the offending rules are already ignored in autobahn-python's check-typing recipe:
Autobahn|Python is the group's CI/CD gold standard (its typing gate was ratcheted in
autobahn#1840: pre-existing gaps are held in an explicit --ignore allowlist to be
removed module-by-module, while all other rules are enforced immediately). Crossbar
should track it.
Fix
Add the two missing --ignore flags to check-typing in crossbar's justfile,
mirroring autobahn-python's recipe, so the gate goes green and these two categories
become explicitly-tracked ratchet items rather than a permanently red job.
While here, worth answering (and recording in the issue):
How did master go red? Either the gate was green and something merged past it,
or a ty version bump enabled/renamed these rules. If it is a version bump, the
group's shared recipes will drift again — consider pinning ty or syncing the
allowlist across repos (autobahn / zlmdb / crossbar) as part of the fix.
Are the 19 unused-type-ignore-comment hits worth fixing rather than ignoring?
They indicate # type: ignore comments that are no longer needed — cheap to remove,
and removing them is strictly better than ignoring the rule. Ignoring is the
pragmatic unblock; removal is the real cleanup and could be ratcheted separately.
Why a separate issue
Found while working crossbar#2250 (WebSocket compression validator). Deliberately not folded into that PR: #2250 is a security/config change, and burying a
repo-wide typing sweep in it would make it far harder to review. #2250's own red/green
is read off the Unit Tests workflow, which is green.
Acceptance criteria
just check passes on master.
The two rules are ignored via the explicit allowlist (or the underlying # type: ignore comments removed), consistent with autobahn-python.
The cause of the drift is understood and recorded, so the gate cannot silently rot
again.
References
Observed on crossbar PR Fix 2250 #2255 (CI run 79624716834 red / 79637961011 green-except-this).
Pattern to mirror: autobahn-python check-typing recipe; ratchet rationale in
autobahn#1840.
This work is being completed with AI assistance (Claude Code).
Problem
The Code Quality Checks CI job (
just check cpy311->check-typing->ty check)fails on master, independently of any PR content. It was observed failing on
PR #2255 while every other job was green, and the diagnostics are entirely in files
that PR never touched (
router/session.py,shell/repl.py,router/auth/cryptosign.py,network/_backend.py,edge/node/docker.py,common/checkconfig.py).tyreports:and those 35 are exactly two rules:
warning[unused-type-ignore-comment]warning[possibly-missing-submodule]Both are warnings, yet
tyexits non-zero, so the gate fails.The gate is not missing — it has drifted
crossbar'scheck-typingrecipe already uses the same ratcheted--ignoreallowlist pattern as Autobahn|Python (~27
ignoreoccurrences in the justfile vsautobahn's ~31). The problem is that crossbar's allowlist is behind autobahn's:
both of the offending rules are already ignored in
autobahn-python'scheck-typingrecipe:Autobahn|Python is the group's CI/CD gold standard (its typing gate was ratcheted in
autobahn#1840: pre-existing gaps are held in an explicit
--ignoreallowlist to beremoved module-by-module, while all other rules are enforced immediately). Crossbar
should track it.
Fix
Add the two missing
--ignoreflags tocheck-typingin crossbar'sjustfile,mirroring autobahn-python's recipe, so the gate goes green and these two categories
become explicitly-tracked ratchet items rather than a permanently red job.
While here, worth answering (and recording in the issue):
or a
tyversion bump enabled/renamed these rules. If it is a version bump, thegroup's shared recipes will drift again — consider pinning
tyor syncing theallowlist across repos (autobahn / zlmdb / crossbar) as part of the fix.
unused-type-ignore-commenthits worth fixing rather than ignoring?They indicate
# type: ignorecomments that are no longer needed — cheap to remove,and removing them is strictly better than ignoring the rule. Ignoring is the
pragmatic unblock; removal is the real cleanup and could be ratcheted separately.
Why a separate issue
Found while working crossbar#2250 (WebSocket compression validator). Deliberately
not folded into that PR: #2250 is a security/config change, and burying a
repo-wide typing sweep in it would make it far harder to review. #2250's own red/green
is read off the Unit Tests workflow, which is green.
Acceptance criteria
just checkpasses on master.# type: ignorecomments removed), consistent with autobahn-python.again.
References
check-typingrecipe; ratchet rationale inautobahn#1840.
This work is being completed with AI assistance (Claude Code).