this post was submitted on 01 Jul 2023
181 points (96.9% liked)

Programmer Humor

32018 readers
446 users here now

Post funny things about programming here! (Or just rant about your favourite programming language.)

Rules:

founded 5 years ago
MODERATORS
 
you are viewing a single comment's thread
view the rest of the comments
[–] demesisx 2 points 1 year ago (1 children)

Nix flakes do that. The flake.lock file automatically pinpoints not just specific versions but specific builds of each package and locks them to their hash. It will also soon be content-addressed by default which would mean that each derivation takes into account the contents of the entire dependency tree and how they relate to one another.

[–] fabius 2 points 1 year ago (1 children)

They technically do, but let's say I want to have kubectl v1.10 and go v1.0 among others. Some packages do get packaged multiple times for each version. Most don't. Then you end up hunting down build hashes for each version using tools like https://lazamar.co.uk/nix-versions/ which work I guess but the UX is not great. Talking about this with my colleagues, most won't bother until you can declaratively list tools and versions directly

[–] demesisx 2 points 1 year ago

Correct me if I’m wrong: in my understanding, you could also package your own custom derivation from scratch that would do that. I agree that the UX is clunky at best but (in my perhaps incomplete understanding) you can do that today.