Skip to content

Capture runtime and HTTP testing lessons from the Ruff rollout - #5

Merged
adewale merged 1 commit into
mainfrom
docs/ruff-rollout-lessons-20261009
Oct 9, 2026
Merged

adewale merged 1 commit into
mainfrom
docs/ruff-rollout-lessons-20261009

Conversation

@adewale

@adewale adewale commented Oct 9, 2026 •

Copy link
Copy Markdown
Owner

What

Append dated CI reliability and runtime compatibility findings to the existing lessons document, and make them discoverable from the README.

Why

The fixes in #2 restored CI, but the durable lessons need to explain why the local HTTP server is real integration coverage, how startup drift was resolved, and what the green suite does not verify.

How

  • Preserve the existing six historical entries and add findings dated 2026-10-09 in the same format.
  • Record actual header-echo traffic, checks before the known-bug xfail, tool versions, request-time FastAPI initialization, and process-group cleanup.
  • Link the merged revision and successful PR/post-merge runs; state deployment-only skips and negative-control limitations explicitly.
  • Link shared rules and the cross-project retrospective rather than duplicating them here.

Validation

  • uv run ruff check . and staged diff whitespace checks pass.
  • Reviewed claims against the merged implementation and CI evidence.
  • Full unchanged integration suite and Ruff passed in GitHub CI: 2 passed, 3 skipped, 1 xfailed.
  • Documentation only: no runtime, dependency, workflow, or application UI changes. Screenshots are not applicable.

Dependency and risk

Low. Merge python-workers-examples #3 first: its shared documents are the targets of the new main links. This PR records the still-reproduced httpx bug; it does not claim to fix that platform behavior or to have run the skipped deployment tests.

@adewale
adewale merged commit 44e8c71 into main Oct 9, 2026
1 check passed
adewale pushed a commit that referenced this pull request Oct 10, 2026
…udit-fixes

Conflicts resolved by asking whether main already does what this PR did:

- Ruff pin (pyproject.toml, uv.lock, .pre-commit-config.yaml): main's
  0.16.0 supersedes this PR's 0.15.2. Took main's.
- ci.yml: main already runs `uv run ruff check .` in its test job. The
  PR's separate `lint` job is dropped; its remaining hooks (ruff format,
  codespell, file hygiene) run as one step in main's test job with
  SKIP=ruff, so each check runs exactly once. Main's uv 0.12.3 pin and
  UV_PYTHON stay; the PR's warm-every-directory install loop stays.
- 2-fastapi-r2-streaming: main fixed the FastAPI >=0.142 startup failure
  by importing the app inside the request handler (src/app.py), so the
  PR's fastapi<0.142 pin there is dropped. The PR's word-pattern /seed
  data moves into src/app.py.
- 4-r2-large-binary-roundtrip: main did not change its module-level
  FastAPI import, so the fastapi<0.142 pin is kept on top of main's
  dependency list (webtypy removed, workers-py pinned).
- 5-sync-http-libraries and test_5: main's ECHO_URL Worker variable and
  header_echo_server fixture supersede the PR's request-controlled
  ?echo= override, its loopback validation, tests/echo_server.py and the
  live httpbin.org call (main removed httpbin from CI on purpose). Took
  main's entry.py, README and test_5; deleted tests/echo_server.py.
- test_3: main's echo-server assertions plus the PR's strict xfail
  marker and PlatformBugReproduced.
- tests/conftest.py: main's ECHO_URL wiring and process-group teardown;
  the PR's output-drain thread and early-exit error for startup.
- LESSONS_LEARNED.md: main's entries 7 and 8 kept; the PR's entries are
  renumbered 9 and 10.
- Lockfiles regenerated with `uv lock` (uv 0.12.3), not hand-merged.

Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
Claude-Session: https://claude.ai/code/session_012eisRQmQvg4TphwztxhQGJ
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