Skip to content

docs(ci): correct what the lowest leg is said to guard - #191

Open
lesnik512 wants to merge 1 commit into
mainfrom
docs/fix-lowest-comment
Open

lesnik512 wants to merge 1 commit into
mainfrom
docs/fix-lowest-comment

Conversation

@lesnik512

Copy link
Copy Markdown
Member

One line of comment in _checks.yml. No job behaviour changes.

The claim that was wrong

# them: `pytest` and `scheduled-dep-check` both resolve highest. That is how
# 0.13.2 shipped `faststream>=0.7.1` and stayed green until 0.7.6 broke a user.

That incident is real, but it is not an argument for this job — it is the opposite of one.

$ git show 0.13.2:pyproject.toml
dependencies = [
    "faststream>=0.7.1,<0.8",
    ...
]

0.7.6 is inside >=0.7.1,<0.8. The break came in at the top of the range, from resolving newest, which pytest and scheduled-dep-check already do — and a leg resolving lowest-direct would have installed 0.7.1, the version that was working, and passed. This job would not have caught it.

The floor moved to 0.7.6 in #182, and reading that commit confirms the direction: adapting to the new TestBroker.__init_subclass__(broker=...) hook made import faststream_outbox fail on 0.7.5, so the floor was raised to say so. The floor followed the code; it was not caught going stale.

Leaving it in place is worse than a stray inaccuracy — it is the comment a reader consults to decide whether the job is worth its matrix, and it argues for the job with an incident the job is blind to.

The replacement

This repo's own floor failure, the one #186 fixed:

# `sqlalchemy[asyncio]>=2.0` stayed declared after 3.13 made it fail at import.

Verified by running it — 3.13, wheel-only:

$ uv pip install --no-build 'sqlalchemy[asyncio]==2.0.0'
 + sqlalchemy==2.0.0
$ python -c 'import sqlalchemy'
AssertionError: Class <class 'sqlalchemy.sql.elements.SQLCoreOperations'> directly
inherits TypingOnly but has additional attributes {'__firstlineno__', '__static_attributes__'}.

It is a better example than the one it replaces on three counts. It is this repo's, not a sibling's. It is the failure mode only this leg reaches — pytest resolves SQLAlchemy 2.0.4x and never sees it. And it installs cleanly and then fails, so it is not covered by a wheel-coverage check either; you have to resolve low and actually run something.

The two surrounding sentences are untouched, and the comment stays the same length.

Verification

just install && just lint-ci && just test-ci against a local postgres 17: clean, 624 passed, 100% coverage. The workflow still parses and the lowest job's matrix is unchanged (3.113.14).

Noticed nearby, not fixed here

Two things I left alone so this stays a one-line diff, both worth a separate look:

The comment credited the 0.13.2 -> 0.7.6 breakage to the declared floor.
`git show 0.13.2:pyproject.toml` says `faststream>=0.7.1,<0.8`, and 0.7.6 is
inside that range: the break came from resolving newest, which `pytest`
already covers, and a leg resolving `lowest-direct` would have installed
0.7.1 and passed. The floor was raised to 0.7.6 in #182 because adapting to
the new API dropped support for 0.7.1-0.7.5, not because the floor was
untested.

Replaced with this repo's own floor failure, the one #186 fixed:
`sqlalchemy[asyncio]>=2.0` installs on 3.13 and then fails at import, because
SQLAlchemy's TypingOnly check rejects the `__firstlineno__` and
`__static_attributes__` attributes 3.13 added. Nothing but this leg installs
that version.

Comment only; no job behaviour changes.
@github-actions

Copy link
Copy Markdown

Benchmark gate

✅ gate passed

scenario msg/s delete/msg WALrec/msg WALB/msg fpi upd del dead_tup
consumer/w1/b10 910 1.000 6.79 918 242 5000 5000 10000
consumer/w1/b100 932 1.000 6.83 920 243 5000 5000 10000
consumer/w2/b10 1072 1.000 6.81 970 242 5000 5000 10000
consumer/w2/b100 1258 1.000 6.78 996 263 5000 5000 10000
consumer/w4/b10 930 1.000 6.68 922 243 5000 5000 10000
consumer/w4/b100 1421 1.000 6.87 1038 243 5000 5000 10000
consumer/w1/b100/tfbs100 4529 0.010 6.07 1116 243 5000 5000 10000
producer/w1/b100 2065 0.000 3.04 584 0 0 0 0

Gated (fails the build): delete_calls + tuple counters (upd/del/ins) + the producer's insert_calls, exact; select_calls within +2; wal_records within a 10% band. msg/s, WAL bytes and total calls are informational (timing/FPI noise).

This branch has not been deployed

No deployments
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.

1 participant