mirror of
https://github.com/GeWuYou/GFramework.git
synced 2026-05-06 16:16:44 +08:00
- 修复 runtime-generator 边界校验对独立与带参数 attribute 的漏报问题,并过滤注释示例误报 - 新增 Python 回归测试覆盖独立、限定名、多 attribute 与文档示例场景 - 更新贡献文档与 ai-plan 记录,移除面向用户文档中的内部治理段落并补充验证结果
2.9 KiB
2.9 KiB
Runtime / Generator Boundary Tracking
Goal
Keep runtime, abstractions, and meta-package modules free from source-generator project references, source-generator attributes, and leaked NuGet dependencies.
Current Recovery Point
- Recovery point: RGB-RP-001
- Phase: remove
GFramework.Gamegenerator coupling and add repository guardrails - Focus:
- delete
GFramework.Game's dependency onGFramework.Core.SourceGenerators.Abstractions - remove unused
[GenerateEnumExtensions]usage fromGFramework.Game - add static and packed-package validation so runtime packages cannot regress
- delete
Active Risks
- A runtime package can still compile locally if it references a non-packable generator helper project, so regressions are easy to miss without an explicit guard.
- A leaked package dependency may only surface when a consumer restores from NuGet, not during normal repository builds.
Completed In This Stage
- Confirmed
GFramework.Gamewas the direct runtime offender andGeWuYou.GFramework.GameleakedGFramework.Core.SourceGenerators.Abstractionsinto its nuspec dependency graph. - Confirmed the two
[GenerateEnumExtensions]usages insideGFramework.Gamedo not need generated output and can be removed outright. - Verified current PR review findings locally: the validator regex still missed standalone attributes, while the
docs/zh-CN/contributing.mdgenerator-boundary text should be removed instead of repositioned because it is maintainer-facing governance rather than reader-facing contribution guidance. - Added a Python regression test for standalone, parameterized, fully qualified, and multi-attribute declarations so future validator edits cannot silently reintroduce the false negative.
- Added comment-line filtering for the validator after the first regex fix started matching XML documentation examples
such as
/// [ContextAware], which would otherwise create false CI failures for reader-facing code comments.
Validation Target
python3 scripts/validate-runtime-generator-boundaries.pypython3 scripts/test_validate_runtime_generator_boundaries.pypython3 scripts/license-header.py --checkdotnet build GFramework.Game/GFramework.Game.csproj -c Releasedotnet build GFramework.Godot/GFramework.Godot.csproj -c Releasedotnet pack GFramework.sln -c Release -p:PackageVersion=<local>
Latest Validation Result
python3 scripts/test_validate_runtime_generator_boundaries.pypassed on 2026-05-05.python3 scripts/validate-runtime-generator-boundaries.pypassed on 2026-05-05.python3 scripts/license-header.py --checkpassed on 2026-05-05.dotnet build GFramework.Game/GFramework.Game.csproj -c Releasepassed on 2026-05-05 with 0 warnings and 0 errors.
Next Recommended Resume Step
Run the boundary validator, the new Python regression tests, and the minimal Release build/pack validation; then push the follow-up commit so the open PR review threads can be resolved against fresh CI.