Skip to content

ci: wire ty into lint.yaml as a blocking typecheck job - #315

Open
antejavor wants to merge 1 commit into
mainfrom
enforce-typing-ci
Open

ci: wire ty into lint.yaml as a blocking typecheck job#315
antejavor wants to merge 1 commit into
mainfrom
enforce-typing-ci

Conversation

@antejavor

Copy link
Copy Markdown
Contributor

Summary

Closes #313.

  • Adds a typecheck job to .github/workflows/lint.yaml (already named "Lint and type check", never actually running one) — a separate job from lint so ruff's fast feedback isn't gated behind the much heavier full-workspace sync ty needs.
  • ty resolves imports through installed packages, unlike ruff's purely syntactic checks, and cross-package imports span the whole workspace (agent-context-graph optionally imports skills-graph/actions-graph/sessions-graph) — so the job runs one uv sync --all-packages --all-extras before checking, rather than per-package syncs that would produce spurious unresolved-import diagnostics.
  • Pins ty==0.0.75, matching ruff's own exact-pin convention in the same file — ty is still pre-1.0 and evolves fast; pinning locks in the exact version Enforce ty type checking across the workspace #314's fixes were verified against.
  • Updates AGENTS.md's Type checking section: drops the "not yet enforced" framing and the now-stale note about lightrag-memgraph's dormant mypy config (removed in Enforce ty type checking across the workspace #314), documents the full-sync command CI actually runs.

Test plan

  • Verified locally end-to-end exactly as CI will run it: uv tool install ty==0.0.75uv sync --all-packages --all-extrasty check . → all checks passed
  • .github/workflows/lint.yaml validated as parseable YAML (also passes the repo's own pre-commit check-yaml hook)
  • CI itself, on this PR

Closes out #313's last remaining scope item. Added as a second job in the
existing lint.yaml (already named "Lint and type check", never actually
running one) rather than a new workflow file, and as a separate job rather
than more steps on `lint` so ruff's fast feedback isn't gated behind the
much heavier full-workspace sync this needs.

ty resolves imports through installed packages, unlike ruff's purely
syntactic checks -- and cross-package imports span the whole workspace
(agent-context-graph optionally imports skills-graph/actions-graph/
sessions-graph), so the job does one `uv sync --all-packages --all-extras`
before checking, rather than per-package syncs that would miss those.
Pinned `ty==0.0.75`, matching ruff's own exact-pin convention in the same
file -- ty is still pre-1.0 and evolves fast; pinning locks in exactly the
version #314's fixes were verified against, since CI running a newer,
unpinned version could see diagnostics nobody's checked for yet.

Verified locally end-to-end as CI will run it: `uv tool install ty==0.0.75`,
`uv sync --all-packages --all-extras`, `ty check .` -- all checks passed.

Also updates AGENTS.md's Type checking section: drops the "not yet enforced"
framing and the now-stale note about lightrag-memgraph's dormant mypy config
(removed in #314), and documents the full-sync command CI actually runs.
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

Enforce type checking with ty across the workspace

1 participant