I played around with Elm a bit lately. It’s interesting that the package manager actually detects api changes and bumps version for you when incompatibility happens. Wouldn’t it be nice to have for Pkg3?
Yeah, I think that could be really neat. I’ve thought about trying to write a tool to find, for a given package, a union of intervals of dependent packages for which the package works (i.e. for which the tests pass). It seems like in the worst case this would involve testing the package once for each element in the product of the available versions of all dependent packages. That might get expensive. Do you know how Elm actually does the testing?
It seems that the package manager checks type signatures of exposed functions for change: