Probe real libraries under the simulation and publish what happens - #14
Merged
Conversation
probes/ drives each library's happy path on a SimLoop and reports one verdict line: works, fenced (with the exact fence message), or fails. aiohttp serves a GET over the sim network, anyio's asyncio backend runs task groups and streams, and the Redis wire protocol round-trips over sim streams; the client stacks stop at sock_connect or name handling, and docs/compatibility.md records each outcome verbatim with pinned versions and regeneration instructions. Dev-only throughout: the probe dependencies live in their own group, nothing ships in the sdist, and CI never runs them.
aiohttp's documented TCPSite path and websockets both moved to works, and httpx's row now records where its stack actually stops: the connect succeeds, then anyio reads the raw socket object off the transport to report addresses and the simulation's honest answer is None.
sim.random, sim.uuid4 and sim.time have been part of the package since 0.1.0 but the README never said so.
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.
Adds
probes/— a dev-only harness that drives each library's happy path on a SimLoop and records one verdict line:works(what was exercised),fenced(the exact fence message), orfails(the exception).docs/compatibility.mdpublishes the table verbatim with pinned versions, a date, and instructions to regenerate; the README's honest-limits section links to it.The current table, after the two unlocks the probes themselves motivated (#12's encoded-hostname fix and #13's
server.sockets):loop.create_serverand the documentedTCPSitepath), anyio's asyncio backend, websockets over ws://, and the Redis RESP wire pattern over sim streamssock_connectfence — verbatim message in the doc)Probe dependencies live in their own exactly-pinned
probesdependency group (a plainuv run pytestnever installs them), nothing enters the sdist (packaging tests untouched and passing), probes are deliberately not in CI, and mypy strict coversprobes/identically with or without the group installed.233 fast + 10 slow pass, mypy strict clean, with and without the probes group.