CI run with minimum versions of dependencies
- Dominant language
- C++
- Stars
- 25.7k
- Forks
- 6.2k
- Avg merge
- 1d 11h
- Merged PRs (30d)
- 21
Description
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 there we support the widest range of versions, so it should catch vast majority of problems of this kind.
Contributor guide
Research direction
Review the existing CI configuration and dependency-version setup, focusing first on how Linux builds and tests are currently run. Add a Linux run using the minimum supported dependency versions, then verify that the full test suite executes successfully and detects compatibility or semantic breakage.
Written by the indexing model from the issue text.
Assessment
- Tech stack
- cpp
- Domain
- build-system, ci-cd, testing
- Issue type
- Feature
- Difficulty
- 4/5
- Estimated time
- 3-5 days
- Activity status
- Stale
- Clarity
- Mostly clear
- Newbie friendliness
- 25/100