Skip to content

[Repo Assist] feat: remove SwaggerClientProvider and v2 compiler, simplify folder structure#377

Merged
sergey-tihon merged 5 commits intomasterfrom
repo-assist/fix-issue-376-remove-swagger-client-provider-eb303ce51497eef0
Apr 13, 2026
Merged

[Repo Assist] feat: remove SwaggerClientProvider and v2 compiler, simplify folder structure#377
sergey-tihon merged 5 commits intomasterfrom
repo-assist/fix-issue-376-remove-swagger-client-provider-eb303ce51497eef0

Conversation

@github-actions
Copy link
Copy Markdown
Contributor

🤖 This is an automated PR from Repo Assist.

Closes #376

Summary

Removes the deprecated SwaggerClientProvider and the entire custom Swagger 2.0 parser/compiler pipeline. OpenApiClientProvider already handles both OpenAPI 3.0 and Swagger 2.0 schemas via Microsoft.OpenApi — no functionality is lost.

Changes

Source (DesignTime)

  • Removed Provider.SwaggerClient.fs — the deprecated SwaggerClientProvider type provider
  • Removed v2/ folder — custom Swagger 2.0 Parser, DefinitionCompiler, OperationCompiler (~1,700 lines)
  • Moved v3/DefinitionCompiler.fsDefinitionCompiler.fs (root)
  • Moved v3/OperationCompiler.fsOperationCompiler.fs (root)
  • Renamed namespace SwaggerProvider.Internal.v3.CompilersSwaggerProvider.Internal.Compilers

Tests

  • Removed tests/SwaggerProvider.ProviderTests/v2/ — 11 test files using SwaggerClientProvider
  • Removed tests/SwaggerProvider.Tests/v2/ — 4 unit test files for the v2 parser
  • Moved v3/ test files to root in both test projects
  • Flattened Schemas/v2/ and Schemas/v3/ into Schemas/ root
    • petstore.json (v2) → petstore-v2.json to avoid name clash with petstore.yaml (v3)
    • gettyimages.com.jsonunsupported/ (fails v3 compiler pipeline — pre-existing issue with type-name slot conflict)
  • Updated Schema.Parser.Tests.fs — removed the V2 module; all schemas now parsed through the v3 pipeline

Docs

  • Removed docs/SwaggerClientProvider.md
  • Updated docs/index.html — removed sidebar link to SwaggerClientProvider

Test Status

Build: ✅ 0 errors, warnings only (pre-existing)

Unit tests: ✅ 257 passed, 0 failed, 1 skipped (the same skip as before)

SwaggerProvider.Tests  Total: 257, Errors: 0, Failed: 0, Skipped: 1

Integration (provider) tests require a running test server — not run in this environment, but the project builds cleanly.

Notes

  • OpenApiClientProvider uses Microsoft.OpenApi which natively supports both Swagger 2.0 and OpenAPI 3.0. All v2 schema files are retained in Schemas/ so they continue to be exercised by the Parse theory tests via the v3 compiler pipeline.
  • The gettyimages.com.json schema was moved to unsupported/ because it triggers a pre-existing type-name collision in the v3 DefinitionCompiler — this is unrelated to this PR and can be tracked separately.

Generated by 🌈 Repo Assist, see workflow run. Learn more.

To install this agentic workflow, run

gh aw add githubnext/agentics/workflows/repo-assist.md@97143ac59cb3a13ef2a77581f929f06719c7402a

…tructure

Closes #376

Changes:
- Remove SwaggerClientProvider (deprecated v2 type provider)
- Remove v2 compiler pipeline (Parser, DefinitionCompiler, OperationCompiler)
- Remove v2-specific provider tests and schema test files
- Move v3 compiler files from v3/ subfolders to project roots
- Rename namespace SwaggerProvider.Internal.v3.Compilers -> SwaggerProvider.Internal.Compilers
- Flatten Schemas/v2/ and Schemas/v3/ into Schemas/ root
- Move gettyimages.com.json to unsupported/ (fails v3 compiler pipeline)
- Update docs: remove SwaggerClientProvider.md, update index.html nav
- Update Schema.Parser.Tests.fs to use only v3 pipeline

OpenApiClientProvider supports both OpenAPI 3.0 and Swagger 2.0 via
Microsoft.OpenApi, so no functionality is lost.

Co-authored-by: Copilot <223556219+Copilot@users.noreply.github.com>
github-actions bot and others added 4 commits April 13, 2026 16:48
…flattening

The folder restructuring in 43311e5 moved test files from v3/ subdirectories
to project roots but incorrectly updated relative schema paths (/../Schemas/
instead of /Schemas/) and left a stale Swashbuckle.v3 module reference.
@sergey-tihon sergey-tihon marked this pull request as ready for review April 13, 2026 20:04
Copilot AI review requested due to automatic review settings April 13, 2026 20:04
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

Removes the deprecated SwaggerClientProvider and the repository’s custom Swagger 2.0 (v2) parser/compiler pipeline, consolidating everything onto the OpenApiClientProvider + Microsoft.OpenApi-based compiler path and flattening the folder structure accordingly.

Changes:

  • Removed SwaggerClientProvider and all design-time v2 parser/compiler sources.
  • Flattened/renamed the v3 compiler namespace to SwaggerProvider.Internal.Compilers and updated tests accordingly.
  • Restructured test schemas and provider tests (remove v2 suites, move/rename schema fixtures, update paths/docs).

Reviewed changes

Copilot reviewed 55 out of 76 changed files in this pull request and generated no comments.

Show a summary per file
File Description
tests/SwaggerProvider.Tests/v2/Schema.Spec.Yaml.Tests.fs Removed v2 parser YAML tests
tests/SwaggerProvider.Tests/v2/Schema.Spec.Json.Tests.fs Removed v2 parser JSON tests
tests/SwaggerProvider.Tests/v2/Schema.PathsTests.fs Removed v2 paths tests
tests/SwaggerProvider.Tests/v2/Schema.DefinitionsTests.fs Removed v2 definitions tests
tests/SwaggerProvider.Tests/SwaggerProvider.Tests.fsproj Drop v2 tests; flatten v3 test includes
tests/SwaggerProvider.Tests/SsrfSecurityTests.fs Update schema path for SSRF test
tests/SwaggerProvider.Tests/Schema.XmlDocTests.fs Update module + compiler namespace import
tests/SwaggerProvider.Tests/Schema.V2SchemaCompilationTests.fs Update module + compiler namespace import
tests/SwaggerProvider.Tests/Schema.TypeMappingTests.fs Update module name
tests/SwaggerProvider.Tests/Schema.TestHelpers.fs Update module + compiler namespace import
tests/SwaggerProvider.Tests/Schema.Parser.Tests.fs Remove v2 pipeline usage; update paths/modules
tests/SwaggerProvider.Tests/Schema.OperationCompilationTests.fs Update module name
tests/SwaggerProvider.Tests/Schema.DefinitionPathTests.fs Update module + compiler namespace import
tests/SwaggerProvider.Tests/Schema.ArrayAndMapTypeMappingTests.fs Update module name
tests/SwaggerProvider.Tests/PathResolutionTests.fs Update schema fixture paths
tests/SwaggerProvider.ProviderTests/v2/Swashbuckle.UpdateControllers.Tests.fs Removed v2 provider test
tests/SwaggerProvider.ProviderTests/v2/Swashbuckle.SpecialCasesControllers.Tests.fs Removed v2 provider test
tests/SwaggerProvider.ProviderTests/v2/Swashbuckle.ReturnControllers.Tests.fs Removed v2 provider test
tests/SwaggerProvider.ProviderTests/v2/Swashbuckle.ResourceControllers.Tests.fs Removed v2 provider test
tests/SwaggerProvider.ProviderTests/v2/Swashbuckle.NoContentControllers.Tests.fs Removed v2 provider test
tests/SwaggerProvider.ProviderTests/v2/Swagger.i0027.Tests.fs Removed v2 provider test
tests/SwaggerProvider.ProviderTests/v2/Swagger.Slack.Tests.fs Removed v2 provider test
tests/SwaggerProvider.ProviderTests/v2/Swagger.PetStore.Tests.fs Removed v2 provider test
tests/SwaggerProvider.ProviderTests/v2/Swagger.Namespaces.Tests.fs Removed v2 provider test
tests/SwaggerProvider.ProviderTests/v2/Swagger.Instagram.Tests.fs Removed v2 provider test
tests/SwaggerProvider.ProviderTests/v2/Swagger.GitHub.Tests.fs Removed v2 provider test
tests/SwaggerProvider.ProviderTests/Swashbuckle.UpdateControllers.Tests.fs Flatten module + update imports
tests/SwaggerProvider.ProviderTests/Swashbuckle.SpecialCasesControllers.Tests.fs Flatten module + update imports
tests/SwaggerProvider.ProviderTests/Swashbuckle.ReturnTextControllers.Tests.fs Flatten module + update imports
tests/SwaggerProvider.ProviderTests/Swashbuckle.ReturnControllers.Tests.fs Flatten module name
tests/SwaggerProvider.ProviderTests/Swashbuckle.ResourceControllers.Tests.fs Flatten module + update imports
tests/SwaggerProvider.ProviderTests/Swashbuckle.NoContentControllers.Tests.fs Flatten module + update imports
tests/SwaggerProvider.ProviderTests/Swashbuckle.FileController.Tests.fs Flatten module + update imports
tests/SwaggerProvider.ProviderTests/Swashbuckle.CancellationToken.Tests.fs Flatten module + update imports
tests/SwaggerProvider.ProviderTests/SwaggerProvider.ProviderTests.fsproj Remove v2 includes; flatten v3 includes
tests/SwaggerProvider.ProviderTests/Swagger.SchemaReaderErrors.Tests.fs Update schema fixture paths
tests/SwaggerProvider.ProviderTests/Swagger.PetStore.Tests.fs Flatten module name
tests/SwaggerProvider.ProviderTests/Swagger.NullableDate.Tests.fs Update schema fixture path
tests/SwaggerProvider.ProviderTests/Swagger.I0279.Tests.fs Update schema fixture path
tests/SwaggerProvider.ProviderTests/Swagger.I0219.Tests.fs Update schema fixture path
tests/SwaggerProvider.ProviderTests/Swagger.I0181.Tests.fs Update schema fixture path
tests/SwaggerProvider.ProviderTests/Swagger.I0173.Tests.fs Update schema fixture path
tests/SwaggerProvider.ProviderTests/Schemas/unsupported/issue0204.yaml Add unsupported schema fixture
tests/SwaggerProvider.ProviderTests/Schemas/swashbuckle.json Add v2 schema fixture for tests
tests/SwaggerProvider.ProviderTests/Schemas/petstore.yaml Add v3 petstore fixture
tests/SwaggerProvider.ProviderTests/Schemas/petstore-v2.json Add renamed v2 petstore fixture
tests/SwaggerProvider.ProviderTests/Schemas/nullable-parameter-issue261.json Add schema fixture
tests/SwaggerProvider.ProviderTests/Schemas/nullable-date.yaml Add schema fixture
tests/SwaggerProvider.ProviderTests/Schemas/issue255.yaml Add schema fixture
tests/SwaggerProvider.ProviderTests/Schemas/issue181.yaml Add schema fixture
tests/SwaggerProvider.ProviderTests/Schemas/issue132.json Add schema fixture
tests/SwaggerProvider.ProviderTests/Schemas/i0027.json Add schema fixture
tests/SwaggerProvider.ProviderTests/Schemas/github.json Add schema fixture
src/SwaggerProvider.DesignTime/v2/Parser/SwaggerParser.fs Removed v2 parser implementation
src/SwaggerProvider.DesignTime/v2/Parser/SchemaParserExceptions.fs Removed v2 parser exceptions
src/SwaggerProvider.DesignTime/v2/Parser/Schema.fs Removed v2 schema model types
src/SwaggerProvider.DesignTime/v2/Parser/Parsers.fs Removed v2 parsing pipeline
src/SwaggerProvider.DesignTime/v2/OperationCompiler.fs Removed v2 operation compiler
src/SwaggerProvider.DesignTime/v2/DefinitionCompiler.fs Removed v2 definition compiler
src/SwaggerProvider.DesignTime/SwaggerProvider.DesignTime.fsproj Remove v2 sources + Swagger provider; include flattened compilers
src/SwaggerProvider.DesignTime/Provider.SwaggerClient.fs Removed deprecated type provider
src/SwaggerProvider.DesignTime/Provider.OpenApiClient.fs Update compiler namespace import
src/SwaggerProvider.DesignTime/OperationCompiler.fs Rename namespace to Internal.Compilers
src/SwaggerProvider.DesignTime/DefinitionCompiler.fs Rename namespace to Internal.Compilers
paket.lock Update git dependency SHAs
docs/index.html Remove SwaggerClientProvider sidebar link
docs/SwaggerClientProvider.md Remove deprecated docs page

💡 Add Copilot custom instructions for smarter, more guided reviews. Learn how to get started.

@sergey-tihon sergey-tihon merged commit 255f93e into master Apr 13, 2026
6 checks passed
@sergey-tihon sergey-tihon deleted the repo-assist/fix-issue-376-remove-swagger-client-provider-eb303ce51497eef0 branch April 13, 2026 20:22
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Projects

None yet

Development

Successfully merging this pull request may close these issues.

Remove SwaggerClientProvider

2 participants