Skip to content

ci: cover consumer fixtures in style and strict typing gates - #414

Merged
codeforester merged 8 commits into
mainfrom
ci/393-20261003-ci-ruff-check-and-mypy-do-not-cover-the-compatibility-consum
Oct 5, 2026
Merged

codeforester merged 8 commits into
mainfrom
ci/393-20261003-ci-ruff-check-and-mypy-do-not-cover-the-compatibility-consum

Conversation

@codeforester

@codeforester codeforester commented Oct 2, 2026 •

Copy link
Copy Markdown
Contributor

Fixes #393

Extend formatting, lint, and strict typing checks to the compatibility consumers and example applications. Discover Python sources so future consumer directories remain covered.

Branch maintenance

Refs #426. Targets main.

The branch was refreshed without rewriting history to include main at a576cc279739eae5e4cfc33ffab2a7fb56de24de. The already-merged calibration patch is absent from this review diff; the original issue patch is preserved.

Current-head validation

At 857e52e8ecc9058edd2a7a820f7b00175f41219a: uv lock freshness and baseline, runtime, strict typing, style, and contracts passed locally with all declared extras. Runtime result: 608 passed, 1 warning, 262 subtests passed in 9.23s.

Hosted checks: 7/7 required checks passed; 0 checks pending; 0 unsuccessful checks at 2026-10-04T14:19:40.760978+00:00. See the PR Checks tab and #426 for subsequent results.

codeforester added a commit that referenced this pull request Oct 4, 2026
# Conflicts:
#	docs/integrations.md
Comment thread scripts/validate_consumer_typing.py
@codeforester

Copy link
Copy Markdown
Contributor Author

Additional finding (unchanged file outside this diff, so not postable as an inline comment):

pyproject.toml's [tool.ruff] table has no exclude key at all. The whole-repo ruff check . / ruff format --check --exclude "*.md" . scoping this PR relies on therefore depends entirely on Ruff's hardcoded default directory excludes plus .gitignore (respect-gitignore=true by default). .gitignore doesn't list .mypy_cache/, .ruff_cache/, or .hypothesis/ — all three can exist as untracked dirs in a local checkout. Currently harmless: Ruff's built-in defaults already hard-exclude .mypy_cache/.ruff_cache regardless of gitignore, and none of the three currently contain .py files that git ls-files would pick up for the mypy script either. But there's no project-level backstop — if that ever changes, both gates would silently start scanning a cache directory with nothing in the repo config to stop them. Low priority; worth a one-line exclude addition for defense-in-depth.

@codeforester codeforester left a comment

Copy link
Copy Markdown
Contributor Author

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Reviewed against #393's acceptance criteria. Ruff now runs repo-wide, consumer packages are under strict mypy, and Git-based discovery means a new top-level directory can't slip past the gate. That covers all four criteria. CI is green (112 pass / 5 skipped).

Merge blocker: the branch is BEHIND main, and the default-branch ruleset requires branches to be up to date. #415 through #423 are stacked on this branch, so updating it here will ripple through the whole stack.

Two non-blocking notes are inline.

Comment thread examples/minimal_cli/src/minimal_cli/cli.py
Comment thread scripts/validate_consumer_typing.py
@codeforester
codeforester merged commit e6c3323 into main Oct 5, 2026
117 checks passed
@codeforester
codeforester deleted the ci/393-20261003-ci-ruff-check-and-mypy-do-not-cover-the-compatibility-consum branch October 5, 2026 13:33
codeforester added a commit that referenced this pull request Oct 5, 2026
CLI setup and teardown now close only lifecycle-owned handlers. Consumer
handlers, explicit levels, and parent logging configuration survive an
invocation; unconfigured loggers keep duplicate-free terminal output.
The public logger helper accepts an explicit propagation policy.

Fixes #387.

## Branch maintenance

Refs #426. Targets the branch for #414. Retarget and refresh after that
parent is squash-merged; preserve the ordered stack.

The branch was refreshed without rewriting history to include `main` at
`a576cc279739eae5e4cfc33ffab2a7fb56de24de`. The documentation conflict
preserves both logger-ownership and timestamp configuration guidance.

## Current-head validation

At `b48e4443a1e7bde586679e975f28ad9713a916b7`: uv lock freshness and
baseline, runtime, strict typing, style, and contracts passed locally
with all declared extras. Runtime result: 611 passed, 1 warning, 262
subtests passed in 8.75s.

Hosted checks: 7/7 required checks passed; 0 checks pending; 0
unsuccessful checks at 2026-10-04T14:19:40.760978+00:00. See the PR
Checks tab and #426 for subsequent results.
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.

ci: ruff check and mypy do not cover the compatibility consumer fixtures

1 participant