feat: support relative URI resolution in $dynamicRef (#2928)#2945
Merged
Conversation
Set ExternalResource on non-fragment $dynamicRef references so the workspace loader can discover and fetch external documents. Resolve relative URIs against hostDocument.BaseUri in Target before calling FindDocumentByBaseUri. Tests: - Fragment-only: ExternalResource is null - Absolute URI: ExternalResource is set, resolves across documents - Relative URI: ExternalResource is set, resolves against BaseUri across documents - V31 and V32 coverage
Adds 17 missing V32 test mirrors for full parity with V31 coverage. Replaces dead '?? new OpenApiWorkspace()' fallback with null-forgiving '!' in both V31 and V32 cross-document tests.
Contributor
Author
|
@baywet the actual change is in the first commit. the second commit is just mirroring the tests between V31 and V32 |
There was a problem hiding this comment.
Pull request overview
Adds support for resolving cross-document $dynamicRef values that use relative URIs by (1) capturing the external resource on deserialization so the workspace loader can fetch it, and (2) resolving relative document URIs against the host document BaseUri during $dynamicRef resolution.
Changes:
- Populate
Reference.ExternalResourcefor non-fragment$dynamicRefduring V3.1/V3.2 schema deserialization. - Update
OpenApiWorkspace.ResolveDynamicRefto resolve relative$dynamicRefdocument URIs againsthostDocument.BaseUribefore lookup. - Expand V3.2 dynamic-ref test coverage to mirror V3.1 and add cross-document relative URI resolution tests.
Reviewed changes
Copilot reviewed 5 out of 5 changed files in this pull request and generated 2 comments.
Show a summary per file
| File | Description |
|---|---|
| test/Microsoft.OpenApi.Readers.Tests/V32Tests/OpenApiDynamicRefTests.cs | Adds/extends V3.2 tests, including cross-document relative $dynamicRef resolution and parity coverage. |
| test/Microsoft.OpenApi.Readers.Tests/V31Tests/OpenApiDynamicRefTests.cs | Adds assertions/coverage for ExternalResource and a V3.1 cross-document relative $dynamicRef test. |
| src/Microsoft.OpenApi/Services/OpenApiWorkspace.cs | Resolves relative $dynamicRef document URIs against BaseUri before document lookup (and updates docs). |
| src/Microsoft.OpenApi/Reader/V32/OpenApiSchemaDeserializer.cs | Sets externalResource for $dynamicRef schema references (V3.2). |
| src/Microsoft.OpenApi/Reader/V31/OpenApiSchemaDeserializer.cs | Sets externalResource for $dynamicRef schema references (V3.1). |
baywet
previously approved these changes
Jul 15, 2026
baywet
left a comment
Member
There was a problem hiding this comment.
Thanks for the contribution!
LGTM, besides copilot's comments.
…resolution Addresses Copilot review feedback on microsoft#2945.
baywet
approved these changes
Jul 15, 2026
baywet
left a comment
Member
There was a problem hiding this comment.
Thank you for making the changes!
baywet
enabled auto-merge (squash)
July 15, 2026 16:14
This was referenced Jul 15, 2026
This was referenced Jul 15, 2026
Merged
This was referenced Jul 23, 2026
Merged
MelfusX
added a commit
to MelfusX/IncidentCompass
that referenced
this pull request
Jul 24, 2026
Updated [Google.Protobuf](https://github.com/protocolbuffers/protobuf) from 3.33.1 to 3.35.1. <details> <summary>Release notes</summary> _Sourced from [Google.Protobuf's releases](https://github.com/protocolbuffers/protobuf/releases)._ No release notes found for this version range. Commits viewable in [compare view](https://github.com/protocolbuffers/protobuf/commits). </details> Updated [Grpc.Tools](https://github.com/grpc/grpc) from 2.76.0 to 2.82.0. <details> <summary>Release notes</summary> _Sourced from [Grpc.Tools's releases](https://github.com/grpc/grpc/releases)._ No release notes found for this version range. Commits viewable in [compare view](https://github.com/grpc/grpc/commits). </details> Updated [JsonSchema.Net](https://github.com/json-everything/json-everything) from 9.2.2 to 9.3.0. <details> <summary>Release notes</summary> _Sourced from [JsonSchema.Net's releases](https://github.com/json-everything/json-everything/releases)._ No release notes found for this version range. Commits viewable in [compare view](https://github.com/json-everything/json-everything/commits). </details> Updated [Microsoft.AspNetCore.Mvc.Testing](https://github.com/dotnet/dotnet) from 10.0.9 to 10.0.10. <details> <summary>Release notes</summary> _Sourced from [Microsoft.AspNetCore.Mvc.Testing's releases](https://github.com/dotnet/dotnet/releases)._ No release notes found for this version range. Commits viewable in [compare view](https://github.com/dotnet/dotnet/commits). </details> Updated [Microsoft.AspNetCore.OpenApi](https://github.com/dotnet/dotnet) from 10.0.9 to 10.0.10. <details> <summary>Release notes</summary> _Sourced from [Microsoft.AspNetCore.OpenApi's releases](https://github.com/dotnet/dotnet/releases)._ No release notes found for this version range. Commits viewable in [compare view](https://github.com/dotnet/dotnet/commits). </details> Updated [Microsoft.Extensions.Configuration.Abstractions](https://github.com/dotnet/dotnet) from 10.0.9 to 10.0.10. <details> <summary>Release notes</summary> _Sourced from [Microsoft.Extensions.Configuration.Abstractions's releases](https://github.com/dotnet/dotnet/releases)._ No release notes found for this version range. Commits viewable in [compare view](https://github.com/dotnet/dotnet/commits). </details> Updated [Microsoft.Extensions.DependencyInjection](https://github.com/dotnet/dotnet) from 10.0.9 to 10.0.10. <details> <summary>Release notes</summary> _Sourced from [Microsoft.Extensions.DependencyInjection's releases](https://github.com/dotnet/dotnet/releases)._ No release notes found for this version range. Commits viewable in [compare view](https://github.com/dotnet/dotnet/commits). </details> Updated [Microsoft.Extensions.DependencyInjection.Abstractions](https://github.com/dotnet/dotnet) from 10.0.9 to 10.0.10. <details> <summary>Release notes</summary> _Sourced from [Microsoft.Extensions.DependencyInjection.Abstractions's releases](https://github.com/dotnet/dotnet/releases)._ No release notes found for this version range. Commits viewable in [compare view](https://github.com/dotnet/dotnet/commits). </details> Updated [Microsoft.Extensions.Hosting](https://github.com/dotnet/dotnet) from 10.0.9 to 10.0.10. <details> <summary>Release notes</summary> _Sourced from [Microsoft.Extensions.Hosting's releases](https://github.com/dotnet/dotnet/releases)._ No release notes found for this version range. Commits viewable in [compare view](https://github.com/dotnet/dotnet/commits). </details> Updated [Microsoft.Extensions.Hosting.Abstractions](https://github.com/dotnet/dotnet) from 10.0.9 to 10.0.10. <details> <summary>Release notes</summary> _Sourced from [Microsoft.Extensions.Hosting.Abstractions's releases](https://github.com/dotnet/dotnet/releases)._ No release notes found for this version range. Commits viewable in [compare view](https://github.com/dotnet/dotnet/commits). </details> Updated [Microsoft.Extensions.Http](https://github.com/dotnet/dotnet) from 10.0.9 to 10.0.10. <details> <summary>Release notes</summary> _Sourced from [Microsoft.Extensions.Http's releases](https://github.com/dotnet/dotnet/releases)._ No release notes found for this version range. Commits viewable in [compare view](https://github.com/dotnet/dotnet/commits). </details> Updated [Microsoft.Extensions.Logging](https://github.com/dotnet/dotnet) from 10.0.9 to 10.0.10. <details> <summary>Release notes</summary> _Sourced from [Microsoft.Extensions.Logging's releases](https://github.com/dotnet/dotnet/releases)._ No release notes found for this version range. Commits viewable in [compare view](https://github.com/dotnet/dotnet/commits). </details> Updated [Microsoft.Extensions.Logging.Abstractions](https://github.com/dotnet/dotnet) from 10.0.9 to 10.0.10. <details> <summary>Release notes</summary> _Sourced from [Microsoft.Extensions.Logging.Abstractions's releases](https://github.com/dotnet/dotnet/releases)._ No release notes found for this version range. Commits viewable in [compare view](https://github.com/dotnet/dotnet/commits). </details> Updated [Microsoft.Extensions.Options.ConfigurationExtensions](https://github.com/dotnet/dotnet) from 10.0.9 to 10.0.10. <details> <summary>Release notes</summary> _Sourced from [Microsoft.Extensions.Options.ConfigurationExtensions's releases](https://github.com/dotnet/dotnet/releases)._ No release notes found for this version range. Commits viewable in [compare view](https://github.com/dotnet/dotnet/commits). </details> Updated [Microsoft.NET.Test.Sdk](https://github.com/microsoft/vstest) from 18.7.0 to 18.8.1. <details> <summary>Release notes</summary> _Sourced from [Microsoft.NET.Test.Sdk's releases](https://github.com/microsoft/vstest/releases)._ ## 18.8.1 ## What's Changed * Fix protocol negotiation timeout when STJ reflection is disabled (18.8.1) by @nohwnd in microsoft/vstest#16281 **Full Changelog**: microsoft/vstest@v18.8.0...v18.8.1 ## 18.8.0 ## What's Changed * Migrate from Newtonsoft.Json to System.Text.Json / Jsonite (merge to main) by @nohwnd in microsoft/vstest#15687 - For more detail refer to https://devblogs.microsoft.com/dotnet/vs-test-is-removing-its-newtonsoft-json-dependency/ * Create source-only filter package by @Youssef1313 in microsoft/vstest#15638 * Add ARM64 msdia140.dll support to test platform packages by @nohwnd in microsoft/vstest#15692 * Fix mutex cleanup crash on macOS/Linux by @nohwnd in microsoft/vstest#15684 * Restrict artifact temp directory permissions on Unix by @nohwnd in microsoft/vstest#15729 * Add support for filtering uncategorized tests with TestCategory=None by @Evangelink in microsoft/vstest#15727 * Fix SCI binding failure in DTA hosts (main) by @nohwnd in microsoft/vstest#15724 * Fix HTML logger parallel file collision by @nohwnd in microsoft/vstest#15435 * Improve error message when testhost cannot be found by @nohwnd in microsoft/vstest#16053 * Fix HTML logger exception on invalid XML chars in test display names by @nohwnd in microsoft/vstest#16051 **Full Changelog**: microsoft/vstest@v18.7.0...v18.8.0 Commits viewable in [compare view](microsoft/vstest@v18.7.0...v18.8.1). </details> Updated [Microsoft.OpenApi](https://github.com/Microsoft/OpenAPI.NET) from 2.10.0 to 2.11.0. <details> <summary>Release notes</summary> _Sourced from [Microsoft.OpenApi's releases](https://github.com/Microsoft/OpenAPI.NET/releases)._ ## 2.11.0 ## [2.11.0](microsoft/OpenAPI.NET@v2.10.0...v2.11.0) (2026-07-15) ### Features * adds support for anchor and id external resolution ([557bd6a](microsoft/OpenAPI.NET@557bd6a)) * adds support for anchor and id external resolution ([4138e47](microsoft/OpenAPI.NET@4138e47)) * **schema:** resolve bare $dynamicRef via $dynamicAnchor index ([#2913](microsoft/OpenAPI.NET#2913)) ([baf8428](microsoft/OpenAPI.NET@baf8428)) * **schema:** resolve bare $dynamicRef via $dynamicAnchor index ([#2913](microsoft/OpenAPI.NET#2913)) ([a139f83](microsoft/OpenAPI.NET@a139f83)) * support relative URI resolution in $dynamicRef ([#2928](microsoft/OpenAPI.NET#2928)) ([#2945](microsoft/OpenAPI.NET#2945)) ([6091f5a](microsoft/OpenAPI.NET@6091f5a)) * support relative URI resolution in $dynamicRef ([#2928](microsoft/OpenAPI.NET#2928)) ([#2945](microsoft/OpenAPI.NET#2945)) ([a8688dc](microsoft/OpenAPI.NET@a8688dc)) ### Bug Fixes * adds explicit error message for invalid json pointers ([#2955](microsoft/OpenAPI.NET#2955)) ([a304e56](microsoft/OpenAPI.NET@a304e56)) * differentiate unset value from null value in OpenApiSchema.Const ([#2936](microsoft/OpenAPI.NET#2936)) ([a8787af](microsoft/OpenAPI.NET@a8787af)) * differentiate unset value from null value in OpenApiSchema.Const ([#2936](microsoft/OpenAPI.NET#2936)) ([e08570f](microsoft/OpenAPI.NET@e08570f)) * handle nullability more accurately during serialization for 3.0/2.0 ([#2933](microsoft/OpenAPI.NET#2933)) ([bc11356](microsoft/OpenAPI.NET@bc11356)) * handle nullability more accurately during serialization for 3.0/2.0 ([#2933](microsoft/OpenAPI.NET#2933)) ([310b6e2](microsoft/OpenAPI.NET@310b6e2)) Commits viewable in [compare view](microsoft/OpenAPI.NET@v2.10.0...v2.11.0). </details> Updated [OpenTelemetry](https://github.com/open-telemetry/opentelemetry-dotnet) from 1.16.0 to 1.17.0. <details> <summary>Release notes</summary> _Sourced from [OpenTelemetry's releases](https://github.com/open-telemetry/opentelemetry-dotnet/releases)._ ## 1.17.0 For highlights and announcements pertaining to this release see: [Release Notes > 1.17.0](https://github.com/open-telemetry/opentelemetry-dotnet/blob/main/RELEASENOTES.md#1170). The following changes are from the previous release [1.17.0-rc.1](https://github.com/open-telemetry/opentelemetry-dotnet/releases/tag/core-1.17.0-rc.1). * NuGet: [OpenTelemetry v1.17.0](https://www.nuget.org/packages/OpenTelemetry/1.17.0) No notable changes. See [CHANGELOG](https://github.com/open-telemetry/opentelemetry-dotnet/blob/core-1.17.0/src/OpenTelemetry/CHANGELOG.md) for details. * NuGet: [OpenTelemetry.Api v1.17.0](https://www.nuget.org/packages/OpenTelemetry.Api/1.17.0) No notable changes. See [CHANGELOG](https://github.com/open-telemetry/opentelemetry-dotnet/blob/core-1.17.0/src/OpenTelemetry.Api/CHANGELOG.md) for details. * NuGet: [OpenTelemetry.Api.ProviderBuilderExtensions v1.17.0](https://www.nuget.org/packages/OpenTelemetry.Api.ProviderBuilderExtensions/1.17.0) No notable changes. See [CHANGELOG](https://github.com/open-telemetry/opentelemetry-dotnet/blob/core-1.17.0/src/OpenTelemetry.Api.ProviderBuilderExtensions/CHANGELOG.md) for details. * NuGet: [OpenTelemetry.Exporter.Console v1.17.0](https://www.nuget.org/packages/OpenTelemetry.Exporter.Console/1.17.0) No notable changes. See [CHANGELOG](https://github.com/open-telemetry/opentelemetry-dotnet/blob/core-1.17.0/src/OpenTelemetry.Exporter.Console/CHANGELOG.md) for details. * NuGet: [OpenTelemetry.Exporter.InMemory v1.17.0](https://www.nuget.org/packages/OpenTelemetry.Exporter.InMemory/1.17.0) No notable changes. See [CHANGELOG](https://github.com/open-telemetry/opentelemetry-dotnet/blob/core-1.17.0/src/OpenTelemetry.Exporter.InMemory/CHANGELOG.md) for details. * NuGet: [OpenTelemetry.Exporter.OpenTelemetryProtocol v1.17.0](https://www.nuget.org/packages/OpenTelemetry.Exporter.OpenTelemetryProtocol/1.17.0) No notable changes. See [CHANGELOG](https://github.com/open-telemetry/opentelemetry-dotnet/blob/core-1.17.0/src/OpenTelemetry.Exporter.OpenTelemetryProtocol/CHANGELOG.md) for details. * NuGet: [OpenTelemetry.Exporter.Zipkin v1.17.0](https://www.nuget.org/packages/OpenTelemetry.Exporter.Zipkin/1.17.0) No notable changes. See [CHANGELOG](https://github.com/open-telemetry/opentelemetry-dotnet/blob/core-1.17.0/src/OpenTelemetry.Exporter.Zipkin/CHANGELOG.md) for details. * NuGet: [OpenTelemetry.Extensions.Hosting v1.17.0](https://www.nuget.org/packages/OpenTelemetry.Extensions.Hosting/1.17.0) No notable changes. ... (truncated) ## 1.17.0-rc.1 The following changes are from the previous release [1.16.0](https://github.com/open-telemetry/opentelemetry-dotnet/releases/tag/core-1.16.0). * NuGet: [OpenTelemetry v1.17.0-rc.1](https://www.nuget.org/packages/OpenTelemetry/1.17.0-rc.1) * Fixed a metric point reclaim data race on CPU ARM architectures. ([#7401](open-telemetry/opentelemetry-dotnet#7401)) * The library is now marked as trim and AOT compatible. ([#7441](open-telemetry/opentelemetry-dotnet#7441)) * Replaced the vendored copy of `EnvironmentVariablesConfigurationProvider` with a direct `Microsoft.Extensions.Configuration.EnvironmentVariables` package dependency. Consumers gain automatic pickup of upstream bug fixes and security patches; no public API or behavioural change. ([#7146](open-telemetry/opentelemetry-dotnet#7146)) * Added a verbose `OpenTelemetry-Sdk` self-diagnostics event that is emitted when an activity is dropped because its local (in-process) parent is not recorded. ([#7427](open-telemetry/opentelemetry-dotnet#7427)) * Added support for a Schema URL on `Resource` instances. ([#7472](open-telemetry/opentelemetry-dotnet#7472)) * Fixed a metric storage leak that occurred when meters and instruments were repeatedly created and disposed. ([#7466](open-telemetry/opentelemetry-dotnet#7466)) * Added `ExcludedTagKeys` property to `MetricStreamConfiguration` to support excluding specific tag keys from metric streams. ([#7373](open-telemetry/opentelemetry-dotnet#7373)) See [CHANGELOG](https://github.com/open-telemetry/opentelemetry-dotnet/blob/core-1.17.0-rc.1/src/OpenTelemetry/CHANGELOG.md) for details. * NuGet: [OpenTelemetry.Api v1.17.0-rc.1](https://www.nuget.org/packages/OpenTelemetry.Api/1.17.0-rc.1) * Fixed `TraceContextPropagator` to normalize empty `tracestate` header values to `null` when extracting trace context. ([#7407](open-telemetry/opentelemetry-dotnet#7407), [#7433](open-telemetry/opentelemetry-dotnet#7433)) * The library is now marked as trim and AOT compatible. ([#7441](open-telemetry/opentelemetry-dotnet#7441)) * **Experimental (pre-release builds only):** Updated `EnvironmentVariableCarrier.Get` to read only the normalized environment variable name, following the updated [environment variable carrier specification](open-telemetry/opentelemetry-specification#5144). Non-normalized carrier keys are no longer matched, even when they would normalize to the requested key. ... (truncated) ## 1.17.0-beta.1 The following changes are from the previous release [1.16.0-beta.1](https://github.com/open-telemetry/opentelemetry-dotnet/releases/tag/coreunstable-1.16.0-beta.1). * NuGet: [OpenTelemetry.Exporter.Prometheus.AspNetCore v1.17.0-beta.1](https://www.nuget.org/packages/OpenTelemetry.Exporter.Prometheus.AspNetCore/1.17.0-beta.1) * Added a verbose-level diagnostic event for ignored metrics. ([#7429](open-telemetry/opentelemetry-dotnet#7429)) * The library is now marked as trim and AOT compatible. ([#7441](open-telemetry/opentelemetry-dotnet#7441)) * Fix double unit suffixes in metric names when using OpenMetrics. ([#7454](open-telemetry/opentelemetry-dotnet#7454)) * Fix incorrect handling of leading digits in metric names for OpenMetrics. ([#7454](open-telemetry/opentelemetry-dotnet#7454)) * Add `PrometheusAspNetCoreOptions.ScopeInfoEnabled` property to enable or disable scope labels in Prometheus metrics. Defaults to `true`. ([#7436](open-telemetry/opentelemetry-dotnet#7436)) * Added support for the `dots` and `values` Prometheus UTF-8 name escaping schemes when negotiated via the `Accept` header. ([#7439](open-telemetry/opentelemetry-dotnet#7439)) * Add `PrometheusAspNetCoreOptions.TargetInfoEnabled` property to enable or disable the `target_info` metric in Prometheus metrics. Defaults to `true`. ([#7438](open-telemetry/opentelemetry-dotnet#7438)) * Added support for the `allow-utf-8` Prometheus UTF-8 name escaping scheme when negotiated via the `Accept` header. ([#7440](open-telemetry/opentelemetry-dotnet#7440)) * Add `PrometheusAspNetCoreOptions.ResourceConstantLabels` property to select resource attributes to add to each metric as constant labels. Defaults to `null` (no resource attributes are added as metric labels). ([#7471](open-telemetry/opentelemetry-dotnet#7471)) * Add `PrometheusAspNetCoreOptions.MaxScrapeResponseSizeBytes` to configure the maximum size of a scrape response. The default is now ~166 MiB. ([#7487](open-telemetry/opentelemetry-dotnet#7487)) * A scrape whose serialized output exceeds the maximum scrape response size limit now responds with HTTP 500. ([#7487](open-telemetry/opentelemetry-dotnet#7487)) * Fixed the Prometheus text exposition format emitting redundant comments. ([#7491](open-telemetry/opentelemetry-dotnet#7491)) * Made `Accept` header content negotiation consistent with the `PrometheusHttpListener` endpoint. ... (truncated) Commits viewable in [compare view](open-telemetry/opentelemetry-dotnet@core-1.16.0...core-1.17.0). </details> Updated [OpenTelemetry.Exporter.OpenTelemetryProtocol](https://github.com/open-telemetry/opentelemetry-dotnet) from 1.16.0 to 1.17.0. <details> <summary>Release notes</summary> _Sourced from [OpenTelemetry.Exporter.OpenTelemetryProtocol's releases](https://github.com/open-telemetry/opentelemetry-dotnet/releases)._ ## 1.17.0 For highlights and announcements pertaining to this release see: [Release Notes > 1.17.0](https://github.com/open-telemetry/opentelemetry-dotnet/blob/main/RELEASENOTES.md#1170). The following changes are from the previous release [1.17.0-rc.1](https://github.com/open-telemetry/opentelemetry-dotnet/releases/tag/core-1.17.0-rc.1). * NuGet: [OpenTelemetry v1.17.0](https://www.nuget.org/packages/OpenTelemetry/1.17.0) No notable changes. See [CHANGELOG](https://github.com/open-telemetry/opentelemetry-dotnet/blob/core-1.17.0/src/OpenTelemetry/CHANGELOG.md) for details. * NuGet: [OpenTelemetry.Api v1.17.0](https://www.nuget.org/packages/OpenTelemetry.Api/1.17.0) No notable changes. See [CHANGELOG](https://github.com/open-telemetry/opentelemetry-dotnet/blob/core-1.17.0/src/OpenTelemetry.Api/CHANGELOG.md) for details. * NuGet: [OpenTelemetry.Api.ProviderBuilderExtensions v1.17.0](https://www.nuget.org/packages/OpenTelemetry.Api.ProviderBuilderExtensions/1.17.0) No notable changes. See [CHANGELOG](https://github.com/open-telemetry/opentelemetry-dotnet/blob/core-1.17.0/src/OpenTelemetry.Api.ProviderBuilderExtensions/CHANGELOG.md) for details. * NuGet: [OpenTelemetry.Exporter.Console v1.17.0](https://www.nuget.org/packages/OpenTelemetry.Exporter.Console/1.17.0) No notable changes. See [CHANGELOG](https://github.com/open-telemetry/opentelemetry-dotnet/blob/core-1.17.0/src/OpenTelemetry.Exporter.Console/CHANGELOG.md) for details. * NuGet: [OpenTelemetry.Exporter.InMemory v1.17.0](https://www.nuget.org/packages/OpenTelemetry.Exporter.InMemory/1.17.0) No notable changes. See [CHANGELOG](https://github.com/open-telemetry/opentelemetry-dotnet/blob/core-1.17.0/src/OpenTelemetry.Exporter.InMemory/CHANGELOG.md) for details. * NuGet: [OpenTelemetry.Exporter.OpenTelemetryProtocol v1.17.0](https://www.nuget.org/packages/OpenTelemetry.Exporter.OpenTelemetryProtocol/1.17.0) No notable changes. See [CHANGELOG](https://github.com/open-telemetry/opentelemetry-dotnet/blob/core-1.17.0/src/OpenTelemetry.Exporter.OpenTelemetryProtocol/CHANGELOG.md) for details. * NuGet: [OpenTelemetry.Exporter.Zipkin v1.17.0](https://www.nuget.org/packages/OpenTelemetry.Exporter.Zipkin/1.17.0) No notable changes. See [CHANGELOG](https://github.com/open-telemetry/opentelemetry-dotnet/blob/core-1.17.0/src/OpenTelemetry.Exporter.Zipkin/CHANGELOG.md) for details. * NuGet: [OpenTelemetry.Extensions.Hosting v1.17.0](https://www.nuget.org/packages/OpenTelemetry.Extensions.Hosting/1.17.0) No notable changes. ... (truncated) ## 1.17.0-rc.1 The following changes are from the previous release [1.16.0](https://github.com/open-telemetry/opentelemetry-dotnet/releases/tag/core-1.16.0). * NuGet: [OpenTelemetry v1.17.0-rc.1](https://www.nuget.org/packages/OpenTelemetry/1.17.0-rc.1) * Fixed a metric point reclaim data race on CPU ARM architectures. ([#7401](open-telemetry/opentelemetry-dotnet#7401)) * The library is now marked as trim and AOT compatible. ([#7441](open-telemetry/opentelemetry-dotnet#7441)) * Replaced the vendored copy of `EnvironmentVariablesConfigurationProvider` with a direct `Microsoft.Extensions.Configuration.EnvironmentVariables` package dependency. Consumers gain automatic pickup of upstream bug fixes and security patches; no public API or behavioural change. ([#7146](open-telemetry/opentelemetry-dotnet#7146)) * Added a verbose `OpenTelemetry-Sdk` self-diagnostics event that is emitted when an activity is dropped because its local (in-process) parent is not recorded. ([#7427](open-telemetry/opentelemetry-dotnet#7427)) * Added support for a Schema URL on `Resource` instances. ([#7472](open-telemetry/opentelemetry-dotnet#7472)) * Fixed a metric storage leak that occurred when meters and instruments were repeatedly created and disposed. ([#7466](open-telemetry/opentelemetry-dotnet#7466)) * Added `ExcludedTagKeys` property to `MetricStreamConfiguration` to support excluding specific tag keys from metric streams. ([#7373](open-telemetry/opentelemetry-dotnet#7373)) See [CHANGELOG](https://github.com/open-telemetry/opentelemetry-dotnet/blob/core-1.17.0-rc.1/src/OpenTelemetry/CHANGELOG.md) for details. * NuGet: [OpenTelemetry.Api v1.17.0-rc.1](https://www.nuget.org/packages/OpenTelemetry.Api/1.17.0-rc.1) * Fixed `TraceContextPropagator` to normalize empty `tracestate` header values to `null` when extracting trace context. ([#7407](open-telemetry/opentelemetry-dotnet#7407), [#7433](open-telemetry/opentelemetry-dotnet#7433)) * The library is now marked as trim and AOT compatible. ([#7441](open-telemetry/opentelemetry-dotnet#7441)) * **Experimental (pre-release builds only):** Updated `EnvironmentVariableCarrier.Get` to read only the normalized environment variable name, following the updated [environment variable carrier specification](open-telemetry/opentelemetry-specification#5144). Non-normalized carrier keys are no longer matched, even when they would normalize to the requested key. ... (truncated) ## 1.17.0-beta.1 The following changes are from the previous release [1.16.0-beta.1](https://github.com/open-telemetry/opentelemetry-dotnet/releases/tag/coreunstable-1.16.0-beta.1). * NuGet: [OpenTelemetry.Exporter.Prometheus.AspNetCore v1.17.0-beta.1](https://www.nuget.org/packages/OpenTelemetry.Exporter.Prometheus.AspNetCore/1.17.0-beta.1) * Added a verbose-level diagnostic event for ignored metrics. ([#7429](open-telemetry/opentelemetry-dotnet#7429)) * The library is now marked as trim and AOT compatible. ([#7441](open-telemetry/opentelemetry-dotnet#7441)) * Fix double unit suffixes in metric names when using OpenMetrics. ([#7454](open-telemetry/opentelemetry-dotnet#7454)) * Fix incorrect handling of leading digits in metric names for OpenMetrics. ([#7454](open-telemetry/opentelemetry-dotnet#7454)) * Add `PrometheusAspNetCoreOptions.ScopeInfoEnabled` property to enable or disable scope labels in Prometheus metrics. Defaults to `true`. ([#7436](open-telemetry/opentelemetry-dotnet#7436)) * Added support for the `dots` and `values` Prometheus UTF-8 name escaping schemes when negotiated via the `Accept` header. ([#7439](open-telemetry/opentelemetry-dotnet#7439)) * Add `PrometheusAspNetCoreOptions.TargetInfoEnabled` property to enable or disable the `target_info` metric in Prometheus metrics. Defaults to `true`. ([#7438](open-telemetry/opentelemetry-dotnet#7438)) * Added support for the `allow-utf-8` Prometheus UTF-8 name escaping scheme when negotiated via the `Accept` header. ([#7440](open-telemetry/opentelemetry-dotnet#7440)) * Add `PrometheusAspNetCoreOptions.ResourceConstantLabels` property to select resource attributes to add to each metric as constant labels. Defaults to `null` (no resource attributes are added as metric labels). ([#7471](open-telemetry/opentelemetry-dotnet#7471)) * Add `PrometheusAspNetCoreOptions.MaxScrapeResponseSizeBytes` to configure the maximum size of a scrape response. The default is now ~166 MiB. ([#7487](open-telemetry/opentelemetry-dotnet#7487)) * A scrape whose serialized output exceeds the maximum scrape response size limit now responds with HTTP 500. ([#7487](open-telemetry/opentelemetry-dotnet#7487)) * Fixed the Prometheus text exposition format emitting redundant comments. ([#7491](open-telemetry/opentelemetry-dotnet#7491)) * Made `Accept` header content negotiation consistent with the `PrometheusHttpListener` endpoint. ... (truncated) Commits viewable in [compare view](open-telemetry/opentelemetry-dotnet@core-1.16.0...core-1.17.0). </details> Dependabot will resolve any conflicts with this PR as long as you don't alter it yourself. You can also trigger a rebase manually by commenting `@dependabot rebase`. [//]: # (dependabot-automerge-start) [//]: # (dependabot-automerge-end) --- <details> <summary>Dependabot commands and options</summary> <br /> You can trigger Dependabot actions by commenting on this PR: - `@dependabot rebase` will rebase this PR - `@dependabot recreate` will recreate this PR, overwriting any edits that have been made to it - `@dependabot show <dependency name> ignore conditions` will show all of the ignore conditions of the specified dependency - `@dependabot ignore <dependency name> major version` will close this group update PR and stop Dependabot creating any more for the specific dependency's major version (unless you unignore this specific dependency's major version or upgrade to it yourself) - `@dependabot ignore <dependency name> minor version` will close this group update PR and stop Dependabot creating any more for the specific dependency's minor version (unless you unignore this specific dependency's minor version or upgrade to it yourself) - `@dependabot ignore <dependency name>` will close this group update PR and stop Dependabot creating any more for the specific dependency (unless you unignore this specific dependency or upgrade to it yourself) - `@dependabot unignore <dependency name>` will remove all of the ignore conditions of the specified dependency - `@dependabot unignore <dependency name> <ignore condition>` will remove the ignore condition of the specified dependency and ignore conditions </details> --------- Signed-off-by: dependabot[bot] <support@github.com> Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com> Co-authored-by: MelfusX <MelfusX@gmail.com>
This was referenced Jul 24, 2026
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment
Add this suggestion to a batch that can be applied as a single commit.This suggestion is invalid because no changes were made to the code.Suggestions cannot be applied while the pull request is closed.Suggestions cannot be applied while viewing a subset of changes.Only one suggestion per line can be applied in a batch.Add this suggestion to a batch that can be applied as a single commit.Applying suggestions on deleted lines is not supported.You must change the existing code in this line in order to create a valid suggestion.Outdated suggestions cannot be applied.This suggestion has been applied or marked resolved.Suggestions cannot be applied from pending reviews.Suggestions cannot be applied on multi-line comments.Suggestions cannot be applied while the pull request is queued to merge.Suggestion cannot be applied right now. Please check back later.
Summary
Resolves #2928.
Extends cross-document
$dynamicRefresolution to support relative URIs (e.g.external.yaml#node). Previously only absolute URIs worked.Changes
ExternalResourceon non-fragment$dynamicRefreferences so the workspace loader can discover and fetch external documents automatically.OpenApiWorkspace.ResolveDynamicRef: Resolve relative URIs against the host documentBaseUribefore callingFindDocumentByBaseUri.Depends on
#2913 (merged in
eacc2fc0)