- 创建了项目结构和模块组织说明 - 添加了构建测试和开发命令指南 - 定义了代码风格和命名约定规范 - 提供了测试指南和最佳实践 - 包含了提交和拉取请求准则 - 记录了解决方案文件和目录布局说明
2.6 KiB
Repository Guidelines
Project Structure & Module Organization
GFramework.sln is the entry point for the full .NET solution. Runtime code lives in GFramework.Core/,
GFramework.Game/, GFramework.Godot/, and GFramework.Ecs.Arch/. Interface-only contracts stay in the paired
*.Abstractions/ projects. Roslyn generators are split across GFramework.SourceGenerators/,
GFramework.Godot.SourceGenerators/, and GFramework.SourceGenerators.Common/. Tests mirror the runtime modules in
GFramework.Core.Tests/, GFramework.Game.Tests/, GFramework.Ecs.Arch.Tests/, and
GFramework.SourceGenerators.Tests/. Documentation is under docs/, Godot templates under Godot/script_templates/,
and repository utilities under scripts/ and refactor-scripts/.
Build, Test, and Development Commands
dotnet build GFramework.slnbuilds the full solution from the repo root.dotnet test GFramework.sln --no-buildruns all NUnit test projects after a build.dotnet test GFramework.Core.Tests --filter "FullyQualifiedName~CommandExecutorTests.Execute"runs a focused NUnit test.bash scripts/validate-csharp-naming.shchecks PascalCase namespace and directory rules used by CI.cd docs && bun install && bun run devstarts the VitePress docs site locally.
Coding Style & Naming Conventions
Use standard C# formatting with 4-space indentation and one public type per file. The repository keeps ImplicitUsings
disabled and Nullable enabled, so write explicit using directives and annotate nullability carefully. Follow
PascalCase for types, methods, namespaces, directories, and constants; use _camelCase for private fields and
camelCase for locals and parameters. Keep namespaces aligned with folders, for example
GFramework.Core.Architectures.
Testing Guidelines
Tests use NUnit 4 with Microsoft.NET.Test.Sdk; some suites also use Moq. Place tests in the matching module test
project and name files *Tests.cs. Prefer directory parity with production code, for example GFramework.Core/Logging/
and GFramework.Core.Tests/Logging/. Add or update tests for every behavior change, especially public APIs, source
generators, and integration paths.
Commit & Pull Request Guidelines
Recent history follows Conventional Commit style such as feat(events): ..., refactor(localization): ...,
docs(guide): ..., and test(localization): .... Keep commits scoped and imperative. PRs should explain the
motivation, implementation, and validation commands run; link related issues; and include screenshots when docs, UI, or
Godot-facing behavior changes.