Don't just vendor - rebuild the ecosystem and persuade the vendor to work on software management ...
Don't just vendor - rebuild the ecosystem and persuade the vendor to work on software management ...
Posted Jan 29, 2025 14:19 UTC (Wed) by farnz (subscriber, #17727)In reply to: Don't just vendor - rebuild the ecosystem and persuade the vendor to work on software management ... by LtWorf
Parent article: Vendoring Go packages by default in Fedora
Unfortunately, distro policies mean that Debian (for one) will change your ">= x.y.z" to "=a.b.c" where a < x (because that's the version they ship), remove your checks that fail compilation if I try to use anything with major < x, and then consider it a bug in your code that you don't work with the version of the library that they packaged in their stable distro.
Posted Jan 29, 2025 16:52 UTC (Wed)
by NYKevin (subscriber, #129325)
[Link] (1 responses)
This isn't even rude. Debian explicitly encourages users to report bugs to Debian and not to upstreams.
Posted Jan 30, 2025 12:32 UTC (Thu)
by farnz (subscriber, #17727)
[Link]
And that's the real point - a stable ABI (in any language) involves a lot of hard work; the distros do this work for C programs (with re-education of significant upstreams), but aren't able + willing to do it for other languages. Further, because users already bypass the distro for programs that fit their needs, but don't have the right version packaged by their distro, the distro has very little power to make upstreams comply with their policies, since they have no leverage - users can and do go round the distro to deploy what they want.
Posted Jan 29, 2025 19:34 UTC (Wed)
by dilinger (subscriber, #2867)
[Link] (6 responses)
Posted Jan 29, 2025 19:36 UTC (Wed)
by bluca (subscriber, #118303)
[Link]
Posted Jan 29, 2025 23:00 UTC (Wed)
by LtWorf (subscriber, #124958)
[Link] (4 responses)
Posted Jan 30, 2025 8:08 UTC (Thu)
by NYKevin (subscriber, #129325)
[Link] (3 responses)
For a stable release, it typically implies the same level of testing that you would expect for the release as a whole (hopefully a lot more than just running automated test suites). Obviously, any given distro's definition of "stable" will differ from the application developer's (unless the distro in question is e.g. Arch Linux), but frankly, that's the distro's problem to deal with.
Posted Jan 30, 2025 18:35 UTC (Thu)
by LtWorf (subscriber, #124958)
[Link] (2 responses)
Effectively they're constantly using the latest version.
Posted Jan 30, 2025 22:24 UTC (Thu)
by Cyberax (✭ supporter ✭, #52523)
[Link]
Posted Feb 1, 2025 7:30 UTC (Sat)
by NYKevin (subscriber, #129325)
[Link]
The intended use, to my understanding, is to repin everything to latest, run the automated tests, then commit if everything is green, else try to figure out what broke and why. It is not meant to be used in the automated fashion that you describe.
> Effectively they're constantly using the latest version.
The fact that some C developers write terrible code and complain that "the compiler" "broke" it, does not imply that all C developers are incapable of understanding the meaning of UB. By the same token, the fact that some Go or Rust developers do not care about backwards compatibility does not imply that all Go or Rust developers do not care.
Think about it: If this was *really* the intended use case, then pinning would not exist. It would just pull the latest every time, and you would never need to update your pins at all. Pinning, as a feature, only makes sense if you want to have some control over the version you are running.
Don't just vendor - rebuild the ecosystem and persuade the vendor to work on software management ...
Yep - but that then leads to the original complaint, of the distros not having the power to get upstream to care about stable ABIs and a solid dependency base. Why should I care, if the distro will handle it all for me internally, and do all that hard work for me?
Distros lacking power
Don't just vendor - rebuild the ecosystem and persuade the vendor to work on software management ...
Don't just vendor - rebuild the ecosystem and persuade the vendor to work on software management ...
Don't just vendor - rebuild the ecosystem and persuade the vendor to work on software management ...
Don't just vendor - rebuild the ecosystem and persuade the vendor to work on software management ...
Don't just vendor - rebuild the ecosystem and persuade the vendor to work on software management ...
Don't just vendor - rebuild the ecosystem and persuade the vendor to work on software management ...
Don't just vendor - rebuild the ecosystem and persuade the vendor to work on software management ...