chore: upgrade Asp.Versioning.Mvc to v10.0.0

未关闭
#165 2 条评论 0 个 reaction 已指派 0 人 在 GitHub 查看

维护者通常 1 天内回复

还没有人认领这个 Issue。

评估

难度
4/5
预计耗时
3-5 天
新手友好度
35/100
Issue 类型
重构
描述清晰度
描述清楚
活跃度
冷清
技术栈
csharp, openapi

调研方向

First check whether Asp.Versioning.OpenApi has reached a stable NuGet release; the issue says to wait until it has. Then review TaskFlow.Api.csproj, Extensions/ApiVersioningServiceExtensions.cs, Extensions/OpenApiServiceExtensions.cs, and Program.cs for the versioning and OpenAPI wiring. Verify the Scalar UI, version tagged OpenAPI output, test suite, and vulnerable package report against the acceptance criteria.

由索引模型根据 Issue 内容生成。

描述

blocked

On hold (2026-10-30), part of #372 (Move to .NET 11). Verified from the NuGet nuspecs: Asp.Versioning.OpenApi 10.2.3 depends on Microsoft.OpenApi [2.7.5, 3.0.0) and on Microsoft.AspNetCore.OpenApi 10.0.10, and Asp.Versioning.Mvc 10.2.1 targets net10.0 only. The 2.7.5 pin in this repo satisfies that range, so the migration itself should resolve cleanly on .NET 10. But the <3.0.0 cap is exactly what #301 has to get past: Microsoft.AspNetCore.OpenApi 11.x needs Microsoft.OpenApi 3.10.2 or later. Adopting Asp.Versioning.OpenApi now would block the .NET 11 move until Asp.Versioning ships a release that accepts Microsoft.OpenApi 3.x. 8.1.1 works on .NET 10, so there is no urgency. Take this with the .NET 11 move, or when such a release exists, whichever is first.

Background

Asp.Versioning.Mvc and Asp.Versioning.Mvc.ApiExplorer were held at 8.1.1 in #164 (backend NuGet dependency audit). The 10.x line carries breaking changes to OpenAPI wiring that require a dedicated migration.

Update (2026-10-12): the prerequisite is met. Asp.Versioning.OpenApi now has stable releases, and the latest versions on NuGet are:

Package Currently pinned Latest stable
Asp.Versioning.Mvc 8.1.1 10.2.1
Asp.Versioning.Mvc.ApiExplorer 8.1.1 10.2.1
Asp.Versioning.OpenApi (new) not referenced 10.2.3

The original target of 10.0.0 is superseded. Target the latest stable release, and review the changelogs between 10.0.0 and 10.2.x for further breaking changes.

What needs to change

Version 10 changes how OpenAPI integration is wired:

  • The old pattern (services.AddOpenApi("v1", options => ...) from Microsoft.AspNetCore) is replaced by a fluent chain: AddApiVersioning().AddApiExplorer().AddOpenApi()
  • app.MapOpenApi() must be replaced by app.MapOpenApi().WithDocumentPerVersion()
  • The custom ApiVersionDocumentTransformer in Extensions/OpenApiServiceExtensions.cs may need to be adapted or replaced by the new VersionedOpenApiOptions surface
  • A new companion package Asp.Versioning.OpenApi is required

Things to watch

  • Microsoft.OpenApi is pinned to 2.7.5 to resolve CVE-2026-49451 (commit 0c60491). Confirm Asp.Versioning.OpenApi resolves cleanly with that pin and that the CVE stays fixed (dotnet list package --vulnerable).
  • Current wiring: Program.cs calls AddApiVersioningConfiguration() and OpenApiServiceExtensions.AddOpenApi(...), and app.UseOpenApiWithScalar().

Files likely affected

  • TaskFlow.Api/TaskFlow.Api.csproj — add Asp.Versioning.OpenApi, bump Asp.Versioning.Mvc and Asp.Versioning.Mvc.ApiExplorer to the latest stable (10.2.1)
  • TaskFlow.Api/Extensions/ApiVersioningServiceExtensions.cs
  • TaskFlow.Api/Extensions/OpenApiServiceExtensions.cs
  • TaskFlow.Api/Program.cs (if MapOpenApi call needs updating)

Acceptance criteria

  • Asp.Versioning.OpenApi is at a stable release (10.2.3 as of 2026-10-12)
  • Asp.Versioning.Mvc and Asp.Versioning.Mvc.ApiExplorer updated to the latest stable (10.2.1)
  • Scalar UI at /scalar/v1 renders correctly with API version selection working
  • Generated OpenAPI JSON is valid and version-tagged
  • npm run gen:api still produces a working client (the generator reads the live OpenAPI spec)
  • All backend tests pass (dotnet test) and dotnet format --verify-no-changes is clean
  • dotnet list package --vulnerable reports zero findings
主要语言
C#
星标
1
派生
0
平均合并
2 小时 2 分钟
30 天内合并 PR
98

环境准备

  • 提供 Dockerfile 或 Docker Compose 文件
  • 没有 Pull Request 模板
  • 阅读贡献指南

从这里开始

  1. 先读完整个 Issue,再读项目的贡献指南。
  2. 在 Issue 下留言说明你要接手 —— 这能避免两个人做同样的事。
  3. Fork 仓库,在一个分支上完成修改。
  4. 提交 Pull Request,并在描述里引用这个 Issue 编号。

nevridge/TaskFlow 的其他 Issue

查看 nevridge/TaskFlow 的全部 Issue

相似的 Issue

更多 C# Issue

把新 issue 发到你的邮箱

精选适合新手参与的 GitHub issue 摘要。