> On Mar 16, 2019, at 6:28 AM, Maxime Villard <m...@m00nbsd.net> wrote: > > > And yes, this bug was introduced because the API was being replaced, and yes, > the person who committed this code likely did all he could to make sure no > bug was introduced, and yes, he did still add a bug because a certain number > of these compat layers are dead wood that can't be tested, not even by those > who claim they are so important.
Let me see if I can restate what I think Maxime is saying: Even the best-intentioned people who make every attempt to correctly update each and every consumer of an API inevitably make mistakes, and these mistakes can be VERY hard to catch. Comprehensive unit tests are a step in the right direction, but if you're modifying code that you can't run because it's not applicable to the architecture you're developing on, then what do you do? And there aren't really any unit tests for the COMPAT_* modules -- they're largely tested by running the foreign binaries, and if you don't have access to those, then what do you do? If you ask repeatedly for help from the user community to test a change and you get no response, what do you do? (The latter the unfortunate position I'm in at the moment with regard to my ufetch/ustore changes.) -- thorpej