mirror of
https://github.com/GeWuYou/GFramework.git
synced 2026-05-13 14:14:29 +08:00
- 修复 SchemaConfigGeneratorTests 中冗余的 global:: 返回类型声明 - 归档 analyzer-warning-reduction 主题的 RP-002 至 RP-041 详细 tracking 与 trace 历史 - 更新 RP-042 的 active 跟踪与验证记录以反映 PR #280 follow-up 结论
60 lines
4.4 KiB
Markdown
60 lines
4.4 KiB
Markdown
# Analyzer Warning Reduction 跟踪
|
||
|
||
## 目标
|
||
|
||
继续以“优先低风险、保持行为兼容”为原则收敛当前仓库的 Meziantou analyzer warnings,并确保 active recovery 入口保持精简、可恢复。
|
||
|
||
## 当前恢复点
|
||
|
||
- 恢复点编号:`ANALYZER-WARNING-REDUCTION-RP-042`
|
||
- 当前阶段:`Phase 42`
|
||
- 当前焦点:
|
||
- 已于 `2026-04-24` 使用 `gframework-pr-review` 复核当前分支 PR #280,latest-head review 仍有 `3` 条 open threads
|
||
- 本地确认仍成立的项只有两类:`SchemaConfigGeneratorTests` 的冗余 `global::` 返回类型,以及 active tracking/trace 需要归档压缩
|
||
- `Greptile` 指出的返回类型冗余不影响行为;本轮按最小改动收口,避免扩大测试写集
|
||
- `RP-041` 验证完成时,分支相对 `origin/main` 的唯一变更文件数为 `4`;这说明继续只处理同一热点文件时,该指标增长会很慢
|
||
- `GFramework.SourceGenerators.Tests` 在 `RP-042` 的 `net10.0` Release build 中仍为 `10` 条 `MA0051` warning、`0` error;剩余热点继续集中在 `CqrsHandlerRegistryGeneratorTests.cs`
|
||
|
||
## 当前状态摘要
|
||
|
||
- 已将旧 active tracking / trace 的详细阶段历史归档到主题内 `archive/`,避免 `boot` 默认入口继续承载 `RP-002` 到 `RP-041` 的长历史
|
||
- 当前 active 文档仅保留恢复点、活跃事实、风险、验证结论与下一步建议
|
||
- PR #280 的 MegaLinter 仍显示 `dotnet-format` warning,但测试报告为 `2156 passed / 0 failed`;该 warning 目前更像 CI 环境 restore / SDK 噪音,而不是本地代码行为回归
|
||
|
||
## 当前活跃事实
|
||
|
||
- 当前主题仍保持 active,因为 `GFramework.SourceGenerators.Tests` 尚有剩余 `MA0051` warning 需要决定是否继续推进
|
||
- 继续按“单文件单方法”节奏处理 `CqrsHandlerRegistryGeneratorTests.cs` 可以稳定消除 warning,但不利于快速提高唯一变更文件数
|
||
- 当前 PR review 已没有新的 failed-test 信号;后续优先级应回到本地仍成立的 review thread 和剩余 warning 热点
|
||
|
||
## 当前风险
|
||
|
||
- warning 治理策略风险:如果用户仍以“唯一变更文件数接近 `75`”作为目标,继续深挖同一测试文件会让目标推进缓慢
|
||
- 缓解措施:下一轮先确认是继续压低 `MA0051` 基线,还是切换到新的文件写集
|
||
- WSL 构建环境风险:当前 worktree 的 .NET 定向验证仍需显式附带 `-p:RestoreFallbackFolders=`,并在沙箱外运行以规避命名管道 / socket 限制
|
||
- 缓解措施:后续所有 affected-project Release build 继续复用该参数组合
|
||
- source generator test warning 范围风险:一旦继续触达 `GFramework.SourceGenerators.Tests`,剩余 warning 会继续成为本轮完成条件的一部分
|
||
- 缓解措施:继续用最小写集和 warnings-only build 锁定范围
|
||
|
||
## 活跃文档
|
||
|
||
- 历史跟踪归档:
|
||
- [analyzer-warning-reduction-history-rp001.md](../archive/todos/analyzer-warning-reduction-history-rp001.md)
|
||
- [analyzer-warning-reduction-history-rp002-rp041.md](../archive/todos/analyzer-warning-reduction-history-rp002-rp041.md)
|
||
- 历史 trace 归档:
|
||
- [analyzer-warning-reduction-history-rp001.md](../archive/traces/analyzer-warning-reduction-history-rp001.md)
|
||
- [analyzer-warning-reduction-history-rp002-rp041.md](../archive/traces/analyzer-warning-reduction-history-rp002-rp041.md)
|
||
|
||
## 验证说明
|
||
|
||
- `DOTNET_CLI_HOME=/tmp/dotnet-home dotnet restore GFramework.SourceGenerators.Tests/GFramework.SourceGenerators.Tests.csproj -p:RestoreFallbackFolders=""`
|
||
- 结果:通过;重写了受 Windows fallback package folder 影响的测试项目资产文件
|
||
- `DOTNET_CLI_HOME=/tmp/dotnet-home dotnet build GFramework.SourceGenerators.Tests/GFramework.SourceGenerators.Tests.csproj -c Release -t:Rebuild --no-restore --disable-build-servers -m:1 -p:UseSharedCompilation=false -p:RestoreFallbackFolders="" -nologo -clp:"Summary;WarningsOnly"`
|
||
- 结果:`10 Warning(s)`,`0 Error(s)`;warning 仍全部来自 `CqrsHandlerRegistryGeneratorTests.cs` 的既有 `MA0051` 基线
|
||
|
||
## 下一步建议
|
||
|
||
1. 提交 `RP-042` 后重新抓取 PR #280 review,确认这 `3` 条 latest-head open threads 是否随新提交收敛
|
||
2. 若 PR threads 收敛,再决定下一轮是继续清理 `CqrsHandlerRegistryGeneratorTests.cs` 的剩余 `MA0051`,还是切换到新的文件写集
|
||
3. 如果仍要继续沿用“唯一变更文件数接近 `75`”的目标,应优先切到新的 warning 写集,而不是继续深挖同一测试文件
|