Skip to content

h11 dependency pinning causes weird cycle #1007

@grigi

Description

@grigi

Using both pip-tools or uv when trying to resolve dependencies where using uvicorn and httpx as a dev dependency will get confused and downgrade to httpcore 0.13.2 which is ancient.

I'm not 100% sure how this happens, but we had it on two separate codebases this morning. (one using uv and one using pip-tools).

It seems to stem from having a loose httpcore and h11 requirement on both cases (via e.g. uvicorn) where both resolvers prioritise h11 as it was pinned first and then the first version of httpcore that meets requirements is 0.13.2, it then also pulls in httpx to 0.25.1 as that's the higest version that doesn't require httpcore>1.
This results in a broken build as httpx needs the newer httpcore.

Looking at h11 it recently had a bunch of cleanup work done, in response to a reported cve, and has been api-stable for years now, so might be safe to relax the pin of it here.

Metadata

Metadata

Assignees

No one assigned

    Labels

    No labels
    No labels

    Type

    No type

    Projects

    No projects

    Milestone

    No milestone

    Relationships

    None yet

    Development

    No branches or pull requests

    Issue actions