Bump httpx2 from 2.10.0 to 2.12.0 - #3481
dependabot[bot] wants to merge 1 commit into
Conversation
There was a problem hiding this comment.
LGTM — a mechanical Dependabot lockfile-only bump (httpx2/httpcore2 2.5.0 → 2.12.0) with no pyproject or source changes, exactly the shape the dependency policy sanctions.
What was reviewed:
- Confirmed pyproject's
httpx2>=2.5.0floor is untouched and the new resolution-markers split partitions the version/platform space without gaps or overlaps. - The new transitive
httpx2-jsfetchand the anyio/httpcore2/truststore exclusions are gated tosys_platform == 'emscripten', which no CI matrix leg or dev workflow runs on; a bare-transport httpx2 on emscripten 3.10/3.11 is upstream metadata, not a lockfile defect. - Checked the absence of
backports.zstdin the lock: uv resolves from published wheel metadata, so its absence means it's an optional extra upstream, and the pre-commit uv.lock consistency check plus hash-verifieduv syncin CI would catch any hand-edited entry.
Extended reasoning...
Overview
The diff touches exactly one file, /home/claude/python-sdk/uv.lock, in a single Dependabot commit. It bumps the locked httpx2 and httpcore2 from 2.5.0 to 2.12.0, adds emscripten-conditional markers to httpx2's dependencies (anyio, httpcore2, truststore excluded on sys_platform == 'emscripten'), adds the new transitive package httpx2-jsfetch 1.0 (only for Python >= 3.12 on emscripten), and splits the top-level resolution-markers block into three branches. The declared requirement in pyproject.toml remains httpx2>=2.5.0, so this is purely a refresh of the tested-against versions — the shape the repository's dependency policy explicitly sanctions for Dependabot lockfile bumps.
Security risks
The main risk class for a lockfile bump is a poisoned or substituted package entry. I checked what can be verified statically: every entry has a matching sdist+wheel pair hosted on files.pythonhosted.org with filenames that match the declared name and version, plausible sizes and upload times consistent with the release dates in the changelog, and the registry is pypi.org for all of them. Direct hash verification against PyPI was not possible in this sandbox (network commands were denied by the permission system), but uv verifies lockfile hashes at install time, so any hash that does not match the real registry artifact would fail uv sync on the first CI run rather than silently installing something else. The new httpx2-jsfetch dependency is the notable addition, but it is a transitive dependency declared by httpx2's own wheel metadata (matching the upstream 2.10.0 changelog entry adding Pyodide/emscripten support), and its marker gate means it is never installed on any environment this SDK develops or tests on.
Level of scrutiny
Low-to-moderate scrutiny is appropriate: lockfile-only Dependabot bumps are mechanical, but a minor-version jump spanning several releases (2.5 → 2.12) warrants checking that the resolution changes cannot break the CI matrix. I verified the three resolution-marker branches partition the space completely and disjointly (>= 3.14; 3.12–3.13 on emscripten; everything else below 3.14), and that all new marker conditions involve sys_platform == 'emscripten', which no leg of the 3.10–3.14 × {ubuntu, windows} × {locked, lowest-direct} matrix exercises. The two candidate issues investigated during the hunt (emscripten 3.10/3.11 losing both transports, and the missing backports.zstd) both trace to upstream httpx2 metadata rather than anything this lockfile could have gotten wrong: uv resolves mechanically from published wheel metadata, and the pre-commit uv.lock consistency check would flag any hand-edited dependency list.
Other factors
The bug hunt exited on dry_streak with zero findings. The PR timeline contains only the Dependabot commit — no prior reviews, objections, or unresolved threads. Any behavioral regression the new httpx2 introduced at runtime (e.g., new deprecation warnings) would fail CI outright, since pytest runs with warnings-as-errors and 100% coverage enforcement across the full matrix. Given the mechanical nature of the change, the policy explicitly blessing this exact kind of bump, and CI's hash verification providing the final integrity check I could not perform locally, this does not need a human's attention.
|
@copilot resolve the merge conflicts in this pull request |
Bumps [httpx2](https://github.com/pydantic/httpx2) from 2.10.0 to 2.12.0. - [Release notes](https://github.com/pydantic/httpx2/releases) - [Changelog](https://github.com/pydantic/httpx2/blob/main/src/httpx2/CHANGELOG.md) - [Commits](pydantic/httpx2@v2.10.0...v2.12.0) --- updated-dependencies: - dependency-name: httpx2 dependency-version: 2.12.0 dependency-type: direct:production ... Signed-off-by: dependabot[bot] <support@github.com>
8156640 to
4b21c4d
Compare
I checked the branch locally and |
There was a problem hiding this comment.
LGTM, straightforward lockfile bump of httpx2/httpcore2 from 2.10.0 to 2.12.0 after the rebase onto the merged httpcore2 2.10.0 bump.
What was reviewed:
- The only changes are
version, sdist/wheel URL, sha256, size and upload-time fields for the two[[package]]entries; dependency lists for both are unchanged. pyproject.tomlis untouched, so the publishedhttpx2>=2.5.0floor is unchanged and 2.12.0 satisfies everyspecifier = ">=2.5.0"entry in the lock.- The release notes'
backports.zstdchange does not appear as a new dependency in the lock, so it is confined to an extra this SDK does not use.
Extended reasoning...
The change touches only uv.lock, moving the httpx2 and httpcore2 package entries from 2.10.0 to 2.12.0 with updated artifact URLs, hashes, sizes and timestamps; no source, test, or pyproject.toml lines change. It touches no security-sensitive surface. The diff is a 6-line mechanical Dependabot refresh with unchanged dependency lists and no CODEOWNERS file in the repository, and the new commit is a rebase onto the already-merged httpcore2 2.10.0 bump, which is why this qualifies for approval rather than a human look. Lock consistency could not be re-run in this sandbox, but the pre-commit uv.lock check and the locked/lowest-direct CI matrix cover that.
Bumps httpx2 from 2.10.0 to 2.12.0.
Release notes
Sourced from httpx2's releases.
... (truncated)
Changelog
Sourced from httpx2's changelog.
Commits
71ae23bVersion 2.12.0 (#1147)4fd0c70Decode compressed response bodies incrementally (#1126)d588e52Usebackports.zstdon Python 3.13 and earlier (#1146)344589dVersion 2.11.0 (#1143)de96d81Validate multipart part headers (#1142)51c3269Require brotli 1.2.0 in the brotli extra (#1141)829b93aRespect explicit Transfer-Encoding headers (#1137)4fa6c8eFix changelog extraction regex for H2 release headings (#1136)8a6f370Restore deprecated status code aliases (#1135)d03f1ecAdd public Origin API (#1134)