Skip to content

SOAR-0015: Add namespace file splitting proposal - #930

Merged
czechboy0 merged 7 commits into
apple:mainfrom
nac5504:soar-0015
Aug 14, 2026
Merged

SOAR-0015: Add namespace file splitting proposal#930
czechboy0 merged 7 commits into
apple:mainfrom
nac5504:soar-0015

Conversation

@nac5504

@nac5504 nac5504 commented Aug 3, 2026

Copy link
Copy Markdown
Contributor

Summary

Notes

The proposal is scoped to the namespace split from PR #925: Types.swift, Types+Components.swift, and Types+Operations.swift, Types+Components+Schemas.swift, etc. More advanced sharding remains listed only as future direction.

@nac5504 nac5504 changed the title Add namespace file splitting proposal SOAR-0015: Add namespace file splitting proposal Aug 3, 2026
@nac5504
nac5504 marked this pull request as ready for review August 3, 2026 16:40

- `output.types.fileSplitting.strategy`, currently supporting `namespace`.

The same model is used by YAML configuration, direct command-line invocation, and programmatic callers that construct `_OpenAPIGeneratorCore.Config` directly.

Copy link
Copy Markdown
Contributor

Choose a reason for hiding this comment

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

Please remove these implementation details. The design details should be about the conceptual approach and user-visible concepts.

There are many possible implementations, so no need to lock that in the proposal, in fact it can distract from where users should provide feedback - on the API and config file, not on the implementation.


#### Build-tool plugin boundary

SwiftPM and Xcode build-tool plugins must declare generated output files before invoking the generator executable. PR #925 therefore rejects build-tool plugin invocations when `output.types.fileSplitting` is configured.

Copy link
Copy Markdown
Contributor

Choose a reason for hiding this comment

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

Hmm this is unfortunate - we should discuss more what our options are.

Copy link
Copy Markdown
Contributor

Choose a reason for hiding this comment

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

Not being able to support this in the build plugin might actually be an argument for switching this to be the default and making this not even configurable. What do folks think?

Copy link
Copy Markdown
Collaborator

Choose a reason for hiding this comment

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

I think we should be open to moving to a prebuild plugin if it unlocks significant benefits. If we need a dynamic number of files generated then that's what prebuild plugins are advertised as the solution for.

Comment thread Sources/swift-openapi-generator/Documentation.docc/Proposals/SOAR-0015.md Outdated

@simonjbeaumont simonjbeaumont left a comment

Copy link
Copy Markdown
Collaborator

Choose a reason for hiding this comment

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

@nac5504 thanks for your work on this so far 🙏

I've kicked off the forums thread1.

Please update the status to In Review and include a link to the thread in the metadata.

Please also subscribe to the forums thread so you can engage with any feedback that might come in.

Footnotes

  1. https://forums.swift.org/t/proposal-soar-0015-namespace-based-types-file-splittingt/88830

Comment thread Sources/swift-openapi-generator/Documentation.docc/Proposals/SOAR-0015.md Outdated
Comment thread Sources/swift-openapi-generator/Documentation.docc/Proposals/SOAR-0015.md Outdated
Comment thread Sources/swift-openapi-generator/Documentation.docc/Proposals/SOAR-0015.md Outdated
Comment thread Sources/swift-openapi-generator/Documentation.docc/Proposals/SOAR-0015.md Outdated
Comment thread Sources/swift-openapi-generator/Documentation.docc/Proposals/SOAR-0015.md Outdated
Comment thread Sources/swift-openapi-generator/Documentation.docc/Proposals/SOAR-0015.md Outdated
Comment thread Sources/swift-openapi-generator/Documentation.docc/Proposals/SOAR-0015.md Outdated
Comment thread Sources/swift-openapi-generator/Documentation.docc/Proposals/SOAR-0015.md Outdated
@czechboy0

Copy link
Copy Markdown
Contributor

Great, thanks @nac5504 - I added my +1 on the forums thread.

@nac5504

nac5504 commented Aug 11, 2026

Copy link
Copy Markdown
Contributor Author

Here is the next feature I would like to land after this proposal concludes: nac5504#8. Any early feedback would be greatly appreciated!

Comment thread Sources/swift-openapi-generator/Documentation.docc/Proposals/SOAR-0015.md Outdated
@czechboy0

Copy link
Copy Markdown
Contributor

Hi all,

(temporarily taking over as release manager due to Si's OOO).

Thank you everyone for the feedback - it was broadly supportive, so this proposal is now Ready for Implementation.

@czechboy0
czechboy0 enabled auto-merge (squash) August 14, 2026 12:18
@czechboy0 czechboy0 added the semver/none No version bump required. label Aug 14, 2026
@czechboy0

Copy link
Copy Markdown
Contributor

Thanks again @nac5504 - the proposal was accepted. I'll get this PR merged, and please tag @simonjbeaumont and me in the implementation PR once it's ready and fully aligned with the accepted proposal.

@czechboy0
czechboy0 merged commit b760dbc into apple:main Aug 14, 2026
49 of 50 checks passed
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

semver/none No version bump required.

Projects

None yet

Development

Successfully merging this pull request may close these issues.

3 participants