Determining lower bound of compat statement

Is there a way to test the lower bound compatibility of a package systematically, say by doing a binary search to find the lowest version for which tests pass? When adding a new compat entry to a Project.toml, CompatHelper sets the lower bound to the latest major or 0.x minor release version, so you might get Roots = "2" or Interpolations = "0.15". It’s possible that earlier versions are compatible as well. That’s less likely for a major release (though not impossible), but it’s common for the 0.x minor releases. I want to avoid making my compat entries overly restrictive, which can make large environments impossible to solve.

1 Like

Thanks @bclyons12 for rising this question. I was always puzzled how to handle this.

What is the recommended practice to determine the lower bounds of the combat entries? For example I use Distributions.jl but only very basics functionalities that are probably existing since a long time. So it feels very wrong to simply use the current version as lower bound…

Realistically, I also don’t see me digging through the code of all my dependencies to figure out when the required functionalities were added.

I would be happy to learn how people here usually handle this.