Skip to content

chore(deps): update rust crate ureq to v3 - #30

Open
renovate[bot] wants to merge 1 commit into
mainfrom
renovate/ureq-3.x
Open

chore(deps): update rust crate ureq to v3#30
renovate[bot] wants to merge 1 commit into
mainfrom
renovate/ureq-3.x

Conversation

@renovate

@renovate renovate Bot commented Jun 16, 2026

Copy link
Copy Markdown

This PR contains the following updates:

Package Type Update Change
ureq dependencies major 23

Release Notes

algesten/ureq (ureq)

v3.3.0

Compare Source

  • Bump MSRV 1.71 -> 1.85, edition 2024 #​1167

v3.2.1

Compare Source

  • Switch archived utf-8 crate for utf8-zero #​1163

v3.2.0

Compare Source

  • Strip Content-Encoding/Content-Length headers after decompression #​1156
    • Timeout per resolved ip for try_connect #​1152
    • Fix body header bug on redirect #​1140
    • ureq-proto 0.5.3 to fix unsolicited 100-continue #​1139
    • Make socks5:// locally resolve before calling proxy #​1138
    • Add socks5h:// which DOESN'T locally resolve before calling proxy #​1138

v3.1.4

Compare Source

  • Set content-type with new Multipart form #​1133

v3.1.3

Compare Source

  • Fix short read with multi-byte charset #​1131
    • Replace rustls-pemfile usage with rustls-pki-types #​1122
    • Support for env NO_PROXY and proxy config #​1118
    • Experimental multi-part form support #​1102

v3.1.2

Compare Source

  • Fix bug when query is after host "example.com?query" #​1115

v3.1.1

Compare Source

  • Fix regression in MSRV (hold back native-tls) #​1113
    • Fix edge case regression when setting request header Content-Length: 0 #​1109

v3.1.0

Compare Source

DECISION: webpki-roots and webpki-root-certs goes from pre-release (0.26)
to stable release (1.0.0). This is potentially a big change
for ureq users. We release this as semver minor.

  • Bump all deps to latest #​1104
  • Fixes to CONNECT to follow spec #​1103
  • Send Content-Length for File #​1100
  • native-tls transport capture and surface underlying errors #​1093
  • Bump webpki-roots/webpki-root-certs to 1.0.0 #​1089
  • Bump rustls-platform-verifier to 0.6.0 #​1089
  • Allow the license CDLA-Permissive-2.0 #​1089

v3.0.12

Compare Source

  • Chunked transfer handle abrupt close after 0\r\n #​1074
    • Fix incorrect DNS resolving when using proxies #​1081
    • Use + instead of %20 for url encoded form bodies #​1071
    • Fix problem with double-quotes in cookie values #​1068
    • Reduce Body size #​1065
    • Fix featue flag public_suffix for CookieStore #​1063
    • Improve doc for 10MB limit #​1061

v3.0.11

Compare Source

  • Fix CONNECT proxy bug #​1057
    • Fix bug setting cookies in redirects #​1055
    • Annotated example for making a Transport #​1054
    • Feature for adding unencoded query parameters #​1039
    • Fix bug in not encoding ' in query parameters #​1039
    • Fix bug making timeout settings not working #​1051
    • Big refactor of ureq-proto #​1042
    • Extension trait for http::Request allowing agent config #​1011

v3.0.10

Compare Source

  • Bump rustls-platform-verifier to 0.5.0

v3.0.9

Compare Source

  • Bump deps #​1031
    • Allow body for all methods when using http-crate API #​1035
    • Improved errors and doc for bespoke transports #​1032

v3.0.8

Compare Source

  • Fix incorrect parsing bug "missing http version" #​1026

v3.0.7

Compare Source

  • Allow non-standard HTTP methods #​1018
    • Fix not appending port to host header #​1017

v3.0.6

Compare Source

  • Avoid percent encoding some query parameter chars #​1004
    • Fix incorrect LargeResponseHeader #​1003
    • Stop passing internal state in Config #​996
    • Support request level TlsConfig #​996

v3.0.5

Compare Source

  • Fix incorrect reading of valid utf8 #​992
    • Fix panic when parsing malformed proxy URI #​990
    • ureq::Error wrapped as io::Error should pass through body chain #​984
    • send_json should set content-length header #​983

v3.0.4

Compare Source

  • Manually unroll some macros to regular code #​978
    • Fix bug in rustls-no-provider when disabling ring #​973

v3.0.3

Compare Source

  • Use the same data in CONNECT and Host header for proxied requests #​967
    • Set default scheme in proxy uri #​966
    • Redact URI and Location header on debug level #​964
    • Downgrade all logging to debug and below #​964

v3.0.2

Compare Source

  • Remove dependency on once_cell #​959
    • Fix bug parsing partial redirects #​958
    • Expose typestate variables #​956

v3.0.1

Compare Source

  • Chunked transfer handle abrupt close after 0\r\n #​1074
    • Fix incorrect DNS resolving when using proxies #​1081
    • Use + instead of %20 for url encoded form bodies #​1071
    • Fix problem with double-quotes in cookie values #​1068
    • Reduce Body size #​1065
    • Fix featue flag public_suffix for CookieStore #​1063
    • Improve doc for 10MB limit #​1061

v3.0.0

Compare Source

  • Replace RequestBuilder Deref with explicit wrappers #​944
    • Remove dependency on url crate #​943
    • Feature Config::save_redirect_history #​939

Configuration

📅 Schedule: (UTC)

  • Branch creation
    • At any time (no schedule defined)
  • Automerge
    • At any time (no schedule defined)

🚦 Automerge: Disabled by config. Please merge this manually once you are satisfied.

Rebasing: Whenever PR is behind base branch, or you tick the rebase/retry checkbox.

🔕 Ignore: Close this PR and you won't be reminded about this update again.


  • If you want to rebase/retry this PR, check this box

This PR was generated by Mend Renovate. View the repository job log.


Open in Devin Review

Note

Update ureq dependency to v3 in the Rust SDK

Bumps the ureq crate version from "2" to "3" in Cargo.toml. Risk: ureq v3 includes breaking API changes that may require code updates in any callers using the library directly.

Macroscope summarized c511c5d.

@changeset-bot

changeset-bot Bot commented Jun 16, 2026

Copy link
Copy Markdown

⚠️ No Changeset found

Latest commit: b58b5c5

Merging this PR will not cause a version bump for any packages. If these changes should not result in a new version, you're good to go. If these changes should result in a version bump, you need to add a changeset.

Click here to learn what changesets are, and how to add one.

Click here if you're a maintainer who wants to add a changeset to this PR

@greptile-apps

greptile-apps Bot commented Jun 16, 2026

Copy link
Copy Markdown

PR author is in the excluded authors list.

@wave-bugbot

wave-bugbot Bot commented Jun 16, 2026

Copy link
Copy Markdown

🟢 WAVE BugBot — clear

No confident findings on the changed lines.

Local review · $0 inference · wave-dispatch

@renovate
renovate Bot force-pushed the renovate/ureq-3.x branch from fefdd4b to b58b5c5 Compare July 22, 2026 05:11
@renovate
renovate Bot force-pushed the renovate/ureq-3.x branch from b58b5c5 to 3cfab04 Compare August 6, 2026 03:22

@devin-ai-integration devin-ai-integration Bot left a comment

Copy link
Copy Markdown

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Devin Review found 3 potential issues.

Open in Devin Review

Comment thread sdk/rust/Cargo.toml

[dependencies]
ureq = "2"
ureq = "3"

Copy link
Copy Markdown

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

🔴 Rust client library stops working after HTTP library upgrade

The Rust client's HTTP dependency is upgraded to a new major version (ureq = "3" at sdk/rust/Cargo.toml:13) without updating any of the calling code, so the Rust SDK no longer builds or works at all.
Impact: Anyone using or publishing the Rust client gets a broken package; payment-retry behavior would also be lost even after a mechanical fix.

ureq 3 removed the v2 request/response API used throughout sdk/rust/src/lib.rs

All call sites still use the ureq 2 API:

  • ureq::Request / ureq::Response types and .set(k, v) header builder (sdk/rust/src/lib.rs:148-152, 157, 166, 174-186, 237-241, 253-256) — in ureq 3 these types moved (http::Request/http::Response<Body>) and .set() became .header().
  • .send_string(..) / .into_string() (sdk/rust/src/lib.rs:158-159, 176, 186, 242, 257) — replaced by .send(..) and body_mut().read_to_string().
  • Err(ureq::Error::Status(402, r)) (sdk/rust/src/lib.rs:160, 169) — ureq 3's variant is Error::StatusCode(u16) and carries no response, so the x402 challenge body needed by retry_with_hook (sdk/rust/src/lib.rs:174-177) is unavailable unless the config is switched to http_status_as_error(false) and the 402 handled on the Ok path.

The upgrade must be accompanied by a full migration of these call sites.

Prompt for agents
The dependency bump to ureq 3 in sdk/rust/Cargo.toml is a breaking major upgrade, but sdk/rust/src/lib.rs still uses the entire ureq 2 API surface: ureq::Request/ureq::Response types, builder .set(name, value) for headers, .send_string(body), .call(), and .into_string() on responses, plus pattern matching on ureq::Error::Status(402, response) in Dispatch::post/get to capture the x402 challenge body and feed it to retry_with_hook. In ureq 3 requests/responses are the http crate types, headers are set with .header(), bodies are sent with .send()/.send_empty(), response bodies are read via response.body_mut().read_to_string(), and the error variant is Error::StatusCode(u16) which does NOT carry the response body. Migrating the 402 path requires configuring the agent with http_status_as_error(false) (e.g. a shared ureq::Agent built from ureq::Agent::config_builder()) so a 402 arrives as Ok(response) and the challenge JSON can still be read before retrying with the payment hook headers. Either complete this migration across all call sites (Dispatch::auth/post/get/retry_with_hook and the privy/bridge wallet_sign HTTP calls) or revert the dependency to ureq 2.

Open in Devin Review

Was this helpful? React with 👍 or 👎 to provide feedback.

Comment thread sdk/rust/Cargo.toml

[dependencies]
ureq = "2"
ureq = "3"

Copy link
Copy Markdown

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

🟡 Changelog not updated for the dependency upgrade

The repository requires the Unreleased section of CHANGELOG.md to be updated for user-facing changes, but this major dependency upgrade of the published Rust client adds no entry.
Impact: Consumers of the Rust package get no record of a breaking dependency change.

AGENTS.md rule

AGENTS.md states: "Conventional Commit titles; update CHANGELOG.md (Unreleased) for user-facing changes." The ## [Unreleased] section in CHANGELOG.md remains empty in this PR while sdk/rust/Cargo.toml:13 bumps the published crate's HTTP dependency to a new major version.

Open in Devin Review

Was this helpful? React with 👍 or 👎 to provide feedback.

Comment thread sdk/rust/Cargo.toml

[dependencies]
ureq = "2"
ureq = "3"

Copy link
Copy Markdown

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

🔍 Automated dependency bump lacks accompanying source migration and MSRV check

This is a bot-style dependency bump (ureq = "3") with no source changes in sdk/rust/src/lib.rs. Besides the API migration required, ureq 3 raises the minimum supported Rust version and changes TLS/feature defaults (e.g. rustls-based defaults, native-tls behind a feature), which can affect downstream consumers of the published wave-dispatch crate. Verify MSRV/CI toolchain and TLS backend expectations before merging.

Open in Devin Review

Was this helpful? React with 👍 or 👎 to provide feedback.

@macroscopeapp

macroscopeapp Bot commented Aug 6, 2026

Copy link
Copy Markdown

Approvability

Verdict: Needs human review

Unable to check for correctness in 3cfab04. Major version bump (ureq 2 → 3) can introduce breaking API changes. The SDK uses multiple ureq APIs that may have changed. The file is owned by wave-av/streaming-team who should verify compatibility.

No code changes detected at c511c5d. Prior analysis still applies.

You can customize Macroscope's approvability policy. Learn more.

@renovate
renovate Bot force-pushed the renovate/ureq-3.x branch from 3cfab04 to c511c5d Compare August 7, 2026 00:03

@devin-ai-integration devin-ai-integration Bot left a comment

Copy link
Copy Markdown

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Devin Review found 1 new potential issue.

Open in Devin Review

Comment thread sdk/rust/Cargo.toml

[dependencies]
ureq = "2"
ureq = "3"

Copy link
Copy Markdown

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

🔍 ureq 3 default TLS backend and feature set differ from v2

ureq 2 with default features used rustls+webpki-roots; ureq 3's default features (rustls with platform verifier / different root store handling) can change TLS trust behaviour for the outbound calls to api.privy.io and api.bridge.xyz (sdk/rust/src/lib.rs:237-258). Since no features are specified here, the resulting TLS stack should be verified against the deployment environment before merging.

Open in Devin Review

Was this helpful? React with 👍 or 👎 to provide feedback.

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.

0 participants