Skip to content

feat!: declare MSRV 1.86 and enforce it in CI - #50

Merged
gagantrivedi merged 1 commit into
mainfrom
fix/enforce-msrv-1-86
Aug 11, 2026
Merged

feat!: declare MSRV 1.86 and enforce it in CI#50
gagantrivedi merged 1 commit into
mainfrom
fix/enforce-msrv-1-86

Conversation

@gagantrivedi

@gagantrivedi gagantrivedi commented Aug 10, 2026

Copy link
Copy Markdown
Member

Thanks for submitting a PR! Please check the boxes below:

  • I have read the Contributing Guide.
  • I have added information to docs/ if required so people know about the feature.
  • I have filled in the "Changes" section below.
  • I have filled in the "How did you test this code" section below.

Changes

Contributes to #49

Follow-up to the reqwest 0.13 bump, which raised the crate's effective MSRV: a fresh cargo resolve pulls icu_* 2.2.0 and idna_adapter 1.2.2 (via url -> idna), which require rustc 1.86. Building with 1.85.0 fails out of the box:

error: rustc 1.85.0 is not supported by the following packages:
  icu_collections@2.2.0 requires rustc 1.86
  idna_adapter@1.2.2 requires rustc 1.86

This PR:

  • Declares rust-version = "1.86.0" in Cargo.toml
  • Adds an MSRV workflow running cargo +1.86.0 check, so future dependency bumps cannot silently invalidate the advertised MSRV (the existing Rust workflow only builds on latest stable)

The ! in the PR title is intentional: the breaking commit from #49 (feat!(deps): ...) could not be parsed by release-please (the ! must come after the scope: feat(deps)!:), so no release PR was created — see the workflow log:

commit could not be parsed: 68ad120 feat!(deps): bump reqwest to 0.13 (#49)
error message: Error: unexpected token '(' at 1:6, valid tokens [(, :]

Squash-merging this PR with the title as-is lets release-please pick up the breaking change and cut 3.0.0, covering both the reqwest 0.13 bump and the new MSRV.

How did you test this code?

  • rustup toolchain install 1.86.0 --profile minimal and cargo +1.86.0 check on this branch with a fresh resolve — passes (Finished dev profile)
  • cargo +1.85.0 check on a clean checkout of main — fails with the requires rustc 1.86 error above, confirming 1.86 is the true floor
  • The new MSRV workflow runs on this PR itself, exercising the same check in CI

The reqwest 0.13 bump (#49) raised the crate's effective MSRV: a fresh
resolve pulls icu_* 2.2.0 and idna_adapter 1.2.2 (via url -> idna),
which require rustc 1.86. Declare rust-version = "1.86.0" and add an
MSRV workflow so future dependency bumps cannot silently invalidate it.

BREAKING CHANGE: reqwest 0.13 changes the public API (reqwest::Error
From impl, http 1.x HeaderMap), switches the default TLS backend from
native-tls to rustls + aws-lc-rs, and requires rustc >= 1.86.
@gagantrivedi
gagantrivedi requested a review from a team as a code owner August 10, 2026 13:55
@gagantrivedi
gagantrivedi requested review from khvn26 and removed request for a team August 10, 2026 13:55
@gagantrivedi
gagantrivedi merged commit 294eb0c into main Aug 11, 2026
2 of 3 checks passed
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.

3 participants