Split ConfigurationSchema.json for the OpenAI.Responses package#1158
Open
ShivangiReja wants to merge 1 commit into
Open
Split ConfigurationSchema.json for the OpenAI.Responses package#1158ShivangiReja wants to merge 1 commit into
ShivangiReja wants to merge 1 commit into
Conversation
Contributor
There was a problem hiding this comment.
Pull request overview
This PR ensures OpenAI.Responses consumers get appsettings.*.json IntelliSense/validation when referencing the OpenAI.Responses NuGet package standalone by shipping a package-scoped ConfigurationSchema.json and corresponding buildTransitive targets (matching the packaging approach previously introduced for OpenAI).
Changes:
- Added a Responses-only JSON schema segment (
schema/Responses/ConfigurationSchema.json) definingClients.ResponsesClientandresponsesClientOptions. - Removed the
ResponsesClientconfiguration block from theOpenAIpackage schema (schema/ConfigurationSchema.json) now thatOpenAI.Responsesis split out. - Added and packed
OpenAI.Responses-specificbuildTransitivetargets to register the schema segment forappsettings.*.json.
Reviewed changes
Copilot reviewed 4 out of 4 changed files in this pull request and generated no comments.
| File | Description |
|---|---|
| schema/Responses/ConfigurationSchema.json | Introduces Responses-scoped configuration schema segment for ResponsesClient and its options. |
| schema/ConfigurationSchema.json | Removes ResponsesClient from the OpenAI package schema to reflect package split. |
| eng/OpenAI.Responses.NuGet.targets | Registers the Responses schema segment for appsettings.*.json consumers. |
| Directory.Build.targets | Packs the Responses schema at the package root and the .targets into buildTransitive/netstandard2.0/. |
Collaborator
|
@m-nash: Would you be so kind as to review? |
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
Following the split of
OpenAI.Responsesinto its own NuGet package, this PR givesOpenAI.Responsesits ownConfigurationSchema.json(and matchingbuildTransitivetargets) instead of relying on the schema shipped in theOpenAIpackage.Previously, the
OpenAI.Responsesnupkg did not includeConfigurationSchema.jsonor abuildTransitive/*.targetsfile at all, meaning a consumer who installedOpenAI.Responsesstandalone would not getappsettings.*.jsonIntelliSense / validation forResponsesClient. This PR fixes that by adding a Responses-scoped schema, packaged the same way as the existing one in theOpenAIpackage (introduced in #1065).Changes
schema/Responses/ConfigurationSchema.json— Responses-only schema containingClients.ResponsesClientand a dedicatedresponsesClientOptionsdefinition (which mirrors the shape ofResponsesClientOptions). It is intentionally not a copy of the OpenAI schema —ResponsesClienthas its own options class, so the schema is self-contained.ResponsesClientblock fromschema/ConfigurationSchema.json— Responses no longer ships in theOpenAIpackage, so its config entry doesn't belong there.eng/OpenAI.Responses.NuGet.targets— registers the schema as aJsonSchemaSegmentforappsettings.*.json, identical in shape toeng/OpenAI.NuGet.targets.Directory.Build.targets— added a second<ItemGroup Condition="'$(MSBuildProjectName)' == 'OpenAI.Responses'">that packs the Responses schema at the nupkg root and the.targetsfile intobuildTransitive/netstandard2.0/OpenAI.Responses.targets.Verification
Packed both projects locally:
OpenAI.Responses.<version>.nupkgnow contains:ConfigurationSchema.json(1,855 B — Responses-only)buildTransitive/netstandard2.0/OpenAI.Responses.targetsOpenAI.<version>.nupkgstill contains its full schema (now 9,451 B — down from 9,768 B sinceResponsesClientis removed) andbuildTransitive/netstandard2.0/OpenAI.targets.