Ci: Add informational lint + type-check job 0.0.47#85
Merged
Conversation
Surfaces lint/type-check output in CI without blocking PRs on the documented backlog (~941 mypy errors as of iter22, isort drift in 5 files, flake8 line-length tension). Each tool runs with 'continue-on-error: true' so the diff-friendly checklist appears in CI logs for incremental cleanup but does not gate merges. The job itself is also marked 'continue-on-error', keeping the workflow's overall green status tied to functional gates only (unit-tests + packaging-gate). Future iters can: - Tighten flake8 by adding [flake8] max-line-length = 119 to match CLAUDE.md, or migrate to ruff for a single-tool replacement. - Reduce the mypy backlog file-by-file; CI will track delta. - Auto-format isort drift via 'uv run isort src/ tests/' once. Once each tool is clean, drop its 'continue-on-error' to make it a hard gate without re-touching the workflow shape.
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment
Add this suggestion to a batch that can be applied as a single commit.This suggestion is invalid because no changes were made to the code.Suggestions cannot be applied while the pull request is closed.Suggestions cannot be applied while viewing a subset of changes.Only one suggestion per line can be applied in a batch.Add this suggestion to a batch that can be applied as a single commit.Applying suggestions on deleted lines is not supported.You must change the existing code in this line in order to create a valid suggestion.Outdated suggestions cannot be applied.This suggestion has been applied or marked resolved.Suggestions cannot be applied from pending reviews.Suggestions cannot be applied on multi-line comments.Suggestions cannot be applied while the pull request is queued to merge.Suggestion cannot be applied right now. Please check back later.
Summary
Adds a third CI job
lint-and-typecheckthat runs black, isort,flake8, and mypy on every push/PR. Each tool's output appears in
CI logs but does NOT block PRs because the repo carries a
documented backlog (~941 mypy errors per iter22 review, isort drift
in 5 files, flake8 line-length tension between black's 88 and
CLAUDE.md's 119-char convention).
Changes
.github/workflows/ci.yml: append thelint-and-typecheckjob. Each step + the job itself usescontinue-on-error: trueso the workflow's overall greenstatus remains tied to functional gates (unit-tests +
packaging-gate).
Why informational, not blocking
Strict gating today would block every PR on a 941-error
pre-existing backlog with no path to landing changes. Informational
mode trades the backlog for visibility: each PR's CI run lists
exactly what black/isort/flake8/mypy say, so contributors can see
deltas and incrementally clean up. Once each tool is clean, drop
its
continue-on-errorto convert it into a hard gate withoutre-touching the workflow shape.
How to Test
CI workflow run on this branch is the live verification. The
unit-tests + packaging-gate jobs should still pass (no source
changes). The new lint-and-typecheck job will report its findings
and be marked green-with-warnings.
Checklist
Testing
Compatibility
not block PRs.
Documentation
the tightening path.