The plan for merging CoreOS into Red Hat
The plan for merging CoreOS into Red Hat
Posted May 12, 2018 1:01 UTC (Sat) by lsl (subscriber, #86508)In reply to: The plan for merging CoreOS into Red Hat by nim-nim
Parent article: The plan for merging CoreOS into Red Hat
It's a bit more nuanced than that. For direct module imports, vgo will actually choose the most-recent version available. It's only for transitive dependencies that the Minmal Version Selection algorithm developed for vgo may choose a version such that you can call it "most ancient".
The actual innovation in vgo is somewhere else, though: not that long ago, no one thought you can get away with a package manager without tackling the NP-complete problem that lurks within version selection and causes package managers to employ weird heuristics, full-blown SAT solvers or (most likely) both.
The MVS algorithm implemented by vgo does (naturally) impose some constraints on programmers but they're workable ones. Its simplicity is very refreshing. Simple enough to perform it in your head. Iterate over the list of declared dependencies, for each module keeping track of the newest version that was actually referenced.
This predictability is a really nice property. There's also an obvious way to get a newer version of some module: require it. Contrary to most other systems, this is guaranteed to not result in unsatisfiable version requirements.
Posted May 12, 2018 4:19 UTC (Sat)
by nevyn (guest, #33129)
[Link] (4 responses)
Eh, this is a weird Apples/Oranges thing IMO. I understand why pip/gems decide to call themselves a package manager, even though they do very different jobs than normal package managers ... but go just isn't one. Very few people are building N different go projects at the same time, and any that are should be using containers anyway at this point in time. This is hardly the same task as having to install httpd and sshd on the same machine (even when you take out all of the main parts of package managers that pip etc. don't even bother with).
Posted May 12, 2018 12:55 UTC (Sat)
by lsl (subscriber, #86508)
[Link]
The vgo solution only works in the context of language-specific dependency installation tools, where you don't have to deal with arbitrary software written by people that don't give a shit about the conventions you'd like to establish.
Posted May 15, 2018 9:21 UTC (Tue)
by nim-nim (subscriber, #34454)
[Link] (2 responses)
The container + private copy thing means you can avoid dealing with code changes in the code of those other projects.
But avoiding dealing with code changes also means avoiding propagating fixes.
Posted May 15, 2018 12:31 UTC (Tue)
by liw (subscriber, #6379)
[Link] (1 responses)
In other words, I agree with nim-nim on embedding code copies on containers. We have a problem and we need to solve it.
The same problem occurs in other contexts as well, when embedding dependencies are used. There's a clear need for a solution to this problem that makes sure security fixes, and other fixes to sufficiently grave bugs, get smoothly and swiftly and securely distributed to all the embedded copies.
In a way it's similar to what distributions like Debian do for their stable releases: packaged software is not updated to every new upstream version, fixes are backported to the versions in the stable release. I fear the way Debian does this is highly labour intensive, and probably doesn't scale.
Note that technical solutions are not enough. There is also a need for the software developers, sysadmins, and users to understand the issues, and to use whatever solutions there are.
I don't have the solution, but I do see the problem.
Posted May 15, 2018 23:29 UTC (Tue)
by pabs (subscriber, #43278)
[Link]
The Debian security team has automated some aspects of their patch backporting:
The plan for merging CoreOS into Red Hat
The plan for merging CoreOS into Red Hat
Things are easier on the language-specific side: Python programmers generally care whether their code works well with pip just as most Go programmers want their code to play well with vgo. They are going to adjust their versioning and release practices to make that happen.
The plan for merging CoreOS into Red Hat
The plan for merging CoreOS into Red Hat
The plan for merging CoreOS into Red Hat