mirror of
https://github.com/GeWuYou/GFramework.git
synced 2026-05-07 00:39:00 +08:00
- 修复 ReadYamlAsync 在取消时错误包装异常的问题,并对齐 IntegerTryParseDelegate 的可空性签名 - 更新 Ioc 与 Query 测试辅助类型的 XML 文档,并让 IPrioritizedService 复用 IMixedService 的 Name 契约 - 补充 YamlConfigLoader 取消语义回归测试并同步 analyzer warning reduction 跟踪
5.4 KiB
5.4 KiB
Analyzer Warning Reduction 跟踪
目标
继续以“直接看构建输出、直接修构建 warning”为原则推进当前分支,并保持 active recovery 文档只保留当前真值。
当前恢复点
- 恢复点编号:
ANALYZER-WARNING-REDUCTION-RP-084 - 当前阶段:
Phase 84 - 当前焦点:
2026-04-27已完成 PR#297的 CodeRabbit follow-up,修复YamlConfigLoader的取消语义与IntegerTryParseDelegate可空性问题- 已补齐
GFramework.Core.Tests/Ioc与GFramework.Core.Tests/Query中 review 指向的 XML 文档缺口,并让IPrioritizedService复用IMixedService.Name契约 - 已新增
YamlConfigLoaderTests回归测试,锁定“取消时保留OperationCanceledException”这一行为 - 当前分支的下一波 warning reduction 仍建议回到
ArchitectureContextTests.cs、AsyncQueryExecutorTests.cs或YamlConfigSchemaValidator*的后续 slice
当前活跃事实
- 当前
origin/main基线提交为b6a9fef(2026-04-27T10:53:34+08:00)。 - 当前直接验证结果:
dotnet build GFramework.Game/GFramework.Game.csproj -c Release- 最新结果:成功;
0 Warning(s)、0 Error(s)
- 最新结果:成功;
dotnet build GFramework.Core.Tests/GFramework.Core.Tests.csproj -c Release- 最新结果:成功;
0 Warning(s)、0 Error(s)
- 最新结果:成功;
dotnet test GFramework.Game.Tests/GFramework.Game.Tests.csproj -c Release --filter "FullyQualifiedName~YamlConfigLoaderTests.ReadYamlAsync_Should_Preserve_OperationCanceledException_When_Cancellation_Is_Requested"- 最新结果:成功;
1通过、0失败
- 最新结果:成功;
dotnet test GFramework.Core.Tests/GFramework.Core.Tests.csproj -c Release --filter "FullyQualifiedName~MicrosoftDiContainerTests.GetAllByPriority_Should_Sort_By_Priority_Ascending"- 最新结果:成功;
1通过、0失败
- 最新结果:成功;
dotnet format GFramework.sln --verify-no-changes --include GFramework.Game/Config/YamlConfigLoader.cs GFramework.Game.Tests/Config/YamlConfigLoaderTests.cs GFramework.Core.Tests/Ioc/IMixedService.cs GFramework.Core.Tests/Ioc/IPrioritizedService.cs GFramework.Core.Tests/Ioc/PrioritizedService.cs GFramework.Core.Tests/Query/TestAsyncQueryWithExceptionV4.cs- 最新结果:成功;本次 PR follow-up 改动文件无需额外格式化
- 当前批次摘要:
- 本轮完成 PR
#297最新 head review 中仍然有效的3个 open threads 修复:YamlConfigLoader取消语义、IMixedService.NameXML 文档、IPrioritizedService相关契约整理 - 本轮同时吸收 CodeRabbit folded nitpick 中仍然成立的
2个点:IntegerTryParseDelegate可空性对齐、TestAsyncQueryWithExceptionV4.OnDoAsync的<returns>文档 - 本轮新增一条精确回归测试,确保底层 YAML 文件读取在取消时继续抛出
OperationCanceledException系列异常,而不是包装成ConfigLoadException
- 本轮完成 PR
- 当前建议保留到下一波次的候选:
GFramework.Core.Tests/Architectures/ArchitectureContextTests.cs的7个MA0048GFramework.Core.Tests/Query/AsyncQueryExecutorTests.cs的7个MA0048GFramework.Game/Config/YamlConfigSchemaValidator.cs与YamlConfigSchemaValidator.ObjectKeywords.cs的高耦合 warning 热点
当前风险
GFramework.Cqrs.Tests/Mediator/*仍有47/44/34个唯一 warning 位点,属于高 changed-file 风险的MA0048大波次。- 缓解措施:优先继续处理
6-7个 warning 的小文件切片,避免一次性推高文件数。
- 缓解措施:优先继续处理
YamlConfigSchemaValidator*仍然聚集多类高耦合 warning。- 缓解措施:继续把它们留在独立波次,不与测试项目的低风险拆分混提。
活跃文档
- 当前轮次归档:
- 历史跟踪归档:
- 历史 trace 归档:
验证说明
- 权威验证结果统一维护在“当前活跃事实”。
GFramework.Core.Tests项目级 Release 构建已在本轮清零,但仓库根 non-incremental 构建仍保留大量既有 warning。- warning reduction 的仓库级真值只以同轮
dotnet clean后的dotnet build为准。
下一步建议
- 提交本轮 PR
#297review follow-up 与ai-plan同步。 - 下一波优先挑选
ArchitectureContextTests.cs或AsyncQueryExecutorTests.cs这类7-warning 的纯MA0048单文件切片。 - 继续将
YamlConfigSchemaValidator*与GFramework.Cqrs.Tests/Mediator/*作为独立高风险波次处理。