Skip to content

[release/13.6] Pin MessagePack to 2.5.307 for security fixes - #21156

Merged
Eric Erhardt (eerhardt) merged 1 commit into
release/13.6from
eerhardt-backport-21051-messagepack-pin
Oct 19, 2026
Merged

Eric Erhardt (eerhardt) merged 1 commit into
release/13.6from
eerhardt-backport-21051-messagepack-pin

Conversation

@eerhardt

Copy link
Copy Markdown
Member

Backport of #21051 to release/13.6

Customer Impact

NuGet reports NU1902 (vulnerable MessagePack 2.5.302, pulled in transitively by StreamJsonRpc) and fails restores/builds that treat warnings as errors. Pinning to MessagePack 2.5.307 picks up the patched 2.x releases.

Testing

Validated on main per #21051: repo restore with -warnaserror -p:NuGetAudit=true (0 warnings/errors), CLI backchannel tests passed (29), Hosting pack nuspec requires MessagePack 2.5.307. Not separately re-run on release/13.6. Conflict in Directory.Packages.props (previous 2.5.302 pin) resolved by taking 2.5.307.

Risk

Low. Dependency patch bump within MessagePack 2.x; StreamJsonRpc unchanged.

Regression?

No.

Keep StreamJsonRpc on 2.25.29 until it adopts MessagePack 3.x. Add an explicit Hosting reference so the security pin also flows to out-of-tree project-reference consumers.

Related to #21050.

Co-authored-by: Copilot App <223556219+Copilot@users.noreply.github.com>
Copilot-Session: 25f67c97-c7d9-43c6-be44-a406e0bf1b17
@github-actions

Copy link
Copy Markdown
Contributor

🚀 Dogfood this PR with:

⚠️ WARNING: Do not do this without first carefully reviewing the code of this PR to satisfy yourself it is safe.

curl -fsSL https://raw.githubusercontent.com/microsoft/aspire/main/eng/scripts/get-aspire-cli-pr.sh | bash -s -- 21156

Or

  • Run remotely in PowerShell:
iex "& { $(irm https://raw.githubusercontent.com/microsoft/aspire/main/eng/scripts/get-aspire-cli-pr.ps1) } 21156"

@aspire-repo-bot
aspire-repo-bot Bot requested a balanced review from Copilot October 19, 2026 20:19
@github-actions github-actions Bot added the needs-area-label An area label is needed to ensure this gets routed to the appropriate area owners label Oct 19, 2026
@github-actions

Copy link
Copy Markdown
Contributor

Tests selector

Selects the full PR test matrix + all PR-gated jobs (ALL) — a rule matching 'Directory.Packages.props' selects ALL


Selection computed for commit fa2cf21.

Copilot AI left a comment

Copy link
Copy Markdown
Contributor

Choose a reason for hiding this comment

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

🟢 Approval recommended

No blocking issues were identified in these narrow dependency changes; release-branch validation remains unrun as disclosed.

No open issues 🎉

What changed in this PR

Backports the MessagePack security update to release/13.6, addressing vulnerable dependency restores while retaining MessagePack 2.x compatibility.

Changes:

  • Raises the central MessagePack pin to 2.5.307.
  • Adds an explicit Hosting reference so external project-reference consumers receive the patched minimum.
File Description
src/​Aspire.Hosting/​Aspire.Hosting.csproj Adds MessagePack reference and cleanup guidance.
Directory.Packages.props Updates the security pin and its removal guidance.

Review effort: Balanced

@eerhardt
Eric Erhardt (eerhardt) merged commit af07e33 into release/13.6 Oct 19, 2026
418 of 421 checks passed
@aspire-repo-bot

Copy link
Copy Markdown
Contributor

✅ No documentation update needed.

Step 5 branch: "excluded → base_branch_is_release, title_release_prefix, body_backport_marker"

This PR is a backport and is out of scope for docs generation per the exclusion rule.

Exclusion reasons (from signals.json):

  • base_branch_is_release: base ref is release/13.6 (weak signal, only supporting context)
  • title_release_prefix: title is prefixed [release/13.6]
  • body_backport_marker: PR body states "Backport of Pin MessagePack to 2.5.307 for security fixes #21051 to release/13.6"

Triggered signals (1): pr_body_has_security_marker — evidence: PR body mentions "NuGet reports NU1902 (vulnerable MessagePack 2.5.302, pulled in transitively by StreamJsonRpc)". This is advisory only; excluded == true overrides recommendation regardless of triggered signals.

The original (forward) PR #21051 on main is the canonical location for any documentation impact of this dependency pin; drafting a duplicate docs PR for this release-branch backport would be redundant noise.

Marcin Szopa (MrD4rkne) pushed a commit to MrD4rkne/oweme-ecosystem that referenced this pull request Oct 26, 2026
Updated [Aspire.Hosting.AppHost](https://github.com/microsoft/aspire)
from 13.5.4 to 13.6.3.

<details>
<summary>Release notes</summary>

_Sourced from [Aspire.Hosting.AppHost's
releases](https://github.com/microsoft/aspire/releases)._

## 13.6.3

## What's New in Aspire 13.6.3

Patch release for Aspire 13.6 that improves resource orchestration
reliability by preventing unread resource watches from stalling resource
updates and operations.

### 🐛 Fixes

- 🖥️ **Resource operations could stall when a watch stopped being read**
— AppHost now closes abandoned watch connections when setup is canceled
and keeps reading resource events even when event handlers are slow.
Resource event ordering, lifecycle callback dispatch, and the existing
periodic reconnection safeguard are preserved.
([#​21002](microsoft/aspire#21002), backport of
[#​20972](microsoft/aspire#20972), @​danegsta)

- 🔄 **Slow watchers could block other resource updates or watcher
shutdown** — The bundled Developer Control Plane (DCP) is updated to
0.26.6, which keeps internal lifecycle watches draining and uses
bounded, asynchronous watch delivery to prevent unread watches from
blocking resource-change publication and unrelated watcher shutdown.
([#​21215](microsoft/aspire#21215), @​danegsta;
includes
[microsoft/dcp#​307](microsoft/dcp#307))

---

*Full Changelog:
[v13.6.2...v13.6.3](microsoft/aspire@v13.6.2...v13.6.3)*

*Full commit:
[38294b1b31552dae42a516cffa0cbc737ec08976](microsoft/aspire@38294b1b31552dae42a516cffa0cbc737ec08976)*


## 13.6.2


*Full commit:
[af07e33f8d1ef733645138b3f8e36067d073148d](microsoft/aspire@af07e33f8d1ef733645138b3f8e36067d073148d)*

## What's Changed
* [release/13.6] Bump version to 13.6.2 by @​danegsta with @​Copilot in
microsoft/aspire#20877
* [release/13.6] Pin MessagePack to 2.5.307 for security fixes by
@​eerhardt in microsoft/aspire#21156


**Full Changelog**:
microsoft/aspire@v13.6.1...v13.6.2

## 13.6.1

## What's New in Aspire 13.6.1

Patch release for Aspire 13.6 that reduces dashboard CPU usage during
sustained metric ingestion, restores scrolling in the Metrics tree,
improves dashboard navigation, fixes container exec watch failures, and
ensures session-scoped containers are cleaned up when stopping .NET
AppHosts on Windows.

### 🐛 Fixes

- 📊 **Dashboard CPU usage could increase during long-running metric
ingestion** — Metric retention repeatedly scanned retained history on
every insertion, causing steadily increasing CPU usage even with a fixed
workload. Cleanup now skips dimensions below capacity and removes only
the oldest surplus points when needed. Existing retention limits and
exemplar behavior are unchanged, and no configuration changes are
required. Regression introduced in 13.6. Fixes
[#​20725](microsoft/aspire#20725).
([#​20747](microsoft/aspire#20747), backport of
[#​20736](microsoft/aspire#20736), @​JamesNK)

- 📈 **The Metrics tree could not be scrolled** — The meter and
instrument tree now scrolls when it exceeds the viewport, allowing you
to reach and select instruments below the fold. Regression introduced in
13.6. Fixes [#​20728](microsoft/aspire#20728).
([#​20762](microsoft/aspire#20762), backport of
[#​20758](microsoft/aspire#20758), @​heyysiri)

- 🧭 **Dashboard navigation could fail after a browser disconnect** —
Pending page-state updates now persist session state before navigating
and skip navigation when the browser has disconnected, avoiding an
unhandled navigation failure. The navigation rail's overflow button also
has consistent sizing, icon alignment, and hover styling in expanded and
collapsed layouts and both light and dark themes.
([#​20545](microsoft/aspire#20545), backport of
[#​20527](microsoft/aspire#20527), @​JamesNK)

- 🖥️ **Container exec watches could terminate shortly after AppHost
startup** — A stalled DCP watch connection could produce a critical
`Watch task over Kubernetes ContainerExec resources terminated
unexpectedly` error and stop subsequent terminal state and log updates
from being observed. Watch connection attempts now retry after timeouts,
and periodic restarts correctly recreate connections without swallowing
unrelated cancellation. Regression introduced in 13.6.0.
([#​20664](microsoft/aspire#20664), backport of
[#​20466](microsoft/aspire#20466), @​radical)

- 🪟 **Session-scoped containers could remain running after stopping a
.NET AppHost on Windows** — AppHosts launched through `dotnet run` or
`dotnet watch` now allow DCP to finish resource cleanup during shutdown,
including existing Ctrl+C and `aspire stop` flows. Persistent resources
remain unaffected, while direct .NET launches and TypeScript/polyglot
AppHosts retain their existing process protection. Fixes
[#​20495](microsoft/aspire#20495).
([#​20514](microsoft/aspire#20514), backport of
[#​20494](microsoft/aspire#20494), @​danegsta)

---

*Full Changelog:
[v13.6.0...v13.6.1](microsoft/aspire@v13.6.0...v13.6.1)*

*Full commit:
[3751e615ad660621f2a7aa4c390ef48e08a0eed8](microsoft/aspire@3751e615ad660621f2a7aa4c390ef48e08a0eed8)*


## 13.6.0

# Aspire 13.6.0

Aspire 13.6 brings persistent application history, a refreshed and more
interactive dashboard, first-party Java and Rust hosting, and new Azure
deployment options. Coordinated .NET builds, portable volume paths,
sharper CLI workflows, and more capable editor tooling make it easier to
build, debug, and deploy applications across languages.

## Highlights

- 🗃️ **Persistent, refreshed dashboard** — SQLite-backed telemetry and
resource snapshots let you revisit up to ten application runs, with
read-only access to completed runs and default retention limits of
100,000 console log messages, structured logs, and traces each. The
dashboard now ships as Native AOT and adopts Fluent UI v5 with a
collapsible navigation rail.
- 🖥️ **AppHost-owned terminals and database REPLs** — Experimental
terminal APIs let AppHosts create interactive sessions in a dashboard
dock, dialog, or separate window. Opt-in `WithRepl()` commands open
bundled clients for PostgreSQL, MySQL, MongoDB, SQL Server, Redis, and
Valkey, while `aspire terminal ps` and `aspire terminal tape play`
support discovery and repeatable terminal interactions.
- 🌐 **First-party Java and Rust hosting** — New `Aspire.Hosting.Java`
and `Aspire.Hosting.Rust` packages bring Maven, Gradle, Spring Boot,
Quarkus, and Cargo applications into the app model, with generated
container builds and VS Code debugging. These integrations build on work
that originated in the Aspire Community Toolkit.
- 🛠️ **More flexible AppHosts** — The prerelease `Aspire.Hosting.Dotnet`
integration coordinates compatible projects into shared restore and
build groups and supports .NET SDK container publishing. Portable
volume-path environment variables work across local execution and
deployment, while TypeScript AppHosts gain standard `appsettings.json`
configuration and Deno runtime support.
- ⌨️ **Sharper CLI workflows** — Select launch profiles with `aspire
run` and `aspire start`, update repository-local CLI manifests with
`aspire update`, create file-based C# AppHosts with `aspire init
--language csharp --file-based`, and export TypeScript API data with
`aspire sdk export`. Terminal commands no longer need a feature flag,
Linux certificate trust includes Firefox NSS databases, and `aspire stop
--force --volumes` adds explicit cleanup of Aspire-owned volumes.
- 💻 **More capable VS Code tooling** — Coding agents can start and stop
AppHosts through the extension, and the Aspire pane exposes deploy,
publish, and pipeline actions. Multi-root discovery, worktree-scoped
lifecycle operations, preserved launch arguments, clearer debug logs,
and missing-debugger guidance make complex workspaces more predictable.
- ☁️ **New Azure options in preview** — Azure Connector Namespace models
external-service connections and managed MCP server configurations.
Azure Container Apps Sandboxes adds isolated sandbox deployments with
configurable resource tiers and lifecycle policies, while Azure
Container Apps Express offers a simplified environment option for rapid
provisioning.
- ☸️ **More expressive, reliable deployments** — Experimental Azure
Provisioning SDK proxies let polyglot AppHosts customize infrastructure.
Deployment state is isolated under `ASPIRE_HOME`, Kubernetes preserves
inherited hostnames and embedded parameter values, and AKS gains
persistent-volume provisioning and more reliable cleanup.
- 🔌 **Expanded integrations** — Experimental Deno hosting and MongoDB
replica sets join Foundry Toolboxes, remote Foundry Local endpoints,
Blazor WebAssembly debugging, and configurable Dev Tunnel expiration.
Azure Cosmos DB and AI Inference client integrations gain health checks,
and the vNext Cosmos DB emulator sends its own telemetry to the
dashboard.

## ⚠️ Breaking changes

Notable changes include automatic TLS for local MongoDB servers when a
certificate is available, the Linux-based vNext Cosmos DB emulator
becoming the default, new Azure Front Door origin names that can require
cleanup of existing origins, portable connection-string
environment-variable aliases on stricter deployment targets, and
experimental terminal types moving from `Aspire.Hosting.Terminals` to
`Aspire.Hosting.ApplicationModel`.

See the full list and migration guidance in the [Aspire 13.6 breaking
changes](https://aspire.dev/whats-new/aspire-13-6/#breaking-changes).

## 📖 Learn more

For complete details, examples, migration guidance, and everything new
in this release, read [What's new in Aspire
13.6](https://aspire.dev/whats-new/aspire-13-6/).

Thank you to all the community contributors who helped make Aspire 13.6
possible! 💜

---

_Full Changelog:
[v13.5.4...v13.6.0](microsoft/aspire@v13.5.4...v13.6.0)_

_Full commit:
[56f3e9c0d216c0c7069dabb49dd0464e4827744f](microsoft/aspire@56f3e9c0d216c0c7069dabb49dd0464e4827744f)_


Commits viewable in [compare
view](microsoft/aspire@v13.5.4...v13.6.3).
</details>

Signed-off-by: dependabot[bot] <support@github.com>
Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com>
github-actions Bot pushed a commit to MrD4rkne/oweme-ecosystem that referenced this pull request Oct 26, 2026
Updated [Aspire.Hosting.AppHost](https://github.com/microsoft/aspire)
from 13.5.4 to 13.6.3.

<details>
<summary>Release notes</summary>

_Sourced from [Aspire.Hosting.AppHost's
releases](https://github.com/microsoft/aspire/releases)._

## 13.6.3

## What's New in Aspire 13.6.3

Patch release for Aspire 13.6 that improves resource orchestration
reliability by preventing unread resource watches from stalling resource
updates and operations.

### 🐛 Fixes

- 🖥️ **Resource operations could stall when a watch stopped being read**
— AppHost now closes abandoned watch connections when setup is canceled
and keeps reading resource events even when event handlers are slow.
Resource event ordering, lifecycle callback dispatch, and the existing
periodic reconnection safeguard are preserved.
([#​21002](https://github.com/microsoft/aspire/pull/21002), backport of
[#​20972](https://github.com/microsoft/aspire/pull/20972), @​danegsta)

- 🔄 **Slow watchers could block other resource updates or watcher
shutdown** — The bundled Developer Control Plane (DCP) is updated to
0.26.6, which keeps internal lifecycle watches draining and uses
bounded, asynchronous watch delivery to prevent unread watches from
blocking resource-change publication and unrelated watcher shutdown.
([#​21215](https://github.com/microsoft/aspire/pull/21215), @​danegsta;
includes
[microsoft/dcp#​307](https://github.com/microsoft/dcp/pull/307))

---

*Full Changelog:
[v13.6.2...v13.6.3](https://github.com/microsoft/aspire/compare/v13.6.2...v13.6.3)*

*Full commit:
[38294b1b31552dae42a516cffa0cbc737ec08976](https://github.com/microsoft/aspire/commit/38294b1b31552dae42a516cffa0cbc737ec08976)*


## 13.6.2


*Full commit:
[af07e33f8d1ef733645138b3f8e36067d073148d](https://github.com/microsoft/aspire/commit/af07e33f8d1ef733645138b3f8e36067d073148d)*

## What's Changed
* [release/13.6] Bump version to 13.6.2 by @​danegsta with @​Copilot in
https://github.com/microsoft/aspire/pull/20877
* [release/13.6] Pin MessagePack to 2.5.307 for security fixes by
@​eerhardt in https://github.com/microsoft/aspire/pull/21156


**Full Changelog**:
https://github.com/microsoft/aspire/compare/v13.6.1...v13.6.2

## 13.6.1

## What's New in Aspire 13.6.1

Patch release for Aspire 13.6 that reduces dashboard CPU usage during
sustained metric ingestion, restores scrolling in the Metrics tree,
improves dashboard navigation, fixes container exec watch failures, and
ensures session-scoped containers are cleaned up when stopping .NET
AppHosts on Windows.

### 🐛 Fixes

- 📊 **Dashboard CPU usage could increase during long-running metric
ingestion** — Metric retention repeatedly scanned retained history on
every insertion, causing steadily increasing CPU usage even with a fixed
workload. Cleanup now skips dimensions below capacity and removes only
the oldest surplus points when needed. Existing retention limits and
exemplar behavior are unchanged, and no configuration changes are
required. Regression introduced in 13.6. Fixes
[#​20725](https://github.com/microsoft/aspire/issues/20725).
([#​20747](https://github.com/microsoft/aspire/pull/20747), backport of
[#​20736](https://github.com/microsoft/aspire/pull/20736), @​JamesNK)

- 📈 **The Metrics tree could not be scrolled** — The meter and
instrument tree now scrolls when it exceeds the viewport, allowing you
to reach and select instruments below the fold. Regression introduced in
13.6. Fixes [#​20728](https://github.com/microsoft/aspire/issues/20728).
([#​20762](https://github.com/microsoft/aspire/pull/20762), backport of
[#​20758](https://github.com/microsoft/aspire/pull/20758), @​heyysiri)

- 🧭 **Dashboard navigation could fail after a browser disconnect** —
Pending page-state updates now persist session state before navigating
and skip navigation when the browser has disconnected, avoiding an
unhandled navigation failure. The navigation rail's overflow button also
has consistent sizing, icon alignment, and hover styling in expanded and
collapsed layouts and both light and dark themes.
([#​20545](https://github.com/microsoft/aspire/pull/20545), backport of
[#​20527](https://github.com/microsoft/aspire/pull/20527), @​JamesNK)

- 🖥️ **Container exec watches could terminate shortly after AppHost
startup** — A stalled DCP watch connection could produce a critical
`Watch task over Kubernetes ContainerExec resources terminated
unexpectedly` error and stop subsequent terminal state and log updates
from being observed. Watch connection attempts now retry after timeouts,
and periodic restarts correctly recreate connections without swallowing
unrelated cancellation. Regression introduced in 13.6.0.
([#​20664](https://github.com/microsoft/aspire/pull/20664), backport of
[#​20466](https://github.com/microsoft/aspire/pull/20466), @​radical)

- 🪟 **Session-scoped containers could remain running after stopping a
.NET AppHost on Windows** — AppHosts launched through `dotnet run` or
`dotnet watch` now allow DCP to finish resource cleanup during shutdown,
including existing Ctrl+C and `aspire stop` flows. Persistent resources
remain unaffected, while direct .NET launches and TypeScript/polyglot
AppHosts retain their existing process protection. Fixes
[#​20495](https://github.com/microsoft/aspire/issues/20495).
([#​20514](https://github.com/microsoft/aspire/pull/20514), backport of
[#​20494](https://github.com/microsoft/aspire/pull/20494), @​danegsta)

---

*Full Changelog:
[v13.6.0...v13.6.1](https://github.com/microsoft/aspire/compare/v13.6.0...v13.6.1)*

*Full commit:
[3751e615ad660621f2a7aa4c390ef48e08a0eed8](https://github.com/microsoft/aspire/commit/3751e615ad660621f2a7aa4c390ef48e08a0eed8)*


## 13.6.0

# Aspire 13.6.0

Aspire 13.6 brings persistent application history, a refreshed and more
interactive dashboard, first-party Java and Rust hosting, and new Azure
deployment options. Coordinated .NET builds, portable volume paths,
sharper CLI workflows, and more capable editor tooling make it easier to
build, debug, and deploy applications across languages.

## Highlights

- 🗃️ **Persistent, refreshed dashboard** — SQLite-backed telemetry and
resource snapshots let you revisit up to ten application runs, with
read-only access to completed runs and default retention limits of
100,000 console log messages, structured logs, and traces each. The
dashboard now ships as Native AOT and adopts Fluent UI v5 with a
collapsible navigation rail.
- 🖥️ **AppHost-owned terminals and database REPLs** — Experimental
terminal APIs let AppHosts create interactive sessions in a dashboard
dock, dialog, or separate window. Opt-in `WithRepl()` commands open
bundled clients for PostgreSQL, MySQL, MongoDB, SQL Server, Redis, and
Valkey, while `aspire terminal ps` and `aspire terminal tape play`
support discovery and repeatable terminal interactions.
- 🌐 **First-party Java and Rust hosting** — New `Aspire.Hosting.Java`
and `Aspire.Hosting.Rust` packages bring Maven, Gradle, Spring Boot,
Quarkus, and Cargo applications into the app model, with generated
container builds and VS Code debugging. These integrations build on work
that originated in the Aspire Community Toolkit.
- 🛠️ **More flexible AppHosts** — The prerelease `Aspire.Hosting.Dotnet`
integration coordinates compatible projects into shared restore and
build groups and supports .NET SDK container publishing. Portable
volume-path environment variables work across local execution and
deployment, while TypeScript AppHosts gain standard `appsettings.json`
configuration and Deno runtime support.
- ⌨️ **Sharper CLI workflows** — Select launch profiles with `aspire
run` and `aspire start`, update repository-local CLI manifests with
`aspire update`, create file-based C# AppHosts with `aspire init
--language csharp --file-based`, and export TypeScript API data with
`aspire sdk export`. Terminal commands no longer need a feature flag,
Linux certificate trust includes Firefox NSS databases, and `aspire stop
--force --volumes` adds explicit cleanup of Aspire-owned volumes.
- 💻 **More capable VS Code tooling** — Coding agents can start and stop
AppHosts through the extension, and the Aspire pane exposes deploy,
publish, and pipeline actions. Multi-root discovery, worktree-scoped
lifecycle operations, preserved launch arguments, clearer debug logs,
and missing-debugger guidance make complex workspaces more predictable.
- ☁️ **New Azure options in preview** — Azure Connector Namespace models
external-service connections and managed MCP server configurations.
Azure Container Apps Sandboxes adds isolated sandbox deployments with
configurable resource tiers and lifecycle policies, while Azure
Container Apps Express offers a simplified environment option for rapid
provisioning.
- ☸️ **More expressive, reliable deployments** — Experimental Azure
Provisioning SDK proxies let polyglot AppHosts customize infrastructure.
Deployment state is isolated under `ASPIRE_HOME`, Kubernetes preserves
inherited hostnames and embedded parameter values, and AKS gains
persistent-volume provisioning and more reliable cleanup.
- 🔌 **Expanded integrations** — Experimental Deno hosting and MongoDB
replica sets join Foundry Toolboxes, remote Foundry Local endpoints,
Blazor WebAssembly debugging, and configurable Dev Tunnel expiration.
Azure Cosmos DB and AI Inference client integrations gain health checks,
and the vNext Cosmos DB emulator sends its own telemetry to the
dashboard.

## ⚠️ Breaking changes

Notable changes include automatic TLS for local MongoDB servers when a
certificate is available, the Linux-based vNext Cosmos DB emulator
becoming the default, new Azure Front Door origin names that can require
cleanup of existing origins, portable connection-string
environment-variable aliases on stricter deployment targets, and
experimental terminal types moving from `Aspire.Hosting.Terminals` to
`Aspire.Hosting.ApplicationModel`.

See the full list and migration guidance in the [Aspire 13.6 breaking
changes](https://aspire.dev/whats-new/aspire-13-6/#breaking-changes).

## 📖 Learn more

For complete details, examples, migration guidance, and everything new
in this release, read [What's new in Aspire
13.6](https://aspire.dev/whats-new/aspire-13-6/).

Thank you to all the community contributors who helped make Aspire 13.6
possible! 💜

---

_Full Changelog:
[v13.5.4...v13.6.0](https://github.com/microsoft/aspire/compare/v13.5.4...v13.6.0)_

_Full commit:
[56f3e9c0d216c0c7069dabb49dd0464e4827744f](https://github.com/microsoft/aspire/commit/56f3e9c0d216c0c7069dabb49dd0464e4827744f)_


Commits viewable in [compare
view](https://github.com/microsoft/aspire/compare/v13.5.4...v13.6.3).
</details>

Updated
[Microsoft.Extensions.Http.Resilience](https://github.com/dotnet/extensions)
from 10.10.0 to 10.11.0.

<details>
<summary>Release notes</summary>

_Sourced from [Microsoft.Extensions.Http.Resilience's
releases](https://github.com/dotnet/extensions/releases)._

## 10.11.0

# .NET Extensions 10.11.0

This release adds optional scope capture for buffered logs and updates
experimental HTTP latency enrichment APIs. It also includes fixes for AI
streaming and function invocation, evaluation reports, HybridCache
invalidation, and logging.

## Experimental API Changes

### New Experimental APIs

* Optional logging-scope capture for global and per-request log
buffering through `GlobalLogBufferingOptions.IncludeScopes` and
`PerRequestLogBufferingOptions.IncludeScopes` (`EXTEXP0003`) #​7813

### Breaking Changes to Experimental APIs

* Incoming HTTP latency log enrichment: `AddHttpLatencyTelemetry` is
renamed to `AddHttpServerLatencyTelemetry` and moves from
`HttpLatencyTelemetryServiceCollectionExtensions` to
`HttpLoggingServiceCollectionExtensions`. It remains experimental under
`EXTEXP0013` in this release. #​7730

## What's Changed

### AI

* Yield final image when streaming with HostedImageGenerationTool #​7774
by @​iamAdarshh
* Make the default tool-rejection message state that the decision is
final #​7784 by @​manjunathshiva
* AI: Remove obsolete OpenAI JsonPatch workaround #​7815 by @​jozkee
(co-authored by @​Copilot)
* Ignore empty model IDs in streaming responses #​7816 by @​valkiara
* Honor FunctionInvocationContext.Terminate when the function throws
#​7801 by @​gjz22
* Fix ChatResponseUpdate.Clone dropping ContinuationToken #​7699 by
@​dfedoryshchev
* Decode non-base64 data URIs in DataContent to the octets they encode
#​7798 by @​Laurianti

### AI Evaluation

* [M.E.AI.Evaluation.Reporting] Fix context and metric interpretation
visualization #​7738 by @​grafanaKibana
* Fix tokenizer attaching punctuation to number tokens #​7766 by
@​tahakocal
* Order iteration results numerically #​7769 by @​tahakocal
* Score GLEU against the best matching reference #​7768 by @​tahakocal

### Telemetry and Observability

* Optionally preserve logging scopes in buffered log records #​7813 by
@​evgenyfedorov2 (co-authored by @​Copilot)
* Fix OOM from unbounded enumeration of ExtendedLogger tag joiners
#​7819 by @​evgenyfedorov2 (co-authored by @​Copilot)
* Fix log buffering race by removing the rule selector cache #​7803 by
@​evgenyfedorov2 (co-authored by @​Copilot)

### ASP.NET Core Extensions

* Rename AddHttpLatencyTelemetry to AddHttpServerLatencyTelemetry
(API-approved shape) #​7730 by @​EasyL0ver (co-authored by @​Copilot)
* Fix ArgumentNullException in per-request log buffering at the end of a
request #​7811 by @​evgenyfedorov2 (co-authored by @​Copilot)

### AI Project Templates

* Align aichatweb local vector-store keys with Guid record keys #​7804
by @​jongalloway (co-authored by @​adamsitnik @​Copilot)

### Caching

 ... (truncated)

## 10.10.1

This release fixes two OpenAI integration issues: a TypeLoadException on
tool-carrying Responses API calls and a streaming crash against
third-party OpenAI-compatible endpoints, by upgrading the OpenAI SDK to
2.14.0.

## Packages in this release

| Package | Version |
|---------|---------|
| Microsoft.Extensions.AI.OpenAI | `10.10.1` |
| Microsoft.Extensions.AI.Abstractions | `10.10.1` |

## What's Changed

### AI

* Upgrade OpenAI SDK to 2.14.0 #​7761 by @​zxyao145

## Acknowledgements

* @​zxyao145 made their first contribution in #​7761
* @​zxyao145 submitted issue #​7760 (resolved by #​7761)
* @​jozkee @​wtgodbe reviewed pull requests

**Full Changelog**:
https://github.com/dotnet/extensions/compare/v10.10.0...v10.10.1


Commits viewable in [compare
view](https://github.com/dotnet/extensions/compare/v10.10.0...v10.11.0).
</details>

Updated
[Microsoft.Extensions.ServiceDiscovery](https://github.com/dotnet/extensions)
from 10.10.0 to 10.11.0.

<details>
<summary>Release notes</summary>

_Sourced from [Microsoft.Extensions.ServiceDiscovery's
releases](https://github.com/dotnet/extensions/releases)._

## 10.11.0

# .NET Extensions 10.11.0

This release adds optional scope capture for buffered logs and updates
experimental HTTP latency enrichment APIs. It also includes fixes for AI
streaming and function invocation, evaluation reports, HybridCache
invalidation, and logging.

## Experimental API Changes

### New Experimental APIs

* Optional logging-scope capture for global and per-request log
buffering through `GlobalLogBufferingOptions.IncludeScopes` and
`PerRequestLogBufferingOptions.IncludeScopes` (`EXTEXP0003`) #​7813

### Breaking Changes to Experimental APIs

* Incoming HTTP latency log enrichment: `AddHttpLatencyTelemetry` is
renamed to `AddHttpServerLatencyTelemetry` and moves from
`HttpLatencyTelemetryServiceCollectionExtensions` to
`HttpLoggingServiceCollectionExtensions`. It remains experimental under
`EXTEXP0013` in this release. #​7730

## What's Changed

### AI

* Yield final image when streaming with HostedImageGenerationTool #​7774
by @​iamAdarshh
* Make the default tool-rejection message state that the decision is
final #​7784 by @​manjunathshiva
* AI: Remove obsolete OpenAI JsonPatch workaround #​7815 by @​jozkee
(co-authored by @​Copilot)
* Ignore empty model IDs in streaming responses #​7816 by @​valkiara
* Honor FunctionInvocationContext.Terminate when the function throws
#​7801 by @​gjz22
* Fix ChatResponseUpdate.Clone dropping ContinuationToken #​7699 by
@​dfedoryshchev
* Decode non-base64 data URIs in DataContent to the octets they encode
#​7798 by @​Laurianti

### AI Evaluation

* [M.E.AI.Evaluation.Reporting] Fix context and metric interpretation
visualization #​7738 by @​grafanaKibana
* Fix tokenizer attaching punctuation to number tokens #​7766 by
@​tahakocal
* Order iteration results numerically #​7769 by @​tahakocal
* Score GLEU against the best matching reference #​7768 by @​tahakocal

### Telemetry and Observability

* Optionally preserve logging scopes in buffered log records #​7813 by
@​evgenyfedorov2 (co-authored by @​Copilot)
* Fix OOM from unbounded enumeration of ExtendedLogger tag joiners
#​7819 by @​evgenyfedorov2 (co-authored by @​Copilot)
* Fix log buffering race by removing the rule selector cache #​7803 by
@​evgenyfedorov2 (co-authored by @​Copilot)

### ASP.NET Core Extensions

* Rename AddHttpLatencyTelemetry to AddHttpServerLatencyTelemetry
(API-approved shape) #​7730 by @​EasyL0ver (co-authored by @​Copilot)
* Fix ArgumentNullException in per-request log buffering at the end of a
request #​7811 by @​evgenyfedorov2 (co-authored by @​Copilot)

### AI Project Templates

* Align aichatweb local vector-store keys with Guid record keys #​7804
by @​jongalloway (co-authored by @​adamsitnik @​Copilot)

### Caching

 ... (truncated)

## 10.10.1

This release fixes two OpenAI integration issues: a TypeLoadException on
tool-carrying Responses API calls and a streaming crash against
third-party OpenAI-compatible endpoints, by upgrading the OpenAI SDK to
2.14.0.

## Packages in this release

| Package | Version |
|---------|---------|
| Microsoft.Extensions.AI.OpenAI | `10.10.1` |
| Microsoft.Extensions.AI.Abstractions | `10.10.1` |

## What's Changed

### AI

* Upgrade OpenAI SDK to 2.14.0 #​7761 by @​zxyao145

## Acknowledgements

* @​zxyao145 made their first contribution in #​7761
* @​zxyao145 submitted issue #​7760 (resolved by #​7761)
* @​jozkee @​wtgodbe reviewed pull requests

**Full Changelog**:
https://github.com/dotnet/extensions/compare/v10.10.0...v10.10.1


Commits viewable in [compare
view](https://github.com/dotnet/extensions/compare/v10.10.0...v10.11.0).
</details>

Updated
[Microsoft.Extensions.TimeProvider.Testing](https://github.com/dotnet/extensions)
from 10.10.0 to 10.11.0.

<details>
<summary>Release notes</summary>

_Sourced from [Microsoft.Extensions.TimeProvider.Testing's
releases](https://github.com/dotnet/extensions/releases)._

## 10.11.0

# .NET Extensions 10.11.0

This release adds optional scope capture for buffered logs and updates
experimental HTTP latency enrichment APIs. It also includes fixes for AI
streaming and function invocation, evaluation reports, HybridCache
invalidation, and logging.

## Experimental API Changes

### New Experimental APIs

* Optional logging-scope capture for global and per-request log
buffering through `GlobalLogBufferingOptions.IncludeScopes` and
`PerRequestLogBufferingOptions.IncludeScopes` (`EXTEXP0003`) #​7813

### Breaking Changes to Experimental APIs

* Incoming HTTP latency log enrichment: `AddHttpLatencyTelemetry` is
renamed to `AddHttpServerLatencyTelemetry` and moves from
`HttpLatencyTelemetryServiceCollectionExtensions` to
`HttpLoggingServiceCollectionExtensions`. It remains experimental under
`EXTEXP0013` in this release. #​7730

## What's Changed

### AI

* Yield final image when streaming with HostedImageGenerationTool #​7774
by @​iamAdarshh
* Make the default tool-rejection message state that the decision is
final #​7784 by @​manjunathshiva
* AI: Remove obsolete OpenAI JsonPatch workaround #​7815 by @​jozkee
(co-authored by @​Copilot)
* Ignore empty model IDs in streaming responses #​7816 by @​valkiara
* Honor FunctionInvocationContext.Terminate when the function throws
#​7801 by @​gjz22
* Fix ChatResponseUpdate.Clone dropping ContinuationToken #​7699 by
@​dfedoryshchev
* Decode non-base64 data URIs in DataContent to the octets they encode
#​7798 by @​Laurianti

### AI Evaluation

* [M.E.AI.Evaluation.Reporting] Fix context and metric interpretation
visualization #​7738 by @​grafanaKibana
* Fix tokenizer attaching punctuation to number tokens #​7766 by
@​tahakocal
* Order iteration results numerically #​7769 by @​tahakocal
* Score GLEU against the best matching reference #​7768 by @​tahakocal

### Telemetry and Observability

* Optionally preserve logging scopes in buffered log records #​7813 by
@​evgenyfedorov2 (co-authored by @​Copilot)
* Fix OOM from unbounded enumeration of ExtendedLogger tag joiners
#​7819 by @​evgenyfedorov2 (co-authored by @​Copilot)
* Fix log buffering race by removing the rule selector cache #​7803 by
@​evgenyfedorov2 (co-authored by @​Copilot)

### ASP.NET Core Extensions

* Rename AddHttpLatencyTelemetry to AddHttpServerLatencyTelemetry
(API-approved shape) #​7730 by @​EasyL0ver (co-authored by @​Copilot)
* Fix ArgumentNullException in per-request log buffering at the end of a
request #​7811 by @​evgenyfedorov2 (co-authored by @​Copilot)

### AI Project Templates

* Align aichatweb local vector-store keys with Guid record keys #​7804
by @​jongalloway (co-authored by @​adamsitnik @​Copilot)

### Caching

 ... (truncated)

## 10.10.1

This release fixes two OpenAI integration issues: a TypeLoadException on
tool-carrying Responses API calls and a streaming crash against
third-party OpenAI-compatible endpoints, by upgrading the OpenAI SDK to
2.14.0.

## Packages in this release

| Package | Version |
|---------|---------|
| Microsoft.Extensions.AI.OpenAI | `10.10.1` |
| Microsoft.Extensions.AI.Abstractions | `10.10.1` |

## What's Changed

### AI

* Upgrade OpenAI SDK to 2.14.0 #​7761 by @​zxyao145

## Acknowledgements

* @​zxyao145 made their first contribution in #​7761
* @​zxyao145 submitted issue #​7760 (resolved by #​7761)
* @​jozkee @​wtgodbe reviewed pull requests

**Full Changelog**:
https://github.com/dotnet/extensions/compare/v10.10.0...v10.10.1


Commits viewable in [compare
view](https://github.com/dotnet/extensions/compare/v10.10.0...v10.11.0).
</details>

Updated
[Microsoft.Testing.Extensions.CodeCoverage](https://github.com/microsoft/codecoverage)
from 18.11.2 to 18.12.0.

<details>
<summary>Release notes</summary>

_Sourced from [Microsoft.Testing.Extensions.CodeCoverage's
releases](https://github.com/microsoft/codecoverage/releases)._

No release notes found for this version range.

Commits viewable in [compare
view](https://github.com/microsoft/codecoverage/commits).
</details>

Updated
[Microsoft.Testing.Extensions.TrxReport](https://github.com/microsoft/testfx)
from 2.4.1 to 2.5.1.

<details>
<summary>Release notes</summary>

_Sourced from [Microsoft.Testing.Extensions.TrxReport's
releases](https://github.com/microsoft/testfx/releases)._

No release notes found for this version range.

Commits viewable in [compare
view](https://github.com/microsoft/testfx/commits).
</details>

Updated
[OpenTelemetry](https://github.com/open-telemetry/opentelemetry-dotnet)
from 1.19.1 to 1.20.1.

<details>
<summary>Release notes</summary>

_Sourced from [OpenTelemetry's
releases](https://github.com/open-telemetry/opentelemetry-dotnet/releases)._

## 1.20.1

For highlights and announcements pertaining to this release see:
[Release Notes >
1.20.1](https://github.com/open-telemetry/opentelemetry-dotnet/blob/main/RELEASENOTES.md#​1201).

The following changes are from the previous release
[1.20.0](https://github.com/open-telemetry/opentelemetry-dotnet/releases/tag/core-1.20.0).

* NuGet: [OpenTelemetry
v1.20.1](https://www.nuget.org/packages/OpenTelemetry/1.20.1)

* Fixed a possible race condition on ARM64 when multiple threads record
the
first measurement with no tags, or the first overflow measurement, that
could
    cause the measurement to be recorded incorrectly.

([#​7951](https://github.com/open-telemetry/opentelemetry-dotnet/pull/7951))
  
* Fixed self-diagnostics preamble redaction of quoted or encoded PEM
material
    and prefixed JWTs.

([#​7955](https://github.com/open-telemetry/opentelemetry-dotnet/pull/7955))
  
* Fixed default HTTP client log filtering when registering the OTLP log
exporter
    through `OpenTelemetryLoggerOptions`.

([#​7959](https://github.com/open-telemetry/opentelemetry-dotnet/pull/7959))
  
* Fixed legacy self-diagnostics logging terminating the process when the
log
    file is truncated or the log volume runs out of space.

([#​7956](https://github.com/open-telemetry/opentelemetry-dotnet/pull/7956))
  
* **Experimental (pre-release builds only):** Fixed `Logger.EmitLog`
ignoring
instrumentation suppression, which could cause recursive exports or
deadlocks.

([#​7961](https://github.com/open-telemetry/opentelemetry-dotnet/pull/7961))
  
* Fixed delta double counters losing subsequent measurements after a
non-finite
or large value and idle metric points with a `NaN` value failing to be
reclaimed.

([#​7963](https://github.com/open-telemetry/opentelemetry-dotnet/pull/7963))
  
* Improve the assignment of values to exponential histogram buckets when
the
value is near a bucket boundary by using a pre-computed lookup table.

([#​7911](https://github.com/open-telemetry/opentelemetry-dotnet/pull/7911))
  
* Fixed `LogRecord`s being returned to the shared pool while still
queued for
    export when an exporter stops enumerating a single-item or array
`Batch<LogRecord>` early which could cause a
`BatchLogRecordExportProcessor`
    on the same provider to export missing or incorrect data.

([#​7965](https://github.com/open-telemetry/opentelemetry-dotnet/pull/7965))
  
* Fixed a `SuppressInstrumentationScope.Enter()` reference count never
being
released when the `Activity` it was entered for is not recorded, which
caused
    all subsequent telemetry in that execution context to be suppressed.

([#​7966](https://github.com/open-telemetry/opentelemetry-dotnet/pull/7966))
  
* Self-diagnostics log files, whether configured through
`OTEL_DIAGNOSTICS.json`
    or `SelfDiagnosticsOptions`, are now always created as new files.

([#​7968](https://github.com/open-telemetry/opentelemetry-dotnet/pull/7968))
  
 ... (truncated)

## 1.20.1-rc.1

The following changes are from the previous release
[1.20.0](https://github.com/open-telemetry/opentelemetry-dotnet/releases/tag/core-1.20.0).

* NuGet: [OpenTelemetry
v1.20.1-rc.1](https://www.nuget.org/packages/OpenTelemetry/1.20.1-rc.1)

* Fixed a possible race condition on ARM64 when multiple threads record
the
first measurement with no tags, or the first overflow measurement, that
could
    cause the measurement to be recorded incorrectly.

([#​7951](https://github.com/open-telemetry/opentelemetry-dotnet/pull/7951))
  
* Fixed self-diagnostics preamble redaction of quoted or encoded PEM
material
    and prefixed JWTs.

([#​7955](https://github.com/open-telemetry/opentelemetry-dotnet/pull/7955))
  
* Fixed default HTTP client log filtering when registering the OTLP log
exporter
    through `OpenTelemetryLoggerOptions`.

([#​7959](https://github.com/open-telemetry/opentelemetry-dotnet/pull/7959))
  
* Fixed legacy self-diagnostics logging terminating the process when the
log
    file is truncated or the log volume runs out of space.

([#​7956](https://github.com/open-telemetry/opentelemetry-dotnet/pull/7956))
  
* **Experimental (pre-release builds only):** Fixed `Logger.EmitLog`
ignoring
instrumentation suppression, which could cause recursive exports or
deadlocks.

([#​7961](https://github.com/open-telemetry/opentelemetry-dotnet/pull/7961))
  
* Fixed delta double counters losing subsequent measurements after a
non-finite
or large value and idle metric points with a `NaN` value failing to be
reclaimed.

([#​7963](https://github.com/open-telemetry/opentelemetry-dotnet/pull/7963))
  
* Improve the assignment of values to exponential histogram buckets when
the
value is near a bucket boundary by using a pre-computed lookup table.

([#​7911](https://github.com/open-telemetry/opentelemetry-dotnet/pull/7911))
  
* Fixed `LogRecord`s being returned to the shared pool while still
queued for
    export when an exporter stops enumerating a single-item or array
`Batch<LogRecord>` early which could cause a
`BatchLogRecordExportProcessor`
    on the same provider to export missing or incorrect data.

([#​7965](https://github.com/open-telemetry/opentelemetry-dotnet/pull/7965))
  
* Fixed a `SuppressInstrumentationScope.Enter()` reference count never
being
released when the `Activity` it was entered for is not recorded, which
caused
    all subsequent telemetry in that execution context to be suppressed.

([#​7966](https://github.com/open-telemetry/opentelemetry-dotnet/pull/7966))
  
* Self-diagnostics log files, whether configured through
`OTEL_DIAGNOSTICS.json`
    or `SelfDiagnosticsOptions`, are now always created as new files.

([#​7968](https://github.com/open-telemetry/opentelemetry-dotnet/pull/7968))
  
  * Self-diagnostics messages written to the sinks configured by
`SelfDiagnosticsOptions` are now truncated to 16,384 characters so that
the
 ... (truncated)

## 1.20.1-beta.1

The following changes are from the previous release
[1.20.0-beta.1](https://github.com/open-telemetry/opentelemetry-dotnet/releases/tag/coreunstable-1.20.0-beta.1).

* NuGet: [OpenTelemetry.Exporter.Prometheus.AspNetCore
v1.20.1-beta.1](https://www.nuget.org/packages/OpenTelemetry.Exporter.Prometheus.AspNetCore/1.20.1-beta.1)

* Fixed scrape responses being handed to the server in a single write,
which
made the server buffer a full copy of the response for each client that
did
not read it until the request completed or timed out. Responses are now
    written in bounded slices so the server's back-pressure applies.

([#​7957](https://github.com/open-telemetry/opentelemetry-dotnet/pull/7957))
  
* Fixed startup scrapes permanently omitting `target_info` and
configured
    resource constant labels from subsequent scrape responses.

([#​7984](https://github.com/open-telemetry/opentelemetry-dotnet/pull/7984))
  
  * Updated OpenTelemetry core component version(s) to `1.20.1`.

([#​7990](https://github.com/open-telemetry/opentelemetry-dotnet/pull/7990))

See
[CHANGELOG](https://github.com/open-telemetry/opentelemetry-dotnet/blob/coreunstable-1.20.1-beta.1/src/OpenTelemetry.Exporter.Prometheus.AspNetCore/CHANGELOG.md)
for details.

* NuGet: [OpenTelemetry.Exporter.Prometheus.HttpListener
v1.20.1-beta.1](https://www.nuget.org/packages/OpenTelemetry.Exporter.Prometheus.HttpListener/1.20.1-beta.1)

* Fixed scrape responses being handed to the server in a single write,
which
on Linux and macOS made the listener allocate and hold a full copy of
the
response for each client that did not read it until the request
completed or
    timed out. Responses are now written in bounded slices.

([#​7957](https://github.com/open-telemetry/opentelemetry-dotnet/pull/7957))
  
* Fixed scrape requests that announce a request body holding a thread
pool
thread after their response had been sent on Linux and macOS for as long
as
the client kept trickling in the body. The connection is now closed
after
    responding to a request with a body instead of being kept alive.

([#​7962](https://github.com/open-telemetry/opentelemetry-dotnet/pull/7962))
  
* Fixed startup scrapes permanently omitting `target_info` and
configured
    resource constant labels from subsequent scrape responses.

([#​7984](https://github.com/open-telemetry/opentelemetry-dotnet/pull/7984))
  
  * Updated OpenTelemetry core component version(s) to `1.20.1`.

([#​7990](https://github.com/open-telemetry/opentelemetry-dotnet/pull/7990))

See
[CHANGELOG](https://github.com/open-telemetry/opentelemetry-dotnet/blob/coreunstable-1.20.1-beta.1/src/OpenTelemetry.Exporter.Prometheus.HttpListener/CHANGELOG.md)
for details.

* NuGet: [OpenTelemetry.Shims.OpenTracing
v1.20.1-beta.1](https://www.nuget.org/packages/OpenTelemetry.Shims.OpenTracing/1.20.1-beta.1)

  * Updated OpenTelemetry core component version(s) to `1.20.1`.

([#​7990](https://github.com/open-telemetry/opentelemetry-dotnet/pull/7990))

See
[CHANGELOG](https://github.com/open-telemetry/opentelemetry-dotnet/blob/coreunstable-1.20.1-beta.1/src/OpenTelemetry.Shims.OpenTracing/CHANGELOG.md)
for details.



## 1.20.0

For highlights and announcements pertaining to this release see:
[Release Notes >
1.20.0](https://github.com/open-telemetry/opentelemetry-dotnet/blob/main/RELEASENOTES.md#​1200).

The following changes are from the previous release
[1.19.1](https://github.com/open-telemetry/opentelemetry-dotnet/releases/tag/core-1.19.1).

* NuGet: [OpenTelemetry
v1.20.0](https://www.nuget.org/packages/OpenTelemetry/1.20.0)

* Fixed `SuppressInstrumentationScope` reference counts leaking between
inherited asynchronous execution contexts.

([#​7803](https://github.com/open-telemetry/opentelemetry-dotnet/pull/7803))
  
* Self-diagnostic features are explicitly disabled on browser-based
platforms (e.g. Blazor) and are now non-functional. Previously,
attempting to enable self-diagnostics on such platforms would result in
an exception at runtime.

([#​7799](https://github.com/open-telemetry/opentelemetry-dotnet/pull/7799))
  
* Added `TracerProviderBuilder.ConfigureSampler` which receives the
resolved `Sampler` whether set programmatically, via
`OTEL_TRACES_SAMPLER`, or by default, and returns a replacement.
Intended for library authors who need to influence sampling without
overriding a sampler the application has configured.

([#​7780](https://github.com/open-telemetry/opentelemetry-dotnet/pull/7780))
  
* Fixed `ResourceBuilder.CreateDefault` ignoring
`OTEL_RESOURCE_ATTRIBUTES` and `OTEL_SERVICE_NAME` environment variables
when the host `IConfiguration` does not contain those settings.

([#​7855](https://github.com/open-telemetry/opentelemetry-dotnet/pull/7855))
  
* Added improved self-diagnostics logging to improve the support
experience. The new `SelfDiagnosticsOptions` class configures a rolling
file sink and a console sink through the standard options pipeline.
Sinks are off by default.

([#​7588](https://github.com/open-telemetry/opentelemetry-dotnet/pull/7588))
  
* Fixed a race that could incorrectly route a concurrent metric
measurement to the overflow point when its tag set was published as the
cardinality limit was reached.

([#​7804](https://github.com/open-telemetry/opentelemetry-dotnet/pull/7804))
  
* Added `OpenTelemetryLoggerOptions.Version` and
`OpenTelemetryLoggerOptions.SchemaUrl` options to set an instrumentation
library version and schema URL applied to logs emitted via the
`Microsoft.Extensions.Logging` `ILogger` integration.

([#​7727](https://github.com/open-telemetry/opentelemetry-dotnet/pull/7727))
  
* Fixed `LogRecord.CategoryName` resetting the current `Logger`'s
`Version` to `null` when set to a new value.

([#​7727](https://github.com/open-telemetry/opentelemetry-dotnet/pull/7727))
  
* Bounded the internal cache of `Logger` scopes keyed by instrumentation
to avoid unbounded growth.

([#​7727](https://github.com/open-telemetry/opentelemetry-dotnet/pull/7727))
  
* Fixed the `MeterProvider` and its `IServiceProvider` being kept alive
after the host is disposed when using `Microsoft.Extensions.Diagnostics`
versions prior to 9.0, which never dispose their
`MetricsSubscriptionManager` (and its underlying `MeterListener`).

([#​7924](https://github.com/open-telemetry/opentelemetry-dotnet/pull/7924))
  
* Fixed a race condition between recording a measurement and collecting
a histogram with delta temporality that could cause an empty data point
(with a count of zero) to be exported in the next collection cycle.

([#​7923](https://github.com/open-telemetry/opentelemetry-dotnet/pull/7923))
  
* Improved metric collection performance after metric streams are
removed by compacting metric storage during collection.

([#​7945](https://github.com/open-telemetry/opentelemetry-dotnet/pull/7945))

See
[CHANGELOG](https://github.com/open-telemetry/opentelemetry-dotnet/blob/core-1.20.0/src/OpenTelemetry/CHANGELOG.md)
for details.

* NuGet: [OpenTelemetry.Api
v1.20.0](https://www.nuget.org/packages/OpenTelemetry.Api/1.20.0)

* Added `Logger.SchemaUrl` and a `LoggerProvider.GetLogger` overload
accepting a schema URL parameter using the new `LoggerOptions` type.

([#​7727](https://github.com/open-telemetry/opentelemetry-dotnet/pull/7727))
  
* **Breaking change** (pre-release only versions): `LoggerProvider`'s
protected `TryCreateLogger(string? name, out Logger? logger)`
extensibility method has been replaced by `TryCreateLogger(LoggerOptions
options, out Logger? logger)`. Custom `LoggerProvider` subclasses that
override the previous overload must update to override the new one; the
old overload is no longer called.
 ... (truncated)

## 1.20.0-rc.1

The following changes are from the previous release
[1.19.1](https://github.com/open-telemetry/opentelemetry-dotnet/releases/tag/core-1.19.1).

* NuGet: [OpenTelemetry
v1.20.0-rc.1](https://www.nuget.org/packages/OpenTelemetry/1.20.0-rc.1)

* Fixed `SuppressInstrumentationScope` reference counts leaking between
inherited asynchronous execution contexts.

([#​7803](https://github.com/open-telemetry/opentelemetry-dotnet/pull/7803))
  
* Self-diagnostic features are explicitly disabled on browser-based
platforms (e.g. Blazor) and are now non-functional. Previously,
attempting to enable self-diagnostics on such platforms would result in
an exception at runtime.

([#​7799](https://github.com/open-telemetry/opentelemetry-dotnet/pull/7799))
  
* Added `TracerProviderBuilder.ConfigureSampler` which receives the
resolved `Sampler` whether set programmatically, via
`OTEL_TRACES_SAMPLER`, or by default, and returns a replacement.
Intended for library authors who need to influence sampling without
overriding a sampler the application has configured.

([#​7780](https://github.com/open-telemetry/opentelemetry-dotnet/pull/7780))
  
* Fixed `ResourceBuilder.CreateDefault` ignoring
`OTEL_RESOURCE_ATTRIBUTES` and `OTEL_SERVICE_NAME` environment variables
when the host `IConfiguration` does not contain those settings.

([#​7855](https://github.com/open-telemetry/opentelemetry-dotnet/pull/7855))
  
* Added improved self-diagnostics logging to improve the support
experience. The new `SelfDiagnosticsOptions` class configures a rolling
file sink and a console sink through the standard options pipeline.
Sinks are off by default.

([#​7588](https://github.com/open-telemetry/opentelemetry-dotnet/pull/7588))
  
* Fixed a race that could incorrectly route a concurrent metric
measurement to the overflow point when its tag set was published as the
cardinality limit was reached.

([#​7804](https://github.com/open-telemetry/opentelemetry-dotnet/pull/7804))
  
* Added `OpenTelemetryLoggerOptions.Version` and
`OpenTelemetryLoggerOptions.SchemaUrl` options to set an instrumentation
library version and schema URL applied to logs emitted via the
`Microsoft.Extensions.Logging` `ILogger` integration.

([#​7727](https://github.com/open-telemetry/opentelemetry-dotnet/pull/7727))
  
* Fixed `LogRecord.CategoryName` resetting the current `Logger`'s
`Version` to `null` when set to a new value.

([#​7727](https://github.com/open-telemetry/opentelemetry-dotnet/pull/7727))
  
* Bounded the internal cache of `Logger` scopes keyed by instrumentation
to avoid unbounded growth.

([#​7727](https://github.com/open-telemetry/opentelemetry-dotnet/pull/7727))
  
* Fixed the `MeterProvider` and its `IServiceProvider` being kept alive
after the host is disposed when using `Microsoft.Extensions.Diagnostics`
versions prior to 9.0, which never dispose their
`MetricsSubscriptionManager` (and its underlying `MeterListener`).

([#​7924](https://github.com/open-telemetry/opentelemetry-dotnet/pull/7924))
  
* Fixed a race condition between recording a measurement and collecting
a histogram with delta temporality that could cause an empty data point
(with a count of zero) to be exported in the next collection cycle.

([#​7923](https://github.com/open-telemetry/opentelemetry-dotnet/pull/7923))
  
* Improved metric collection performance after metric streams are
removed by compacting metric storage during collection.

([#​7945](https://github.com/open-telemetry/opentelemetry-dotnet/pull/7945))

See
[CHANGELOG](https://github.com/open-telemetry/opentelemetry-dotnet/blob/core-1.20.0-rc.1/src/OpenTelemetry/CHANGELOG.md)
for details.

* NuGet: [OpenTelemetry.Api
v1.20.0-rc.1](https://www.nuget.org/packages/OpenTelemetry.Api/1.20.0-rc.1)

* Added `Logger.SchemaUrl` and a `LoggerProvider.GetLogger` overload
accepting a schema URL parameter using the new `LoggerOptions` type.

([#​7727](https://github.com/open-telemetry/opentelemetry-dotnet/pull/7727))
  
* **Breaking change** (pre-release only versions): `LoggerProvider`'s
protected `TryCreateLogger(string? name, out Logger? logger)`
extensibility method has been replaced by `TryCreateLogger(LoggerOptions
options, out Logger? logger)`. Custom `LoggerProvider` subclasses that
override the previous overload must update to override the new one; the
old overload is no longer called.

([#​7727](https://github.com/open-telemetry/opentelemetry-dotnet/pull/7727))
  
 ... (truncated)

## 1.20.0-beta.1

The following changes are from the previous release
[1.19.1-beta.1](https://github.com/open-telemetry/opentelemetry-dotnet/releases/tag/coreunstable-1.19.1-beta.1).

* NuGet: [OpenTelemetry.Exporter.Prometheus.AspNetCore
v1.20.0-beta.1](https://www.nuget.org/packages/OpenTelemetry.Exporter.Prometheus.AspNetCore/1.20.0-beta.1)

* A scrape request whose connection is aborted, or whose
`X-Prometheus-Scrape-Timeout-Seconds` deadline elapses, now stops
waiting for an in-progress metrics collection instead of continuing to
wait for it to finish. The collection itself is not cancelled and
continues running in the background.

([#​7856](https://github.com/open-telemetry/opentelemetry-dotnet/pull/7856))
  
  * Updated OpenTelemetry core component version(s) to `1.20.0`.

([#​7950](https://github.com/open-telemetry/opentelemetry-dotnet/pull/7950))

See
[CHANGELOG](https://github.com/open-telemetry/opentelemetry-dotnet/blob/coreunstable-1.20.0-beta.1/src/OpenTelemetry.Exporter.Prometheus.AspNetCore/CHANGELOG.md)
for details.

* NuGet: [OpenTelemetry.Exporter.Prometheus.HttpListener
v1.20.0-beta.1](https://www.nuget.org/packages/OpenTelemetry.Exporter.Prometheus.HttpListener/1.20.0-beta.1)

  * Updated OpenTelemetry core component version(s) to `1.20.0`.

([#​7950](https://github.com/open-telemetry/opentelemetry-dotnet/pull/7950))

See
[CHANGELOG](https://github.com/open-telemetry/opentelemetry-dotnet/blob/coreunstable-1.20.0-beta.1/src/OpenTelemetry.Exporter.Prometheus.HttpListener/CHANGELOG.md)
for details.

* NuGet: [OpenTelemetry.Shims.OpenTracing
v1.20.0-beta.1](https://www.nuget.org/packages/OpenTelemetry.Shims.OpenTracing/1.20.0-beta.1)

  * Updated OpenTelemetry core component version(s) to `1.20.0`.

([#​7950](https://github.com/open-telemetry/opentelemetry-dotnet/pull/7950))

See
[CHANGELOG](https://github.com/open-telemetry/opentelemetry-dotnet/blob/coreunstable-1.20.0-beta.1/src/OpenTelemetry.Shims.OpenTracing/CHANGELOG.md)
for details.



Commits viewable in [compare
view](https://github.com/open-telemetry/opentelemetry-dotnet/compare/core-1.19.1...core-1.20.1).
</details>

Updated
[OpenTelemetry.Exporter.OpenTelemetryProtocol](https://github.com/open-telemetry/opentelemetry-dotnet)
from 1.19.1 to 1.20.1.

<details>
<summary>Release notes</summary>

_Sourced from [OpenTelemetry.Exporter.OpenTelemetryProtocol's
releases](https://github.com/open-telemetry/opentelemetry-dotnet/releases)._

## 1.20.1

For highlights and announcements pertaining to this release see:
[Release Notes >
1.20.1](https://github.com/open-telemetry/opentelemetry-dotnet/blob/main/RELEASENOTES.md#​1201).

The following changes are from the previous release
[1.20.0](https://github.com/open-telemetry/opentelemetry-dotnet/releases/tag/core-1.20.0).

* NuGet: [OpenTelemetry
v1.20.1](https://www.nuget.org/packages/OpenTelemetry/1.20.1)

* Fixed a possible race condition on ARM64 when multiple threads record
the
first measurement with no tags, or the first overflow measurement, that
could
    cause the measurement to be recorded incorrectly.

([#​7951](https://github.com/open-telemetry/opentelemetry-dotnet/pull/7951))
  
* Fixed self-diagnostics preamble redaction of quoted or encoded PEM
material
    and prefixed JWTs.

([#​7955](https://github.com/open-telemetry/opentelemetry-dotnet/pull/7955))
  
* Fixed default HTTP client log filtering when registering the OTLP log
exporter
    through `OpenTelemetryLoggerOptions`.

([#​7959](https://github.com/open-telemetry/opentelemetry-dotnet/pull/7959))
  
* Fixed legacy self-diagnostics logging terminating the process when the
log
    file is truncated or the log volume runs out of space.

([#​7956](https://github.com/open-telemetry/opentelemetry-dotnet/pull/7956))
  
* **Experimental (pre-release builds only):** Fixed `Logger.EmitLog`
ignoring
instrumentation suppression, which could cause recursive exports or
deadlocks.

([#​7961](https://github.com/open-telemetry/opentelemetry-dotnet/pull/7961))
  
* Fixed delta double counters losing subsequent measurements after a
non-finite
or large value and idle metric points with a `NaN` value failing to be
reclaimed.

([#​7963](https://github.com/open-telemetry/opentelemetry-dotnet/pull/7963))
  
* Improve the assignment of values to exponential histogram buckets when
the
value is near a bucket boundary by using a pre-computed lookup table.

([#​7911](https://github.com/open-telemetry/opentelemetry-dotnet/pull/7911))
  
* Fixed `LogRecord`s being returned to the shared pool while still
queued for
    export when an exporter stops enumerating a single-item or array
`Batch<LogRecord>` early which could cause a
`BatchLogRecordExportProcessor`
    on the same provider to export missing or incorrect data.

([#​7965](https://github.com/open-telemetry/opentelemetry-dotnet/pull/7965))
  
* Fixed a `SuppressInstrumentationScope.Enter()` reference count never
being
released when the `Activity` it was entered for is not recorded, which
caused
    all subsequent telemetry in that execution context to be suppressed.

([#​7966](https://github.com/open-telemetry/opentelemetry-dotnet/pull/7966))
  
* Self-diagnostics log files, whether configured through
`OTEL_DIAGNOSTICS.json`
    or `SelfDiagnosticsOptions`, are now always created as new files.

([#​7968](https://github.com/open-telemetry/opentelemetry-dotnet/pull/7968))
  
 ... (truncated)

## 1.20.1-rc.1

The following changes are from the previous release
[1.20.0](https://github.com/open-telemetry/opentelemetry-dotnet/releases/tag/core-1.20.0).

* NuGet: [OpenTelemetry
v1.20.1-rc.1](https://www.nuget.org/packages/OpenTelemetry/1.20.1-rc.1)

* Fixed a possible race condition on ARM64 when multiple threads record
the
first measurement with no tags, or the first overflow measurement, that
could
    cause the measurement to be recorded incorrectly.

([#​7951](https://github.com/open-telemetry/opentelemetry-dotnet/pull/7951))
  
* Fixed self-diagnostics preamble redaction of quoted or encoded PEM
material
    and prefixed JWTs.

([#​7955](https://github.com/open-telemetry/opentelemetry-dotnet/pull/7955))
  
* Fixed default HTTP client log filtering when registering the OTLP log
exporter
    through `OpenTelemetryLoggerOptions`.

([#​7959](https://github.com/open-telemetry/opentelemetry-dotnet/pull/7959))
  
* Fixed legacy self-diagnostics logging terminating the process when the
log
    file is truncated or the log volume runs out of space.

([#​7956](https://github.com/open-telemetry/opentelemetry-dotnet/pull/7956))
  
* **Experimental (pre-release builds only):** Fixed `Logger.EmitLog`
ignoring
instrumentation suppression, which could cause recursive exports or
deadlocks.

([#​7961](https://github.com/open-telemetry/opentelemetry-dotnet/pull/7961))
  
* Fixed delta double counters losing subsequent measurements after a
non-finite
or large value and idle metric points with a `NaN` value failing to be
reclaimed.

([#​7963](https://github.com/open-telemetry/opentelemetry-dotnet/pull/7963))
  
* Improve the assignment of values to exponential histogram buckets when
the
value is near a bucket boundary by using a pre-computed lookup table.

([#​7911](https://github.com/open-telemetry/opentelemetry-dotnet/pull/7911))
  
* Fixed `LogRecord`s being returned to the shared pool while still
queued for
    export when an exporter stops enumerating a single-item or array
`Batch<LogRecord>` early which could cause a
`BatchLogRecordExportProcessor`
    on the same provider to export missing or incorrect data.

([#​7965](https://github.com/open-telemetry/opentelemetry-dotnet/pull/7965))
  
* Fixed a `SuppressInstrumentationScope.Enter()` reference count never
being
released when the `Activity` it was entered for is not recorded, which
caused
    all subsequent telemetry in that execution context to be suppressed.

([#​7966](https://github.com/open-telemetry/opentelemetry-dotnet/pull/7966))
  
* Self-diagnostics log files, whether configured through
`OTEL_DIAGNOSTICS.json`
    or `SelfDiagnosticsOptions`, are now always created as new files.

([#​7968](https://github.com/open-telemetry/opentelemetry-dotnet/pull/7968))
  
  * Self-diagnostics messages written to the sinks configured by
`SelfDiagnosticsOptions` are now truncated to 16,384 characters so that
the
 ... (truncated)

## 1.20.1-beta.1

The following changes are from the previous release
[1.20.0-beta.1](https://github.com/open-telemetry/opentelemetry-dotnet/releases/tag/coreunstable-1.20.0-beta.1).

* NuGet: [OpenTelemetry.Exporter.Prometheus.AspNetCore
v1.20.1-beta.1](https://www.nuget.org/packages/OpenTelemetry.Exporter.Prometheus.AspNetCore/1.20.1-beta.1)

* Fixed scrape responses being handed to the server in a single write,
which
made the server buffer a full copy of the response for each client that
did
not read it until the request completed or timed out. Responses are now
    written in bounded slices so the server's back-pressure applies.

([#​7957](https://github.com/open-telemetry/opentelemetry-dotnet/pull/7957))
  
* Fixed startup scrapes permanently omitting `target_info` and
configured
    resource constant labels from subsequent scrape responses.

([#​7984](https://github.com/open-telemetry/opentelemetry-dotnet/pull/7984))
  
  * Updated OpenTelemetry core component version(s) to `1.20.1`.

([#​7990](https://github.com/open-telemetry/opentelemetry-dotnet/pull/7990))

See
[CHANGELOG](https://github.com/open-telemetry/opentelemetry-dotnet/blob/coreunstable-1.20.1-beta.1/src/OpenTelemetry.Exporter.Prometheus.AspNetCore/CHANGELOG.md)
for details.

* NuGet: [OpenTelemetry.Exporter.Prometheus.HttpListener
v1.20.1-beta.1](https://www.nuget.org/packages/OpenTelemetry.Exporter.Prometheus.HttpListener/1.20.1-beta.1)

* Fixed scrape responses being handed to the server in a single write,
which
on Linux and macOS made the listener allocate and hold a full copy of
the
response for each client that did not read it until the request
completed or
    timed out. Responses are now written in bounded slices.

([#​7957](https://github.com/open-telemetry/opentelemetry-dotnet/pull/7957))
  
* Fixed scrape requests that announce a request body holding a thread
pool
thread after their response had been sent on Linux and macOS for as long
as
the client kept trickling in the body. The connection is now closed
after
    responding to a request with a body instead of being kept alive.

([#​7962](https://github.com/open-telemetry/opentelemetry-dotnet/pull/7962))
  
* Fixed startup scrapes permanently omitting `target_info` and
configured
    resource constant labels from subsequent scrape responses.

([#​7984](https://github.com/open-telemetry/opentelemetry-dotnet/pull/7984))
  
  * Updated OpenTelemetry core component version(s) to `1.20.1`.

([#​7990](https://github.com/open-telemetry/opentelemetry-dotnet/pull/7990))

See
[CHANGELOG](https://github.com/open-telemetry/opentelemetry-dotnet/blob/coreunstable-1.20.1-beta.1/src/OpenTelemetry.Exporter.Prometheus.HttpListener/CHANGELOG.md)
for details.

* NuGet: [OpenTelemetry.Shims.OpenTracing
v1.20.1-beta.1](https://www.nuget.org/packages/OpenTelemetry.Shims.OpenTracing/1.20.1-beta.1)

  * Updated OpenTelemetry core component version(s) to `1.20.1`.

([#​7990](https://github.com/open-telemetry/opentelemetry-dotnet/pull/7990))

See
[CHANGELOG](https://github.com/open-telemetry/opentelemetry-dotnet/blob/coreunstable-1.20.1-beta.1/src/OpenTelemetry.Shims.OpenTracing/CHANGELOG.md)
for details.



## 1.20.0

For highlights and announcements pertaining to this release see:
[Release Notes >
1.20.0](https://github.com/open-telemetry/opentelemetry-dotnet/blob/main/RELEASENOTES.md#​1200).

The following changes are from the previous release
[1.19.1](https://github.com/open-telemetry/opentelemetry-dotnet/releases/tag/core-1.19.1).

* NuGet: [OpenTelemetry
v1.20.0](https://www.nuget.org/packages/OpenTelemetry/1.20.0)

* Fixed `SuppressInstrumentationScope` reference counts leaking between
inherited asynchronous execution contexts.

([#​7803](https://github.com/open-telemetry/opentelemetry-dotnet/pull/7803))
  
* Self-diagnostic features are explicitly disabled on browser-based
platforms (e.g. Blazor) and are now non-functional. Previously,
attempting to enable self-diagnostics on such platforms would result in
an exception at runtime.

([#​7799](https://github.com/open-telemetry/opentelemetry-dotnet/pull/7799))
  
* Added `TracerProviderBuilder.ConfigureSampler` which receives the
resolved `Sampler` whether set programmatically, via
`OTEL_TRACES_SAMPLER`, or by default, and returns a replacement.
Intended for library authors who need to influence sampling without
overriding a sampler the application has configured.

([#​7780](https://github.com/open-telemetry/opentelemetry-dotnet/pull/7780))
  
* Fixed `ResourceBuilder.CreateDefault` ignoring
`OTEL_RESOURCE_ATTRIBUTES` and `OTEL_SERVICE_NAME` environment variables
when the host `IConfiguration` does not contain those settings.

([#​7855](https://github.com/open-telemetry/opentelemetry-dotnet/pull/7855))
  
* Added improved self-diagnostics logging to improve the support
experience. The new `SelfDiagnosticsOptions` class configures a rolling
file sink and a console sink through the standard options pipeline.
Sinks are off by default.

([#​7588](https://github.com/open-telemetry/opentelemetry-dotnet/pull/7588))
  
* Fixed a race that could incorrectly route a concurrent metric
measurement to the overflow point when its tag set was published as the
cardinality limit was reached.

([#​7804](https://github.com/open-telemetry/opentelemetry-dotnet/pull/7804))
  
* Added `OpenTelemetryLoggerOptions.Version` and
`OpenTelemetryLoggerOptions.SchemaUrl` options to set an instrumentation
library version and schema URL applied to logs emitted via the
`Microsoft.Extensions.Logging` `ILogger` integration.

([#​7727](https://github.com/open-telemetry/opentelemetry-dotnet/pull/7727))
  
* Fixed `LogRecord.CategoryName` resetting the current `Logger`'s
`Version` to `null` when set to a new value.

([#​7727](https://github.com/open-telemetry/opentelemetry-dotnet/pull/7727))
  
* Bounded the internal cache of `Logger` scopes keyed by instrumentation
to avoid unbounded growth.

([#​7727](https://github.com/open-telemetry/opentelemetry-dotnet/pull/7727))
  
* Fixed the `MeterProvider` and its `IServiceProvider` being kept alive
after the host is disposed when using `Microsoft.Extensions.Diagnostics`
versions prior to 9.0, which never dispose their
`MetricsSubscriptionManager` (and its underlying `MeterListener`).

([#​7924](https://github.com/open-telemetry/opentelemetry-dotnet/pull/7924))
  
* Fixed a race condition between recording a measurement and collecting
a histogram with delta temporality that could cause an empty data point
(with a count of zero) to be exported in the next collection cycle.

([#​7923](https://github.com/open-telemetry/opentelemetry-dotnet/pull/7923))
  
* Improved metric collection performance after metric streams are
removed by compacting metric storage during collection.

([#​7945](https://github.com/open-telemetry/opentelemetry-dotnet/pull/7945))

See
[CHANGELOG](https://github.com/open-telemetry/opentelemetry-dotnet/blob/core-1.20.0/src/OpenTelemetry/CHANGELOG.md)
for details.

* NuGet: [OpenTelemetry.Api
v1.20.0](https://www.nuget.org/packages/OpenTelemetry.Api/1.20.0)

* Added `Logger.SchemaUrl` and a `LoggerProvider.GetLogger` overload
accepting a schema URL parameter using the new `LoggerOptions` type.

([#​7727](https://github.com/open-telemetry/opentelemetry-dotnet/pull/7727))
  
* **Breaking change** (pre-release only versions): `LoggerProvider`'s
protected `TryCreateLogger(string? name, out Logger? logger)`
extensibility method has been replaced by `TryCreateLogger(LoggerOptions
options, out Logger? logger)`. Custom `LoggerProvider` subclasses that
override the previous overload must update to override the new one; the
old overload is no longer called.
 ... (truncated)

## 1.20.0-rc.1

The following changes are from the previous release
[1.19.1](https://github.com/open-telemetry/opentelemetry-dotnet/releases/tag/core-1.19.1).

* NuGet: [OpenTelemetry
v1.20.0-rc.1](https://www.nuget.org/packages/OpenTelemetry/1.20.0-rc.1)

* Fixed `SuppressInstrumentationScope` reference counts leaking between
inherited asynchronous execution contexts.

([#​7803](https://github.com/open-telemetry/opentelemetry-dotnet/pull/7803))
  
* Self-diagnostic features are explicitly disabled on browser-based
platforms (e.g. Blazor) and are now non-functional. Previously,
attempting to enable self-diagnostics on such platforms would result in
an exception at runtime.

([#​7799](https://github.com/open-telemetry/opentelemetry-dotnet/pull/7799))
  
* Added `TracerProviderBuilder.ConfigureSampler` which receives the
resolved `Sampler` whether set programmatically, via
`OTEL_TRACES_SAMPLER`, or by default, and returns a replacement.
Intended for library authors who need to influence sampling without
overriding a sampler the application has configured.

([#​7780](https://github.com/open-telemetry/opentelemetry-dotnet/pull/7780))
  
* Fixed `ResourceBuilder.CreateDefault` ignoring
`OTEL_RESOURCE_ATTRIBUTES` and `OTEL_SERVICE_NAME` environment variables
when the host `IConfiguration` does not contain those settings.

([#​7855](https://github.com/open-telemetry/opentelemetry-dotnet/pull/7855))
  
* Added improved self-diagnostics logging to improve the support
experience. The new `SelfDiagnosticsOptions` class configures a rolling
file sink and a console sink through the standard options pipeline.
Sinks are off by default.

([#​7588](https://github.com/open-telemetry/opentelemetry-dotnet/pull/7588))
  
* Fixed a race that could incorrectly route a concurrent metric
measurement to the overflow point when its tag set was published as the
cardinality limit was reached.

([#​7804](https://github.com/open-telemetry/opentelemetry-dotnet/pull/7804))
  
* Added `OpenTelemetryLoggerOptions.Version` and
`OpenTelemetryLoggerOptions.SchemaUrl` options to set an instrumentation
library version and schema URL applied to logs emitted via the
`Microsoft.Extensions.Logging` `ILogger` integration.

([#​7727](https://github.com/open-telemetry/opentelemetry-dotnet/pull/7727))
  
* Fixed `LogRecord.CategoryName` resetting the current `Logger`'s
`Version` to `null` when set to a new value.

([#​7727](https://github.com/open-telemetry/opentelemetry-dotnet/pull/7727))
  
* Bounded the internal cache of `Logger` scopes keyed by instrumentation
to avoid unbounded growth.

([#​7727](https://github.com/open-telemetry/opentelemetry-dotnet/pull/7727))
  
* Fixed the `MeterProvider` and its `IServiceProvider` being kept alive
after the host is disposed when using `Microsoft.Extensions.Diagnostics`
versions prior to 9.0, which never dispose their
`MetricsSubscriptionManager` (and its underlying `MeterListener`).

([#​7924](https://github.com/open-telemetry/opentelemetry-dotnet/pull/7924))
  
* Fixed a race condition between recording a measurement and collecting
a histogram with delta temporality that could cause an empty data point
(with a count of zero) to be exported in the next collection cycle.

([#​7923](https://github.com/open-telemetry/opentelemetry-dotnet/pull/7923))
  
* Improved metric collection performance after metric streams are
removed by compacting metric storage during collection.

([#​7945](https://github.com/open-telemetry/opentelemetry-dotnet/pull/7945))

See
[CHANGELOG](https://github.com/open-telemetry/opentelemetry-dotnet/blob/core-1.20.0-rc.1/src/OpenTelemetry/CHANGELOG.md)
for details.

* NuGet: [OpenTelemetry.Api
v1.20.0-rc.1](https://www.nuget.org/packages/OpenTelemetry.Api/1.20.0-rc.1)

* Added `Logger.SchemaUrl` and a `LoggerProvider.GetLogger` overload
accepting a schema URL parameter using the new `LoggerOptions` type.

([#​7727](https://github.com/open-telemetry/opentelemetry-dotnet/pull/7727))
  
* **Breaking change** (pre-release only versions): `LoggerProvider`'s
protected `TryCreateLogger(string? name, out Logger? logger)`
extensibility method has been replaced by `TryCreateLogger(LoggerOptions
options, out Logger? logger)`. Custom `LoggerProvider` subclasses that
override the previous overload must update to override the new one; the
old overload is no longer called.

([#​7727](https://github.com/open-telemetry/opentelemetry-dotnet/pull/7727))
  
 ... (truncated)

## 1.20.0-beta.1

The following changes are from the previous release
[1.19.1-beta.1](https://github.com/open-telemetry/opentelemetry-dotnet/releases/tag/coreunstable-1.19.1-beta.1).

* NuGet: [OpenTelemetry.Exporter.Prometheus.AspNetCore
v1.20.0-beta.1](https://www.nuget.org/packages/OpenTelemetry.Exporter.Prometheus.AspNetCore/1.20.0-beta.1)

* A scrape request whose connection is aborted, or whose
`X-Prometheus-Scrape-Timeout-Seconds` deadline elapses, now stops
waiting for an in-progress metrics collection instead of continuing to
wait for it to finish. The collection itself is not cancelled and
continues running in the background.

([#​7856](https://github.com/open-telemetry/opentelemetry-dotnet/pull/7856))
  
  * Updated OpenTelemetry core component version(s) to `1.20.0`.

([#​7950](https://github.com/open-telemetry/opentelemetry-dotnet/pull/7950))

See
[CHANGELOG](https://github.com/open-telemetry/opentelemetry-dotnet/blob/coreunstable-1.20.0-beta.1/src/OpenTelemetry.Exporter.Prometheus.AspNetCore/CHANGELOG.md)
for details.

* NuGet: [OpenTelemetry.Exporter.Prometheus.HttpListener
v1.20.0-beta.1](https://www.nuget.org/packages/OpenTelemetry.Exporter.Prometheus.HttpListener/1.20.0-beta.1)

  * Updated OpenTelemetry core component version(s) to `1.20.0`.

([#​7950](https://github.com/open-telemetry/opentelemetry-dotnet/pull/7950))

See
[CHANGELOG](https://github.com/open-telemetry/opentelemetry-dotnet/blob/coreunstable-1.20.0-beta.1/src/OpenTelemetry.Exporter.Prometheus.HttpListener/CHANGELOG.md)
for details.

* NuGet: [OpenTelemetry.Shims.OpenTracing
v1.20.0-beta.1](https://www.nuget.org/packages/OpenTelemetry.Shims.OpenTracing/1.20.0-beta.1)

  * Updated OpenTelemetry core component version(s) to `1.20.0`.

([#​7950](https://github.com/open-telemetry/opentelemetry-dotnet/pull/7950))

See
[CHANGELOG](https://github.com/open-telemetry/opentelemetry-dotnet/blob/coreunstable-1.20.0-beta.1/src/OpenTelemetry.Shims.OpenTracing/CHANGELOG.md)
for details.



Commits viewable in [compare
view](https://github.com/open-telemetry/opentelemetry-dotnet/compare/core-1.19.1...core-1.20.1).
</details>

Updated
[OpenTelemetry.Extensions.Hosting](https://github.com/open-telemetry/opentelemetry-dotnet)
from 1.19.1 to 1.20.1.

<details>
<summary>Release notes</summary>

_Sourced from [OpenTelemetry.Extensions.Hosting's
releases](https://github.com/open-telemetry/opentelemetry-dotnet/releases)._

## 1.20.1

For highlights and announcements pertaining to this release see:
[Release Notes >
1.20.1](https://github.com/open-telemetry/opentelemetry-dotnet/blob/main/RELEASENOTES.md#​1201).

The following changes are from the previous release
[1.20.0](https://github.com/open-telemetry/opentelemetry-dotnet/releases/tag/core-1.20.0).

* NuGet: [OpenTelemetry
v1.20.1](https://www.nuget.org/packages/OpenTelemetry/1.20.1)

* Fixed a possible race condition on ARM64 when multiple threads record
the
    first measuremen...

_Description...

_Des…
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

needs-area-label An area label is needed to ensure this gets routed to the appropriate area owners

Projects

None yet

Development

Successfully merging this pull request may close these issues.

5 participants