Skip to content

V10.0.7/service update#29

Merged
gimlichael merged 5 commits into
mainfrom
v10.0.7/service-update
May 23, 2026
Merged

V10.0.7/service update#29
gimlichael merged 5 commits into
mainfrom
v10.0.7/service-update

Conversation

@codebelt-aicia
Copy link
Copy Markdown
Contributor

This is a service update that focuses on package dependencies.

Automated changes:

  • Codebelt/Cuemon package versions bumped to latest compatible
  • PackageReleaseNotes.txt updated for v10.0.7
  • CHANGELOG.md entry added for v10.0.7

Note: Third-party packages (Microsoft.Extensions.*, BenchmarkDotNet, etc.) are not auto-updated.
Use Dependabot or manual updates for those.

Generated by codebelt-aicia
Triggered by: yamldotnet @ 10.1.3

@greptile-apps
Copy link
Copy Markdown

greptile-apps Bot commented May 23, 2026

Greptile Summary

This service update bumps Codebelt/Cuemon package dependencies to their latest compatible versions, lifts the NGINX documentation image, and introduces TFM-conditional Asp.Versioning package versions in Directory.Packages.props to align 8.1.x on .NET 9 and 10.0.0 on .NET 10.

  • Package updates: Codebelt/Cuemon packages bumped to 10.1.3/10.5.2, Microsoft.NET.Test.Sdk to 18.5.1, and coverlet.* to 10.0.1; third-party (Microsoft/xunit) packages intentionally left for Dependabot.
  • Conditional PackageVersion: Asp.Versioning.* is now split into two ItemGroup blocks conditioned on $(TargetFramework.StartsWith('net9')) and $(TargetFramework.StartsWith('net10')), using the MSBuild CPM inner-build evaluation pattern.
  • New tests: ApplicationBuilderExtensionsTest and ServiceCollectionExtensionsTest exercise UseRestfulApiVersioning (custom vs default factory, mapped vs unmapped status codes) and AddRestfulApiVersioning (explorer options, problem-details hook); FakeController gains helper endpoints used by these tests.

Confidence Score: 5/5

This PR is safe to merge — changes are limited to dependency version bumps, documentation, and additive test coverage with no modifications to production logic.

All production source files are unchanged. The only structural change is the split of Asp.Versioning package versions into TFM-conditional CPM blocks, which is a standard MSBuild inner-build pattern and does not alter any runtime behaviour. New tests correctly exercise existing middleware paths, including the distinction between [ApiController]-filtered controller endpoints and bare minimal-API endpoints for UseStatusCodePages scenarios.

No files require special attention.

Important Files Changed

Filename Overview
Directory.Packages.props Package version bumps and split of Asp.Versioning packages into TFM-conditional ItemGroups; standard CPM inner-build pattern, no issues found.
test/Codebelt.Extensions.Asp.Versioning.Tests/ApplicationBuilderExtensionsTest.cs New test file covering UseRestfulApiVersioning with custom factory, mapped status code (406 to NotAcceptableException), and unmapped status code (418 to InternalServerErrorException); correctly uses minimal-API endpoints to bypass [ApiController] ClientErrorResultFilter.
test/Codebelt.Extensions.Asp.Versioning.Tests/ServiceCollectionExtensionsTest.cs New test file covering AddRestfulApiVersioning options projection and CustomizeProblemDetails exception-throwing for unmapped status codes; tests are coherent with the ServiceCollectionExtensions implementation.
test/Codebelt.Extensions.Asp.Versioning.Tests/Assets/FakeController.cs Added GetNotAcceptable, GetTeapot, and GetProblem418 controller actions; GetProblem418 correctly relies on IProblemDetailsService being registered by AddRestfulApiVersioning in the test that calls it.
test/Codebelt.Extensions.Asp.Versioning.Tests/RestfulApiVersioningOptionsTest.cs Adds one test verifying that UseApiVersionSelector returns the same options instance and sets ApiVersionSelectorType correctly; straightforward and complete.
CHANGELOG.md v10.0.7 entry added and previously missing [10.0.6] comparison link corrected; [Unreleased] pointer updated to v10.0.7.
.docfx/Dockerfile.docfx NGINX base image bumped from 1.30.0-alpine to 1.31.0-alpine; routine version update.
.nuget/Codebelt.Extensions.Asp.Versioning/PackageReleaseNotes.txt v10.0.7 release note block prepended; format consistent with existing entries.

Sequence Diagram

sequenceDiagram
    participant Client as Test Client
    participant SCP as UseStatusCodePages
    participant EP as Endpoint (minimal-API)
    participant Factory as StatusCodeException Factory

    Note over Client,Factory: UseRestfulApiVersioning custom factory
    Client->>SCP: GET /test/not-acceptable
    SCP->>EP: next()
    EP-->>SCP: Response 406 (no content-type)
    SCP->>Factory: invoke custom factory(context)
    Factory-->>SCP: NotAcceptableException
    SCP->>SCP: throw NotAcceptableException
    SCP-->>Client: NotAcceptableException propagated

    Note over Client,Factory: UseRestfulApiVersioning default factory unmapped
    Client->>SCP: GET /test/teapot
    SCP->>EP: next()
    EP-->>SCP: Response 418 (no content-type)
    SCP->>Factory: "TryParse(418) = false"
    Factory-->>SCP: InternalServerErrorException
    SCP->>SCP: throw InternalServerErrorException
    SCP-->>Client: InternalServerErrorException propagated

    Note over Client,Factory: AddRestfulApiVersioning CustomizeProblemDetails hook
    participant PDS as IProblemDetailsService
    participant CPD as CustomizeProblemDetails
    Client->>EP: GET /fake/problem418
    EP->>PDS: "WriteAsync(ProblemDetails Status=418)"
    PDS->>CPD: CustomizeProblemDetails(context)
    CPD->>CPD: "TryParse(418) = false"
    CPD->>CPD: throw InternalServerErrorException
    CPD-->>Client: InternalServerErrorException propagated
Loading

Reviews (2): Last reviewed commit: "🎯 add integration tests for middleware ..." | Re-trigger Greptile

@codecov
Copy link
Copy Markdown

codecov Bot commented May 23, 2026

Codecov Report

✅ All modified and coverable lines are covered by tests.
✅ Project coverage is 100.00%. Comparing base (05dc1a0) to head (9f71b65).

Additional details and impacted files
@@             Coverage Diff              @@
##             main       #29       +/-   ##
============================================
+ Coverage   89.69%   100.00%   +10.30%     
============================================
  Files           4         4               
  Lines          97        97               
  Branches        9         9               
============================================
+ Hits           87        97       +10     
+ Misses         10         0       -10     

☔ View full report in Codecov by Sentry.
📢 Have feedback on the report? Share it here.

🚀 New features to boost your workflow:
  • ❄️ Test Analytics: Detect flaky tests, report on failures, and find test suite problems.

aicia-bot added 4 commits May 23, 2026 21:06
Comprehensive changelog entry for version 10.0.7 with dual-framework support details.
Emphasizes explicit Asp.Versioning package versions for .NET 9 (8.1.1) and .NET 10
(10.0.0), enhanced test coverage, and dependency updates. Updated comparison links.
Refactor Directory.Packages.props to use framework-conditional targeting for
Asp.Versioning: 8.1.1 for .NET 9 and 10.0.0 for .NET 10. Upgrade test SDK and
coverage tools to latest compatible versions. Bump nginx base image from 1.30.0
to 1.31.0 in Dockerfile.docfx.
Expand FakeController with new endpoints (problem418, teapot) for testing unmapped
HTTP status codes and IProblemDetailsService integration. Add UseApiVersionSelector{T}
test case to RestfulApiVersioningOptionsTest validating fluent builder pattern for API
version selector configuration.
Create ApplicationBuilderExtensionsTest for comprehensive UseRestfulApiVersioning
middleware testing with custom factory and default status code mapping scenarios.
Create ServiceCollectionExtensionsTest for AddRestfulApiVersioning configuration
including API explorer options and IProblemDetailsService integration validation.
@sonarqubecloud
Copy link
Copy Markdown

@gimlichael gimlichael merged commit 23c08f5 into main May 23, 2026
23 checks passed
@gimlichael gimlichael deleted the v10.0.7/service-update branch May 23, 2026 19:13
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.

2 participants