ethereum / solidity

Solidity, the Smart Contract Programming Language
https://soliditylang.org
GNU General Public License v3.0
22.66k stars 5.62k forks source link

CI run with minimum versions of dependencies #15136

Open cameel opened 1 month ago

cameel commented 1 month ago

Currently we only consistently test the code with one set of dependency versions on each platform. It's usually either the latest one of the one installed by default. If we use anything else, it's coincidental - when a different version happens to come with some non-standard CI image.

As pointed out in https://github.com/ethereum/solidity/issues/15117#issuecomment-2120479550, we should really have a CI run with the minimum supported versions to detect breakage. In most cases this breakage is harmless, because it only results in a failure to build, but there have been cases of semantic changes in Boost that resulted in the compiler producing different output (e.g. https://github.com/boostorg/multiprecision/issues/129 or all the various changes to boost::filesystem that affect import processing). Nowadays these will often be caught by tests, but to catch them, have to run them in the first place.

I think it would be enough to have such a run on Linux, as we support the widest range of versions, so it should catch vast majority of problems of this kind.