Skip to content

wreq: Add version 0.12.1 - #2546

Merged
luhenry merged 4 commits into
mainfrom
wreq
Oct 2, 2026
Merged

luhenry merged 4 commits into
mainfrom
wreq

Conversation

@luhenry

@luhenry luhenry commented Sep 30, 2026 •

Copy link
Copy Markdown
Member

Compiles the wreq-python PyO3 extension, which statically links BoringSSL through btls-sys. Upstream publishes no riscv64 wheel.

Mirrors upstream's ci.yml (manylinux and tests jobs).

Differs from upstream

  • musllinux dropped - rustup ships no riscv64 musl host toolchain.
  • dnf install clang-devel git - btls-sys needs libclang for bindgen and git to patch BoringSSL.
  • wreq crate pinned to 6.0.0-rc.29 - Cargo.lock is gitignored; the release sdist locks rc.29.
  • CARGO_BUILD_JOBS=2 - limits rustc memory on the riscv64 runners.

Matrix: cp311-abi3 (built on cp312, tested on cp312-cp314) and cp314t, matching upstream's wheel set.

Testing

  • httpbin runs under gunicorn in the test container on localhost:8080 instead of upstream's service container (the kennethreitz/httpbin image also serves it with gunicorn; httpbin rejects chunked requests with a 501 on any other server, which breaks the streamed-body tests).

License: Wheel statically links BoringSSL (ISC/OpenSSL-style), same as upstream's wheels.

Both matrix include entries only added new keys, so the second overwrote the first and the job built cp314t alone. Make tag a real axis.
@github-actions

github-actions Bot commented Sep 30, 2026 •

Copy link
Copy Markdown
Contributor
PR Preview Action v1.8.1
Preview removed because the pull request was closed.
2026-10-02 07:05 UTC

@luhenry
luhenry force-pushed the main branch 3 times, most recently from 39fb7ba to a75cf68 Compare October 1, 2026 15:22
…path

multipart_test.py, request_test.py and response_test.py all build request
bodies from these three repo-root files via a path relative to the repo
root; CIBW_TEST_SOURCES only staged tests/, so every one of those tests hit
a FileNotFoundError, surfaced as a DecodingError once that exception inside
the async body-stream left httpbin nothing to respond with.
test_send_async_bytes_stream, test_send_sync_bytes_stream and
test_multiple_requests still failed on both legs after the test files
were staged: the httpbin log shows each of their POSTs answered with a
501. Those tests send a streamed body, so the request goes out with
Transfer-Encoding: chunked, and httpbin's before_request hook aborts any
chunked request with 501 "Chunked requests are not supported" unless
SERVER_SOFTWARE starts with gunicorn/. `python -m httpbin.core` runs it
on the Werkzeug dev server, so it always takes that branch.

Upstream's tests job runs httpbin from the kennethreitz/httpbin
container, which serves it with gunicorn, so do the same here: install
gunicorn (pure Python) next to httpbin and start httpbin:app with it on
127.0.0.1:8080. The gthread worker keeps keep-alive connections and
concurrent requests working.

Also correct the CIBW_TEST_SOURCES comment, which blamed the
DecodingError on the missing files rather than on the 501.
@luhenry
luhenry marked this pull request as ready for review October 2, 2026 02:38
@luhenry
luhenry merged commit 18892d7 into main Oct 2, 2026
13 checks passed
@luhenry
luhenry deleted the wreq branch October 2, 2026 07:01
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