From f48656e18b5e7bc5fca8aafd2d29cd407b0a4fd0 Mon Sep 17 00:00:00 2001 From: Grachev Mikhail Date: Fri, 11 Jul 2025 20:11:12 +0300 Subject: [PATCH] Bump `update-informer` to `v1.3.0` (#16157) # Description This PR bumps `update-informer` to 1.3.0 and gets rid of `NativeTlsHttpClient`. --- Cargo.lock | 140 +++++++++++++++++- Cargo.toml | 2 +- .../nu-command/src/network/version_check.rs | 27 ---- 3 files changed, 133 insertions(+), 36 deletions(-) diff --git a/Cargo.lock b/Cargo.lock index 64b6b55d33..17f48b717e 100644 --- a/Cargo.lock +++ b/Cargo.lock @@ -677,6 +677,12 @@ dependencies = [ "vsimd", ] +[[package]] +name = "base64ct" +version = "1.8.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "55248b47b0caf0546f7988906588779981c43bb1bc9d0c44087278f80cdb44ba" + [[package]] name = "bincode" version = "1.3.3" @@ -1200,6 +1206,35 @@ version = "0.3.1" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "7c74b8349d32d297c9134b8c88677813a227df8f779daa29bfc29c183fe3dca6" +[[package]] +name = "cookie" +version = "0.18.1" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "4ddef33a339a91ea89fb53151bd0a4689cfce27055c291dfa69945475d22c747" +dependencies = [ + "percent-encoding", + "time", + "version_check", +] + +[[package]] +name = "cookie_store" +version = "0.21.1" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "2eac901828f88a5241ee0600950ab981148a18f2f756900ffba1b125ca6a3ef9" +dependencies = [ + "cookie", + "document-features", + "idna", + "indexmap", + "log", + "serde", + "serde_derive", + "serde_json", + "time", + "url", +] + [[package]] name = "core-foundation" version = "0.9.4" @@ -1469,6 +1504,16 @@ version = "2.9.0" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "2a2330da5de22e8a3cb63252ce2abb30116bf5265e89c0e01bc17015ce30a476" +[[package]] +name = "der" +version = "0.7.10" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "e7c1832837b905bbfb5101e07cc24c8deddf52f93225eee6ead5f4d63d53ddcb" +dependencies = [ + "pem-rfc7468", + "zeroize", +] + [[package]] name = "deranged" version = "0.3.11" @@ -1617,6 +1662,15 @@ version = "1.0.0" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "aac81fa3e28d21450aa4d2ac065992ba96a1d7303efbce51a95f4fd175b67562" +[[package]] +name = "document-features" +version = "0.2.11" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "95249b50c6c185bee49034bcb378a49dc2b5dff0be90ff6616d31d64febab05d" +dependencies = [ + "litrs", +] + [[package]] name = "downcast-rs" version = "1.2.1" @@ -1775,13 +1829,13 @@ checksum = "a5d9305ccc6942a704f4335694ecd3de2ea531b114ac2d51f5f843750787a92f" [[package]] name = "etcetera" -version = "0.8.0" +version = "0.10.0" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "136d1b5283a1ab77bd9257427ffd09d8667ced0570b6f938942bc7568ed5b943" +checksum = "26c7b13d0780cb82722fd59f6f57f925e143427e4a75313a6c77243bf5326ae6" dependencies = [ "cfg-if", "home", - "windows-sys 0.48.0", + "windows-sys 0.59.0", ] [[package]] @@ -3003,7 +3057,7 @@ source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "fc2f4eb4bc735547cfed7c0a4922cbd04a4655978c09b54f1f7b228750664c34" dependencies = [ "cfg-if", - "windows-targets 0.48.5", + "windows-targets 0.52.6", ] [[package]] @@ -3107,6 +3161,12 @@ version = "0.7.4" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "4ee93343901ab17bd981295f2cf0026d4ad018c7c31ba84549a4ddbb47a45104" +[[package]] +name = "litrs" +version = "0.4.1" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "b4ce301924b7887e9d637144fdade93f9dfff9b60981d4ac161db09720d39aa5" + [[package]] name = "lock_api" version = "0.4.12" @@ -3789,7 +3849,7 @@ dependencies = [ "unicode-segmentation", "unicode-width 0.2.0", "update-informer", - "ureq", + "ureq 2.12.1", "url", "uu_cp", "uu_mkdir", @@ -4745,6 +4805,15 @@ version = "0.2.3" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "df94ce210e5bc13cb6651479fa48d14f601d9858cfe0467f43ae157023b938d3" +[[package]] +name = "pem-rfc7468" +version = "0.7.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "88b39c9bfcfc231068454382784bb460aae594343fb030d46e9f50a645418412" +dependencies = [ + "base64ct", +] + [[package]] name = "percent-encoding" version = "2.3.1" @@ -7679,16 +7748,16 @@ checksum = "8ecb6da28b8a351d773b68d5825ac39017e680750f980f3a1a85cd8dd28a47c1" [[package]] name = "update-informer" -version = "1.2.0" +version = "1.3.0" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "53813bf5d5f0d8430794f8cc48e99521cc9e298066958d16383ccb8b39d182a7" +checksum = "67b27dcf766dc6ad64c2085201626e1a7955dc1983532bfc8406d552903ace2a" dependencies = [ "etcetera", "reqwest", "semver", "serde", "serde_json", - "ureq", + "ureq 3.0.3", ] [[package]] @@ -7712,6 +7781,43 @@ dependencies = [ "webpki-roots 0.26.8", ] +[[package]] +name = "ureq" +version = "3.0.3" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "217751151c53226090391713e533d9a5e904ba2570dabaaace29032687589c3e" +dependencies = [ + "base64 0.22.1", + "cc", + "cookie_store", + "der", + "flate2", + "log", + "native-tls", + "percent-encoding", + "rustls 0.23.20", + "rustls-pemfile 2.2.0", + "rustls-pki-types", + "serde", + "serde_json", + "ureq-proto", + "utf-8", + "webpki-root-certs 0.26.11", + "webpki-roots 0.26.8", +] + +[[package]] +name = "ureq-proto" +version = "0.3.5" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "ae239d0a3341aebc94259414d1dc67cfce87d41cbebc816772c91b77902fafa4" +dependencies = [ + "base64 0.22.1", + "http 1.2.0", + "httparse", + "log", +] + [[package]] name = "url" version = "2.5.4" @@ -8192,6 +8298,24 @@ dependencies = [ "url", ] +[[package]] +name = "webpki-root-certs" +version = "0.26.11" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "75c7f0ef91146ebfb530314f5f1d24528d7f0767efbfd31dce919275413e393e" +dependencies = [ + "webpki-root-certs 1.0.1", +] + +[[package]] +name = "webpki-root-certs" +version = "1.0.1" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "86138b15b2b7d561bc4469e77027b8dd005a43dc502e9031d1f5afc8ce1f280e" +dependencies = [ + "rustls-pki-types", +] + [[package]] name = "webpki-roots" version = "0.26.8" diff --git a/Cargo.toml b/Cargo.toml index c148cd9f6f..e96b0a94cb 100644 --- a/Cargo.toml +++ b/Cargo.toml @@ -168,7 +168,7 @@ thiserror = "2.0.12" titlecase = "3.6" toml = "0.8" trash = "5.2" -update-informer = { version = "1.2.0", default-features = false, features = ["github", "ureq"] } +update-informer = { version = "1.3.0", default-features = false, features = ["github", "ureq"] } umask = "2.1" unicode-segmentation = "1.12" unicode-width = "0.2" diff --git a/crates/nu-command/src/network/version_check.rs b/crates/nu-command/src/network/version_check.rs index 9c3613169d..d87fcbad10 100644 --- a/crates/nu-command/src/network/version_check.rs +++ b/crates/nu-command/src/network/version_check.rs @@ -6,8 +6,6 @@ use update_informer::{ registry, }; -use super::tls::tls; - #[derive(Clone)] pub struct VersionCheck; @@ -85,30 +83,6 @@ impl Registry for NuShellNightly { } } -struct NativeTlsHttpClient; - -impl HttpClient for NativeTlsHttpClient { - fn get( - url: &str, - timeout: std::time::Duration, - headers: update_informer::http_client::HeaderMap, - ) -> update_informer::Result { - let agent = ureq::AgentBuilder::new() - .tls_connector(std::sync::Arc::new(tls(false)?)) - .build(); - - let mut req = agent.get(url).timeout(timeout); - - for (header, value) in headers { - req = req.set(header, value); - } - - let json = req.call()?.into_json()?; - - Ok(json) - } -} - pub fn check_for_latest_nushell_version() -> Value { let current_version = env!("CARGO_PKG_VERSION").to_string(); @@ -123,7 +97,6 @@ pub fn check_for_latest_nushell_version() -> Value { // Since this is run on demand, there isn't really a need to cache the check. let informer = update_informer::new(NuShellNightly, nightly_pkg_name, current_version.clone()) - .http_client(NativeTlsHttpClient) .interval(std::time::Duration::ZERO); if let Ok(Some(new_version)) = informer.check_version() {