Remove mypy and pyright
Metadata
Current evaluation
Drop mypy/pyright in favour of ty. Makefile, CI and pyproject already use ty only; common.mk still defines lint-mypy, lint-pyright, install-pyright, and stale .gitignore/type: ignore entries remain. Mirrors snapcraft#6007 and craft-cli#420, both completed.
Suggested action: keep open
Reason: Maintainer-filed (mr-cal) and already carries the 'Type: Enhancement' label, so it is triaged and valid; it is a toolchain-hygiene task, not a user-facing defect. The active config is largely migrated — Makefile:38 runs only 'lint-ruff lint-ty lint-codespell ...', no workflow references mypy/pyright, and pyproject.toml has no [tool.mypy]/[tool.pyright] — but common.mk still ships dead 'lint-mypy', 'lint-pyright' and 'install-pyright' targets (the latter doing 'sudo snap install --classic pyright') with _setup-lint still depending on install-pyright, plus .gitignore:130-133 mypy cache entries and a stale '# type: ignore[return-value]' at multipass.py:144. Both cited precedents are already closed (snapcraft#6007 via PR #6247, craft-cli#420 via PR #479), giving a clear template; the residual uncertainty is only whether common.mk edits must be upstreamed to the shared craft-apps template first.
Evaluated by: mr-cal-bot
Issue body
Evaluation history
| Date | Model | Scores | Action | Summary |
|---|---|---|---|---|
| stealth/space-bunny-alpha |
Impact:
35
Quick Win:
23
Complexity:
25
Confidence:
87
Actionability:
88
|
keep open | Drop mypy/pyright in favour of ty. Makefile, CI and pyproject already use ty only; common.mk still defines lint-mypy, lint-pyright, install-pyright, and stale .gitignore/type: ignore entries remain. Mirrors snapcraft#6007 and craft-cli#420, both completed. | |
| stealth/space-bunny-alpha |
Impact:
32
Quick Win:
21
Complexity:
28
Confidence:
92
Actionability:
91
|
keep open | Maintainer-filed enhancement to remove mypy and pyright before adopting ty, avoiding obsolete unused-ignore warnings; modeled on two completed migrations and still awaiting implementation. | |
| qwen3.6-35b-a3b-mtp-q6 |
Impact:
50
Quick Win:
35
Staleness:
60
Complexity:
30
Confidence:
75
Support Request:
0
|
keep open | Enhancement to remove mypy and pyright type checkers in favor of ty, following similar work in snapcraft#6007. Issue created by maintainer but has had no maintainer response or comments in 136 days. | |
| qwen/qwen3.6-35b-a3b |
Staleness:
55
Complexity:
45
Confidence:
80
Support Request:
0
|
needs triage | Enhancement to remove mypy and pyright type checkers in favor of migrating to the ty tool. Open for 165 days with no maintainer comments or assignee. | |
| qwen3.6-35b-a3b-mtp-q6 |
Staleness:
65
Complexity:
15
Confidence:
90
Support Request:
0
|
needs triage | Enhancement to remove mypy and pyright in favor of migrating to the ty type checker. Open for 156 days with no maintainer comments or assignee, awaiting triage. |
Update history
No update history recorded yet.
Related work
-
Related To:
snapcraft#6007
(confidence 95%)
Explicitly cited in the issue body as the model to follow; closed and resolved by merged PR #6247 (commit 534d7dce7), adopting ty and dropping the unused-ignore suppression.
-
Related To:
craft-cli#420
(confidence 92%)
Second instance of the same cross-repo initiative; closed and resolved by merged PR #479.
-
Related To:
craft-application#1084
(confidence 80%)
Merged PR 'style: replace mypy and pyright with ty' applying the identical change in a sibling craft repo.
-
Related To:
craft-platforms#207
(confidence 78%)
Merged PR 'style: disable pyright in favour of ty' updating lint configuration and CI checks in another sibling repo.
Related issues
| Issue | Project | State | Summary | Similarity |
|---|---|---|---|---|
| #1084 style: replace mypy and pyright with ty | craft-application | merged | Merged PR #1084 as squash commit 345bd5d9, replacing mypy and pyright with ty and updating lint configuration for craft-app 7. | |
| #420 Remove mypy and pyright | craft-cli | closed | Removed mypy and pyright in favor of ty through merged PR #479 (commit 0e49c01). | |
| #6007 Remove mypy and pyright | snapcraft | closed | Request to drop mypy and pyright for ty was resolved by merged PR #6247 ("style: go all-in on ty", commit 534d7dce7), which replaced both checkers with ty and removed the unused-ignore-comment suppression. | |
| #421 style: ty | craft-cli | merged | Merged PR #421 as 5c6d127, updating ty to unblock snapcraft#5673; it opened #420 to remove mypy and pyright, later resolved by #479. | |
| #223 style: switch from mypy+pyright to ty | craft-platforms | merged | Merged PR #223 by lengau replaced mypy and pyright with the ty type checker in craft-platforms, dropping ~274 lines across 3 files; approved by 2 reviewers with all lint/test CI green. | |
| #152 style: remove mypy and pyright to go all-in on ty | debcraft | merged | Merged canonical/debcraft#152, removing mypy and pyright and standardizing type checking on Astral ty after approval by two reviewers. | |
| #215 style: drop mypy, pyright | craft-grammar | merged | Merged #215 in commit 19a38b7, dropping mypy and pyright in favor of ty across six files (+4/-481). | |
| #253 style: drop mypy, pyright | craft-archives | merged | Merged PR #253 (commit 1949f53) drops mypy and pyright in favor of ty; lint and test CI checks passed. | |
| #1007 style: drop mypy, pyright | craft-providers | merged | Merged into main as commit 232143d, replacing mypy and pyright with ty and removing obsolete type-checker tooling. | |
| #1207 style: replace mypy and pyright with ty | rockcraft | merged | Merged PR #1207 (commit 5d9356c1), replacing mypy and pyright type checking with Astral ty and updating lint configuration across 43 files. |