-
Notifications
You must be signed in to change notification settings - Fork 284
Comparing changes
Open a pull request
base repository: microsoft/OpenAPI.NET
base: v2.10.0
head repository: microsoft/OpenAPI.NET
compare: v2.11.0
- 20 commits
- 44 files changed
- 7 contributors
Commits on Jul 8, 2026
-
feat: adds support for anchor and id external resolution
* tests: adds a negative test for external anchors feat: adds support for relative ids Signed-off-by: Vincent Biret <vibiret@microsoft.com> * feat: adds support for external anchors Signed-off-by: Vincent Biret <vibiret@microsoft.com> * chore(benchmark): update performance reports * perf: use char comparison when possible * fix: anchor combination with id resolution --------- Signed-off-by: Vincent Biret <vibiret@microsoft.com> Co-authored-by: copilot-swe-agent[bot] <198982749+Copilot@users.noreply.github.com>
Configuration menu - View commit details
-
Copy full SHA for 4138e47 - Browse repository at this point
Copy the full SHA 4138e47View commit details
Commits on Jul 9, 2026
-
Merge pull request #2932 from microsoft/feat/external-anchor-relative…
…-id-to-v2 feat: adds support for anchor and id external resolution
Configuration menu - View commit details
-
Copy full SHA for 557bd6a - Browse repository at this point
Copy the full SHA 557bd6aView commit details
Commits on Jul 13, 2026
-
fix: handle nullability more accurately during serialization for 3.0/…
…2.0 (#2933) * Handle nullability more accurately * Cleanup * Rename SerializeTypeProperty to TrySerializeTypeProperty * Separate rp * Cleanup * Progress * Cleanp * Refactor * Use cached json extension * AddExtension only if Type is still unknown * Cleanup * Address review comments * Address review comments * Update OpenApiSchemaDeserializer.cs * Update OpenApiSchemaDeserializer.cs
Configuration menu - View commit details
-
Copy full SHA for 310b6e2 - Browse repository at this point
Copy the full SHA 310b6e2View commit details -
Merge pull request #2937 from microsoft/fix/null-to-v2
fix: handle nullability more accurately during serialization for 3.0/2.0 (#2933)
Configuration menu - View commit details
-
Copy full SHA for bc11356 - Browse repository at this point
Copy the full SHA bc11356View commit details
Commits on Jul 14, 2026
-
feat(schema): resolve bare $dynamicRef via $dynamicAnchor index (#2913)
* feat(schema): resolve $dynamicRef against $dynamicAnchor via OpenApiSchemaReference Implements document-scoped $dynamicRef resolution per JSON Schema 2020-12 §8.2.3.2. Bare $dynamicRef schemas (no $ref) now deserialize as OpenApiSchemaReference whose Target resolves via per-document $dynamicAnchor and $anchor registries in OpenApiWorkspace. Resolution order in Target: 1. $dynamicAnchor index (single candidate → resolved automatically) 2. $anchor fallback when zero $dynamicAnchor candidates exist (per §8.2.3.2) 3. null when ambiguous (multiple candidates need dynamic-scope tracking) Anchor registries are populated by recursively walking the entire document tree: component schemas, reusable component definitions (parameters, responses, request bodies, headers, callbacks, path items, media types), inline schemas (paths, operations, webhooks), and all nested subschema locations ($defs, properties, items, allOf, if/then/else, etc.). Anchor registration is merged into RegisterSchemaIdentifiers (#2918) so the schema tree is walked once instead of twice. IsDynamicRefOnly is computed from whether $dynamicRef is set and ReferenceV3 does not point to a component path — no field to forget when building from the object model. ResolveDynamicAnchorInContext special-cases OpenApiSchemaReference to read from Reference.DynamicAnchor/Definitions directly, never falling through to Target. Reference holder guards prevent the structural walk from crossing document boundaries through OpenApiParameterReference, OpenApiResponseReference, etc. Test snapshots use a custom JsonConverter<IOpenApiSchema> that routes schema serialization through the native OpenAPI writer, avoiding reflection cycles from recursive $dynamicRef. Public APIs for consumers tracking dynamic scope: - GetDynamicAnchorCandidates(doc, anchorName): returns all candidate schemas - ResolveDynamicAnchorInContext(contextSchema, anchorName): resolves against a specific entry-point schema's $defs without crossing reference boundaries Known limitation: relative URI resolution in $dynamicRef is not yet implemented (tracked as #2928). Cross-document resolution works for absolute URIs only. * fix(workspace): only consider authored $dynamicAnchor in ResolveDynamicAnchorInContext $defs entries that are themselves $refs no longer fall through to the referenced target's $dynamicAnchor. OpenApiSchemaReference.DynamicAnchor delegates to Target when the authored sibling is empty, which violated the method's context-bound intent. Adds AuthoredDynamicAnchor helper that reads Reference.DynamicAnchor for OpenApiSchemaReference and the plain property otherwise. Both $defs lookups (non-reference context branch and reference-holder branch) now use it. Tests cover both branches in V31 and V32: a Container schema with an aliased $ref def whose Target declares $dynamicAnchor: node, plus a reference holder whose Reference.Definitions carries the same aliased entry.
Configuration menu - View commit details
-
Copy full SHA for a139f83 - Browse repository at this point
Copy the full SHA a139f83View commit details -
fix: differentiate unset value from null value in OpenApiSchema.Const (…
…#2936) * Differentiate unset value from null value in OpenApiSchema.Const * Fix for ref * Fix default for * Different approach * Fix deserializing of const null * chore: update performance benchmark reports (#2) Co-authored-by: copilot-swe-agent[bot] <198982749+Copilot@users.noreply.github.com> * chore(benchmark): update benchmark reports Co-authored-by: copilot-swe-agent[bot] <198982749+Copilot@users.noreply.github.com> --------- Co-authored-by: Copilot <198982749+Copilot@users.noreply.github.com>
Configuration menu - View commit details
-
Copy full SHA for e08570f - Browse repository at this point
Copy the full SHA e08570fView commit details -
Configuration menu - View commit details
-
Copy full SHA for a2687da - Browse repository at this point
Copy the full SHA a2687daView commit details -
Merge pull request #2941 from microsoft/feat/dynamic-ref-to-v2
feat(schema): resolve bare $dynamicRef via $dynamicAnchor index (#2913)
Configuration menu - View commit details
-
Copy full SHA for baf8428 - Browse repository at this point
Copy the full SHA baf8428View commit details -
chore: promote shipped APIs (#2948)
Co-authored-by: github-actions[bot] <github-actions[bot]@users.noreply.github.com>
Configuration menu - View commit details
-
Copy full SHA for c868dcf - Browse repository at this point
Copy the full SHA c868dcfView commit details -
Configuration menu - View commit details
-
Copy full SHA for 64f548e - Browse repository at this point
Copy the full SHA 64f548eView commit details -
ci: adds a dev container configuration
Signed-off-by: Vincent Biret <vibiret@microsoft.com>
Configuration menu - View commit details
-
Copy full SHA for e93c0df - Browse repository at this point
Copy the full SHA e93c0dfView commit details -
Merge pull request #2951 from microsoft/ci/dev-container-to-v2
ci: adds a dev container configuration
Configuration menu - View commit details
-
Copy full SHA for 4340b31 - Browse repository at this point
Copy the full SHA 4340b31View commit details -
docs: adds a mention of the shallow copy (#2953)
Signed-off-by: Vincent Biret <vibiret@microsoft.com>
Configuration menu - View commit details
-
Copy full SHA for b7ee57b - Browse repository at this point
Copy the full SHA b7ee57bView commit details -
fix: adds explicit error message for invalid json pointers (#2955)
* fix: adds explicit error message for invalid json pointers * chore: linting Signed-off-by: Vincent Biret <vibiret@microsoft.com> * chore: fixes implementation for pointer validation Signed-off-by: Vincent Biret <vibiret@microsoft.com> * chore: reverts range index unavailable on netstandard2.0 Signed-off-by: Vincent Biret <vibiret@microsoft.com> --------- Signed-off-by: Vincent Biret <vibiret@microsoft.com>
Configuration menu - View commit details
-
Copy full SHA for a304e56 - Browse repository at this point
Copy the full SHA a304e56View commit details -
Merge pull request #2943 from microsoft/fix/const-null-to-v2
fix: differentiate unset value from null value in OpenApiSchema.Const (#2936)
Configuration menu - View commit details
-
Copy full SHA for a8787af - Browse repository at this point
Copy the full SHA a8787afView commit details -
Configuration menu - View commit details
-
Copy full SHA for 26de615 - Browse repository at this point
Copy the full SHA 26de615View commit details
Commits on Jul 15, 2026
-
feat: support relative URI resolution in $dynamicRef (#2928) (#2945)
* feat: support relative URI resolution in $dynamicRef (#2928) 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 * test: mirror V31 dynamic ref tests to V32 and fix workspace fallback 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. * fix: remove duplicate XML doc and use Uri.TryCreate for relative URI resolution Addresses Copilot review feedback on #2945.
Configuration menu - View commit details
-
Copy full SHA for a8688dc - Browse repository at this point
Copy the full SHA a8688dcView commit details -
Configuration menu - View commit details
-
Copy full SHA for 6091f5a - Browse repository at this point
Copy the full SHA 6091f5aView commit details -
Configuration menu - View commit details
-
Copy full SHA for 34dcecf - Browse repository at this point
Copy the full SHA 34dcecfView commit details -
Merge pull request #2934 from microsoft/release-please--branches--sup…
…port/v2--components--Microsoft.OpenApi chore(support/v2): release 2.11.0
Configuration menu - View commit details
-
Copy full SHA for 628fd3e - Browse repository at this point
Copy the full SHA 628fd3eView commit details
This comparison is taking too long to generate.
Unfortunately it looks like we can’t render this comparison for you right now. It might be too big, or there might be something weird with your repository.
You can try running this command locally to see the comparison on your machine:
git diff v2.10.0...v2.11.0