Comment by simonw

19 hours ago

Anthropic made the same change a few weeks after OpenAI did: https://github.com/anthropics/anthropic-sdk-python/releases/...

The problem with httpx as a dependency is that it's currently working towards a 1.0 release which will be full of breaking changes.

The httpx2 project is essentially a fork that promises not to break the existing API, which makes it a more stable dependency to build against.

I wrote a pretty long comment about my concerns for the breaking 1.0 version last year - https://github.com/encode/httpx/discussions/3344#discussionc... - in that comment I recommended the HTTPX project release their 1.0 as a package called httpx2 instead, but a year later we now have an httpx2 (released by a different maintainer) that keeps the old API.

> The problem with httpx as a dependency is that it's currently working towards a 1.0 release which will be full of breaking changes.

The httpx maintainer closed off access to issues and discussions on the repo, has been ignoring PRs, and hasn’t updated it in a half a year.

I don’t think there is any reason to consider httpx as a viable project any more. The Pydantic httpx fork has taken its place.

  • HTTPX stable hasn't had a release since December 2024, but there have been two dev releases of the 1.0 branch this month (after a gap since September 2025.)

    Unfortunately that 1.0 work is happening in a private repository.

    https://pypi.org/project/httpx/#history

    • > Unfortunately that 1.0 work is happening in a private repository.

      That’s even more reason to consider it non-viable.

      There is no reason to encourage or support this type of behavior in a project. It is their right to do with it as they please, but I’m not interested in a project that functions like this. The forks are continuing to operate like true community projects.

      6 replies →

  • unbelievable, how can a single person affect negatively FOSS so much?

    I mean really, closing repos? excluding maintainers? committing only on private repos?

    This type of behavior should be moderated and banned from any FOSS activity to avoid exactly this situation of becoming a liability.

    I've never seen a open source project page without a github link or a git clone ref like this https://www.encode.io/hx/ it is so ridiculous, wasn't that stuff on github? and isn't it anyway there due to over 1k forks?

    what's the advantage of having this behavior? I see it only damaging towards the person, the project and the community.

    • > how can a single person affect negatively FOSS so much?

      FOSS is not affected negatively.

      First because FOSS is not en entity in the first place. There is no "community" per se but a muriad of softwares choosing open source licences for various reasons.

      Second because the choices of one project maintainer is negligible.

      > This type of behavior should be moderated and banned from any FOSS activity

      Banned by who and where?

      > I've never seen a open source project page without a github link or a git clone ref

      Now I understand. You must be new. How old are you? 10? FOSS has existed way before github and will probably still exist when github will be forgotten. There are still many open source projects not using github, some do not even use git.

      > what's the advantage of having this behavior?

      Not having to deal with external input, PRs, bug reports seems to be a good example.

      > I see it only damaging towards the person

      Which person? The maintainer? I highly doubt so.

      > the project

      The project will be fine as long as the maintainer wants it to be active. This is the only thing that counts.

      > and the community.

      Which community? Other devs? They can (and do) fork when they wish to do so.

    • This level of entitlement is the reason that FOSS has a maintenance / support epidemic. Maintainers don't owe you anything. They put the work in, not you.

So I guess HTTPX2 (https://github.com/pydantic/httpx2) is winning out over HTTPXYZ (https://codeberg.org/httpxyz/httpxyz)? I didn't switch to HTTPXYZ after the fork but have been watching it. (What I did was use urllib.request more and bite the Rust bullet with wreq, https://github.com/0x676e67/wreq-python, where it wasn't enough.)

  • in their README >Important

    We started this fork because there was no activity on HTTPX, a very popular Python HTTP library.

    A few weeks later, Pydantic started their own fork called HTTPX2. We decided to embrace this and support HTTPX2. We're upstreaming our fixes to HTTPX2 and in our opinion it should be the "blessed" fork. Pydantic can make this more successful than we ever can.

    See also https://tildeweb.nl/~michiel/httpx2.html

    Thanks for all your support!

    Sander & Michiel

"I recommended the HTTPX project release their 1.0 as a package called httpx2 instead, but a year later we now have an httpx2 (released by a different maintainer) that keeps the old API"

wtf is going on

A bit strange considering "coding is solved".

But seriously, migrating between different libs should be ~free for both Anthropic and OpenAI.

  • A migration document like this one is how you get that ~free upgrade - it's something you can point an agent at.

The Python community loves confusing versioning.

I mean, obviously Python 2.7 is newer than Python 3.1

I remember swearing I would never migrate to python3 but here we are, I migrated without even feeling it or realizing when (But I do remember django played a big role).

  • That isn't confusing at all, if you know how maintained stable releases work.

    Happens with the Linux kernel as well.

  • There are a lot of large projects where X.1 is newer than Y.0. You release a new major version for breaking changes, but you backport security changes to previous major releases as well.

  • Isn't that whole point of semantic release?

    Minors and hotfixes allow you to release a new version for an older release (like if you released 3.7 but you found a bug present in 3.4, you can release 3.4.1 which would be newer than 3.7), making it possible to have multiple supported versions at the same time.

  • Tangibly related, did you know that odd versions of node don't get LTS, I found it odd at first

  • That’s probably the worst example you could have chosen.

    You shouldn’t assume anything about relative date of 2.7 and 3.1.