From 103ed3aed8a6c9f853fae8130c4291f671e5f154 Mon Sep 17 00:00:00 2001 From: Zhongyang Wu Date: Wed, 29 Jun 2022 00:46:48 -0400 Subject: [PATCH] fix(common): revert MSRV to 1.49 (#827) * fix(msrv): revert MSRV to 1.49 * fix: format --- .github/workflows/ci.yml | 2 +- README.md | 4 +-- opentelemetry-api/Cargo.toml | 2 +- opentelemetry-api/README.md | 2 +- opentelemetry-api/src/lib.rs | 2 +- opentelemetry-api/src/trace/order_map.rs | 30 +++++++++++---------- opentelemetry-datadog/Cargo.toml | 2 +- opentelemetry-http/README.md | 4 +-- opentelemetry-jaeger/README.md | 2 +- opentelemetry-jaeger/src/lib.rs | 2 +- opentelemetry-sdk/Cargo.toml | 2 +- opentelemetry-sdk/README.md | 2 +- opentelemetry-zipkin/Cargo.toml | 2 +- opentelemetry-zipkin/README.md | 4 +-- opentelemetry-zipkin/src/lib.rs | 34 +++++++++++++++--------- opentelemetry/README.md | 4 +-- opentelemetry/src/lib.rs | 2 +- 17 files changed, 56 insertions(+), 46 deletions(-) diff --git a/.github/workflows/ci.yml b/.github/workflows/ci.yml index 4779b29d8d..992219dc66 100644 --- a/.github/workflows/ci.yml +++ b/.github/workflows/ci.yml @@ -68,7 +68,7 @@ jobs: - uses: actions-rs/toolchain@v1 with: profile: minimal - toolchain: 1.55.0 + toolchain: 1.49 override: true - name: Run tests run: cargo --version && diff --git a/README.md b/README.md index 3d712b7a62..1c92355938 100644 --- a/README.md +++ b/README.md @@ -25,7 +25,7 @@ analysis in order to understand your software's performance and behavior. You can export and analyze them using [Prometheus], [Jaeger], and other observability tools. -*Compiler support: [requires `rustc` 1.55+][msrv]* +*Compiler support: [requires `rustc` 1.49+][msrv]* [Prometheus]: https://prometheus.io [Jaeger]: https://www.jaegertracing.io @@ -130,7 +130,7 @@ above, please let us know! We'd love to add your project to the list! ## Supported Rust Versions OpenTelemetry is built against the latest stable release. The minimum supported -version is 1.55. The current OpenTelemetry version is not guaranteed to build +version is 1.49. The current OpenTelemetry version is not guaranteed to build on Rust versions earlier than the minimum supported version. The current stable Rust compiler and the three most recent minor versions diff --git a/opentelemetry-api/Cargo.toml b/opentelemetry-api/Cargo.toml index 75be1055e8..76deaf3fa3 100644 --- a/opentelemetry-api/Cargo.toml +++ b/opentelemetry-api/Cargo.toml @@ -8,7 +8,7 @@ edition = "2018" fnv = { version = "1.0", optional = true } futures-channel = "0.3" futures-util = { version = "0.3", default-features = false, features = ["std", "sink"] } -indexmap = "1.8" +indexmap = "=1.8" once_cell = "1.12.0" pin-project = { version = "1.0.2", optional = true } thiserror = "1" diff --git a/opentelemetry-api/README.md b/opentelemetry-api/README.md index 373f075638..0172d5e82e 100644 --- a/opentelemetry-api/README.md +++ b/opentelemetry-api/README.md @@ -25,7 +25,7 @@ analysis in order to understand your software's performance and behavior. You can export and analyze them using [Prometheus], [Jaeger], and other observability tools. -*Compiler support: [requires `rustc` 1.55+][msrv]* +*Compiler support: [requires `rustc` 1.49+][msrv]* [Prometheus]: https://prometheus.io [Jaeger]: https://www.jaegertracing.io diff --git a/opentelemetry-api/src/lib.rs b/opentelemetry-api/src/lib.rs index 7fcdc079d8..9d2a56ce0b 100644 --- a/opentelemetry-api/src/lib.rs +++ b/opentelemetry-api/src/lib.rs @@ -2,7 +2,7 @@ //! services to capture distributed traces and metrics from your application. You //! can analyze them using [Prometheus], [Jaeger], and other observability tools. //! -//! *Compiler support: [requires `rustc` 1.55+][msrv]* +//! *Compiler support: [requires `rustc` 1.49+][msrv]* //! //! [Prometheus]: https://prometheus.io //! [Jaeger]: https://www.jaegertracing.io diff --git a/opentelemetry-api/src/trace/order_map.rs b/opentelemetry-api/src/trace/order_map.rs index bd24e8f941..b69cc7090d 100644 --- a/opentelemetry-api/src/trace/order_map.rs +++ b/opentelemetry-api/src/trace/order_map.rs @@ -553,14 +553,15 @@ where } } -impl From<[(K, V); N]> for OrderMap -where - K: Hash + Eq, -{ - fn from(arr: [(K, V); N]) -> Self { - Self(IndexMap::from(arr)) - } -} +// todo: uncomment when the MSRV bumps +// impl From<[(K, V); N]> for OrderMap +// where +// K: Hash + Eq, +// { +// fn from(arr: [(K, V); N]) -> Self { +// Self(IndexMap::from(arr)) +// } +// } impl Extend<(K, V)> for OrderMap where @@ -641,12 +642,13 @@ where } } -impl From<[KeyValue; N]> for OrderMap { - fn from(arr: [KeyValue; N]) -> Self { - let arr = arr.map(|kv| (kv.key, kv.value)); - Self(IndexMap::from(arr)) - } -} +// todo: uncomment below when bumping MSRV +// impl From<[KeyValue; N]> for OrderMap { +// fn from(arr: [KeyValue; N]) -> Self { +// let arr = arr.map(|kv| (kv.key, kv.value)); +// Self(IndexMap::from(arr)) +// } +// } impl Extend for OrderMap where diff --git a/opentelemetry-datadog/Cargo.toml b/opentelemetry-datadog/Cargo.toml index d7f50c4ed7..1c600b8c89 100644 --- a/opentelemetry-datadog/Cargo.toml +++ b/opentelemetry-datadog/Cargo.toml @@ -24,7 +24,7 @@ surf-client = ["surf", "opentelemetry-http/surf"] [dependencies] async-trait = "0.1" -indexmap = "1.6" +indexmap = "=1.8" once_cell = "1.12" opentelemetry = { version = "0.17", path = "../opentelemetry", features = ["trace"] } opentelemetry-http = { version = "0.6", path = "../opentelemetry-http" } diff --git a/opentelemetry-http/README.md b/opentelemetry-http/README.md index 270a2fb2a9..7dffb8e4d1 100644 --- a/opentelemetry-http/README.md +++ b/opentelemetry-http/README.md @@ -21,7 +21,7 @@ analysis in order to understand your software's performance and behavior. This crate provides a HTTP client interface for use by trace exporters, as well as helper types to inject and extract key value pairs into/from HTTP headers. -*Compiler support: [requires `rustc` 1.55+][msrv]* +*Compiler support: [requires `rustc` 1.49+][msrv]* [`OpenTelemetry`]: https://crates.io/crates/opentelemetry [msrv]: #supported-rust-versions @@ -29,7 +29,7 @@ helper types to inject and extract key value pairs into/from HTTP headers. ## Supported Rust Versions OpenTelemetry is built against the latest stable release. The minimum supported -version is 1.55. The current OpenTelemetry version is not guaranteed to build +version is 1.49. The current OpenTelemetry version is not guaranteed to build on Rust versions earlier than the minimum supported version. The current stable Rust compiler and the three most recent minor versions diff --git a/opentelemetry-jaeger/README.md b/opentelemetry-jaeger/README.md index 09fefa22d1..fe357925df 100644 --- a/opentelemetry-jaeger/README.md +++ b/opentelemetry-jaeger/README.md @@ -23,7 +23,7 @@ analysis in order to understand your software's performance and behavior. This crate provides a trace pipeline and exporter for sending span information to a Jaeger `agent` or `collector` endpoint for processing and visualization. -*Compiler support: [requires `rustc` 1.55+][msrv]* +*Compiler support: [requires `rustc` 1.49+][msrv]* [`Jaeger`]: https://www.jaegertracing.io/ [`OpenTelemetry`]: https://crates.io/crates/opentelemetry diff --git a/opentelemetry-jaeger/src/lib.rs b/opentelemetry-jaeger/src/lib.rs index 6dcae63ef8..24d6921d4c 100644 --- a/opentelemetry-jaeger/src/lib.rs +++ b/opentelemetry-jaeger/src/lib.rs @@ -3,7 +3,7 @@ //! //! See the [Jaeger Docs] for details about Jaeger and deployment information. //! -//! *Compiler support: [requires `rustc` 1.55+][msrv]* +//! *Compiler support: [requires `rustc` 1.49+][msrv]* //! //! [Jaeger Docs]: https://www.jaegertracing.io/docs/ //! [msrv]: #supported-rust-versions diff --git a/opentelemetry-sdk/Cargo.toml b/opentelemetry-sdk/Cargo.toml index ccbfb20b6d..5fc63a0285 100644 --- a/opentelemetry-sdk/Cargo.toml +++ b/opentelemetry-sdk/Cargo.toml @@ -8,7 +8,7 @@ edition = "2018" async-std = { version = "= 1.10.0", features = ["unstable"], optional = true } async-trait = { version = "0.1", optional = true } crossbeam-channel = { version = "0.5", optional = true } -dashmap = { version = "5.3.4", optional = true } +dashmap = { version = "=5.1.0", optional = true } fnv = { version = "1.0", optional = true } futures-channel = "0.3" futures-executor = "0.3" diff --git a/opentelemetry-sdk/README.md b/opentelemetry-sdk/README.md index 162a285ab4..bd1145433a 100644 --- a/opentelemetry-sdk/README.md +++ b/opentelemetry-sdk/README.md @@ -25,7 +25,7 @@ analysis in order to understand your software's performance and behavior. You can export and analyze them using [Prometheus], [Jaeger], and other observability tools. -*Compiler support: [requires `rustc` 1.55+][msrv]* +*Compiler support: [requires `rustc` 1.49+][msrv]* [Prometheus]: https://prometheus.io [Jaeger]: https://www.jaegertracing.io diff --git a/opentelemetry-zipkin/Cargo.toml b/opentelemetry-zipkin/Cargo.toml index 20a6a3c83c..bb29fdc18e 100644 --- a/opentelemetry-zipkin/Cargo.toml +++ b/opentelemetry-zipkin/Cargo.toml @@ -43,5 +43,5 @@ futures-core = "0.3" [dev-dependencies] bytes = "1" futures-util = { version = "0.3", features = ["io"] } -isahc = "1.4" +hyper = "0.14" opentelemetry = { default-features = false, features = ["trace", "testing"], path = "../opentelemetry" } diff --git a/opentelemetry-zipkin/README.md b/opentelemetry-zipkin/README.md index afeb4b7643..e34561647d 100644 --- a/opentelemetry-zipkin/README.md +++ b/opentelemetry-zipkin/README.md @@ -23,7 +23,7 @@ analysis in order to understand your software's performance and behavior. This crate provides a trace pipeline and exporter for sending span information to a Zipkin collector for processing and visualization. -*Compiler support: [requires `rustc` 1.55+][msrv]* +*Compiler support: [requires `rustc` 1.49+][msrv]* [`Zipkin`]: https://zipkin.io/ [`OpenTelemetry`]: https://crates.io/crates/opentelemetry @@ -107,7 +107,7 @@ available so be sure to match them appropriately. ## Supported Rust Versions OpenTelemetry is built against the latest stable release. The minimum supported -version is 1.55. The current OpenTelemetry version is not guaranteed to build on +version is 1.49. The current OpenTelemetry version is not guaranteed to build on Rust versions earlier than the minimum supported version. The current stable Rust compiler and the three most recent minor versions before diff --git a/opentelemetry-zipkin/src/lib.rs b/opentelemetry-zipkin/src/lib.rs index 3d1e0c5c7c..9c08842ce9 100644 --- a/opentelemetry-zipkin/src/lib.rs +++ b/opentelemetry-zipkin/src/lib.rs @@ -3,7 +3,7 @@ //! Collects OpenTelemetry spans and reports them to a given Zipkin collector //! endpoint. See the [Zipkin Docs] for details and deployment information. //! -//! *Compiler support: [requires `rustc` 1.55+][msrv]* +//! *Compiler support: [requires `rustc` 1.49+][msrv]* //! //! [Zipkin Docs]: https://zipkin.io/ //! [msrv]: #supported-rust-versions @@ -98,31 +98,39 @@ //! use http::{Request, Response}; //! use std::convert::TryInto as _; //! use std::error::Error; +//! use hyper::{client::HttpConnector, Body}; //! //! // `reqwest` and `surf` are supported through features, if you prefer an //! // alternate http client you can add support by implementing `HttpClient` as //! // shown here. //! #[derive(Debug)] -//! struct IsahcClient(isahc::HttpClient); +//! struct HyperClient(hyper::Client); //! //! #[async_trait] -//! impl HttpClient for IsahcClient { -//! async fn send(&self, request: Request>) -> Result, HttpError> { -//! let mut response = self.0.send_async(request).await?; -//! let status = response.status(); -//! let mut bytes = Vec::with_capacity(response.body().len().unwrap_or(0).try_into()?); -//! isahc::AsyncReadResponseExt::copy_to(&mut response, &mut bytes).await?; -//! -//! Ok(Response::builder() -//! .status(response.status()) -//! .body(bytes.into())?) +//! impl HttpClient for HyperClient { +//! async fn send(&self, req: Request>) -> Result, HttpError> { +//! let resp = self +//! .0 +//! .request(req.map(|v| Body::from(v))) +//! .await?; +//! +//! let response = Response::builder() +//! .status(resp.status()) +//! .body({ +//! hyper::body::to_bytes(resp.into_body()) +//! .await +//! .expect("cannot decode response") +//! }) +//! .expect("cannot build response"); +//! +//! Ok(response) //! } //! } //! //! fn main() -> Result<(), Box> { //! global::set_text_map_propagator(opentelemetry_zipkin::Propagator::new()); //! let tracer = opentelemetry_zipkin::new_pipeline() -//! .with_http_client(IsahcClient(isahc::HttpClient::new()?)) +//! .with_http_client(HyperClient(hyper::Client::new())) //! .with_service_name("my_app") //! .with_service_address("127.0.0.1:8080".parse()?) //! .with_collector_endpoint("http://localhost:9411/api/v2/spans") diff --git a/opentelemetry/README.md b/opentelemetry/README.md index 7db302fc7a..c48c897edb 100644 --- a/opentelemetry/README.md +++ b/opentelemetry/README.md @@ -25,7 +25,7 @@ analysis in order to understand your software's performance and behavior. You can export and analyze them using [Prometheus], [Jaeger], and other observability tools. -*Compiler support: [requires `rustc` 1.55+][msrv]* +*Compiler support: [requires `rustc` 1.49+][msrv]* [Prometheus]: https://prometheus.io [Jaeger]: https://www.jaegertracing.io @@ -130,7 +130,7 @@ above, please let us know! We'd love to add your project to the list! ## Supported Rust Versions OpenTelemetry is built against the latest stable release. The minimum supported -version is 1.55. The current OpenTelemetry version is not guaranteed to build +version is 1.49. The current OpenTelemetry version is not guaranteed to build on Rust versions earlier than the minimum supported version. The current stable Rust compiler and the three most recent minor versions diff --git a/opentelemetry/src/lib.rs b/opentelemetry/src/lib.rs index b9bc2ebaa8..6f2e82b416 100644 --- a/opentelemetry/src/lib.rs +++ b/opentelemetry/src/lib.rs @@ -2,7 +2,7 @@ //! services to capture distributed traces and metrics from your application. You //! can analyze them using [Prometheus], [Jaeger], and other observability tools. //! -//! *Compiler support: [requires `rustc` 1.55+][msrv]* +//! *Compiler support: [requires `rustc` 1.49+][msrv]* //! //! [Prometheus]: https://prometheus.io //! [Jaeger]: https://www.jaegertracing.io