GV

GeezerVison

The World Wide Web, restored to 800 pixels of glory.

Home|About|Gaming cabinet|Archives|How it works|Starter sites

On this site

  • Sign in
  • ActionsCI/CD and automation
  • CodespacesCloud development environments
  • All Features
  • Documentation
  • Training
  • Certifications
  • Build with Copilot
  • Customize Copilot
  • Integrations
  • Trending repos
  • GitHub Sponsors
  • Developer articles
  • Enterprises

This view

  • Original page
  • New address

GeezerVison is showing github.com — feat: allow preserving specific schemas during prune (preserve-schemas + x-oapi-codegen-keep-unused) by aureleoules · Pull Request #2233 · oapi-codegen/oapi-codegen

Conversation

@aureleoules

@aureleoules aureleoules commented Feb 23, 2026

Copy link
Copy Markdown

Add two ways to keep unreferenced component schemas from being pruned:

  • output-options.preserve-schemas: list of schema names to always keep, even when not referenced anywhere in the spec.
  • x-oapi-codegen-keep-unused: set to true on a schema in the OpenAPI spec so that schema is never pruned when unreferenced.

pruneUnusedComponents() now takes an optional preserveSchemas []string (from config); schemas in that list or with the extension are not removed. Existing call sites use nil. Tests and configuration-schema/README updated.

Sorry, something went wrong.

Uh oh!

There was an error while loading. Please reload this page.

All reactions
@aureleoules
feat: allow preserving specific schemas during prune (preserve-schema…
df2501c
…s + x-oapi-codegen-keep-unused)

Add two ways to keep unreferenced component schemas from being pruned:

- output-options.preserve-schemas: list of schema names to always keep,
  even when not referenced anywhere in the spec.

- x-oapi-codegen-keep-unused: set to true on a schema in the OpenAPI spec
  so that schema is never pruned when unreferenced.

pruneUnusedComponents() now takes an optional preserveSchemas []string
(from config); schemas in that list or with the extension are not removed.
Existing call sites use nil. Tests and configuration-schema/README updated.
@aureleoules
aureleoules requested a review from a team as a code owner February 23, 2026 13:08
@oapi-codegen oapi-codegen deleted a comment from greptile-apps Bot Feb 24, 2026
@mromaszewicz

mromaszewicz commented Feb 24, 2026

Copy link
Copy Markdown
Member

@aureleoules , we already have this behavior:
https://github.com/oapi-codegen/oapi-codegen/blob/main/pkg/codegen/configuration.go#L248

Is this not sufficient for what you are trying to accomplish?

Go does dead code pruning when it compiles, so having some unused schemas in the generated go code when setting skip-prune: true is ok. i don't think we need to pick, per-schema, which one to include.

All reactions

Sorry, something went wrong.

Uh oh!

There was an error while loading. Please reload this page.

@mromaszewicz mromaszewicz added the awaiting reply label Feb 24, 2026
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Reviewers

No reviews

Uh oh!

There was an error while loading. Please reload this page.

Assignees

No one assigned

Labels

awaiting reply

Projects

None yet

Milestone

No milestone

Development

Successfully merging this pull request may close these issues.

Uh oh!

There was an error while loading. Please reload this page.

2 participants

@aureleoules @mromaszewicz
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.
You are visitor 01402503 — GeezerVison does not store the pages you look up.
Best viewed with Netscape Navigator 4.7 or Internet Explorer 6 at 800×600. No cookies required.