CI: Generate `minimal-versions` when build-testing MSRV
For https://github.com/rust-windowing/softbuffer/pull/259#discussion_r1932897555, CC @madsmtm. Not sure if we want to push ahead with this or first fix all our transitive dependencies... Lots of pain here.
Lots of crates bump their MSRV in simple semver releases, causing us to constantly have to hold back "transitive" dependencies when testing our own MSRV. The opposite way of doing this is by immediately selecting the minimum compatible version per Cargo.toml semver selection using -Zminimal-versions, with the added benefit of validating our minimal dependency constraints in CI.
Unfortunately, even more crates than that don't validate their minimum version dependencies (barring minor improvements for "new" targets), resulting in many compilation failures and many transitive dependencies needing manual update. Strangely, in for example the image crate a newer num-traits 0.2.14 is being used but num-bigint 0.4.0 fails to compile.
or first fix all our transitive dependencies... Lots of pain here.
Are you aware of -Zdirect-minimal-versions? It selects minimal versions only for your workspace’s direct dependencies, and normal maximal versions for all others. Thus while it doesn't strictly test every case you might care about, it won’t fail due to something out of your control.