from Hacker News

Setuptools version 78.0.1 breaks install of many packages

by computronus on 3/24/25, 4:00 PM with 12 comments

  • by lopuhin on 3/24/25, 5:49 PM

    Crazy amount of breakage...

    Here is a PR which reverts this: https://github.com/pypa/setuptools/pull/4911

    Interesting that maintainers of setuptools still only postpone the depreciation date for a year, so we can probably expect more issues like this in the future.

  • by andenacitelli on 3/24/25, 6:41 PM

    From what I gather this has basically derailed CI for the morning for the majority of places out there. Only workaround is pinning build-time dependencies, which only pip and uv seem to let you do well. Poetry is SOL / heavily cache-dependent as to whether it works.
  • by andenacitelli on 3/24/25, 8:20 PM

    They yanked the relevant change and pushed a new one with a revert, this is now resolved

    Took them seemingly forever to do. The reversion, sure, that might take a bit to proof, but the yank should have been done way sooner

  • by brtkwr on 3/24/25, 5:26 PM

    Probably 78.0.0 as well which was released yesterday. The diff between 78.0.0 and 78.0.1 appears to be no-op from user perspective https://github.com/pypa/setuptools/compare/v78.0.0...v78.0.1
  • by computronus on 3/24/25, 4:02 PM

    The original report is just for ansible-vault, but comments indicate widespread effects, hence the altered title here.
  • by jarboot on 3/24/25, 7:43 PM

    The current approach of the maintainers terrifies me -- de facto standards should be respected. Even if something is invalid like `description-file`, if it is present in 12k repos it should raise a warning and not break anything.

    In the rationale for this that I can find [1], a maintainer says the following:

    > I'm inclined to say we should do it, even though it will cause some disruption.

    They also say an alternative is to "accept the status quo", which is exactily what they should be doing. I can't find maintainers giving a compelling reason not to support this status quo of `long-description` as an alias to `long_description` besides "simplifying code." Code simplification should never take precedence over massive breakage of compatibility.

    [1] https://github.com/pypa/setuptools/pull/4870#pullrequestrevi...