Note, a second post with some additional detail is available in a post titled "Go vgo: A Broken Dependency Tree".
In Sam Boyer's introduction to his analysis of vgo he touched on a number of practical, day in and day out, issues that can arise from using MVS. MVS, an acronym for Minimal Version Selection, is a new algorithm for solving a dependency tree. You can read more about it in Russ Cox's series.
MVS is a new algorithm not found in other programming language package managers making it, in my opinion, something worth analysis and discussion. We should understand what we're getting ourselves into, warts and all, because it's different than we're used to.
In Sam's analysis he noted a case that goes like this:
“Our project depends on [email protected] right now, but it doesn’t work with [email protected] or newer. We want to be good citizens and adapt, but we just don’t have the bandwidth right now.”
I wanted to share a real world example where this happened.
Continue Reading »