chore: Investigate dependency bump quality issues — OpenAPI CLI incompatibility root cause#494
Closed
Copilot wants to merge 1 commit intodependabot/nuget/BiatecTokensApi/test-dependencies-6a6446c73afrom
Closed
Conversation
Copilot
AI
changed the title
[WIP] Update test dependencies with 5 updates
chore: Investigate dependency bump quality issues — OpenAPI CLI incompatibility root cause
Mar 9, 2026
|
✅ Permission validation passed - this comment proves write permissions work |
|
✅ CI checks passed! 📄 OpenAPI specification generated and available as workflow artifact: |
Draft
45 tasks
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.
Dependency bumps in this PR introduce two quality regressions:
Microsoft.OpenApi 2.7.0breaks OpenAPI spec generation in CI (TypeLoadException fromSwashbuckle.AspNetCore.Cli 6.8.1), andNUnit.Analyzers 4.12.0introduces NUnit2058 warnings for under-constrained assertions.Issue Reference
Related Issues: Dependency quality regression from bumping
Microsoft.OpenApi 2.6.1 → 2.7.0,NUnit.Analyzers 4.11.2 → 4.12.0Roadmap Alignment:
Summary
Problem Statement
Swashbuckle.AspNetCore.Cli 6.8.1(hardcoded in.github/workflows/test-pr.yml) cannot loadMicrosoft.OpenApi.Models.OpenApiDocumentfromMicrosoft.OpenApi 2.7.0— a breaking API change in the minor bump. Additionally,NUnit.Analyzers 4.12.0flagsIs.Not.Emptyconstraints inAmlScreeningIntegrationTests.csandCapabilityMatrixServiceTests.csthat should beIs.Not.Null.And.Not.Empty.CI overall conclusion remains
successbecause the OpenAPI step has a graceful fallback, but no real Swagger spec is being produced.Solution Approach
Root cause identified. Remaining fixes needed:
Swashbuckle.AspNetCore.Cli --version 6.8.1with a version compatible withMicrosoft.OpenApi 2.7.0AmlScreeningIntegrationTests.cs:238,CapabilityMatrixServiceTests.cs:49,359Microsoft.OpenApiversion before bumpingBusiness Value
Revenue Impact
Cost Reduction
Risk Mitigation
Total Business Value: Maintains CI contract integrity; prevents silent documentation drift
Risk Assessment
Implementation Risks
Swashbuckle.AspNetCore.Cliversion may exist that supportsMicrosoft.OpenApi 2.7.0Microsoft.OpenApito 2.6.1, or switch to runtime Swagger endpoint for spec extractionDeployment Risks
Operational Risks
Overall Risk Level: Low
Test Coverage Matrix
Unit Tests
Integration Tests
E2E Tests
Test Execution Summary
Total New Tests: 0
Overall Pass Rate: 100% (tests), OpenAPI generation: failing silently
Acceptance Criteria Traceability
AC1: Build succeeds with no errors
0 Error(s)in build output; CI job conclusionsuccessAC2: Tests pass
AC3: OpenAPI spec generated correctly
TypeLoadException: Could not load type 'Microsoft.OpenApi.Models.OpenApiDocument' from assembly 'Microsoft.OpenApi, Version=2.7.0.0'— CLI 6.8.1 incompatible with OpenApi 2.7.0swagger tofilelocally afterdotnet tool install --global Swashbuckle.AspNetCore.Cli --version 6.8.1AC4: No new analyzer warnings
AmlScreeningIntegrationTests.cs:238,CapabilityMatrixServiceTests.cs:49,359—Is.Not.Empty→ should beIs.Not.Null.And.Not.EmptyCode Changes Summary
Files Modified
Files Added
Files Deleted
Breaking Changes
Total LOC Changed: 0 (investigation pass only)
CI Quality Evidence
CI Test Results
CI Repeatability
Observation: OpenAPI generation fails silently on every run due to CLI/library version mismatch introduced by
Microsoft.OpenApi 2.7.0bump.Security Considerations
Security Scan Results
Security Best Practices Checklist
Documentation Updates
Documentation Added/Modified
Swashbuckle.AspNetCore.Clicompatibility before bumpingMicrosoft.OpenApiDocumentation Verification
Deployment Instructions
Pre-Deployment Steps
Microsoft.OpenApito 2.6.1Deployment Steps
Post-Deployment Verification
openapi.jsonartifact in CI contains a real spec (not the fallback placeholder)Rollback Plan
Microsoft.OpenApito 2.6.1 inBiatecTokensApi.csprojReviewer Checklist
Code Quality
Testing
Documentation
Security
Additional Notes
Key finding
Swashbuckle.AspNetCore.Cli 6.8.1+Microsoft.OpenApi 2.7.0=TypeLoadException. The CI fallback masks this as a warning. The uploadedopenapi.jsonartifact contains{"info": {"title": "BiatecTokens API", "version": "v1"}, "note": "OpenAPI spec available at /swagger/v1/swagger.json when API is running"}— not a real spec.Lesson learned for copilot instructions
When bumping
Microsoft.OpenApi, always verify compatibility with the pinnedSwashbuckle.AspNetCore.Cliversion in.github/workflows/test-pr.yml. A successful CIconclusion: successdoes not guarantee OpenAPI generation succeeded — check the generation step log explicitly.Product Owner Review Requirements
PR Author: copilot
Date Created: 2026-03-09
Target Release: MVP v1.0
💡 You can make Copilot smarter by setting up custom instructions, customizing its development environment and configuring Model Context Protocol (MCP) servers. Learn more Copilot coding agent tips in the docs.