ci: check direct minimal versions#4173
Conversation
Switch minimal-versions CI check to direct-minimal-versions Avoids failures caused by incorrect lower bounds in transitive dependencies (e.g. native-tls 0.2.12 declaring openssl ^0.10.29 but requiring >= 0.10.46 for Pkcs12::parse2). direct-minimal- versions only resolves our own declared lower bounds to their minimums.
0bbd845 to
fc26733
Compare
To eliminate another dep to manage, brought in launchbadge#4171 All workspace Cargo.toml files bumped direct dependency minimum versions to be compatible with transitive requirements under direct-minimal-versions: - memchr 2.4.1 → 2.5.0 (winnow needs ^2.5) - futures-* → 0.3.31 (futures-util needs futures-core ^0.3.31) - serde → 1.0.218, serde_json → 1.0.85 - proc-macro2 → 1.0.83, syn → 2.0.87, quote → 1.0.35 - tokio → 1.20.1, time → 0.3.37, uuid → 1.12.1 - smallvec → 1.10.0, bitflags → 2.4, percent-encoding → 2.3.0 - rand → 0.8.5, dotenvy → 0.15.7, plus many others Aligned all examples to the same minimums, then regenerated Cargo.lock with normal resolver.
fc26733 to
846179b
Compare
|
Tried re-running CI a few times and it seems that the MariaDB tests hanging is not spurious. I'll try to reproduce it locally. |
|
While this did take quite a bit of churn to get something that builds, it's totally ok with me if you decide direct minimal versions is too broad or difficult to support. |
|
Re-running an individual check made it pass, which is also weird. It might be a timing/resource exhaustion thing. I'm unable to reproduce it locally running the exact same commands, but I've got a much more powerful machine than Github Actions provisions. |
|
Okay, it might be a memory exhaustion issue. I ran it with GNU The That would explain why it's so consistent yet I'm unable to reproduce it locally, because I have 64 GiB of RAM in my system. |
|
What's weird though is that on |
Switch minimal-versions CI check to direct-minimal-versions
Avoids failures caused by incorrect lower bounds in transitive dependencies (e.g. native-tls 0.2.12 declaring openssl ^0.10.29 but requiring >= 0.10.46 for Pkcs12::parse2). direct-minimal-versions only resolves our own declared lower bounds to their minimums.
To eliminate another dep to manage, brought in #4171
All workspace Cargo.toml files bumped direct dependency minimum versions to be compatible with transitive requirements:
Essentially looping until
cargo +nightly generate-lockfile -Z direct-minimal-versionsandcargo build --all-featuresran clean.Aligned all examples to the same minimums, then regenerated Cargo.lock with normal resolver.
Does your PR solve an issue?
This is an alternative approach to fixing CI on main, as opposed to bumping our minimal version for openssl in #4172
Is this a breaking change?
No