Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

Support http/json protocol #1585

Merged
merged 40 commits into from
Apr 23, 2024
Merged

Support http/json protocol #1585

merged 40 commits into from
Apr 23, 2024

Conversation

ramgdev
Copy link
Contributor

@ramgdev ramgdev commented Feb 27, 2024

Fixes #
Design discussion issue (if applicable) #

Changes

This change will export data in JSON format when http/json protocol is specified for a signal.

Merge requirement checklist

  • CONTRIBUTING guidelines followed
  • Unit tests added/updated (if applicable)
  • Appropriate CHANGELOG.md files updated for non-trivial, user-facing changes
  • Changes in public API reviewed (if applicable)

@ramgdev ramgdev requested a review from a team as a code owner February 27, 2024 18:04
Copy link

linux-foundation-easycla bot commented Feb 27, 2024

CLA Signed

The committers listed above are authorized under a signed CLA.

@ramgdev ramgdev marked this pull request as draft February 27, 2024 18:04
Copy link

codecov bot commented Feb 27, 2024

Codecov Report

Attention: Patch coverage is 81.55340% with 19 lines in your changes are missing coverage. Please review.

Project coverage is 69.0%. Comparing base (f203b03) to head (250fab4).
Report is 12 commits behind head on main.

❗ Current head 250fab4 differs from pull request most recent head aa2cd05. Consider uploading reports for the commit aa2cd05 to get more accurate results

Files Patch % Lines
opentelemetry-otlp/src/exporter/http/logs.rs 0.0% 8 Missing ⚠️
opentelemetry-otlp/src/exporter/http/metrics.rs 0.0% 8 Missing ⚠️
opentelemetry-otlp/src/exporter/http/trace.rs 93.6% 3 Missing ⚠️
Additional details and impacted files
@@           Coverage Diff           @@
##            main   #1585     +/-   ##
=======================================
- Coverage   69.3%   69.0%   -0.3%     
=======================================
  Files        136     136             
  Lines      19637   19517    -120     
=======================================
- Hits       13610   13483    -127     
- Misses      6027    6034      +7     

☔ View full report in Codecov by Sentry.
📢 Have feedback on the report? Share it here.

@lalitb
Copy link
Member

lalitb commented Feb 27, 2024

@ramgdev Thanks for volunteering to add the support. This looks to be in the right direction, and good to review once ready.

@ramgdev ramgdev changed the title Add http-json feature flag Support http/json protocol for trace Feb 28, 2024
Copy link
Contributor

@TommyCpp TommyCpp left a comment

Choose a reason for hiding this comment

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

Thanks for getting this start! It overall looks good. One thing to consider is we should make features additive. This means we should support enable both http-json and http-proto and let users config it in code.

@@ -73,6 +74,8 @@ http-proto = ["prost", "opentelemetry-http", "opentelemetry-proto/gen-tonic-mess
reqwest-blocking-client = ["reqwest/blocking", "opentelemetry-http/reqwest"]
reqwest-client = ["reqwest", "opentelemetry-http/reqwest"]
reqwest-rustls = ["reqwest", "reqwest/rustls-tls-native-roots"]
# http json
http-json = ["serde_json", "prost", "opentelemetry-http", "opentelemetry-proto/gen-tonic-messages", "http", "trace", "metrics"]
Copy link
Contributor

Choose a reason for hiding this comment

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

We can enable the with-serde feature of opentelemetry-proto here?

Copy link
Contributor Author

Choose a reason for hiding this comment

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

That's a good idea. I'll test it out.

opentelemetry-otlp/src/exporter/http/trace.rs Outdated Show resolved Hide resolved
Co-authored-by: Zhongyang Wu <zhongyang.wu@outlook.com>
@ramgdev
Copy link
Contributor Author

ramgdev commented Feb 28, 2024

@TommyCpp I agree users should be able to enable both http-proto and http-json features on the crate. I'll test it and perhaps use the protocol to decide on certain things in the code. Good catch.

@ramgdev ramgdev changed the title Support http/json protocol for trace Support http/json protocol Mar 18, 2024
@ramgdev
Copy link
Contributor Author

ramgdev commented Mar 29, 2024

@TommyCpp please take a look when you get a chance.

Copy link
Contributor

@TommyCpp TommyCpp left a comment

Choose a reason for hiding this comment

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

Overall looks good. My concern is mostly around http-json overriding with http-proto when both are enabled

opentelemetry-otlp/Cargo.toml Show resolved Hide resolved
opentelemetry-otlp/src/exporter/http/metrics.rs Outdated Show resolved Hide resolved
@@ -48,20 +48,28 @@ impl MetricsClient for OtlpHttpClient {
}
}

#[cfg(feature = "http-proto")]
#[cfg(any(feature = "http-proto", feature = "http-json"))]
fn build_body(metrics: &mut ResourceMetrics) -> Result<(Vec<u8>, &'static str)> {
Copy link
Contributor

Choose a reason for hiding this comment

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

For this part. I wonder if we can make the feature additive.

One way I see we can do it is:

  • Add protocol field in OtelHttpClient
  • Move build_body as part of the OtelHttpClient.

Then we just ask users to pass protocol in building pipline(it's already part of the export_config. And based on the feature the corresponding protocol may be available

Copy link
Contributor Author

@ramgdev ramgdev Apr 1, 2024

Choose a reason for hiding this comment

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

Are we still talking about exporting in one format per signal per pipeline? If so, it should be possible with the above code, no? For e.g I can enable both features http-json and http-proto and build 2 trace pipelines that export in each of those formats. Let me know if I'm missing something.

Copy link
Contributor

Choose a reason for hiding this comment

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

Yes by tuning the features it's possible to export in either proto or json. My preference is to ask users to explicitly tell the pipeline which protocol to rather then to config it using features. i.e it should be possible to enable both http-json and http-proto but choose to use http-proto. I think it current setup doesn't support this.

Copy link
Contributor Author

Choose a reason for hiding this comment

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

Understood. Would you want HttpExporterBuilder to receive protocol via with_protocol?

@ramgdev
Copy link
Contributor Author

ramgdev commented Apr 1, 2024

Overall looks good. My concern is mostly around http-json overriding with http-proto when both are enabled

That's where I had most trouble changing the code. It seems that having a single default protocol is the source of the confusion. One cannot have both http-json and http-photo unless they attach it to a specific signal, right? Ultimately the export is going to happen on only one format. That means we have to build this default using a key that combines both format and signal rather than just the format.

Co-authored-by: Zhongyang Wu <zhongyang.wu@outlook.com>
@TommyCpp
Copy link
Contributor

TommyCpp commented Apr 1, 2024

It seems that having a single default protocol is the source of the confusion.

Yeah I think it's reasonable to rely on features if the user didn't provide any configuration on which protocol to use. But we should allow(or even promote) configure the protocol explicitly

@ramgdev
Copy link
Contributor Author

ramgdev commented Apr 1, 2024

I think it's reasonable to rely on features

This is still a bit tricky when both http-json and http-proto features are enabled. Are we ok to pick http-json in that case? Or should we require the protocol to be specified when building the pipeline for http?

@TommyCpp
Copy link
Contributor

TommyCpp commented Apr 3, 2024

Are we ok to pick http-json in that case? Or should we require the protocol to be specified when building the pipeline for http?

Yeah I think it's OK for us to pick http-json if user didn't provide one. i.e have a feature override in default_protocol. But in builder we should give users option to override it. Let me know if it makes sense

@ramgdev
Copy link
Contributor Author

ramgdev commented Apr 20, 2024

@TommyCpp sorry, just got to this. Please take a look when you get a chance. Thanks.

@hdost hdost requested a review from TommyCpp April 21, 2024 18:08
@TommyCpp TommyCpp self-assigned this Apr 22, 2024
Copy link
Member

@lalitb lalitb left a comment

Choose a reason for hiding this comment

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

Thanks for the support. Nicely done.

@cijothomas cijothomas merged commit cc80ec6 into open-telemetry:main Apr 23, 2024
15 checks passed
@cijothomas
Copy link
Member

Thanks @ramgdev for your first PR! Hoping to see many more, if your time/passion permits!

jakubadamw added a commit to grafbase/grafbase that referenced this pull request Jun 3, 2024
[![Mend
Renovate](https://app.renovatebot.com/images/banner.svg)](https://renovatebot.com)

This PR contains the following updates:

| Package | Change | Age | Adoption | Passing | Confidence | Type |
Update |
|---|---|---|---|---|---|---|---|
|
[@types/node](https://togithub.com/DefinitelyTyped/DefinitelyTyped/tree/master/types/node)
([source](https://togithub.com/DefinitelyTyped/DefinitelyTyped/tree/HEAD/types/node))
| [`20.12.12` ->
`20.14.0`](https://renovatebot.com/diffs/npm/@types%2fnode/20.12.12/20.14.0)
|
[![age](https://developer.mend.io/api/mc/badges/age/npm/@types%2fnode/20.14.0?slim=true)](https://docs.renovatebot.com/merge-confidence/)
|
[![adoption](https://developer.mend.io/api/mc/badges/adoption/npm/@types%2fnode/20.14.0?slim=true)](https://docs.renovatebot.com/merge-confidence/)
|
[![passing](https://developer.mend.io/api/mc/badges/compatibility/npm/@types%2fnode/20.12.12/20.14.0?slim=true)](https://docs.renovatebot.com/merge-confidence/)
|
[![confidence](https://developer.mend.io/api/mc/badges/confidence/npm/@types%2fnode/20.12.12/20.14.0?slim=true)](https://docs.renovatebot.com/merge-confidence/)
| devDependencies | minor |
|
[@types/node](https://togithub.com/DefinitelyTyped/DefinitelyTyped/tree/master/types/node)
([source](https://togithub.com/DefinitelyTyped/DefinitelyTyped/tree/HEAD/types/node))
| [`20.12.11` ->
`20.14.0`](https://renovatebot.com/diffs/npm/@types%2fnode/20.12.11/20.14.0)
|
[![age](https://developer.mend.io/api/mc/badges/age/npm/@types%2fnode/20.14.0?slim=true)](https://docs.renovatebot.com/merge-confidence/)
|
[![adoption](https://developer.mend.io/api/mc/badges/adoption/npm/@types%2fnode/20.14.0?slim=true)](https://docs.renovatebot.com/merge-confidence/)
|
[![passing](https://developer.mend.io/api/mc/badges/compatibility/npm/@types%2fnode/20.12.11/20.14.0?slim=true)](https://docs.renovatebot.com/merge-confidence/)
|
[![confidence](https://developer.mend.io/api/mc/badges/confidence/npm/@types%2fnode/20.12.11/20.14.0?slim=true)](https://docs.renovatebot.com/merge-confidence/)
| devDependencies | minor |
|
[@types/react](https://togithub.com/DefinitelyTyped/DefinitelyTyped/tree/master/types/react)
([source](https://togithub.com/DefinitelyTyped/DefinitelyTyped/tree/HEAD/types/react))
| [`18.3.2` ->
`18.3.3`](https://renovatebot.com/diffs/npm/@types%2freact/18.3.2/18.3.3)
|
[![age](https://developer.mend.io/api/mc/badges/age/npm/@types%2freact/18.3.3?slim=true)](https://docs.renovatebot.com/merge-confidence/)
|
[![adoption](https://developer.mend.io/api/mc/badges/adoption/npm/@types%2freact/18.3.3?slim=true)](https://docs.renovatebot.com/merge-confidence/)
|
[![passing](https://developer.mend.io/api/mc/badges/compatibility/npm/@types%2freact/18.3.2/18.3.3?slim=true)](https://docs.renovatebot.com/merge-confidence/)
|
[![confidence](https://developer.mend.io/api/mc/badges/confidence/npm/@types%2freact/18.3.2/18.3.3?slim=true)](https://docs.renovatebot.com/merge-confidence/)
| devDependencies | patch |
|
[@typescript-eslint/eslint-plugin](https://typescript-eslint.io/packages/eslint-plugin)
([source](https://togithub.com/typescript-eslint/typescript-eslint/tree/HEAD/packages/eslint-plugin))
| [`7.8.0` ->
`7.11.0`](https://renovatebot.com/diffs/npm/@typescript-eslint%2feslint-plugin/7.8.0/7.11.0)
|
[![age](https://developer.mend.io/api/mc/badges/age/npm/@typescript-eslint%2feslint-plugin/7.11.0?slim=true)](https://docs.renovatebot.com/merge-confidence/)
|
[![adoption](https://developer.mend.io/api/mc/badges/adoption/npm/@typescript-eslint%2feslint-plugin/7.11.0?slim=true)](https://docs.renovatebot.com/merge-confidence/)
|
[![passing](https://developer.mend.io/api/mc/badges/compatibility/npm/@typescript-eslint%2feslint-plugin/7.8.0/7.11.0?slim=true)](https://docs.renovatebot.com/merge-confidence/)
|
[![confidence](https://developer.mend.io/api/mc/badges/confidence/npm/@typescript-eslint%2feslint-plugin/7.8.0/7.11.0?slim=true)](https://docs.renovatebot.com/merge-confidence/)
| devDependencies | minor |
|
[@typescript-eslint/parser](https://typescript-eslint.io/packages/parser)
([source](https://togithub.com/typescript-eslint/typescript-eslint/tree/HEAD/packages/parser))
| [`7.8.0` ->
`7.11.0`](https://renovatebot.com/diffs/npm/@typescript-eslint%2fparser/7.8.0/7.11.0)
|
[![age](https://developer.mend.io/api/mc/badges/age/npm/@typescript-eslint%2fparser/7.11.0?slim=true)](https://docs.renovatebot.com/merge-confidence/)
|
[![adoption](https://developer.mend.io/api/mc/badges/adoption/npm/@typescript-eslint%2fparser/7.11.0?slim=true)](https://docs.renovatebot.com/merge-confidence/)
|
[![passing](https://developer.mend.io/api/mc/badges/compatibility/npm/@typescript-eslint%2fparser/7.8.0/7.11.0?slim=true)](https://docs.renovatebot.com/merge-confidence/)
|
[![confidence](https://developer.mend.io/api/mc/badges/confidence/npm/@typescript-eslint%2fparser/7.8.0/7.11.0?slim=true)](https://docs.renovatebot.com/merge-confidence/)
| devDependencies | minor |
|
[@vitejs/plugin-react](https://togithub.com/vitejs/vite-plugin-react/tree/main/packages/plugin-react#readme)
([source](https://togithub.com/vitejs/vite-plugin-react/tree/HEAD/packages/plugin-react))
| [`4.2.1` ->
`4.3.0`](https://renovatebot.com/diffs/npm/@vitejs%2fplugin-react/4.2.1/4.3.0)
|
[![age](https://developer.mend.io/api/mc/badges/age/npm/@vitejs%2fplugin-react/4.3.0?slim=true)](https://docs.renovatebot.com/merge-confidence/)
|
[![adoption](https://developer.mend.io/api/mc/badges/adoption/npm/@vitejs%2fplugin-react/4.3.0?slim=true)](https://docs.renovatebot.com/merge-confidence/)
|
[![passing](https://developer.mend.io/api/mc/badges/compatibility/npm/@vitejs%2fplugin-react/4.2.1/4.3.0?slim=true)](https://docs.renovatebot.com/merge-confidence/)
|
[![confidence](https://developer.mend.io/api/mc/badges/confidence/npm/@vitejs%2fplugin-react/4.2.1/4.3.0?slim=true)](https://docs.renovatebot.com/merge-confidence/)
| devDependencies | minor |
| [async-compression](https://togithub.com/Nullus157/async-compression)
| `0.4.10` -> `0.4.11` |
[![age](https://developer.mend.io/api/mc/badges/age/crate/async-compression/0.4.11?slim=true)](https://docs.renovatebot.com/merge-confidence/)
|
[![adoption](https://developer.mend.io/api/mc/badges/adoption/crate/async-compression/0.4.11?slim=true)](https://docs.renovatebot.com/merge-confidence/)
|
[![passing](https://developer.mend.io/api/mc/badges/compatibility/crate/async-compression/0.4.10/0.4.11?slim=true)](https://docs.renovatebot.com/merge-confidence/)
|
[![confidence](https://developer.mend.io/api/mc/badges/confidence/crate/async-compression/0.4.10/0.4.11?slim=true)](https://docs.renovatebot.com/merge-confidence/)
| dependencies | patch |
| [async-lock](https://togithub.com/smol-rs/async-lock) | `3.3.0` ->
`3.4.0` |
[![age](https://developer.mend.io/api/mc/badges/age/crate/async-lock/3.4.0?slim=true)](https://docs.renovatebot.com/merge-confidence/)
|
[![adoption](https://developer.mend.io/api/mc/badges/adoption/crate/async-lock/3.4.0?slim=true)](https://docs.renovatebot.com/merge-confidence/)
|
[![passing](https://developer.mend.io/api/mc/badges/compatibility/crate/async-lock/3.3.0/3.4.0?slim=true)](https://docs.renovatebot.com/merge-confidence/)
|
[![confidence](https://developer.mend.io/api/mc/badges/confidence/crate/async-lock/3.3.0/3.4.0?slim=true)](https://docs.renovatebot.com/merge-confidence/)
| dependencies | minor |
| [async-tungstenite](https://togithub.com/sdroege/async-tungstenite) |
`0.25.1` -> `0.26.0` |
[![age](https://developer.mend.io/api/mc/badges/age/crate/async-tungstenite/0.26.0?slim=true)](https://docs.renovatebot.com/merge-confidence/)
|
[![adoption](https://developer.mend.io/api/mc/badges/adoption/crate/async-tungstenite/0.26.0?slim=true)](https://docs.renovatebot.com/merge-confidence/)
|
[![passing](https://developer.mend.io/api/mc/badges/compatibility/crate/async-tungstenite/0.25.1/0.26.0?slim=true)](https://docs.renovatebot.com/merge-confidence/)
|
[![confidence](https://developer.mend.io/api/mc/badges/confidence/crate/async-tungstenite/0.25.1/0.26.0?slim=true)](https://docs.renovatebot.com/merge-confidence/)
| dependencies | minor |
| [async-tungstenite](https://togithub.com/sdroege/async-tungstenite) |
`0.25.1` -> `0.26.0` |
[![age](https://developer.mend.io/api/mc/badges/age/crate/async-tungstenite/0.26.0?slim=true)](https://docs.renovatebot.com/merge-confidence/)
|
[![adoption](https://developer.mend.io/api/mc/badges/adoption/crate/async-tungstenite/0.26.0?slim=true)](https://docs.renovatebot.com/merge-confidence/)
|
[![passing](https://developer.mend.io/api/mc/badges/compatibility/crate/async-tungstenite/0.25.1/0.26.0?slim=true)](https://docs.renovatebot.com/merge-confidence/)
|
[![confidence](https://developer.mend.io/api/mc/badges/confidence/crate/async-tungstenite/0.25.1/0.26.0?slim=true)](https://docs.renovatebot.com/merge-confidence/)
| dev-dependencies | minor |
| [backtrace](https://togithub.com/rust-lang/backtrace-rs) | `0.3.71` ->
`0.3.72` |
[![age](https://developer.mend.io/api/mc/badges/age/crate/backtrace/0.3.72?slim=true)](https://docs.renovatebot.com/merge-confidence/)
|
[![adoption](https://developer.mend.io/api/mc/badges/adoption/crate/backtrace/0.3.72?slim=true)](https://docs.renovatebot.com/merge-confidence/)
|
[![passing](https://developer.mend.io/api/mc/badges/compatibility/crate/backtrace/0.3.71/0.3.72?slim=true)](https://docs.renovatebot.com/merge-confidence/)
|
[![confidence](https://developer.mend.io/api/mc/badges/confidence/crate/backtrace/0.3.71/0.3.72?slim=true)](https://docs.renovatebot.com/merge-confidence/)
| dependencies | patch |
| [bun](https://bun.sh) ([source](https://togithub.com/oven-sh/bun)) |
[`1.1.10` ->
`1.1.12`](https://renovatebot.com/diffs/npm/bun/1.1.10/1.1.12) |
[![age](https://developer.mend.io/api/mc/badges/age/npm/bun/1.1.12?slim=true)](https://docs.renovatebot.com/merge-confidence/)
|
[![adoption](https://developer.mend.io/api/mc/badges/adoption/npm/bun/1.1.12?slim=true)](https://docs.renovatebot.com/merge-confidence/)
|
[![passing](https://developer.mend.io/api/mc/badges/compatibility/npm/bun/1.1.10/1.1.12?slim=true)](https://docs.renovatebot.com/merge-confidence/)
|
[![confidence](https://developer.mend.io/api/mc/badges/confidence/npm/bun/1.1.10/1.1.12?slim=true)](https://docs.renovatebot.com/merge-confidence/)
| devDependencies | patch |
|
[eslint-plugin-react](https://togithub.com/jsx-eslint/eslint-plugin-react)
| [`7.34.1` ->
`7.34.2`](https://renovatebot.com/diffs/npm/eslint-plugin-react/7.34.1/7.34.2)
|
[![age](https://developer.mend.io/api/mc/badges/age/npm/eslint-plugin-react/7.34.2?slim=true)](https://docs.renovatebot.com/merge-confidence/)
|
[![adoption](https://developer.mend.io/api/mc/badges/adoption/npm/eslint-plugin-react/7.34.2?slim=true)](https://docs.renovatebot.com/merge-confidence/)
|
[![passing](https://developer.mend.io/api/mc/badges/compatibility/npm/eslint-plugin-react/7.34.1/7.34.2?slim=true)](https://docs.renovatebot.com/merge-confidence/)
|
[![confidence](https://developer.mend.io/api/mc/badges/confidence/npm/eslint-plugin-react/7.34.1/7.34.2?slim=true)](https://docs.renovatebot.com/merge-confidence/)
| dependencies | patch |
| [hyper-util](https://hyper.rs)
([source](https://togithub.com/hyperium/hyper-util)) | `0.1.4` ->
`0.1.5` |
[![age](https://developer.mend.io/api/mc/badges/age/crate/hyper-util/0.1.5?slim=true)](https://docs.renovatebot.com/merge-confidence/)
|
[![adoption](https://developer.mend.io/api/mc/badges/adoption/crate/hyper-util/0.1.5?slim=true)](https://docs.renovatebot.com/merge-confidence/)
|
[![passing](https://developer.mend.io/api/mc/badges/compatibility/crate/hyper-util/0.1.4/0.1.5?slim=true)](https://docs.renovatebot.com/merge-confidence/)
|
[![confidence](https://developer.mend.io/api/mc/badges/confidence/crate/hyper-util/0.1.4/0.1.5?slim=true)](https://docs.renovatebot.com/merge-confidence/)
| workspace.dependencies | patch |
| [openidconnect](https://togithub.com/ramosbugs/openidconnect-rs) |
`4.0.0-alpha.1` -> `4.0.0-alpha.2` |
[![age](https://developer.mend.io/api/mc/badges/age/crate/openidconnect/4.0.0-alpha.2?slim=true)](https://docs.renovatebot.com/merge-confidence/)
|
[![adoption](https://developer.mend.io/api/mc/badges/adoption/crate/openidconnect/4.0.0-alpha.2?slim=true)](https://docs.renovatebot.com/merge-confidence/)
|
[![passing](https://developer.mend.io/api/mc/badges/compatibility/crate/openidconnect/4.0.0-alpha.1/4.0.0-alpha.2?slim=true)](https://docs.renovatebot.com/merge-confidence/)
|
[![confidence](https://developer.mend.io/api/mc/badges/confidence/crate/openidconnect/4.0.0-alpha.1/4.0.0-alpha.2?slim=true)](https://docs.renovatebot.com/merge-confidence/)
| workspace.dependencies | patch |
|
[opentelemetry](https://togithub.com/open-telemetry/opentelemetry-rust)
| `0.22` -> `0.23` |
[![age](https://developer.mend.io/api/mc/badges/age/crate/opentelemetry/0.23.0?slim=true)](https://docs.renovatebot.com/merge-confidence/)
|
[![adoption](https://developer.mend.io/api/mc/badges/adoption/crate/opentelemetry/0.23.0?slim=true)](https://docs.renovatebot.com/merge-confidence/)
|
[![passing](https://developer.mend.io/api/mc/badges/compatibility/crate/opentelemetry/0.22.0/0.23.0?slim=true)](https://docs.renovatebot.com/merge-confidence/)
|
[![confidence](https://developer.mend.io/api/mc/badges/confidence/crate/opentelemetry/0.22.0/0.23.0?slim=true)](https://docs.renovatebot.com/merge-confidence/)
| dependencies | minor |
|
[opentelemetry-otlp](https://togithub.com/open-telemetry/opentelemetry-rust/tree/main/opentelemetry-otlp)
([source](https://togithub.com/open-telemetry/opentelemetry-rust/tree/HEAD/opentelemetry-otlp))
| `0.15` -> `0.16` |
[![age](https://developer.mend.io/api/mc/badges/age/crate/opentelemetry-otlp/0.16.0?slim=true)](https://docs.renovatebot.com/merge-confidence/)
|
[![adoption](https://developer.mend.io/api/mc/badges/adoption/crate/opentelemetry-otlp/0.16.0?slim=true)](https://docs.renovatebot.com/merge-confidence/)
|
[![passing](https://developer.mend.io/api/mc/badges/compatibility/crate/opentelemetry-otlp/0.15.0/0.16.0?slim=true)](https://docs.renovatebot.com/merge-confidence/)
|
[![confidence](https://developer.mend.io/api/mc/badges/confidence/crate/opentelemetry-otlp/0.15.0/0.16.0?slim=true)](https://docs.renovatebot.com/merge-confidence/)
| dependencies | minor |
|
[opentelemetry-stdout](https://togithub.com/open-telemetry/opentelemetry-rust/tree/main/opentelemetry-stdout)
([source](https://togithub.com/open-telemetry/opentelemetry-rust/tree/HEAD/opentelemetry-stdout))
| `0.3` -> `0.4` |
[![age](https://developer.mend.io/api/mc/badges/age/crate/opentelemetry-stdout/0.4.0?slim=true)](https://docs.renovatebot.com/merge-confidence/)
|
[![adoption](https://developer.mend.io/api/mc/badges/adoption/crate/opentelemetry-stdout/0.4.0?slim=true)](https://docs.renovatebot.com/merge-confidence/)
|
[![passing](https://developer.mend.io/api/mc/badges/compatibility/crate/opentelemetry-stdout/0.3.0/0.4.0?slim=true)](https://docs.renovatebot.com/merge-confidence/)
|
[![confidence](https://developer.mend.io/api/mc/badges/confidence/crate/opentelemetry-stdout/0.3.0/0.4.0?slim=true)](https://docs.renovatebot.com/merge-confidence/)
| dependencies | minor |
|
[opentelemetry_sdk](https://togithub.com/open-telemetry/opentelemetry-rust)
| `0.22.0` -> `0.23.0` |
[![age](https://developer.mend.io/api/mc/badges/age/crate/opentelemetry_sdk/0.23.0?slim=true)](https://docs.renovatebot.com/merge-confidence/)
|
[![adoption](https://developer.mend.io/api/mc/badges/adoption/crate/opentelemetry_sdk/0.23.0?slim=true)](https://docs.renovatebot.com/merge-confidence/)
|
[![passing](https://developer.mend.io/api/mc/badges/compatibility/crate/opentelemetry_sdk/0.22.1/0.23.0?slim=true)](https://docs.renovatebot.com/merge-confidence/)
|
[![confidence](https://developer.mend.io/api/mc/badges/confidence/crate/opentelemetry_sdk/0.22.1/0.23.0?slim=true)](https://docs.renovatebot.com/merge-confidence/)
| dependencies | minor |
| [pnpm](https://pnpm.io) ([source](https://togithub.com/pnpm/pnpm)) |
[`9.1.3` -> `9.1.4`](https://renovatebot.com/diffs/npm/pnpm/9.1.3/9.1.4)
|
[![age](https://developer.mend.io/api/mc/badges/age/npm/pnpm/9.1.4?slim=true)](https://docs.renovatebot.com/merge-confidence/)
|
[![adoption](https://developer.mend.io/api/mc/badges/adoption/npm/pnpm/9.1.4?slim=true)](https://docs.renovatebot.com/merge-confidence/)
|
[![passing](https://developer.mend.io/api/mc/badges/compatibility/npm/pnpm/9.1.3/9.1.4?slim=true)](https://docs.renovatebot.com/merge-confidence/)
|
[![confidence](https://developer.mend.io/api/mc/badges/confidence/npm/pnpm/9.1.3/9.1.4?slim=true)](https://docs.renovatebot.com/merge-confidence/)
| packageManager | patch |
| [proc-macro2](https://togithub.com/dtolnay/proc-macro2) | `1.0.84` ->
`1.0.85` |
[![age](https://developer.mend.io/api/mc/badges/age/crate/proc-macro2/1.0.85?slim=true)](https://docs.renovatebot.com/merge-confidence/)
|
[![adoption](https://developer.mend.io/api/mc/badges/adoption/crate/proc-macro2/1.0.85?slim=true)](https://docs.renovatebot.com/merge-confidence/)
|
[![passing](https://developer.mend.io/api/mc/badges/compatibility/crate/proc-macro2/1.0.84/1.0.85?slim=true)](https://docs.renovatebot.com/merge-confidence/)
|
[![confidence](https://developer.mend.io/api/mc/badges/confidence/crate/proc-macro2/1.0.84/1.0.85?slim=true)](https://docs.renovatebot.com/merge-confidence/)
| dependencies | patch |
| [rstest](https://togithub.com/la10736/rstest) | `0.19` -> `0.21` |
[![age](https://developer.mend.io/api/mc/badges/age/crate/rstest/0.21.0?slim=true)](https://docs.renovatebot.com/merge-confidence/)
|
[![adoption](https://developer.mend.io/api/mc/badges/adoption/crate/rstest/0.21.0?slim=true)](https://docs.renovatebot.com/merge-confidence/)
|
[![passing](https://developer.mend.io/api/mc/badges/compatibility/crate/rstest/0.19.0/0.21.0?slim=true)](https://docs.renovatebot.com/merge-confidence/)
|
[![confidence](https://developer.mend.io/api/mc/badges/confidence/crate/rstest/0.19.0/0.21.0?slim=true)](https://docs.renovatebot.com/merge-confidence/)
| dev-dependencies | minor |
| [rstest](https://togithub.com/la10736/rstest) | `0.19` -> `0.21` |
[![age](https://developer.mend.io/api/mc/badges/age/crate/rstest/0.21.0?slim=true)](https://docs.renovatebot.com/merge-confidence/)
|
[![adoption](https://developer.mend.io/api/mc/badges/adoption/crate/rstest/0.21.0?slim=true)](https://docs.renovatebot.com/merge-confidence/)
|
[![passing](https://developer.mend.io/api/mc/badges/compatibility/crate/rstest/0.19.0/0.21.0?slim=true)](https://docs.renovatebot.com/merge-confidence/)
|
[![confidence](https://developer.mend.io/api/mc/badges/confidence/crate/rstest/0.19.0/0.21.0?slim=true)](https://docs.renovatebot.com/merge-confidence/)
| workspace.dependencies | minor |
| [rstest_reuse](https://togithub.com/la10736/rstest) | `0.6` -> `0.7` |
[![age](https://developer.mend.io/api/mc/badges/age/crate/rstest_reuse/0.7.0?slim=true)](https://docs.renovatebot.com/merge-confidence/)
|
[![adoption](https://developer.mend.io/api/mc/badges/adoption/crate/rstest_reuse/0.7.0?slim=true)](https://docs.renovatebot.com/merge-confidence/)
|
[![passing](https://developer.mend.io/api/mc/badges/compatibility/crate/rstest_reuse/0.6.0/0.7.0?slim=true)](https://docs.renovatebot.com/merge-confidence/)
|
[![confidence](https://developer.mend.io/api/mc/badges/confidence/crate/rstest_reuse/0.6.0/0.7.0?slim=true)](https://docs.renovatebot.com/merge-confidence/)
| dev-dependencies | minor |
| [strum_macros](https://togithub.com/Peternator7/strum) | `0.26.2` ->
`0.26.3` |
[![age](https://developer.mend.io/api/mc/badges/age/crate/strum_macros/0.26.3?slim=true)](https://docs.renovatebot.com/merge-confidence/)
|
[![adoption](https://developer.mend.io/api/mc/badges/adoption/crate/strum_macros/0.26.3?slim=true)](https://docs.renovatebot.com/merge-confidence/)
|
[![passing](https://developer.mend.io/api/mc/badges/compatibility/crate/strum_macros/0.26.2/0.26.3?slim=true)](https://docs.renovatebot.com/merge-confidence/)
|
[![confidence](https://developer.mend.io/api/mc/badges/confidence/crate/strum_macros/0.26.2/0.26.3?slim=true)](https://docs.renovatebot.com/merge-confidence/)
| workspace.dependencies | patch |
| [swc_ecma_ast](https://togithub.com/swc-project/swc) | `0.113.4` ->
`0.113.5` |
[![age](https://developer.mend.io/api/mc/badges/age/crate/swc_ecma_ast/0.113.5?slim=true)](https://docs.renovatebot.com/merge-confidence/)
|
[![adoption](https://developer.mend.io/api/mc/badges/adoption/crate/swc_ecma_ast/0.113.5?slim=true)](https://docs.renovatebot.com/merge-confidence/)
|
[![passing](https://developer.mend.io/api/mc/badges/compatibility/crate/swc_ecma_ast/0.113.4/0.113.5?slim=true)](https://docs.renovatebot.com/merge-confidence/)
|
[![confidence](https://developer.mend.io/api/mc/badges/confidence/crate/swc_ecma_ast/0.113.4/0.113.5?slim=true)](https://docs.renovatebot.com/merge-confidence/)
| dependencies | patch |
| [tokio](https://tokio.rs)
([source](https://togithub.com/tokio-rs/tokio)) | `1.37.0` -> `1.38.0` |
[![age](https://developer.mend.io/api/mc/badges/age/crate/tokio/1.38.0?slim=true)](https://docs.renovatebot.com/merge-confidence/)
|
[![adoption](https://developer.mend.io/api/mc/badges/adoption/crate/tokio/1.38.0?slim=true)](https://docs.renovatebot.com/merge-confidence/)
|
[![passing](https://developer.mend.io/api/mc/badges/compatibility/crate/tokio/1.37.0/1.38.0?slim=true)](https://docs.renovatebot.com/merge-confidence/)
|
[![confidence](https://developer.mend.io/api/mc/badges/confidence/crate/tokio/1.37.0/1.38.0?slim=true)](https://docs.renovatebot.com/merge-confidence/)
| dev-dependencies | minor |
| [tokio](https://tokio.rs)
([source](https://togithub.com/tokio-rs/tokio)) | `1.37.0` -> `1.38.0` |
[![age](https://developer.mend.io/api/mc/badges/age/crate/tokio/1.38.0?slim=true)](https://docs.renovatebot.com/merge-confidence/)
|
[![adoption](https://developer.mend.io/api/mc/badges/adoption/crate/tokio/1.38.0?slim=true)](https://docs.renovatebot.com/merge-confidence/)
|
[![passing](https://developer.mend.io/api/mc/badges/compatibility/crate/tokio/1.37.0/1.38.0?slim=true)](https://docs.renovatebot.com/merge-confidence/)
|
[![confidence](https://developer.mend.io/api/mc/badges/confidence/crate/tokio/1.37.0/1.38.0?slim=true)](https://docs.renovatebot.com/merge-confidence/)
| dependencies | minor |
| [tokio](https://tokio.rs)
([source](https://togithub.com/tokio-rs/tokio)) | `1.37.0` -> `1.38.0` |
[![age](https://developer.mend.io/api/mc/badges/age/crate/tokio/1.38.0?slim=true)](https://docs.renovatebot.com/merge-confidence/)
|
[![adoption](https://developer.mend.io/api/mc/badges/adoption/crate/tokio/1.38.0?slim=true)](https://docs.renovatebot.com/merge-confidence/)
|
[![passing](https://developer.mend.io/api/mc/badges/compatibility/crate/tokio/1.37.0/1.38.0?slim=true)](https://docs.renovatebot.com/merge-confidence/)
|
[![confidence](https://developer.mend.io/api/mc/badges/confidence/crate/tokio/1.37.0/1.38.0?slim=true)](https://docs.renovatebot.com/merge-confidence/)
| workspace.dependencies | minor |
|
[tokio-postgres-rustls](https://togithub.com/jbg/tokio-postgres-rustls)
| `0.11.0` -> `0.12.0` |
[![age](https://developer.mend.io/api/mc/badges/age/crate/tokio-postgres-rustls/0.12.0?slim=true)](https://docs.renovatebot.com/merge-confidence/)
|
[![adoption](https://developer.mend.io/api/mc/badges/adoption/crate/tokio-postgres-rustls/0.12.0?slim=true)](https://docs.renovatebot.com/merge-confidence/)
|
[![passing](https://developer.mend.io/api/mc/badges/compatibility/crate/tokio-postgres-rustls/0.11.1/0.12.0?slim=true)](https://docs.renovatebot.com/merge-confidence/)
|
[![confidence](https://developer.mend.io/api/mc/badges/confidence/crate/tokio-postgres-rustls/0.11.1/0.12.0?slim=true)](https://docs.renovatebot.com/merge-confidence/)
| workspace.dependencies | minor |
| [tokio-rustls](https://togithub.com/rustls/tokio-rustls) | `0.25.0` ->
`0.26.0` |
[![age](https://developer.mend.io/api/mc/badges/age/crate/tokio-rustls/0.26.0?slim=true)](https://docs.renovatebot.com/merge-confidence/)
|
[![adoption](https://developer.mend.io/api/mc/badges/adoption/crate/tokio-rustls/0.26.0?slim=true)](https://docs.renovatebot.com/merge-confidence/)
|
[![passing](https://developer.mend.io/api/mc/badges/compatibility/crate/tokio-rustls/0.25.0/0.26.0?slim=true)](https://docs.renovatebot.com/merge-confidence/)
|
[![confidence](https://developer.mend.io/api/mc/badges/confidence/crate/tokio-rustls/0.25.0/0.26.0?slim=true)](https://docs.renovatebot.com/merge-confidence/)
| workspace.dependencies | minor |
| [tokio-tungstenite](https://togithub.com/snapview/tokio-tungstenite) |
`0.21.0` -> `0.23.0` |
[![age](https://developer.mend.io/api/mc/badges/age/crate/tokio-tungstenite/0.23.0?slim=true)](https://docs.renovatebot.com/merge-confidence/)
|
[![adoption](https://developer.mend.io/api/mc/badges/adoption/crate/tokio-tungstenite/0.23.0?slim=true)](https://docs.renovatebot.com/merge-confidence/)
|
[![passing](https://developer.mend.io/api/mc/badges/compatibility/crate/tokio-tungstenite/0.21.0/0.23.0?slim=true)](https://docs.renovatebot.com/merge-confidence/)
|
[![confidence](https://developer.mend.io/api/mc/badges/confidence/crate/tokio-tungstenite/0.21.0/0.23.0?slim=true)](https://docs.renovatebot.com/merge-confidence/)
| workspace.dependencies | minor |
|
[tracing-opentelemetry](https://togithub.com/tokio-rs/tracing-opentelemetry)
| `0.23` -> `0.24` |
[![age](https://developer.mend.io/api/mc/badges/age/crate/tracing-opentelemetry/0.24.0?slim=true)](https://docs.renovatebot.com/merge-confidence/)
|
[![adoption](https://developer.mend.io/api/mc/badges/adoption/crate/tracing-opentelemetry/0.24.0?slim=true)](https://docs.renovatebot.com/merge-confidence/)
|
[![passing](https://developer.mend.io/api/mc/badges/compatibility/crate/tracing-opentelemetry/0.23.0/0.24.0?slim=true)](https://docs.renovatebot.com/merge-confidence/)
|
[![confidence](https://developer.mend.io/api/mc/badges/confidence/crate/tracing-opentelemetry/0.23.0/0.24.0?slim=true)](https://docs.renovatebot.com/merge-confidence/)
| dependencies | minor |
| [ts-jest](https://kulshekhar.github.io/ts-jest)
([source](https://togithub.com/kulshekhar/ts-jest)) | [`=29.1.3` ->
`=29.1.4`](https://renovatebot.com/diffs/npm/ts-jest/29.1.3/29.1.4) |
[![age](https://developer.mend.io/api/mc/badges/age/npm/ts-jest/29.1.4?slim=true)](https://docs.renovatebot.com/merge-confidence/)
|
[![adoption](https://developer.mend.io/api/mc/badges/adoption/npm/ts-jest/29.1.4?slim=true)](https://docs.renovatebot.com/merge-confidence/)
|
[![passing](https://developer.mend.io/api/mc/badges/compatibility/npm/ts-jest/29.1.3/29.1.4?slim=true)](https://docs.renovatebot.com/merge-confidence/)
|
[![confidence](https://developer.mend.io/api/mc/badges/confidence/npm/ts-jest/29.1.3/29.1.4?slim=true)](https://docs.renovatebot.com/merge-confidence/)
| devDependencies | patch |
| [tsup](https://tsup.egoist.dev/)
([source](https://togithub.com/egoist/tsup)) | [`8.0.2` ->
`8.1.0`](https://renovatebot.com/diffs/npm/tsup/8.0.2/8.1.0) |
[![age](https://developer.mend.io/api/mc/badges/age/npm/tsup/8.1.0?slim=true)](https://docs.renovatebot.com/merge-confidence/)
|
[![adoption](https://developer.mend.io/api/mc/badges/adoption/npm/tsup/8.1.0?slim=true)](https://docs.renovatebot.com/merge-confidence/)
|
[![passing](https://developer.mend.io/api/mc/badges/compatibility/npm/tsup/8.0.2/8.1.0?slim=true)](https://docs.renovatebot.com/merge-confidence/)
|
[![confidence](https://developer.mend.io/api/mc/badges/confidence/npm/tsup/8.0.2/8.1.0?slim=true)](https://docs.renovatebot.com/merge-confidence/)
| devDependencies | minor |
| [tungstenite](https://togithub.com/snapview/tungstenite-rs) | `0.21.0`
-> `0.23.0` |
[![age](https://developer.mend.io/api/mc/badges/age/crate/tungstenite/0.23.0?slim=true)](https://docs.renovatebot.com/merge-confidence/)
|
[![adoption](https://developer.mend.io/api/mc/badges/adoption/crate/tungstenite/0.23.0?slim=true)](https://docs.renovatebot.com/merge-confidence/)
|
[![passing](https://developer.mend.io/api/mc/badges/compatibility/crate/tungstenite/0.21.0/0.23.0?slim=true)](https://docs.renovatebot.com/merge-confidence/)
|
[![confidence](https://developer.mend.io/api/mc/badges/confidence/crate/tungstenite/0.21.0/0.23.0?slim=true)](https://docs.renovatebot.com/merge-confidence/)
| workspace.dependencies | minor |
| [type-fest](https://togithub.com/sindresorhus/type-fest) | [`4.18.2`
-> `4.18.3`](https://renovatebot.com/diffs/npm/type-fest/4.18.2/4.18.3)
|
[![age](https://developer.mend.io/api/mc/badges/age/npm/type-fest/4.18.3?slim=true)](https://docs.renovatebot.com/merge-confidence/)
|
[![adoption](https://developer.mend.io/api/mc/badges/adoption/npm/type-fest/4.18.3?slim=true)](https://docs.renovatebot.com/merge-confidence/)
|
[![passing](https://developer.mend.io/api/mc/badges/compatibility/npm/type-fest/4.18.2/4.18.3?slim=true)](https://docs.renovatebot.com/merge-confidence/)
|
[![confidence](https://developer.mend.io/api/mc/badges/confidence/npm/type-fest/4.18.2/4.18.3?slim=true)](https://docs.renovatebot.com/merge-confidence/)
| dependencies | patch |
| [vite](https://vitejs.dev)
([source](https://togithub.com/vitejs/vite/tree/HEAD/packages/vite)) |
[`5.2.11` ->
`5.2.12`](https://renovatebot.com/diffs/npm/vite/5.2.11/5.2.12) |
[![age](https://developer.mend.io/api/mc/badges/age/npm/vite/5.2.12?slim=true)](https://docs.renovatebot.com/merge-confidence/)
|
[![adoption](https://developer.mend.io/api/mc/badges/adoption/npm/vite/5.2.12?slim=true)](https://docs.renovatebot.com/merge-confidence/)
|
[![passing](https://developer.mend.io/api/mc/badges/compatibility/npm/vite/5.2.11/5.2.12?slim=true)](https://docs.renovatebot.com/merge-confidence/)
|
[![confidence](https://developer.mend.io/api/mc/badges/confidence/npm/vite/5.2.11/5.2.12?slim=true)](https://docs.renovatebot.com/merge-confidence/)
| devDependencies | patch |
| [zip](https://togithub.com/zip-rs/zip2) | `2.1.0` -> `2.1.2` |
[![age](https://developer.mend.io/api/mc/badges/age/crate/zip/2.1.2?slim=true)](https://docs.renovatebot.com/merge-confidence/)
|
[![adoption](https://developer.mend.io/api/mc/badges/adoption/crate/zip/2.1.2?slim=true)](https://docs.renovatebot.com/merge-confidence/)
|
[![passing](https://developer.mend.io/api/mc/badges/compatibility/crate/zip/2.1.0/2.1.2?slim=true)](https://docs.renovatebot.com/merge-confidence/)
|
[![confidence](https://developer.mend.io/api/mc/badges/confidence/crate/zip/2.1.0/2.1.2?slim=true)](https://docs.renovatebot.com/merge-confidence/)
| dependencies | patch |

---

### Release Notes

<details>
<summary>typescript-eslint/typescript-eslint
(@&#8203;typescript-eslint/eslint-plugin)</summary>

###
[`v7.11.0`](https://togithub.com/typescript-eslint/typescript-eslint/blob/HEAD/packages/eslint-plugin/CHANGELOG.md#7110-2024-05-27)

[Compare
Source](https://togithub.com/typescript-eslint/typescript-eslint/compare/v7.10.0...v7.11.0)

##### 🚀 Features

- **eslint-plugin:** deprecate prefer-ts-expect-error in favor of
ban-ts-comment

##### 🩹 Fixes

- **eslint-plugin:** \[consistent-type-assertions] prevent syntax errors
on arrow functions

##### ❤️  Thank You

-   Abraham Guo
-   auvred
-   Dom Armstrong
-   Kirk Waiblinger

You can read about our [versioning
strategy](https://main--typescript-eslint.netlify.app/users/versioning)
and
[releases](https://main--typescript-eslint.netlify.app/users/releases)
on our website.

###
[`v7.10.0`](https://togithub.com/typescript-eslint/typescript-eslint/blob/HEAD/packages/eslint-plugin/CHANGELOG.md#7100-2024-05-20)

[Compare
Source](https://togithub.com/typescript-eslint/typescript-eslint/compare/v7.9.0...v7.10.0)

##### 🚀 Features

- **eslint-plugin:** \[sort-type-constituents] support case sensitive
sorting

##### 🩹 Fixes

- **eslint-plugin:** \[prefer-regexp-exec] fix heuristic to check
whether regex may contain global flag

##### ❤️  Thank You

-   auvred
-   Emanuel Hoogeveen
-   jsfm01
-   Kirk Waiblinger

You can read about our [versioning
strategy](https://main--typescript-eslint.netlify.app/users/versioning)
and
[releases](https://main--typescript-eslint.netlify.app/users/releases)
on our website.

###
[`v7.9.0`](https://togithub.com/typescript-eslint/typescript-eslint/blob/HEAD/packages/eslint-plugin/CHANGELOG.md#790-2024-05-13)

[Compare
Source](https://togithub.com/typescript-eslint/typescript-eslint/compare/v7.8.0...v7.9.0)

##### 🩹 Fixes

- **eslint-plugin:** \[explicit-function-return-types] fix false
positive on default parameters

##### ❤️  Thank You

-   Kirk Waiblinger
-   Sheetal Nandi
-   Vinccool96

You can read about our [versioning
strategy](https://main--typescript-eslint.netlify.app/users/versioning)
and
[releases](https://main--typescript-eslint.netlify.app/users/releases)
on our website.

</details>

<details>
<summary>typescript-eslint/typescript-eslint
(@&#8203;typescript-eslint/parser)</summary>

###
[`v7.11.0`](https://togithub.com/typescript-eslint/typescript-eslint/blob/HEAD/packages/parser/CHANGELOG.md#7110-2024-05-27)

[Compare
Source](https://togithub.com/typescript-eslint/typescript-eslint/compare/v7.10.0...v7.11.0)

This was a version bump only for parser to align it with other projects,
there were no code changes.

You can read about our [versioning
strategy](https://main--typescript-eslint.netlify.app/users/versioning)
and
[releases](https://main--typescript-eslint.netlify.app/users/releases)
on our website.

###
[`v7.10.0`](https://togithub.com/typescript-eslint/typescript-eslint/blob/HEAD/packages/parser/CHANGELOG.md#7100-2024-05-20)

[Compare
Source](https://togithub.com/typescript-eslint/typescript-eslint/compare/v7.9.0...v7.10.0)

This was a version bump only for parser to align it with other projects,
there were no code changes.

You can read about our [versioning
strategy](https://main--typescript-eslint.netlify.app/users/versioning)
and
[releases](https://main--typescript-eslint.netlify.app/users/releases)
on our website.

###
[`v7.9.0`](https://togithub.com/typescript-eslint/typescript-eslint/blob/HEAD/packages/parser/CHANGELOG.md#790-2024-05-13)

[Compare
Source](https://togithub.com/typescript-eslint/typescript-eslint/compare/v7.8.0...v7.9.0)

This was a version bump only for parser to align it with other projects,
there were no code changes.

You can read about our [versioning
strategy](https://main--typescript-eslint.netlify.app/users/versioning)
and
[releases](https://main--typescript-eslint.netlify.app/users/releases)
on our website.

</details>

<details>
<summary>vitejs/vite-plugin-react
(@&#8203;vitejs/plugin-react)</summary>

###
[`v4.3.0`](https://togithub.com/vitejs/vite-plugin-react/blob/HEAD/packages/plugin-react/CHANGELOG.md#430-2024-05-22)

[Compare
Source](https://togithub.com/vitejs/vite-plugin-react/compare/v4.2.1...v4.3.0)

##### Fix support for React compiler

Don't set `retainLines: true` when the React compiler is used. This
creates whitespace issues and the compiler is modifying the JSX too much
to get correct line numbers after that. If you want to use the React
compiler and get back correct line numbers for tools like
[vite-plugin-react-click-to-component](https://togithub.com/ArnaudBarre/vite-plugin-react-click-to-component)
to work, you should update your config to something like:

```ts
export default defineConfig(({ command }) => {
  const babelPlugins = [['babel-plugin-react-compiler', {}]]
  if (command === 'serve') {
    babelPlugins.push(['@&#8203;babel/plugin-transform-react-jsx-development', {}])
  }

  return {
    plugins: [react({ babel: { plugins: babelPlugins } })],
  }
})
```

##### Support HMR for class components

This is a long overdue and should fix some issues people had with HMR
when migrating from CRA.

</details>

<details>
<summary>Nullus157/async-compression (async-compression)</summary>

###
[`v0.4.11`](https://togithub.com/Nullus157/async-compression/blob/HEAD/CHANGELOG.md#0411---2024-05-30)

[Compare
Source](https://togithub.com/Nullus157/async-compression/compare/v0.4.10...v0.4.11)

##### Other

-   Expose total_in/total_out from underlying flate2 encoder types.

</details>

<details>
<summary>smol-rs/async-lock (async-lock)</summary>

###
[`v3.4.0`](https://togithub.com/smol-rs/async-lock/blob/HEAD/CHANGELOG.md#Version-340)

[Compare
Source](https://togithub.com/smol-rs/async-lock/compare/v3.3.0...v3.4.0)

- Port to `event-listener` v5.0.0.
([#&#8203;74](https://togithub.com/smol-rs/async-lock/issues/74))

</details>

<details>
<summary>sdroege/async-tungstenite (async-tungstenite)</summary>

###
[`v0.26.0`](https://togithub.com/sdroege/async-tungstenite/blob/HEAD/CHANGELOG.md#0260---2024-06-02)

[Compare
Source](https://togithub.com/sdroege/async-tungstenite/compare/0.25.1...0.26.0)

##### Changed

-   Update to tungstenite 0.23.
-   Don't include default features for various dependencies.

</details>

<details>
<summary>rust-lang/backtrace-rs (backtrace)</summary>

###
[`v0.3.72`](https://togithub.com/rust-lang/backtrace-rs/releases/tag/0.3.72)

[Compare
Source](https://togithub.com/rust-lang/backtrace-rs/compare/0.3.71...0.3.72)

This release removes a lot of dead code. Some feature flags that haven't
done anything in a long time are gone. If you depend on those features,
Cargo's resolver will not update you to 0.3.72.

If your code runs on Windows, or you want it to run on visionOS,
however, you should probably update to this version. It contains a
number of fixes for both OS. It also uses the latest version of a number
of dependencies.

#### What's Changed

- Revert "Use rustc from stage0 instead of stage0-sysroot (rust-lang/ba…
by [@&#8203;Nilstrieb](https://togithub.com/Nilstrieb) in
[https://github.com/rust-lang/backtrace-rs/pull/603](https://togithub.com/rust-lang/backtrace-rs/pull/603)
- Remove dead code by
[@&#8203;ChrisDenton](https://togithub.com/ChrisDenton) in
[https://github.com/rust-lang/backtrace-rs/pull/605](https://togithub.com/rust-lang/backtrace-rs/pull/605)
- Fix CI and remove rustc-serialize by
[@&#8203;ChrisDenton](https://togithub.com/ChrisDenton) in
[https://github.com/rust-lang/backtrace-rs/pull/596](https://togithub.com/rust-lang/backtrace-rs/pull/596)
- Use correct base address and update comment by
[@&#8203;ChrisDenton](https://togithub.com/ChrisDenton) in
[https://github.com/rust-lang/backtrace-rs/pull/604](https://togithub.com/rust-lang/backtrace-rs/pull/604)
- Windows AArch64: Break out of tracing when no longer making progress
by [@&#8203;dpaoliello](https://togithub.com/dpaoliello) in
[https://github.com/rust-lang/backtrace-rs/pull/610](https://togithub.com/rust-lang/backtrace-rs/pull/610)
- Remove obsolete rustc-serialize references by
[@&#8203;atouchet](https://togithub.com/atouchet) in
[https://github.com/rust-lang/backtrace-rs/pull/614](https://togithub.com/rust-lang/backtrace-rs/pull/614)
- Update `object` and `addr2line` dependencies by
[@&#8203;a1phyr](https://togithub.com/a1phyr) in
[https://github.com/rust-lang/backtrace-rs/pull/612](https://togithub.com/rust-lang/backtrace-rs/pull/612)
- Fix tests for rust 1.79 by
[@&#8203;workingjubilee](https://togithub.com/workingjubilee) in
[https://github.com/rust-lang/backtrace-rs/pull/621](https://togithub.com/rust-lang/backtrace-rs/pull/621)
- Remove unused `libbacktrace` and `gimli-symbolize` features by
[@&#8203;Enselic](https://togithub.com/Enselic) in
[https://github.com/rust-lang/backtrace-rs/pull/615](https://togithub.com/rust-lang/backtrace-rs/pull/615)
- remove some instances of dead_code by
[@&#8203;klensy](https://togithub.com/klensy) in
[https://github.com/rust-lang/backtrace-rs/pull/619](https://togithub.com/rust-lang/backtrace-rs/pull/619)
- Reduce panics in dbghelp by
[@&#8203;ChrisDenton](https://togithub.com/ChrisDenton) in
[https://github.com/rust-lang/backtrace-rs/pull/608](https://togithub.com/rust-lang/backtrace-rs/pull/608)
- Add Apple visionOS support by
[@&#8203;QuentinPerez](https://togithub.com/QuentinPerez) in
[https://github.com/rust-lang/backtrace-rs/pull/613](https://togithub.com/rust-lang/backtrace-rs/pull/613)
- Update cc crate to v1.0.97 by
[@&#8203;jfgoog](https://togithub.com/jfgoog) in
[https://github.com/rust-lang/backtrace-rs/pull/623](https://togithub.com/rust-lang/backtrace-rs/pull/623)
- chore: add docs for the global re-entrant lock by
[@&#8203;Gankra](https://togithub.com/Gankra) in
[https://github.com/rust-lang/backtrace-rs/pull/609](https://togithub.com/rust-lang/backtrace-rs/pull/609)
- Test with lld-compatible args by
[@&#8203;workingjubilee](https://togithub.com/workingjubilee) in
[https://github.com/rust-lang/backtrace-rs/pull/627](https://togithub.com/rust-lang/backtrace-rs/pull/627)
- Bump rustc-demangle version by
[@&#8203;michaelwoerister](https://togithub.com/michaelwoerister) in
[https://github.com/rust-lang/backtrace-rs/pull/624](https://togithub.com/rust-lang/backtrace-rs/pull/624)
- cleanup dead_code around cpp_demangle feature by
[@&#8203;klensy](https://togithub.com/klensy) in
[https://github.com/rust-lang/backtrace-rs/pull/622](https://togithub.com/rust-lang/backtrace-rs/pull/622)
- Cut backtrace 0.3.72 by
[@&#8203;workingjubilee](https://togithub.com/workingjubilee) in
[https://github.com/rust-lang/backtrace-rs/pull/628](https://togithub.com/rust-lang/backtrace-rs/pull/628)

#### New Contributors

- [@&#8203;Enselic](https://togithub.com/Enselic) made their first
contribution in
[https://github.com/rust-lang/backtrace-rs/pull/615](https://togithub.com/rust-lang/backtrace-rs/pull/615)
- [@&#8203;QuentinPerez](https://togithub.com/QuentinPerez) made their
first contribution in
[https://github.com/rust-lang/backtrace-rs/pull/613](https://togithub.com/rust-lang/backtrace-rs/pull/613)
- [@&#8203;Gankra](https://togithub.com/Gankra) made their first
contribution in
[https://github.com/rust-lang/backtrace-rs/pull/609](https://togithub.com/rust-lang/backtrace-rs/pull/609)

**Full Changelog**:
https://github.com/rust-lang/backtrace-rs/compare/0.3.71...0.3.72

</details>

<details>
<summary>oven-sh/bun (bun)</summary>

###
[`v1.1.12`](https://togithub.com/oven-sh/bun/releases/tag/bun-v1.1.12):
Bun v1.1.12

[Compare
Source](https://togithub.com/oven-sh/bun/compare/bun-v1.1.11...bun-v1.1.12)

This release fixes a regression briefly introduced in `bun upgrade` on
Windows that occurred in Bun v1.1.11. There are no release notes, please
take a look at the Bun v1.1.11 release notes instead.

To install Bun v1.1.12:

```bash
curl -fsSL https://bun.sh/install | bash

### or you can use npm
### npm install -g bun
```

Windows:

```bash
powershell -c "irm bun.sh/install.ps1|iex"
```

To upgrade to Bun v1.1.12:

```bash
bun upgrade
```

##### **[Read Bun v1.1.11's release notes on Bun's
blog](https://bun.sh/blog/bun-v1.1.11)**

###
[`v1.1.11`](https://togithub.com/oven-sh/bun/releases/tag/bun-v1.1.11):
Bun v1.1.11

[Compare
Source](https://togithub.com/oven-sh/bun/compare/bun-v1.1.10...bun-v1.1.11)

To install Bun v1.1.11:

```bash
curl -fsSL https://bun.sh/install | bash

### or you can use npm
### npm install -g bun
```

Windows:

```bash
powershell -c "irm bun.sh/install.ps1|iex"
```

To upgrade to Bun v1.1.11:

```bash
bun upgrade
```

##### **[Read Bun v1.1.11's release notes on Bun's
blog](https://bun.sh/blog/bun-v1.1.11)**

##### Thanks to 16 contributors!

-   [@&#8203;AbhiPrasad](https://togithub.com/AbhiPrasad)
-   [@&#8203;cirospaciari](https://togithub.com/cirospaciari)
-   [@&#8203;creator318](https://togithub.com/creator318)
-   [@&#8203;dylan-conway](https://togithub.com/dylan-conway)
-   [@&#8203;gvilums](https://togithub.com/gvilums)
-   [@&#8203;HUMORCE](https://togithub.com/HUMORCE)
-   [@&#8203;huseeiin](https://togithub.com/huseeiin)
-   [@&#8203;janos-r](https://togithub.com/janos-r)
-   [@&#8203;Jarred-Sumner](https://togithub.com/Jarred-Sumner)
-   [@&#8203;JonnyBurger](https://togithub.com/JonnyBurger)
-   [@&#8203;nektro](https://togithub.com/nektro)
-   [@&#8203;paperdave](https://togithub.com/paperdave)
-   [@&#8203;Ptitet](https://togithub.com/Ptitet)
-   [@&#8203;refi64](https://togithub.com/refi64)
-   [@&#8203;tobycm](https://togithub.com/tobycm)
-   [@&#8203;zawodskoj](https://togithub.com/zawodskoj)

</details>

<details>
<summary>jsx-eslint/eslint-plugin-react (eslint-plugin-react)</summary>

###
[`v7.34.2`](https://togithub.com/jsx-eslint/eslint-plugin-react/releases/tag/v7.34.2)

[Compare
Source](https://togithub.com/jsx-eslint/eslint-plugin-react/compare/v7.34.1...v7.34.2)

##### Fixed

- [`boolean-prop-naming`][boolean-prop-naming]: avoid a crash with a
non-TSTypeReference type ([#&#8203;3718][]
[@&#8203;developer-bandi](https://togithub.com/developer-bandi))
- [`jsx-no-leaked-render`][jsx-no-leaked-render]: invalid report if left
side is boolean ([#&#8203;3746][]
[@&#8203;akulsr0](https://togithub.com/akulsr0))
- [`jsx-closing-bracket-location`][jsx-closing-bracket-location]:
message shows `{{details}}` when there are no details ([#&#8203;3759][]
[@&#8203;mdjermanovic](https://togithub.com/mdjermanovic))
- [`no-invalid-html-attribute`][no-invalid-html-attribute]: ensure error
messages are correct ([#&#8203;3759][]
[@&#8203;mdjermanovic](https://togithub.com/mdjermanovic),
[@&#8203;ljharb](https://togithub.com/ljharb))

##### Changed

- \[Refactor] create various eslint utils to fix eslint deprecations
([#&#8203;3759][]
[@&#8203;mdjermanovic](https://togithub.com/mdjermanovic),
[@&#8203;ljharb](https://togithub.com/ljharb))

[7.34.2]:
https://togithub.com/jsx-eslint/eslint-plugin-react/compare/v7.34.1...v7.34.2

[#&#8203;3759]:
https://togithub.com/jsx-eslint/eslint-plugin-react/pull/3759

[#&#8203;3746]:
https://togithub.com/jsx-eslint/eslint-plugin-react/pull/3746

[#&#8203;3718]:
https://togithub.com/jsx-eslint/eslint-plugin-react/pull/3718

[`boolean-prop-naming`]: docs/rules/boolean-prop-naming.md

[`jsx-no-leaked-render`]: docs/rules/jsx-no-leaked-render.md

[`jsx-closing-bracket-location`]:
docs/rules/jsx-closing-bracket-location.md

[`no-invalid-html-attribute`]: docs/rules/no-invalid-html-attribute.md

</details>

<details>
<summary>hyperium/hyper-util (hyper-util)</summary>

###
[`v0.1.5`](https://togithub.com/hyperium/hyper-util/blob/HEAD/CHANGELOG.md#015-2024-05-28)

[Compare
Source](https://togithub.com/hyperium/hyper-util/compare/v0.1.4...v0.1.5)

- Add `server::graceful::GracefulShutdown` helper to coordinate over
many connections.
- Add `server::conn::auto::Connection::into_owned()` to unlink lifetime
from `Builder`.
- Allow `service` module to be available with only `service` feature
enabled.

</details>

<details>
<summary>ramosbugs/openidconnect-rs (openidconnect)</summary>

###
[`v4.0.0-alpha.2`](https://togithub.com/ramosbugs/openidconnect-rs/releases/tag/4.0.0-alpha.2)

[Compare
Source](https://togithub.com/ramosbugs/openidconnect-rs/compare/4.0.0-alpha.1...4.0.0-alpha.2)

#### Bug Fixes

- Return `impl Future` instead of `Pin<Box<dyn Future>>`
([#&#8203;158](https://togithub.com/ramosbugs/openidconnect-rs/issues/158))

**Full Changelog**:
https://github.com/ramosbugs/openidconnect-rs/compare/4.0.0-alpha.1...4.0.0-alpha.2

</details>

<details>
<summary>open-telemetry/opentelemetry-rust (opentelemetry)</summary>

###
[`v0.23.0`](https://togithub.com/open-telemetry/opentelemetry-rust/releases/tag/opentelemetry-0.23.0):
0.23.0

[Compare
Source](https://togithub.com/open-telemetry/opentelemetry-rust/compare/opentelemetry-0.22.0...opentelemetry-0.23.0)

#### Whats changed?

See individual crate changelogs for details.

#### New Contributors

[@&#8203;svix-jplatte](https://togithub.com/svix-jplatte) made their
first contribution in
[https://github.com/open-telemetry/opentelemetry-rust/pull/1568](https://togithub.com/open-telemetry/opentelemetry-rust/pull/1568)
[@&#8203;rex4539](https://togithub.com/rex4539) made their first
contribution in
[https://github.com/open-telemetry/opentelemetry-rust/pull/1587](https://togithub.com/open-telemetry/opentelemetry-rust/pull/1587)
[@&#8203;divergentdave](https://togithub.com/divergentdave) made their
first contribution in
[https://github.com/open-telemetry/opentelemetry-rust/pull/1584](https://togithub.com/open-telemetry/opentelemetry-rust/pull/1584)
[@&#8203;pyohannes](https://togithub.com/pyohannes) made their first
contribution in
[https://github.com/open-telemetry/opentelemetry-rust/pull/1578](https://togithub.com/open-telemetry/opentelemetry-rust/pull/1578)
[@&#8203;masato-hi](https://togithub.com/masato-hi) made their first
contribution in
[https://github.com/open-telemetry/opentelemetry-rust/pull/1621](https://togithub.com/open-telemetry/opentelemetry-rust/pull/1621)
[@&#8203;rogercoll](https://togithub.com/rogercoll) made their first
contribution in
[https://github.com/open-telemetry/opentelemetry-rust/pull/1624](https://togithub.com/open-telemetry/opentelemetry-rust/pull/1624)
[@&#8203;LuisOsta](https://togithub.com/LuisOsta) made their first
contribution in
[https://github.com/open-telemetry/opentelemetry-rust/pull/1638](https://togithub.com/open-telemetry/opentelemetry-rust/pull/1638)
[@&#8203;svrnm](https://togithub.com/svrnm) made their first
contribution in
[https://github.com/open-telemetry/opentelemetry-rust/pull/1664](https://togithub.com/open-telemetry/opentelemetry-rust/pull/1664)
[@&#8203;Lev1ty](https://togithub.com/Lev1ty) made their first
contribution in
[https://github.com/open-telemetry/opentelemetry-rust/pull/1672](https://togithub.com/open-telemetry/opentelemetry-rust/pull/1672)
[@&#8203;ThomsonTan](https://togithub.com/ThomsonTan) made their first
contribution in
[https://github.com/open-telemetry/opentelemetry-rust/pull/1675](https://togithub.com/open-telemetry/opentelemetry-rust/pull/1675)
[@&#8203;ramgdev](https://togithub.com/ramgdev) made their first
contribution in
[https://github.com/open-telemetry/opentelemetry-rust/pull/1585](https://togithub.com/open-telemetry/opentelemetry-rust/pull/1585)
[@&#8203;utpilla](https://togithub.com/utpilla) made their first
contribution in
[https://github.com/open-telemetry/opentelemetry-rust/pull/1701](https://togithub.com/open-telemetry/opentelemetry-rust/pull/1701)
[@&#8203;ChieloNewctle](https://togithub.com/ChieloNewctle) made their
first contribution in
[https://github.com/open-telemetry/opentelemetry-rust/pull/1746](https://togithub.com/open-telemetry/opentelemetry-rust/pull/1746)

</details>

<details>
<summary>open-telemetry/opentelemetry-rust
(opentelemetry-otlp)</summary>

###
[`v0.16.0`](https://togithub.com/open-telemetry/opentelemetry-rust/blob/HEAD/opentelemetry-otlp/CHANGELOG.md#v0160)

[Compare
Source](https://togithub.com/open-telemetry/opentelemetry-rust/compare/opentelemetry-otlp-0.15.0...opentelemetry-otlp-0.16.0)

##### Fixed

- URL encoded values in `OTEL_EXPORTER_OTLP_HEADERS` are now correctly
decoded.
[#&#8203;1578](https://togithub.com/open-telemetry/opentelemetry-rust/pull/1578)
- OTLP exporter will not change the URL added through `ExportConfig`
[#&#8203;1706](https://togithub.com/open-telemetry/opentelemetry-rust/pull/1706)
- Default grpc endpoint will not have path based on signal(e.g
`/v1/traces`)
[#&#8203;1706](https://togithub.com/open-telemetry/opentelemetry-rust/pull/1706)
- Fix feature flags for `OTEL_EXPORTER_OTLP_PROTOCOL_DEFAULT`
[#&#8203;1746](https://togithub.com/open-telemetry/opentelemetry-rust/pull/1746)

##### Added

-   Added `DeltaTemporalitySelector` ([#&#8203;1568])
-   Add `webkpi-roots` features to `reqwest` and `tonic` backends

[#&#8203;1568]:
https://togithub.com/open-telemetry/opentelemetry-rust/pull/1568

##### Changed

- **Breaking** Remove global provider for Logs
[#&#8203;1691](https://togithub.com/open-telemetry/opentelemetry-rust/pull/1691/)
- The method OtlpLogPipeline::install_simple() and
OtlpLogPipeline::install_batch() now return `LoggerProvider` instead of
`Logger`. Refer to the
[basic-otlp](https://togithub.com/open-telemetry/opentelemetry-rust/blob/main/opentelemetry-otlp/examples/basic-otlp/src/main.rs)
and
[basic-otlp-http](https://togithub.com/open-telemetry/opentelemetry-rust/blob/main/opentelemetry-otlp/examples/basic-otlp-http/src/main.rs)
examples for how to initialize OTLP Log Exporter to use with
OpenTelemetryLogBridge and OpenTelemetryTracingBridge respectively.
-   Update `opentelemetry` dependency version to 0.23
-   Update `opentelemetry_sdk` dependency version to 0.23
-   Update `opentelemetry-http` dependency version to 0.12
-   Update `opentelemetry-proto` dependency version to 0.6

</details>

<details>
<summary>open-telemetry/opentelemetry-rust
(opentelemetry-stdout)</summary>

###
[`v0.4.0`](https://togithub.com/open-telemetry/opentelemetry-rust/blob/HEAD/opentelemetry-stdout/CHANGELOG.md#v040)

[Compare
Source](https://togithub.com/open-telemetry/opentelemetry-rust/compare/opentelemetry-stdout-0.3.0...opentelemetry-stdout-0.4.0)

##### Changed

-   The default feature now includes logs, metrics and trace.
-   Update `opentelemetry` dependency version to 0.23
-   Update `opentelemetry_sdk` dependency version to 0.23
-   TraceExporter fixed to print InstrumentationScope's attributes.

</details>

<details>
<summary>pnpm/pnpm (pnpm)</summary>

### [`v9.1.4`](https://togithub.com/pnpm/pnpm/compare/v9.1.3...v9.1.4)

[Compare Source](https://togithub.com/pnpm/pnpm/compare/v9.1.3...v9.1.4)

</details>

<details>
<summary>dtolnay/proc-macro2 (proc-macro2)</summary>

###
[`v1.0.85`](https://togithub.com/dtolnay/proc-macro2/releases/tag/1.0.85)

[Compare
Source](https://togithub.com/dtolnay/proc-macro2/compare/1.0.84...1.0.85)

- Mark some tests as only for 64-bit targets
([#&#8203;463](https://togithub.com/dtolnay/proc-macro2/issues/463))

</details>

<details>
<summary>la10736/rstest (rstest)</summary>

###
[`v0.21.0`](https://togithub.com/la10736/rstest/blob/HEAD/CHANGELOG.md#0210-202461)

[Compare
Source](https://togithub.com/la10736/rstest/compare/v0.20.0...v0.21.0)

##### Changed

-   Add feature `crate-name` enabled by default to opt-in crate rename
support. See
[#&#8203;258](https://togithub.com/la10736/rstest/issues/258)

###
[`v0.20.0`](https://togithub.com/la10736/rstest/blob/HEAD/CHANGELOG.md#0200-2024530)

[Compare
Source](https://togithub.com/la10736/rstest/compare/v0.19.0...v0.20.0)

##### Add

- Implemented `#[by_ref]` attribute to take get a local lifetime for
test arguments.
See [#&#8203;241](https://togithub.com/la10736/rstest/issues/241) for
more details. Thanks to
[@&#8203;narpfel](https://togithub.com/narpfel) for suggesting it and
useful discussions.
- Support for import `rstest` with another name. See
[#&#8203;221](https://togithub.com/la10736/rstest/issues/221)

##### Fixed

- Don't remove Lifetimes from test function if any. See
[#&#8203;230](https://togithub.com/la10736/rstest/issues/230)
[#&#8203;241](https://togithub.com/la10736/rstest/issues/241) for more
details.
- [`PathBuf`](https://doc.rust-lang.org/std/path/struct.PathBuf.html)
does no longer need to be
in scope when using `#[files]` (see
[#&#8203;242](https://togithub.com/la10736/rstest/pull/242))
- `#[from(now::accept::also::path::for::fixture)]` See
[#&#8203;246](https://togithub.com/la10736/rstest/issues/246)
    for more details

</details>

<details>
<summary>Peternator7/strum (strum_macros)</summary>

###
[`v0.26.3`](https://togithub.com/Peternator7/strum/blob/HEAD/CHANGELOG.md#0263-strummacros)

[Compare
Source](https://togithub.com/Peternator7/strum/compare/v0.26.2...v0.26.3)

- [#&#8203;344](https://togithub.com/Peternator7/strum/pull/344): Hide
`EnumTable` because it's going to be deprecated in the next
    version.
- [#&#8203;357](https://togithub.com/Peternator7/strum/pull/357): Fixes
an incompatiblity with `itertools` by using the fully
    qualified name rather than the inherent method.
- [#&#8203;345](https://togithub.com/Peternator7/strum/pull/345): Allows
unnamed tuple like variants to use their variants in
string interpolation. `#[strum(to_string = "Field 0: {0}, Field 1:
{1})")]` will now work for tuple variants

</details>

<details>
<summary>tokio-rs/tokio (tokio)</summary>

###
[`v1.38.0`](https://togithub.com/tokio-rs/tokio/releases/tag/tokio-1.38.0):
Tokio v1.38.0

[Compare
Source](https://togithub.com/tokio-rs/tokio/compare/tokio-1.37.0...tokio-1.38.0)

This release marks the beginning of stabilization for runtime metrics.
It
stabilizes `RuntimeMetrics::worker_count`. Future releases will continue
to
stabilize more metrics.

##### Added

-   fs: add `File::create_new` ([#&#8203;6573])
-   io: add `copy_bidirectional_with_sizes` ([#&#8203;6500])
-   io: implement `AsyncBufRead` for `Join` ([#&#8203;6449])
-   net: add Apple visionOS support ([#&#8203;6465])
-   net: implement `Clone` for `NamedPipeInfo` ([#&#8203;6586])
-   net: support QNX OS ([#&#8203;6421])
-   sync: add `Notify::notify_last` ([#&#8203;6520])
-   sync: add `mpsc::Receiver::{capacity,max_capacity}` ([#&#8203;6511])
- sync: add `split` method to the semaphore permit ([#&#8203;6472],
[#&#8203;6478])
- task: add `tokio::task::join_set::Builder::spawn_blocking`
([#&#8203;6578])
- wasm: support rt-multi-thread with wasm32-wasi-preview1-threads
([#&#8203;6510])

##### Changed

- macros: make `#[tokio::test]` append `#[test]` at the end of the
attribute list ([#&#8203;6497])
-   metrics: fix `blocking_threads` count ([#&#8203;6551])
-   metrics: stabilize `RuntimeMetrics::worker_count` ([#&#8203;6556])
- runtime: move task out of the `lifo_slot` in `block_in_place`
([#&#8203;6596])
-   runtime: panic if `global_queue_interval` is zero ([#&#8203;6445])
- sync: always drop message in destructor for oneshot receiver
([#&#8203;6558])
-   sync: instrument `Semaphore` for task dumps ([#&#8203;6499])
- sync: use FIFO ordering when waking batches of wakers ([#&#8203;6521])
-   task: make `LocalKey::get` work with Clone types ([#&#8203;6433])
-   tests: update nix and mio-aio dev-dependencies ([#&#8203;6552])
-   time: clean up implementation ([#&#8203;6517])
-   time: lazily init timers on first poll ([#&#8203;6512])
-   time: remove the `true_when` field in `TimerShared` ([#&#8203;6563])
-   time: use sharding for timer implementation ([#&#8203;6534])

##### Fixed

- taskdump: allow building taskdump docs on non-unix machines
([#&#8203;6564])
-   time: check for overflow in `Interval::poll_tick` ([#&#8203;6487])
- sync: fix incorrect `is_empty` on mpsc block boundaries
([#&#8203;6603])

##### Documented

-   fs: rewrite file system docs ([#&#8203;6467])
-   io: fix `stdin` documentation ([#&#8203;6581])
- io: fix obsolete reference in `ReadHalf::unsplit()` documentation
([#&#8203;6498])
- macros: render more comprehensible documentation for `select!`
([#&#8203;6468])
-   net: add missing types to module docs ([#&#8203;6482])
-   net: fix misleading `NamedPipeServer` example ([#&#8203;6590])
- sync: add examples for `SemaphorePermit`, `OwnedSemaphorePermit`
([#&#8203;6477])
- sync: document that `Barrier::wait` is not cancel safe
([#&#8203;6494])
-   sync: explain relation between `wa

</details>

---

### Configuration

📅 **Schedule**: Branch creation - "before 4am on Monday" (UTC),
Automerge - At any time (no schedule defined).

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

♻ **Rebasing**: Whenever PR becomes conflicted, or you tick the
rebase/retry checkbox.

👻 **Immortal**: This PR will be recreated if closed unmerged. Get
[config help](https://togithub.com/renovatebot/renovate/discussions) if
that's undesired.

---

- [ ] <!-- rebase-check -->If you want to rebase/retry this PR, check
this box

---

This PR has been generated by [Mend
Renovate](https://www.mend.io/free-developer-tools/renovate/). View
repository job log
[here](https://developer.mend.io/github/grafbase/grafbase).

<!--renovate-debug:eyJjcmVhdGVkSW5WZXIiOiIzNy4zNzcuOCIsInVwZGF0ZWRJblZlciI6IjM3LjM3Ny44IiwidGFyZ2V0QnJhbmNoIjoibWFpbiIsImxhYmVscyI6W119-->
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.

None yet

5 participants