Skip to content

docs(ci): record that the dependency floors are smoke-tested only - #239

Merged
lesnik512 merged 1 commit into
mainfrom
ci/236-document-floor-scope
Sep 20, 2026
Merged

lesnik512 merged 1 commit into
mainfrom
ci/236-document-floor-scope

Conversation

@lesnik512

Copy link
Copy Markdown
Member

Closes #236. Option 1 from the issue.

The lowest-direct job installs each target at its declared floors and runs scripts/floor_smoke.py
and nothing else, so a type annotation valid against the newest resolution and invalid at the floor
passes CI in every job. That surfaced in #232: the BrokerUsecase[typing.Any, typing.Any, typing.Any] annotation was verified by hand against faststream 0.6.0, 0.7.4 and 0.7.6, but CI
checked only the newest of the three.

The issue laid out four options. Both of the cheap ones are already blocked, for reasons the repo
documents:

  • pytest at the floor is ruled out by scripts/floor_smoke.py's own docstring: "Not a pytest
    test: conftest.py hard-imports opentelemetry, sentry_sdk and structlog, which most of these
    targets do not install."
  • ty at the floor hits the mirror image. A floor environment for one target installs only that
    target's extras, so checking the repo would report unresolved imports for every framework the job
    deliberately did not install. That is noise, and AGENTS.md is explicit that ty diagnostics are
    meant to be acted on.

So the gap stays, and this records it where someone would look rather than leaving it as an
unexplained omission. The remaining options were a narrow per-target ty run, which needs a way to
stop ty following imports into modules the job did not install and may not be expressible, and
raising the floors so one resolution represents the declared range, which is a dependency policy
change rather than a CI one.

The failure mode is narrow: it needs an annotation referencing an optional dependency's internals
and a floor that disagrees with the ceiling about it. That has happened once, was caught within
hours, and the blast radius was a test helper. The daily dependency check added in #233 covers the
ceiling side.

Comment only. No job, matrix or step changes; I parsed the workflow after editing to confirm the
lowest-direct job still resolves with its five targets and both steps intact.

@lesnik512
lesnik512 merged commit 75b31b8 into main Sep 20, 2026
13 checks passed
@lesnik512
lesnik512 deleted the ci/236-document-floor-scope branch September 20, 2026 12:27
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.

Nothing checks that the repo typechecks at its declared dependency floors

1 participant