Skip to content

Fix handling of nullable enums for 3.0 - #2920

Merged
Vincent Biret (baywet) merged 4 commits into
microsoft:mainfrom
Youssef1313:nullable-enum
Jul 3, 2026
Merged

Vincent Biret (baywet) merged 4 commits into
microsoft:mainfrom
Youssef1313:nullable-enum

Conversation

@Youssef1313

Copy link
Copy Markdown
Member

Previously, this scenario wasn't producing a type and wasn't producing a null value in the enum array.

This fixes it so that they are produced.

In the future, we could also avoid adding a oneOf with a single element in this scenario.

@Youssef1313
Youssef Fahmy (Youssef1313) requested a review from a team as a code owner July 1, 2026 16:35
Comment thread src/Microsoft.OpenApi/Models/OpenApiSchema.cs Fixed
Comment thread src/Microsoft.OpenApi/Models/OpenApiSchema.cs Fixed
Comment thread src/Microsoft.OpenApi/Models/OpenApiSchema.cs
Comment thread src/Microsoft.OpenApi/Models/OpenApiSchema.cs Outdated
Comment thread src/Microsoft.OpenApi/Models/OpenApiSchema.cs
Comment thread src/Microsoft.OpenApi/Models/OpenApiSchema.cs Outdated
Comment thread test/Microsoft.OpenApi.Tests/Models/OpenApiSchemaTests.cs Outdated
Comment thread test/Microsoft.OpenApi.Tests/Models/OpenApiSchemaTests.cs Outdated
Comment thread test/Microsoft.OpenApi.Tests/Models/OpenApiSchemaTests.cs
Comment thread src/Microsoft.OpenApi/Models/OpenApiSchema.cs Fixed

@baywet Vincent Biret (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.

Thank you for making the changes!

@Youssef1313

Copy link
Copy Markdown
Member Author

Vincent Biret (@baywet) Is there anything remaining to get this merged? Would we have a new version released before .NET 11 Preview 7 so that we try to get that in aspnetcore repo and possibly build some fixes on our side on top of this?

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

@baywet Vincent Biret (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.

Thank you for making the changes!

This was referenced Sep 28, 2026
Paul Trampert (PaulTrampert) added a commit to PaulTrampert/PTrampert.SimplePatch that referenced this pull request Oct 1, 2026
Updated
[coverlet.collector](https://github.com/coverlet-coverage/coverlet) from
10.0.1 to 10.1.0.

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

_Sourced from [coverlet.collector's
releases](https://github.com/coverlet-coverage/coverlet/releases)._

## 10.1.0

### Improvements

- Publish Microsoft.Testing.Platform coverage messages from coverlet.MTP
[#​2019](coverlet-coverage/coverlet#2019)
- Implement dynamic exclusion filters for assemblies (Coverlet.MTP)
[#​1946](coverlet-coverage/coverlet#1946)
- Replace legacy .sln files with modern .slnx format
[#​1966](coverlet-coverage/coverlet#1966)
- coverlet.console: add trace diagnostics and actionable warnings for
instrumentation/hit/empty-result failures
[#​2005](coverlet-coverage/coverlet#2005)
- Relax auto-property skip logic and improve coverage for records
[#​1941](coverlet-coverage/coverlet#1941)

### Fixed

- Fix coverlet.MTP does not collect coverage on the .NET Framework
portion of a large project
[#​1980](coverlet-coverage/coverlet#1980)
[#​1967](coverlet-coverage/coverlet#1967)
- Fix Regression in branch coverage for lambda expressions
[#​1938](coverlet-coverage/coverlet#1938)
- Fix When using "is" with "or" in pattern matching, branch coverage is
lower than normal
[#​1979](coverlet-coverage/coverlet#1979)
- Fix silent zero coverage on .NET Framework since 8.0.0
[#​1985](coverlet-coverage/coverlet#1985) by
@​tobiwae
- Fix Race condition between ProcessExit hit-file write and out-of-proc
coverage read causes EndOfStreamException
[#​1987](coverlet-coverage/coverlet#1987)
[#​1988](coverlet-coverage/coverlet#1988) by
@​bkoelman
- Fix Regression TypeInitializationException when targeting .NET
Framework - Could not load type
'System.Collections.Concurrent.ConcurrentBag
[#​2010](coverlet-coverage/coverlet#2010)
- Fix use --config-file CLI arg in coverlet.MTP
[#​2030](coverlet-coverage/coverlet#2030) by
alexthornton1
- Fix silently empty coverage for shared-framework assemblies missing
from compileLibraries
[#​2032](coverlet-coverage/coverlet#2032) by
@​Eljees

[Diff between 10.0.1 and
10.1.0](coverlet-coverage/coverlet@v10.0.1...v10.1.0)

Commits viewable in [compare
view](coverlet-coverage/coverlet@v10.0.1...v10.1.0).
</details>

Updated [docfx](https://github.com/dotnet/docfx) from 2.78.5 to 2.81.0.

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

_Sourced from [docfx's
releases](https://github.com/dotnet/docfx/releases)._

## 2.81.0

## What's Changed

### ✨ Features & Platform Support

* Allow custom templates to override `search.min.js` in the modern
template by @​filzrev in
[#​10055](dotnet/docfx#10055).
* Add `metadata.sourceLinkExclude` to exclude selected source paths from
**View Source** links without removing API documentation by @​vicancy in
[#​11141](dotnet/docfx#11141).
* Record the DocFX build version in the `docfx_version` field of
`manifest.json` by @​vicancy in
[#​11162](dotnet/docfx#11162).
* Add a .NET 11 RC target, including support for the .NET 11 Razor
source generator, while retaining .NET 8, 9, and 10 targets by @​vicancy
and @​filzrev in [#​11176](dotnet/docfx#11176)
and [#​11182](dotnet/docfx#11182).

### ⚡ Performance & Reliability

* Reduce JavaScript template processing overhead and memory allocations
by reusing parsed scripts and improving model conversion. Add execution
limits to prevent runaway scripts from hanging builds by @​lahma in
[#​11084](dotnet/docfx#11084).
* Avoid unnecessary exceptions and repeated file reads when loading
`toc.yml` by @​filzrev in
[#​9974](dotnet/docfx#9974).

### 🐛 Bug Fixes

* Restore source links for partial types extended by source generators
by @​vicancy in [#​11141](dotnet/docfx#11141).
* Fix local namespace links in managed reference documentation by
resolving them through xrefs during site generation by @​vicancy in
[#​11163](dotnet/docfx#11163).
* Preserve nested XML blocks when inserting Markdown separators,
preventing content from incorrectly rendering as code blocks by
@​vicancy in [#​11175](dotnet/docfx#11175).
* Preserve explicit `false` and `0` values when overwriting nullable
properties by @​vicancy in
[#​11181](dotnet/docfx#11181).

### 📦 Dependency Updates

* Update Jint to **4.16.3** in
[#​11157](dotnet/docfx#11157).
* Update Markdig to **1.4.0** in
[#​11158](dotnet/docfx#11158) and
[#​11160](dotnet/docfx#11160).
* Update YamlDotNet to **18.1.0** in
[#​11167](dotnet/docfx#11167).
* Update PdfPig to **0.1.16** in
[#​11168](dotnet/docfx#11168).
* Update ICSharpCode.Decompiler to **11.1.0.9782** in
[#​11184](dotnet/docfx#11184).
* Update System.Composition to **10.0.12** in
[#​11165](dotnet/docfx#11165).

### Upgrade Notes

Custom JavaScript template preprocessors now enforce a **30-second
timeout** and a **50-million-statement limit** for each `getOptions` or
`transform` invocation. Long-running custom scripts may need adjustment.

**Full Changelog**:
dotnet/docfx@v2.80.1...v2.81.0

## 2.80.1

<!-- Release notes generated using configuration in .github/release.yml
at main -->

## What's Changed
### 💪 Other Changes
* fix: preserve thematic breaks in overwrite Markdown by @​vicancy in
dotnet/docfx#11142
* fix: XML comment parse logics for block element that is adjacent to
markdown content by @​filzrev in
dotnet/docfx#10966
* chore: Update Roslyn and Microsoft.Build package dependencies by
@​filzrev in dotnet/docfx#11124
* fix: preserve indentation around XML comment code blocks by @​vicancy
in dotnet/docfx#11143
* fix: stop metadata generation when restore fails by @​vicancy in
dotnet/docfx#11146
* fix: clarify empty .NET API diagnostics by @​vicancy in
dotnet/docfx#11145
* fix: share tool templates across target frameworks by @​vicancy in
dotnet/docfx#11144
* fix: honor TOC metadata while preserving file metadata overrides by
@​vicancy in dotnet/docfx#11140
* fix(deps): update esbuild to 0.28.1 and tsx to 4.22.4 by
@​dependabot[bot] in dotnet/docfx#11077
* feat(pdf): allow footer and header on cover and toc by @​sergimos in
dotnet/docfx#10958
* chore(deps): bump actions/setup-dotnet from 5 to 6 by
@​dependabot[bot] in dotnet/docfx#11116
* chore(deps): bump actions/checkout from 6 to 7 by @​dependabot[bot] in
dotnet/docfx#11115
* Bump Markdig from 1.1.0 to 1.1.1 by @​dependabot[bot] in
dotnet/docfx#11024
* deps: Update JsonSchema.Net dependency to 8.0.5 by @​filzrev in
dotnet/docfx#10964

## New Contributors
* @​sergimos made their first contribution in
dotnet/docfx#10958

**Full Changelog**:
dotnet/docfx@v2.78.6...v2.80.1

## 2.78.6

<!-- Release notes generated using configuration in .github/release.yml
at main -->

## What's Changed
### 💪 Other Changes
* chore(deps): bump dependabot/fetch-metadata from 2.3.0 to 2.5.0 by
@​dependabot[bot] in dotnet/docfx#10956
* chore(deps): bump paulhatch/semantic-version from 5.4.0 to 6.0.1 by
@​dependabot[bot] in dotnet/docfx#10978
* chore(deps-dev): bump minimatch from 3.1.2 to 3.1.5 in /templates by
@​dependabot[bot] in dotnet/docfx#11016
* Bump Jint from 4.6.0 to 4.6.1 by @​dependabot[bot] in
dotnet/docfx#11018
* chore(deps): bump actions/upload-artifact from 6 to 7 by
@​dependabot[bot] in dotnet/docfx#11015
* chore(deps): bump actions/download-artifact from 7 to 8 by
@​dependabot[bot] in dotnet/docfx#11014
* Bump Markdig from 1.0.0 to 1.1.0 by @​dependabot[bot] in
dotnet/docfx#11019
* chore: remove unnecessary using to fix the Lint check by @​lahma in
dotnet/docfx#11085
* Make xref archive download test hermetic by @​vicancy in
dotnet/docfx#11092
* fix: treat different ports as external links by @​vicancy in
dotnet/docfx#11091
* chore: cleanup YamlSerializationTest.cs by @​filzrev in
dotnet/docfx#10974
* chore(deps-dev): bump follow-redirects from 1.15.11 to 1.16.0 in
/templates by @​dependabot[bot] in
dotnet/docfx#11062
* chore(deps): bump postcss from 8.5.6 to 8.5.14 in /templates by
@​dependabot[bot] in dotnet/docfx#11070
* chore(deps): bump uuid and mermaid in /templates by @​dependabot[bot]
in dotnet/docfx#11073
* chore(deps-dev): bump lodash from 4.17.23 to 4.18.1 in /templates by
@​dependabot[bot] in dotnet/docfx#11061
* chore(deps): bump fast-uri from 3.1.0 to 3.1.2 in /templates by
@​dependabot[bot] in dotnet/docfx#11071
* chore(deps): bump mermaid from 11.15.0 to 11.16.1 in /templates by
@​dependabot[bot] in dotnet/docfx#11093
* chore(deps): bump dompurify from 3.3.1 to 3.4.13 in /templates by
@​dependabot[bot] in dotnet/docfx#11096
* chore(deps-dev): bump js-yaml from 4.1.1 to 4.3.1 in /templates by
@​dependabot[bot] in dotnet/docfx#11095
* chore(deps): bump postcss from 8.5.14 to 8.5.26 in /templates by
@​dependabot[bot] in dotnet/docfx#11094
* chore(deps): bump fast-uri from 3.1.2 to 3.1.5 in /templates by
@​dependabot[bot] in dotnet/docfx#11097
* chore(deps-dev): bump socket.io-parser from 4.2.5 to 4.2.7 in
/templates by @​dependabot[bot] in
dotnet/docfx#11098
* chore(deps): bump ws, engine.io-client, engine.io and
socket.io-adapter in /templates by @​dependabot[bot] in
dotnet/docfx#11101
* chore(deps-dev): bump brace-expansion from 1.1.12 to 1.1.18 in
/templates by @​dependabot[bot] in
dotnet/docfx#11099
* deps: Update playwright version to 1.60.0 by @​filzrev in
dotnet/docfx#11074
* deps: Update roslyn package versions to 5.6.0 by @​filzrev in
dotnet/docfx#11047
* fix(deps): apply compatible npm security updates by @​vicancy in
dotnet/docfx#11105
* Bump the spectre group with 2 updates by @​dependabot[bot] in
dotnet/docfx#11102
* Bump the xunit group with 1 update by @​dependabot[bot] in
dotnet/docfx#11107
* Fix typo in Schema Document Processor overview by @​smartcaveman in
dotnet/docfx#11005
* Bump coverlet.collector from 8.0.0 to 8.0.1 by @​dependabot[bot] in
dotnet/docfx#11045
* chore(deps): bump paulhatch/semantic-version from 6.0.1 to 6.0.2 by
@​dependabot[bot] in dotnet/docfx#11036
* chore(deps): bump dependabot/fetch-metadata from 2.5.0 to 3.0.0 by
@​dependabot[bot] in dotnet/docfx#11051
* chore(deps): bump actions/deploy-pages from 4 to 5 by
@​dependabot[bot] in dotnet/docfx#11049
* chore(deps): bump azure/login from 2 to 3 by @​dependabot[bot] in
dotnet/docfx#11035
* Bump Jint from 4.6.1 to 4.6.3 by @​dependabot[bot] in
dotnet/docfx#11032
* chore(deps): bump dorny/test-reporter from 2.5.0 to 3.0.0 by
@​dependabot[bot] in dotnet/docfx#11043
* Bump AwesomeAssertions from 9.4.0 to 9.5.0 by @​dependabot[bot] in
dotnet/docfx#11114
* chore(deps): bump dependabot/fetch-metadata from 3.0.0 to 3.1.0 by
@​dependabot[bot] in dotnet/docfx#11110
* chore(deps): bump paulhatch/semantic-version from 6.0.2 to 6.0.3 by
@​dependabot[bot] in dotnet/docfx#11112
* chore(deps): bump actions/upload-pages-artifact from 4 to 5 by
@​dependabot[bot] in dotnet/docfx#11109
* chore(deps): bump codecov/codecov-action from 5 to 7 by
@​dependabot[bot] in dotnet/docfx#11113
* chore(deps): bump actions/github-script from 8 to 9 by
@​dependabot[bot] in dotnet/docfx#11111
* Bump the xunit group with 1 update by @​dependabot[bot] in
dotnet/docfx#11117
* Bump coverlet.collector from 8.0.1 to 10.0.1 by @​dependabot[bot] in
dotnet/docfx#11119
* Bump Microsoft.NET.Test.Sdk from 18.0.1 to 18.9.0 by @​dependabot[bot]
in dotnet/docfx#11122
 ... (truncated)

Commits viewable in [compare
view](dotnet/docfx@v2.78.5...v2.81.0).
</details>

Updated [Microsoft.NET.Test.Sdk](https://github.com/microsoft/vstest)
from 18.9.0 to 18.10.1.

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

_Sourced from [Microsoft.NET.Test.Sdk's
releases](https://github.com/microsoft/vstest/releases)._

## 18.10.1


## What's Changed
* Isolate code coverage files in published output by @​azat-msft in
microsoft/vstest#16476


**Full Changelog**:
microsoft/vstest@v18.10.0...v18.10.1

## 18.10.0


## What's Changed
* Drop Mono fallback, run .NET Framework tests on Windows only by
@​nohwnd in microsoft/vstest#16158
* Run Microsoft.Testing.Platform test apps under `vstest.console` and
datacollector by @​nohwnd in
microsoft/vstest#16201
* Fix test output eaten by MSBuild terminal logger by @​nohwnd in
microsoft/vstest#16223
* Remove the experimental test session feature by @​nohwnd in
microsoft/vstest#16231
* Skip a single bad executor instead of failing all executor loading by
@​nohwnd in microsoft/vstest#16239
* Assert apartment state instead of using Clipboard in UI tests by
@​nohwnd in microsoft/vstest#16270
* Surface test host crashes during protocol negotiation by @​nohwnd in
microsoft/vstest#16285
* Pass the inferred target platform to the host in run settings by
@​nohwnd in microsoft/vstest#16271
* Report raw invalid IsTargetPlatformInferred value, cover host x64
forcing by @​nohwnd in microsoft/vstest#16295
* Disable the MTP testhost by default (#​16337) by @​nohwnd in
microsoft/vstest#16341


**Full Changelog**:
microsoft/vstest@v18.9.0...v18.10.0

Commits viewable in [compare
view](microsoft/vstest@v18.9.0...v18.10.1).
</details>

Updated [Microsoft.NET.Test.Sdk](https://github.com/microsoft/vstest)
from 18.10.0 to 18.10.1.

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

_Sourced from [Microsoft.NET.Test.Sdk's
releases](https://github.com/microsoft/vstest/releases)._

## 18.10.1


## What's Changed
* Isolate code coverage files in published output by @​azat-msft in
microsoft/vstest#16476


**Full Changelog**:
microsoft/vstest@v18.10.0...v18.10.1

Commits viewable in [compare
view](microsoft/vstest@v18.10.0...v18.10.1).
</details>

Updated [Microsoft.OpenApi](https://github.com/Microsoft/OpenAPI.NET)
from 2.12.0 to 3.10.2.

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

_Sourced from [Microsoft.OpenApi's
releases](https://github.com/Microsoft/OpenAPI.NET/releases)._

## 3.10.2

##
[3.10.2](microsoft/OpenAPI.NET@v3.10.1...v3.10.2)
(2026-08-20)


### Bug Fixes

* duplicate schema example when serializing to v2
([#​3045](microsoft/OpenAPI.NET#3045))
([50f5a2b](microsoft/OpenAPI.NET@50f5a2b))

## 3.10.1

##
[3.10.1](microsoft/OpenAPI.NET@v3.10.0...v3.10.1)
(2026-08-19)


### Bug Fixes

* circular ref guard
([#​3033](microsoft/OpenAPI.NET#3033))
([8018d40](microsoft/OpenAPI.NET@8018d40))
* harden yaml parsing
([#​3027](microsoft/OpenAPI.NET#3027))
([e0d5e9d](microsoft/OpenAPI.NET@e0d5e9d))

## 3.10.0

##
[3.10.0](microsoft/OpenAPI.NET@v3.9.0...v3.10.0)
(2026-08-11)


### Features

* adds deserialization of the example extension
([e5a1080](microsoft/OpenAPI.NET@e5a1080))
* do not ignore multiple types when serializing to 3.0
([#​2960](microsoft/OpenAPI.NET#2960))
([ebaf27a](microsoft/OpenAPI.NET@ebaf27a))
* serialize license identifier as extension for earlier versions
([d090989](microsoft/OpenAPI.NET@d090989))
* serialize license identifier as extension for earlier versions
([60971ba](microsoft/OpenAPI.NET@60971ba))


### Bug Fixes

* better nullability round-tripping
([655c2c8](microsoft/OpenAPI.NET@655c2c8))
* bound YAML anchor/alias expansion to prevent OOM (billion laughs)
([#​3000](microsoft/OpenAPI.NET#3000))
([2179326](microsoft/OpenAPI.NET@2179326))
* deserialize metadata url from extension in earlier version
([9387b01](microsoft/OpenAPI.NET@9387b01))
* marks deprecated properties from the specification as obsolete
([787b045](microsoft/OpenAPI.NET@787b045))
* marks deprecated properties from the specification as obsolete
([953c22a](microsoft/OpenAPI.NET@953c22a))
* **schema:** serialize compatibility examples from examples list
([5d8ec3a](microsoft/OpenAPI.NET@5d8ec3a))
* serialize examples as extension in v2/v3
([ff1dbc9](microsoft/OpenAPI.NET@ff1dbc9))
* serialize examples as extension in v2/v3
([edf3c67](microsoft/OpenAPI.NET@edf3c67))

## 3.9.0

##
[3.9.0](microsoft/OpenAPI.NET@v3.8.0...v3.9.0)
(2026-07-15)


### Features

* adds support for anchor and id external resolution
([1591007](microsoft/OpenAPI.NET@1591007))
* **schema:** resolve bare $dynamicRef via $dynamicAnchor index
([#​2913](microsoft/OpenAPI.NET#2913))
([eacc2fc](microsoft/OpenAPI.NET@eacc2fc))
* support relative URI resolution in $dynamicRef
([#​2928](microsoft/OpenAPI.NET#2928))
([#​2945](microsoft/OpenAPI.NET#2945))
([821053b](microsoft/OpenAPI.NET@821053b))


### Bug Fixes

* adds explicit error message for invalid json pointers
([63fc55d](microsoft/OpenAPI.NET@63fc55d))
* adds explicit error message for invalid json pointers
([bc93efe](microsoft/OpenAPI.NET@bc93efe))
* default mapping is not being serialized with the correct shape
([fe4a25f](microsoft/OpenAPI.NET@fe4a25f))
* differentiate unset value from null value in OpenApiSchema.Const
([#​2936](microsoft/OpenAPI.NET#2936))
([07b525f](microsoft/OpenAPI.NET@07b525f))
* handle nullability more accurately during serialization for 3.0/2.0
([#​2933](microsoft/OpenAPI.NET#2933))
([0ace243](microsoft/OpenAPI.NET@0ace243))
* validate required properties of security scheme before serialization
([#​2952](microsoft/OpenAPI.NET#2952))
([f31b192](microsoft/OpenAPI.NET@f31b192))

## 3.8.0

##
[3.8.0](microsoft/OpenAPI.NET@v3.7.0...v3.8.0)
(2026-07-03)


### Features

* add JsonConverter for OpenApiSchema System.Text.Json serialization
([#​2915](microsoft/OpenAPI.NET#2915))
([2f8b3d2](microsoft/OpenAPI.NET@2f8b3d2))
* **library:** support schema keywords on references
([434b2f8](microsoft/OpenAPI.NET@434b2f8))
* **library:** support schema keywords on references
([66a9d04](microsoft/OpenAPI.NET@66a9d04)),
closes [#​2903](microsoft/OpenAPI.NET#2903)


### Bug Fixes

* Don't silently skip null assignment to OpenApiDocument.Tags
([3764142](microsoft/OpenAPI.NET@3764142))
* handling of nullable enums for 3.0
([#​2920](microsoft/OpenAPI.NET#2920))
([beb68f5](microsoft/OpenAPI.NET@beb68f5))
* **library:** keep v3 schema references ref-only
([c938727](microsoft/OpenAPI.NET@c938727))
* preserve JSON Schema 2020-12 keyword siblings on $ref schemas for OAS
3.1+ ([#​2896](microsoft/OpenAPI.NET#2896))
([08160c8](microsoft/OpenAPI.NET@08160c8))
* use async method for crypto flush
([6e675d9](microsoft/OpenAPI.NET@6e675d9))

## 3.7.0

##
[3.7.0](microsoft/OpenAPI.NET@v3.6.0...v3.7.0)
(2026-06-10)


### Features

* add contains/minContains/maxContains members
([78475e3](microsoft/OpenAPI.NET@78475e3))
* add contains/minContains/maxContains members
([1a974f8](microsoft/OpenAPI.NET@1a974f8))
* **library:** add missing json schema properties
([9b1aed6](microsoft/OpenAPI.NET@9b1aed6))
* **library:** add missing json schema properties
([82f84e0](microsoft/OpenAPI.NET@82f84e0))


### Bug Fixes

* **library:** always copy unevaluated properties
([4907d1c](microsoft/OpenAPI.NET@4907d1c))
* **library:** avoid false circular refs for external schema re-exports
([b635242](microsoft/OpenAPI.NET@b635242))
* **library:** avoid false circular refs for external schema re-exports
([7a443c2](microsoft/OpenAPI.NET@7a443c2))
* **library:** remove unshipped schema extension fallback
([cf54bb3](microsoft/OpenAPI.NET@cf54bb3))
* **library:** use version-specific schema keyword callbacks
([6e22ec6](microsoft/OpenAPI.NET@6e22ec6))
* **library:** use x-jsonschema schema extensions
([eb1891a](microsoft/OpenAPI.NET@eb1891a))

## 3.6.0

##
[3.6.0](microsoft/OpenAPI.NET@v3.5.5...v3.6.0)
(2026-06-01)


### Features

* **reader:** remove ParseNode infrastructure
([9b4f45b](microsoft/OpenAPI.NET@9b4f45b))
* Significant performance improvements resulting ~40% reduced
allocations when parsing JSON descriptions, ~25% for YAML.

## 3.5.5

##
[3.5.5](microsoft/OpenAPI.NET@v3.5.4...v3.5.5)
(2026-05-28)


### Bug Fixes

* **reader:** preserve Null flag when nullable appears before type in
V3.0/V3.1/V3.2 deserializers
([2b9d7f4](microsoft/OpenAPI.NET@2b9d7f4))

## 3.5.4

##
[3.5.4](microsoft/OpenAPI.NET@v3.5.3...v3.5.4)
(2026-05-26)


### Bug Fixes

* **library:** handle circular schema references
([b3cd42b](microsoft/OpenAPI.NET@b3cd42b))
* **library:** handle circular schema references
([91a989f](microsoft/OpenAPI.NET@91a989f))

## 3.5.3

##
[3.5.3](microsoft/OpenAPI.NET@v3.5.2...v3.5.3)
(2026-04-27)


### Bug Fixes

* null reference exception for boolean component schemas
([f97f91a](microsoft/OpenAPI.NET@f97f91a))
* null reference exception for boolean component schemas
([fe0b50a](microsoft/OpenAPI.NET@fe0b50a))
* **schema:** support boolean schemas in deserializer for OpenAPI
3.1/3.2
([05b44be](microsoft/OpenAPI.NET@05b44be))


### Performance Improvements

* **schema:** optimize boolean schema deserialization
([7316e3f](microsoft/OpenAPI.NET@7316e3f))

## 3.5.2

##
[3.5.2](microsoft/OpenAPI.NET@v3.5.1...v3.5.2)
(2026-04-14)


### Bug Fixes

* **hidi:** update Microsoft.OpenApi.OData to 3.2.1
([b0a68fb](microsoft/OpenAPI.NET@b0a68fb))
* **hidi:** update Microsoft.OpenApi.OData to 3.2.1
([8c22ab2](microsoft/OpenAPI.NET@8c22ab2)),
closes [#​2811](microsoft/OpenAPI.NET#2811)

## 3.5.1

##
[3.5.1](microsoft/OpenAPI.NET@v3.5.0...v3.5.1)
(2026-03-31)


### Bug Fixes

* security scheme references serialization
([a5acb89](microsoft/OpenAPI.NET@a5acb89))

## 3.5.0

##
[3.5.0](microsoft/OpenAPI.NET@v3.4.0...v3.5.0)
(2026-03-20)


### Features

* **library:** add Extensions support for schema references in
v3.1/v3.2; add SerializeAsV32 with loop detection
([9b422bf](microsoft/OpenAPI.NET@9b422bf))


### Bug Fixes

* a bug where path parameter validation would fail if they contained
forbidden JSON pointer characters
([ef55b2c](microsoft/OpenAPI.NET@ef55b2c))
* a bug where path parameter validation would fail if they contained
forbidden JSON pointer characters
([4b3164a](microsoft/OpenAPI.NET@4b3164a))
* double encoding of json pointer for invalid reference rule
([b246cd0](microsoft/OpenAPI.NET@b246cd0))
* encoding of special characters for JSON paths
([4c757e1](microsoft/OpenAPI.NET@4c757e1))
* **library:** do not emit unevaluatedProperties for non-object schemas
([852fb4c](microsoft/OpenAPI.NET@852fb4c))
* **library:** do not emit unevaluatedProperties for non-object schemas
([19538aa](microsoft/OpenAPI.NET@19538aa))
* **library:** enforce spec-compliant $ref serialization; add Extensions
support for schema references in v3.1/v3.2
([9bf61de](microsoft/OpenAPI.NET@9bf61de))
* potential double encoding of paths
([471a61a](microsoft/OpenAPI.NET@471a61a))

## 3.4.0

##
[3.4.0](microsoft/OpenAPI.NET@v3.3.1...v3.4.0)
(2026-03-04)


### Features

* **library:** preserve PatternProperties as
x-jsonschema-patternProperties extension for OpenAPI v2/v3.0
serialization
([d969fdc](microsoft/OpenAPI.NET@d969fdc))
* **library:** Preserve PatternProperties via
x-jsonschema-patternProperties extension for OpenAPI v2/v3.0
([16ab5e4](microsoft/OpenAPI.NET@16ab5e4))
* **securityscheme:** add oauth2MetadataUrl support (OpenAPI 3.2)
([4509488](microsoft/OpenAPI.NET@4509488))


### Bug Fixes

* implement unevaluatedProperties as schema per JSON Schema 2020-12
([#​2728](microsoft/OpenAPI.NET#2728))
([7c13fb3](microsoft/OpenAPI.NET@7c13fb3))
* **library:** serialize additionalProperties schema in OpenAPI V2
([f3165fa](microsoft/OpenAPI.NET@f3165fa))
* **library:** serialize additionalProperties schema in OpenAPI V2
documents
([3d07756](microsoft/OpenAPI.NET@3d07756))
* optimize parsing V3.1 documents by reducing GetLocation method
allocation on hot
path([#​2748](microsoft/OpenAPI.NET#2748))
([f690681](microsoft/OpenAPI.NET@f690681))

## 3.3.1

##
[3.3.1](microsoft/OpenAPI.NET@v3.3.0...v3.3.1)
(2026-01-22)


### Features

* **models:** add shared Content interface
([#​2695](microsoft/OpenAPI.NET#2695))
([338566f](microsoft/OpenAPI.NET@338566f))


### Bug Fixes

* broken binary compatibility due to interface changes in previous
version
([d96bba7](microsoft/OpenAPI.NET@d96bba7))

## 3.3.0

##
[3.3.0](microsoft/OpenAPI.NET@v3.2.0...v3.3.0)
(2026-01-21)


### Features

* **models:** add shared Content interface
([9e13b25](microsoft/OpenAPI.NET@9e13b25))
* **models:** add shared Content interface
([#​2695](microsoft/OpenAPI.NET#2695))
([9e13b25](microsoft/OpenAPI.NET@9e13b25))
* **models:** support mutualTLS security scheme
([a4efdfe](microsoft/OpenAPI.NET@a4efdfe))

## 3.2.0

##
[3.2.0](microsoft/OpenAPI.NET@v3.1.3...v3.2.0)
(2026-01-19)


### Features

* hidi validate command now logs warnings
([76a3c0f](microsoft/OpenAPI.NET@76a3c0f))
* hidi validate command now logs warnings
([62e7d56](microsoft/OpenAPI.NET@62e7d56))


### Bug Fixes

* discriminator property validation fails any/allOf cases when it
shouldn't
([fb6cecc](microsoft/OpenAPI.NET@fb6cecc))
* discriminator property validation fails any/allOf cases when it
shouldn't
([a8fb81c](microsoft/OpenAPI.NET@a8fb81c))

## 3.1.3

##
[3.1.3](microsoft/OpenAPI.NET@v3.1.2...v3.1.3)
(2026-01-16)


### Bug Fixes

* Support custom tag ordering
([008576c](microsoft/OpenAPI.NET@008576c))
* Support custom tag ordering
([7610d07](microsoft/OpenAPI.NET@7610d07))

## 3.1.2

##
[3.1.2](microsoft/OpenAPI.NET@v3.1.1...v3.1.2)
(2026-01-06)


### Bug Fixes

* correct error pointer when extension parser throws OpenApiException
([43c75a9](microsoft/OpenAPI.NET@43c75a9))
* wrap extension parser calls in try-catch to ensure correct error
pointers
([50b44aa](microsoft/OpenAPI.NET@50b44aa))

## 3.1.1

##
[3.1.1](microsoft/OpenAPI.NET@v3.1.0...v3.1.1)
(2025-12-18)


### Bug Fixes

* **schema:** always serialize `additionalProperties: false`
([6651c36](microsoft/OpenAPI.NET@6651c36))
* **schema:** always serialize `additionalProperties: false`
([e36fc95](microsoft/OpenAPI.NET@e36fc95))

## 3.1.0

##
[3.1.0](microsoft/OpenAPI.NET@v3.0.3...v3.1.0)
(2025-12-17)


### Features

* Add `type: "null"` downcasting when in oneOf and anyOf for OpenAPI v3
([782cf8d](microsoft/OpenAPI.NET@782cf8d))

## 3.0.3

##
[3.0.3](microsoft/OpenAPI.NET@v3.0.2...v3.0.3)
(2025-12-16)


### Bug Fixes

* load JSON documents that are preceded by multiple whitespace
([6461bac](microsoft/OpenAPI.NET@6461bac))
* non-seekable json streams would fail to load as a document
([2436d73](microsoft/OpenAPI.NET@2436d73))
* reading streams in an asp.net context would cause async exceptions
([f9e5248](microsoft/OpenAPI.NET@f9e5248))

## 3.0.2

##
[3.0.2](microsoft/OpenAPI.NET@v3.0.1...v3.0.2)
(2025-12-08)


### Bug Fixes

* additional properties serialization should not emit a schema in v2
([946cba9](microsoft/OpenAPI.NET@946cba9))
* additional properties serialization should not emit booleans in v3.1+
([946cba9](microsoft/OpenAPI.NET@946cba9))

## 3.0.1

##
[3.0.1](microsoft/OpenAPI.NET@v3.0.0...v3.0.1)
(2025-11-17)


### Bug Fixes

* empty strings should be quoted in yaml
([8d215f9](microsoft/OpenAPI.NET@8d215f9))
* empty strings should be quoted in yaml
([0ca10db](microsoft/OpenAPI.NET@0ca10db))

## 3.0.0

##
[3.0.0](microsoft/OpenAPI.NET@v2.3.9...v3.0.0)
(2025-11-11)


### ⚠ BREAKING CHANGES

* adds support for OpenAPI 3.2.0

> Note: Please refer to the [upgrade
guide](https://github.com/microsoft/OpenAPI.NET/blob/main/docs/upgrade-guide-3.md)
for a detailed description of the breaking changes.

> Note: ASP.net users should remain on version 1.X for ASP.net < 10, and
version 2.X for ASP.net 10, this new major version will be implemented
in a future version of ASP.net, [more
information](https://github.com/microsoft/OpenAPI.NET/blob/main/CONTRIBUTING.md#branches-and-support-policy)

### Features

* adds support for OpenAPI 3.2.0
([765a8dd](microsoft/OpenAPI.NET@765a8dd))

### Special thanks

- [Matthieu Costabello](https://github.com/kilifu)

## 2.12.2

##
[2.12.2](microsoft/OpenAPI.NET@v2.12.1...v2.12.2)
(2026-08-20)


### Bug Fixes

* duplicate schema example when serializing to v2
([#​3046](microsoft/OpenAPI.NET#3046))
([a6366be](microsoft/OpenAPI.NET@a6366be))

## 2.12.1

##
[2.12.1](microsoft/OpenAPI.NET@v2.12.0...v2.12.1)
(2026-08-19)


### Bug Fixes

* circular ref guard
([#​3033](microsoft/OpenAPI.NET#3033))
([#​3039](microsoft/OpenAPI.NET#3039))
([406e6fd](microsoft/OpenAPI.NET@406e6fd))
* harden yaml parsing
([#​3034](microsoft/OpenAPI.NET#3034))
([fdc5718](microsoft/OpenAPI.NET@fdc5718))

Commits viewable in [compare
view](microsoft/OpenAPI.NET@v2.12.0...v3.10.2).
</details>

Updated [NUnit](https://github.com/nunit/nunit) from 4.6.1 to 5.0.0.

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

_Sourced from [NUnit's
releases](https://github.com/nunit/nunit/releases)._

## 5.0.0

See [release
notes](https://docs.nunit.org/articles/nunit/release-notes/framework.html#nunit-500---sept-27-2026)
for details.

Commits viewable in [compare
view](nunit/nunit@v4.6.1...v5.0.0).
</details>

Updated [NUnit.Analyzers](https://github.com/nunit/nunit.analyzers) from
4.14.0 to 4.15.0.

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

_Sourced from [NUnit.Analyzers's
releases](https://github.com/nunit/nunit.analyzers/releases)._

## 4.15.0

NUnit Analyzers 4.15 - September 12, 2026

This release of the NUnit Analyzers adds support for the new numeric
types that will
be supported in NUnit 5. The release also improves `NUnit1027` by
inspecting base fixtures,
and `NUnit1028` by supporting `IAsyncDisposable.DisposeAsync` in
addition to the
existing `IDisposable.Dispose`. The release also includes bug fixes and
dependency updates.

The release contains contributions from the following users (in
alphabetical order):
* @​jhavlicek-profinit
* @​killergege
* @​manfred-brands
* @​mikkelbu
* @​ngbrown
* @​ramonsmits
* @​stevenaw
* @​uladz-zubrycki

Issues Resolved

Features and Enhancements
* #​1019 NUnit1027 does not see `[CancelAfter]` inherited from a base
fixture
* #​1017 NU2047 reports failure for new numeric types
* #​1001 NUnit1028: Allow DisposeAsync as an exception
* #​999 `[TestCaseSource]` CA1812 suppression

Bugs
* #​1013 Use of `records` crash the
`NonNullableFieldOrPropertyIsUninitializedSuppressor` analyzer
* #​998 Assert.EnterMultipleScope clears nullability suppress info

Tooling, Process, and Documentation
* #​1005 Bump Microsoft.NET.Test.Sdk from 18.6.0 to 18.7.0
* #​996 Bump Microsoft.NET.Test.Sdk from 17.14.1 to 18.6.0
* #​993 chore: bump version

Commits viewable in [compare
view](nunit/nunit.analyzers@4.14.0...4.15.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: Paul Trampert <paul.trampert@ptrampert.com>
Co-authored-by: Claude Opus 5.5 <noreply@anthropic.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.

4 participants