Skip to content

Split ConfigurationSchema.json for the OpenAI.Responses package#1158

Open
ShivangiReja wants to merge 1 commit into
openai:mainfrom
ShivangiReja:shreja_SplitSchema
Open

Split ConfigurationSchema.json for the OpenAI.Responses package#1158
ShivangiReja wants to merge 1 commit into
openai:mainfrom
ShivangiReja:shreja_SplitSchema

Conversation

@ShivangiReja
Copy link
Copy Markdown
Collaborator

Summary

Following the split of OpenAI.Responses into its own NuGet package, this PR gives OpenAI.Responses its own ConfigurationSchema.json (and matching buildTransitive targets) instead of relying on the schema shipped in the OpenAI package.

Previously, the OpenAI.Responses nupkg did not include ConfigurationSchema.json or a buildTransitive/*.targets file at all, meaning a consumer who installed OpenAI.Responses standalone would not get appsettings.*.json IntelliSense / validation for ResponsesClient. This PR fixes that by adding a Responses-scoped schema, packaged the same way as the existing one in the OpenAI package (introduced in #1065).

Changes

  • Added schema/Responses/ConfigurationSchema.json — Responses-only schema containing Clients.ResponsesClient and a dedicated responsesClientOptions definition (which mirrors the shape of ResponsesClientOptions). It is intentionally not a copy of the OpenAI schema — ResponsesClient has its own options class, so the schema is self-contained.
  • Removed the ResponsesClient block from schema/ConfigurationSchema.json — Responses no longer ships in the OpenAI package, so its config entry doesn't belong there.
  • Added eng/OpenAI.Responses.NuGet.targets — registers the schema as a JsonSchemaSegment for appsettings.*.json, identical in shape to eng/OpenAI.NuGet.targets.
  • Updated Directory.Build.targets — added a second <ItemGroup Condition="'$(MSBuildProjectName)' == 'OpenAI.Responses'"> that packs the Responses schema at the nupkg root and the .targets file into buildTransitive/netstandard2.0/OpenAI.Responses.targets.

Verification

Packed both projects locally:

OpenAI.Responses.<version>.nupkg now contains:

  • ConfigurationSchema.json (1,855 B — Responses-only)
  • buildTransitive/netstandard2.0/OpenAI.Responses.targets

OpenAI.<version>.nupkg still contains its full schema (now 9,451 B — down from 9,768 B since ResponsesClient is removed) and buildTransitive/netstandard2.0/OpenAI.targets.

Copilot AI review requested due to automatic review settings May 5, 2026 23:06
Copy link
Copy Markdown
Contributor

Copilot AI left a comment

Choose a reason for hiding this comment

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

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) defining Clients.ResponsesClient and responsesClientOptions.
  • Removed the ResponsesClient configuration block from the OpenAI package schema (schema/ConfigurationSchema.json) now that OpenAI.Responses is split out.
  • Added and packed OpenAI.Responses-specific buildTransitive targets to register the schema segment for appsettings.*.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/.

Copy link
Copy Markdown
Collaborator

@jsquire jsquire left a comment

Choose a reason for hiding this comment

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

Looks good to me. We should ask @m-nash to review as well, as he's likely to catch something we've overlooked.

@jsquire jsquire requested a review from m-nash May 13, 2026 15:40
@jsquire
Copy link
Copy Markdown
Collaborator

jsquire commented May 13, 2026

@m-nash: Would you be so kind as to review?

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.

3 participants