frontpage.
newsnewestaskshowjobs

Open Source @Github

fp.

Open in hackernews

A plea not to use uv-build

https://blogs.gentoo.org/mgorny/2026/10/12/a-plea-not-to-use-uv-build/
39•Ravencentric•1h ago

Comments

woodruffw•52m ago
To copy my response on Lobsters:

(I am one of uv’s maintainers.)

The nice thing about Python packaging is that it’s standardized: if uv’s build backend doesn’t fit into the hole you want, then you can use any number of other backends that do an admirable job of conforming to the packaging standards.

With that said, I don’t understand why Gentoo needs to rebuild every single release of uv-build. It doesn’t change as much as uv itself, and it’s intentionally compatible across uv versions. Why not set a policy of only updating once weekly, or even less frequently, with exceptions for important breaking changes or bug fixes?

(For context: the only reason uv-build releases as often as it does is because it’s easier to keep its internals in lockstep with the rest of uv. But you can do a normal version bound in your Python build backend metadata and uv will happily use whatever version of uv-build is already present.)

ForHackernews•51m ago
Is Gentoo one of those compile-everything-from-source distros?
r_lee•45m ago
I'm pretty sure that is the entire purpose of Gentoo
collinfunk•44m ago
Yeah, it has binary packages nowadays as well, though.
pjmlp•21m ago
They basically started it all, that was what made Gentoo different from everyone else.
tfrancisl•2m ago
Yes, and unlike NixOS they dont calculate build hashes for the sake of making binary caches. So truly, you have to build from source, even if your recipe is exactly the same as everyone else's. I've never really understood this zealotry around compiling things myself, and boy are there some big (slow to compile) programs out there these days.
p_l•33m ago
The problem is packages that use the build backends, and Gentoo is generally not in the business of maintaining that kind of patch.

Admittedly rustification like that is a problem not only for gentoo, I have commercially deployed systems where one of the most annoyings elements of updating is presence of rust in python deps...

woodruffw•30m ago
I think that’s actually a different problem: packages that use uv-build for their backend should use a semver range, which enables the kind of “pick a version and use it” strategy I mentioned before.

(This is the default when you initialize a project with uv, so I think someone would need to go out of their way to configure their build backend to request a specific patch version of uv-build.)

pdonis•5m ago
> packages that use uv-build for their backend should use a semver range

This wouldn't necessarily solve Gentoo's problem. The only way to be sure to solve Gentoo's problem would be for every Python project that uses uv-build to specify one particular version. Then Gentoo could be sure that once that release of that project was built once, it would never change.

In other words, for a distro like Gentoo, the build backend is a dependency, and if it changes, that triggers a change in the build, even if the build backend change would not actually change the final wheel that got built.

arto•27m ago
I hear you, but realistically the rustification of Python package internals is only going to strongly increase over the next year (I'm working on a number of such packages, myself), so systematic solutions to such annoyances are going to become increasingly necessary
crabbone•15m ago
You pretty much opened with a... I'm sorry for a strong word, but it is what it is... a lie.

No. Python packaging isn't standardized. Tools aren't interchangeable. And they are all bad, uv including. I wish it didn't exist, so that there were fewer problems for people like me, whose job is, essentially, working around the problems created by people who build tools like uv and people who mindlessly adopt them.

To answer to your specific arguments: nobody is going to believe that your proposed solution is going to hold water longer than it takes for milk to go sour. Too many people, too often had burned on Python packaging tools to trust some tool not to break, to be consistent etc. Without even realizing it, you suggested that someone else should use a crutch to work around the problem you created, and you expected them to just go along with the flow and live by the bottom of the barrel lowest possible "standards" that exist in Python packaging world. No wonder they don't want uv-build... why would any sensible person want it?

woodruffw•9m ago
Python build backends are standardized in PEP 517, and packaging metadata is standardized in PEP 621. You can read the actual metadata PEPs for “computed” metadata i.e. the metadata that appears in distributions as well, if you’d like.

(It’s not kind or charitable to call someone a liar.)

pdonis•10m ago
> The nice thing about Python packaging is that it’s standardized

But it isn't. Once upon a time, it was: you used distutils. But of course distutils had a lot of problems. Instead of adopting a single standardized solution for those problems, the Python developers punted and let third parties do it. So now we do not have a single standardized solution for building Python packages; we have a bunch of third party solutions, none of which is in the Python standard library.

Yes, all those third party solutions have to be PEP 517 compatible, but that's not standardization on a tool; it's just standardization on an interface between the backend and the frontend. Which is nice, but doesn't solve the problem under discussion here.

> if uv’s build backend doesn’t fit into the hole you want, then you can use any number of other backends that do an admirable job of conforming to the packaging standards.

As the project developer, sure. But as a Linux distro building your python package, Gentoo has to use the build backend you specify. It can't say, well, this particular package is just pure python, so really all we need is a minimal tool to build a pure python none-any wheel. It has to use the backend you specified.

> I don’t understand why Gentoo needs to rebuild every single release of uv-build.

Because if you don't pin a version of uv-build in your project, that means "use the latest version available". Gentoo can't second guess you--even if it were able to verify somehow that the new version of uv-build that just got released will end up producing an identical wheel for your project as the previous version, without actually using the new version of uv-build.

> you can do a normal version bound in your Python build backend metadata

Sure, but how many users of uv-build actually do that? Seems like the answer to that is "not enough to matter".

woodruffw•4m ago
I linked to some of the relevant standards below.

At the end of the day, it’s hard for me to even pinpoint what is problematic for Gentoo here: I can understand that they need to support multiple build backends as a reality of Python packaging and that’s frustrating, but per below it seems extremely unlikely that they actually need to build every single patch version of uv. Nothing about uv’s defaults or the packaging template would require that, and users would have to go out of their way to configure their build backend in that way.

(And note: this is not unique to uv! You can grief anybody who does an sdist build by pinning to a random ancient version of setuptools or any other build backend, including other ones that use native code. This is why uv, like everybody else, encourages semver ranges for build backends.)

throwawayy6767•50m ago
Maybe it's time to grow up and download binary builds like a normal person. I had my 'let's compile the linux kernel from source for 3.5% hypothetical performance gains' phase but you can't expect professional devs to cater to source-obsessed hobbyists
bmenrigh•34m ago
I doubt this oft-repeated stereotype was every particularly accurate. I'm not aware of any current Gentoo users on the distro specifically for performance reasons. Gentoo users are in it for control over their system and customization.
lostapathy•32m ago
Gentoo made a lot of sense WAY back in a pre-docker world, where you had to run the whole world on the host OS. Being able to compile it all meant you could link it all together with whatever weird combination of optional libraries you wanted. Things like getting sendmail to auth over LDAP, that nobody packaged in the base distro, become possible. And with Gentoo's tooling, you could build a coherent distro to your own unique demands.

Now though? It's way easier to have a herd of unicorn docker containers running that each handle one weird thing in isolation.

weinzierl•21m ago
The herd of docker containers would in practice share almost nothing apart from the kernel and waste a lot of RAM. Didn't matter when RAM was cheap, but nowadays...
Cyph0n•22m ago
Or adopt the Nix approach of caching common binary artifacts in a content addressable store and rebuild from source only when needed.
nimish•23m ago
I'm not sure that skipping SPARC is a bad thing. Who even has SPARC machines sitting around to validate builds? Even Fujitsu moved to ARM for their later cores.
pjmlp•19m ago
Wait until he discovers that CPython is actually taking Rust in, see recent PyCon talks on the matter.
woodruffw•16m ago
I think mgorny is aware of that; he’s been active on the relevant DPO threads.

(At the end of the day, this is exactly what support tiers are for. CPython, at least to my eyes, has been very transparent about not guaranteeing support for every platform that has a C compiler.)

Gemini 4 Argon

https://deepmind.google/models/gemini/
632•737max•3h ago•519 comments

Apple HomeView

https://www.apple.com/apple-homeview/
543•etothet•6h ago•671 comments

Thunderbird for iOS

https://blog.thunderbird.net/2026/10/thunderbird-for-ios-a-first-look-at-the-native-iphone-email-...
230•mjorgers•4h ago•81 comments

A plea not to use uv-build

https://blogs.gentoo.org/mgorny/2026/10/12/a-plea-not-to-use-uv-build/
39•Ravencentric•1h ago•22 comments

Ledger confirms spy chip implant behind wallet crypto thefts

https://www.bleepingcomputer.com/news/security/ledger-confirms-hardware-wallet-spy-implant-behind...
122•thm•1d ago•163 comments

Redesigning source control at Anthropic

https://www.anthropic.com/engineering/redesigning-source-control
246•Philpax•4h ago•216 comments

11 year old unsoundness bugs found in Rust borrow checker

https://github.com/rust-lang/rust/issues/164250
601•formerly_proven•9h ago•340 comments

I posted to HN, and then my website was flooded with AI bot traffic

https://www.sammystraus.com/#i-posted-to-hn-and-then-my-website-was-flooded-with-ai-bot-traffic
157•sammy0910•4h ago•91 comments

Firefox Enterprise

https://www.firefox.com/en-US/enterprise/
483•recvonline•7h ago•195 comments

Show HN: Guitoro, a virtual guitar you strum with your keyboard

https://guitoro.com/
15•talccc•38m ago•2 comments

We turned EmbeddingGemma 2 into a speech-to-text model

https://eg2.haku.sh/
343•amrrs•8h ago•81 comments

Coris (YC S22) Is Hiring Back End Engineer

https://www.ycombinator.com/companies/coris/jobs/h0nDly8-backend-engineer-ai-native-risk-infrastr...
1•smaddali•2h ago

New Apple TV 4K

https://www.apple.com/newsroom/2026/10/apple-unveils-the-new-apple-tv-4k/
208•corvad•6h ago•411 comments

Gemini 4 Argon for Robotics

https://developers.googleblog.com/gemini-4-argon-for-robotics/
121•xnx•2h ago•23 comments

MIT class project turns into an FDA-cleared treatment for tremors

https://news.mit.edu/2026/mit-class-project-turns-into-fda-cleared-treatment-for-tremors-1002
71•zdw•1d ago•11 comments

The United Kingdom generates less electricity per person than in the 1970s

https://ourworldindata.org/data-insights/electricity-generation-per-person-in-the-united-kingdom-...
91•karakoram•4h ago•74 comments

A Dynamic and Distributed Virtual GPU Cloud Built on Idle Apple Silicon Devices

https://machinelearning.apple.com/research/distributed-gpu-cloud
193•acossta•7h ago•82 comments

Apple's new 'Switch to Safari' campaign details why you should ditch Chrome

https://9to5mac.com/2026/10/12/apples-new-switch-to-safari-campaign-details-why-you-should-ditch-...
82•ivell•5h ago•130 comments

Show HN: How Random Are You?

https://lab.specr.net/rigged-draw/
41•vunderba•2h ago•19 comments

Launch HN: Consus (YC F24) – LLM gateway for companies handling sensitive data

27•ericmags•4h ago•15 comments

Show HN: XY Music Notation

https://music.xy.dev/
17•jmole•2h ago•14 comments

The Four Colour Theorem: The first time machines mogged mathematicians

https://newsletter.pessimistsarchive.org/p/the-1st-time-machines-mogged-mathematicians
4•list•33m ago•1 comments

Zero to Calc in Six Days: Inside XBOW's Chrome Full Chain

https://xbow.com/labs/research/zero-to-calc-in-six-days-inside-xbow-chrome-full-chain
11•ollin•1h ago•1 comments

How to engineer an AI harness for game development

https://kylekukshtel.com/ai-harness-engineering-game-development-claude-code
70•kkukshtel•5h ago•23 comments

Worlds more habitable than Earth?

https://www.nytimes.com/2026/10/13/science/inhabitable-planets-solar-system.html
48•cainxinth•7h ago•87 comments

Show HN: Spotatui, a Spotify TUI/GUI without web API rate limits

https://github.com/LargeModGames/spotatui
5•LargeModGames•8h ago•0 comments

Character.ai has initiated voluntary Chapter 11 bankruptcy

https://blog.character.ai/an-update-on-character-ai/
214•nryoo•12h ago•237 comments

Hittite royal archive found in Turkey

https://www.thehistoryblog.com/archives/77107
308•benbreen•13h ago•79 comments

Show HN: Use your OpenAI subscription to create audiobooks

https://pdftomp3.com/connect-ai/
146•janpmz•9h ago•75 comments

AI is a tool and using it well takes skill

https://yyhh.org/blog/2026/10/ai-is-a-tool/
620•layer8•22h ago•484 comments