Skip to content

Handle nullability more accurately#2933

Merged
baywet merged 15 commits into
microsoft:mainfrom
Youssef1313:dev/ygerges/nullable
Jul 13, 2026
Merged

Handle nullability more accurately#2933
baywet merged 15 commits into
microsoft:mainfrom
Youssef1313:dev/ygerges/nullable

Conversation

@Youssef1313

@Youssef1313 Youssef1313 commented Jul 9, 2026

Copy link
Copy Markdown
Member

My previous PR was trying to handle nullability for enums specifically. This PR is more generalized to handle nulls more correctly as it was still buggy for non-enums.

In addition, the previous fix for enums didn't also fix all enum scenarios. It only fixed it when we are given "oneOf (null, schemaWithEnum)". But if we are given a schema reference instead, we are not going to add "null" to the reference and we will produce the wrong thing.

I'll leave comments on some specific updated tests to explain.

@Youssef1313
Youssef1313 requested a review from a team as a code owner July 9, 2026 10:30
Comment thread test/Microsoft.OpenApi.Readers.Tests/V3Tests/OpenApiSchemaTests.cs
Comment thread test/Microsoft.OpenApi.Tests/Models/OpenApiSchemaTests.cs
@Youssef1313
Youssef1313 force-pushed the dev/ygerges/nullable branch from 67ef969 to 937b8eb Compare July 9, 2026 10:38
@Youssef1313
Youssef1313 force-pushed the dev/ygerges/nullable branch from 937b8eb to a70df43 Compare July 9, 2026 10:39
Comment thread src/Microsoft.OpenApi/Models/OpenApiSchema.cs Outdated
Comment thread src/Microsoft.OpenApi/Models/OpenApiSchema.cs
Comment thread src/Microsoft.OpenApi/Reader/V2/OpenApiSchemaDeserializer.cs

@baywet baywet left a comment

Copy link
Copy Markdown
Member

Choose a reason for hiding this comment

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

Thanks for the contribution!

Comment thread src/Microsoft.OpenApi/Models/OpenApiSchema.cs Outdated
Comment thread src/Microsoft.OpenApi/Models/OpenApiSchema.cs Outdated
Comment thread src/Microsoft.OpenApi/Models/OpenApiSchema.cs Outdated
Comment thread src/Microsoft.OpenApi/Models/OpenApiSchema.cs Outdated

@baywet baywet left a comment

Copy link
Copy Markdown
Member

Choose a reason for hiding this comment

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

Getting closer (I'm only focusing my review on schema object field, and deserialization so far)

Comment thread src/Microsoft.OpenApi/Reader/V3/OpenApiSchemaDeserializer.cs Outdated
Comment thread src/Microsoft.OpenApi/Reader/V3/OpenApiSchemaDeserializer.cs Outdated
Comment thread src/Microsoft.OpenApi/Models/OpenApiSchema.cs Outdated
Comment thread src/Microsoft.OpenApi/Reader/V31/OpenApiSchemaDeserializer.cs Outdated
Comment thread src/Microsoft.OpenApi/Reader/V31/OpenApiSchemaDeserializer.cs Outdated
Comment thread src/Microsoft.OpenApi/Reader/V32/OpenApiSchemaDeserializer.cs Outdated
Comment thread src/Microsoft.OpenApi/Reader/V32/OpenApiSchemaDeserializer.cs Outdated
@Youssef1313
Youssef1313 requested a review from baywet July 9, 2026 20:31
@baywet

baywet commented Jul 10, 2026

Copy link
Copy Markdown
Member

To recap our call, and previous discussions

There shouldn't be any field/state for nullability on the OpenAPISchema model, only in the deserialization phases.
We shouldn't be "moving schemas arounds" (except for v2, because that behaviour has been here for 10+ years at this point).

OpenAPI 3.1/3.2

serialization and deserialization should be symmetrical, serialize type null as part of the type property, array or single.

OpenAPI v3.0

serialization

Serialize type null (no other types) as enum null because nullable true by itself is ignored and the resulting schema would validate anything.
Serialize type null + something as type something, nullable true

deserialization

Deserialize type something to something
Deserialized nullable true to a marker in the metadata dictionary.

Once both properties are deserialized:

  • if nullable true is by itself, drop it, because it only applies when a type is also provided
  • if nullable true is with a type something, add null to the type array

Swagger 2.0

serialization

always serialize type null (with or without something else) as x-nullable: true. That's because :

  • one/anyOf is not supported by this version of the standard
  • we're already picking the first one/anyOf entry, that bechaviour has been here for a long time, we shouldn't change it
  • enum null can't be composed, is therefore useless, so we should diverge from OpenAPI 3.0 behaviour.

Deserialization

Do the same mark and resolve behaviour as V3.0 for consistency, but for the x-nullable extension.

Comment thread src/Microsoft.OpenApi/Models/OpenApiSchema.cs Outdated
Comment thread src/Microsoft.OpenApi/Reader/V2/OpenApiSchemaDeserializer.cs Outdated
@Youssef1313
Youssef1313 requested a review from baywet July 13, 2026 06:14
Comment thread src/Microsoft.OpenApi/Reader/V2/OpenApiSchemaDeserializer.cs Outdated
This was referenced Jul 23, 2026
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>
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

2 participants