Skip to content

ci: check direct minimal versions#4173

Open
ricochet wants to merge 2 commits intolaunchbadge:mainfrom
ricochet:check-direct-minimal-versions
Open

ci: check direct minimal versions#4173
ricochet wants to merge 2 commits intolaunchbadge:mainfrom
ricochet:check-direct-minimal-versions

Conversation

@ricochet
Copy link

@ricochet ricochet commented Feb 19, 2026

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:

  • 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

Essentially looping until cargo +nightly generate-lockfile -Z direct-minimal-versions and cargo build --all-features ran 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

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.
@ricochet ricochet force-pushed the check-direct-minimal-versions branch 2 times, most recently from 0bbd845 to fc26733 Compare February 20, 2026 14:39
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.
@ricochet ricochet force-pushed the check-direct-minimal-versions branch from fc26733 to 846179b Compare February 20, 2026 14:52
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

1 participant

Comments