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.
demesisx
Replying to this comment using Memmy.
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.
How long until nix flakes go mainstream and fix this problem?
Why this film still holds up in the 2020’s: Kubrick insisted on shooting EVERYTHING on camera originals. Everything was on the first generation. He refused to have generation loss. It was like the “Abbey Road” of movies.
2001’s “optical” process (as I understand it):
-
shoot an element behind a matte
-
mark the film frame
-
take the film out and put it in cold storage
-
build/paint the set that fills the outer part of the matte using the matte as reference
-
Put the film back in and shoot the other element of the shot
-
develop the film
Summary: When a large black monolith is found beneath the surface of the moon, the reaction immediately is that it was intentionally buried. When the point of origin is confirmed as Jupiter, an expedition is sent in hopes of finding the source. When Dr. David Bowman discovers faults in the expeditionary spacecraft's communications system, he discovers more than he ever wanted to know.
https://en.m.wikipedia.org/wiki/2001:_A_Space_Odyssey_(film)
Me too! 😅 The previous one was better but it had a tiny white border on two sides that looked slightly off.
I’ll try to start formatting these better. Thanks for creating this cool community.
Thanks!
Do you have a link?
Is the code open source? What language? Looking it over would teach me quite a bit.
No offense but it sounds like you don’t actually understand nix flakes if you think they’re 1:1 equivalent to Docker.
They simply are not containers. They allow the declarative BUILD of any derivation at any time in the future. They hermetically lock all dependencies and build instructions which allows you to archive and reproduce the EXACT content-addressed dependency graph of the software. You can rebuild using a flake while Docker doesn’t actually allow that same hermetic reproducible guarantee whatsoever.
See here for a much better explanation of the glaring differences between the two: https://youtu.be/0uixRE8xlbY
You could even build a container with a flake though I’d recommend OCI instead because they’re an open standard...