Oh boy. Something is got to change in making software.
Oh boy. Something is got to change in making software.
Really though, with the nix package manager (https://nixos.org/), if anyone at any point in time had a working nix package for a given program, and as long as all the inputs (source code) are still either online or cached somewhere with the same sha256, it's possible to get the exact same output.
This works with very few exceptions. Some things, like systemd dbus calls, runtime calls to an internet api that might have changed, other runtime impure things, will of course be exceptions. But in general, there aren't other exceptions. It doesn't matter if your computer has python3.9 installed, nix doesn't mind using python3.6.5 for one old package.
So yeah, nix solves exactly the problem you're complaining about. I agree something's broken in other distros, but nix fixes it.
Note, others will say containers solve this, and that's also sorta true. If someone had a docker image laying around with exactly that version of software installed and working, and you can still download said image, you'll get a working setup that way. But actually rebuilding the container (unless it's built with nix) is unlikely to be as nicely reproducible, and it misses some nice properties as a result.
Also, I can see why you might get downvoted since this isn't really that relevant to the post. It's not just free software that suffers from the problem of shipping and packaging software being a space full of unreproducibility and incompatibility
Because this is not relevant with the topic at all?
This is exactly why the proprietary software like Windows is so bad for you
How does this relate in any way to "proprietary vs free/libre" software used in classes?
Open source sw these days: several versions, constant tweaking, works so-so (depends on the software), semi-professional developers working on it (I am not saying they're not good) or amateurs (with amateur designs), not for profit, of course. EDIT: remove double 'multiple versions'.
OSS: You can still manage to sorta make it work
I guess my point is, if the software GP talked about was proprietary, he wouldn't have known what was wrong in the first place.
For the case of numpy, some pretty obscure functions must have been used then. Usually there will be deprecation warnings ahead of time and a bit ofsearching will clear up, what you should use instead, going with later versions. Also they don't simply remove the dot product or something.
So that's why I think an example would help your post and make people understand that specific case.