394 Commits

Author SHA1 Message Date
GeWuYou
6c2e89bc4f feat(data): 添加统一设置仓库和运行时类型序列化支持
- 新增 UnifiedSettingsRepository 类实现单一文件存储所有设置数据
- 扩展 JsonSerializer 实现 IRuntimeTypeSerializer 接口支持运行时类型序列化
- 修改 DataRepositoryOptions 默认键名前缀为空字符串
- 实现异步加载、保存、删除和检查数据功能
- 添加数据事件通知机制支持
- 实现线程安全的数据缓存和文件操作
- [release ci]
v0.0.142
2026-01-29 20:57:05 +08:00
GeWuYou
86cd947006 chore(ci): 更新工作流配置以启用工件上传和历史结果获取
- 添加 upload-artifact 选项以启用测试工件上传
- 添加 fetch-previous-results 选项以获取历史测试结果
- 这些变更将改进测试报告和结果对比功能
2026-01-29 20:07:42 +08:00
GeWuYou
8ea9752fc8 chore(ci): 更新 .NET 工具命令参数
- 将 DotnetCtrfJsonReporter 的输出参数从 -o 替换为 -d 和 -f
- 为 ctrf 输出目录添加显式指定参数
- 为输出文件名添加格式化参数
- 保持测试报告生成功能在测试后执行的逻辑不变
2026-01-29 20:02:24 +08:00
GeWuYou
fe9f610c93 fix(ci): 修复CTRF报告生成脚本中的输出路径配置
- 为每个TRX文件指定正确的JSON输出路径
- 使用basename提取文件名并构建输出路径
- 添加目录创建确保输出目录存在
- 改进处理消息显示源和目标文件名
- 确保所有TRX文件都能正确转换为JSON格式
2026-01-29 19:59:33 +08:00
GeWuYou
c01ab04292 refactor(ci): 分离核心和源生成器测试流程
- 将单一测试步骤拆分为核心测试和源生成器测试两个独立步骤
- 为核心测试指定特定的程序集GFramework.Core.Tests
- 为源生成器测试指定特定的程序集GFramework.SourceGenerators.Tests
- 更新测试报告文件命名规则以区分不同测试类型
- 移除合并后的CTRF报告生成步骤
2026-01-29 19:54:47 +08:00
GeWuYou
b9e7caeada fix(ci): 修复测试报告生成逻辑
- 修改TRX文件名生成方式,避免并发测试时文件冲突
- 更新CTRF报告生成逻辑,支持处理多个测试结果文件
- 添加目录创建确保CTRF输出路径存在
- 改进循环处理所有TRX文件而不是仅处理最新一个
2026-01-29 19:50:19 +08:00
GeWuYou
0bc4e0d8ff fix(ci): 简化测试报告生成逻辑
- 修改TRX文件名生成方式,使用变量存储报告文件名
- 移除循环处理多个TRX文件的逻辑,改为只处理最新文件
- 删除调试步骤以简化工作流配置
- 保持测试报告功能正常运行
2026-01-29 19:45:51 +08:00
GeWuYou
ed72103c59 fix(ci): 修复测试报告生成逻辑
- 更新 TRX 日志文件名格式以包含程序集和框架信息
- 修改 CTRF 报告生成脚本以处理多个测试结果文件
- 添加循环遍历所有 TRX 文件并生成对应 CTRF 报告
- 移除只处理最新单个文件的限制
2026-01-29 19:34:28 +08:00
GeWuYou
dee89e1134 feat(ci): 更新CI工作流以支持多版本.NET SDK
- 添加.NET 9和.NET 10版本的支持
- 将原有的.NET SDK设置步骤重命名为.NET 8
- 配置多个.NET版本以进行兼容性测试
- 更新actions/setup-dotnet到v5版本
- 优化SDK安装流程以提高构建效率
2026-01-29 19:27:46 +08:00
GeWuYou
c46cfa265e fix(ci): 修复CI工作流中的.NET SDK版本配置和测试报告生成
- 修正了.NET SDK版本配置,支持多个版本并移除重复配置
- 更新了测试结果文件命名格式以避免冲突
- 修复了CTRF报告生成的路径和参数配置
- 移除了调试步骤中的条件检查逻辑
2026-01-29 19:23:34 +08:00
GeWuYou
524ceff770 chore(ci): 简化CTRF报告生成配置
移除手动创建目录和多参数调用方式,改用简化的命令行参数
直接指定TRX文件路径,提高构建脚本的可读性和维护性
2026-01-29 17:32:24 +08:00
GeWuYou
9a158d6c7e feat(ci): 添加CTRF报告生成和调试步骤
- 创建ctrf输出目录
- 使用DotnetCtrfJsonReporter工具生成CTRF格式测试报告
- 添加调试步骤验证CTRF文件生成
- 配置工具参数以正确处理TRX文件并输出JSON报告
2026-01-29 17:24:48 +08:00
GeWuYou
c61f19126a feat(ci): 添加.NET工具恢复步骤
在CI工作流中添加了.NET本地工具恢复步骤,确保构建过程中使用的本地工具能够正确安装和配置。
2026-01-29 17:15:29 +08:00
GeWuYou
cfef1e1d03 feat(ci): 集成测试报告生成和发布功能
新增DotnetCtrfJsonReporter工具来生成JSON格式的测试报告,
并添加GitHub测试报告发布步骤,支持PR报告、摘要对比、
洞察分析、易失率、失败率和最慢测试等多维度报告展示。
2026-01-29 17:10:59 +08:00
GeWuYou
f2b3c8663e feat: 添加 dotnet 工具配置文件
新增 .config/dotnet-tools.json 配置文件,集成 DotnetCtrfJsonReporter 工具。
[skip ci]
2026-01-29 17:05:18 +08:00
GeWuYou
7a1b43dff1 feat(ci): 集成TruffleHog敏感信息扫描工具
在CI工作流中添加TruffleHog OSS扫描步骤,用于检测代码库中的敏感信息泄露,
如API密钥、密码等。该工具会比较基础分支和当前提交之间的差异,
扫描新增内容中是否包含敏感数据,提升代码安全性。
2026-01-29 15:59:39 +08:00
dependabot[bot]
717ea7a161 chore(deps): bump actions/cache from 3 to 5
Bumps [actions/cache](https://github.com/actions/cache) from 3 to 5.
- [Release notes](https://github.com/actions/cache/releases)
- [Changelog](https://github.com/actions/cache/blob/main/RELEASES.md)
- [Commits](https://github.com/actions/cache/compare/v3...v5)

---
updated-dependencies:
- dependency-name: actions/cache
  dependency-version: '5'
  dependency-type: direct:production
  update-type: version-update:semver-major
...

Signed-off-by: dependabot[bot] <support@github.com>
2026-01-29 13:08:02 +08:00
dependabot[bot]
47b9007793 chore(deps): bump actions/checkout from 4 to 6
Bumps [actions/checkout](https://github.com/actions/checkout) from 4 to 6.
- [Release notes](https://github.com/actions/checkout/releases)
- [Changelog](https://github.com/actions/checkout/blob/main/CHANGELOG.md)
- [Commits](https://github.com/actions/checkout/compare/v4...v6)

---
updated-dependencies:
- dependency-name: actions/checkout
  dependency-version: '6'
  dependency-type: direct:production
  update-type: version-update:semver-major
...

Signed-off-by: dependabot[bot] <support@github.com>
2026-01-29 13:02:07 +08:00
dependabot[bot]
d7a5a3fde4 chore(deps): bump actions/setup-dotnet from 4 to 5
Bumps [actions/setup-dotnet](https://github.com/actions/setup-dotnet) from 4 to 5.
- [Release notes](https://github.com/actions/setup-dotnet/releases)
- [Commits](https://github.com/actions/setup-dotnet/compare/v4...v5)

---
updated-dependencies:
- dependency-name: actions/setup-dotnet
  dependency-version: '5'
  dependency-type: direct:production
  update-type: version-update:semver-major
...

Signed-off-by: dependabot[bot] <support@github.com>
2026-01-29 12:57:08 +08:00
GeWuYou
d5b05c1578 chore(workflow): 更新 GitHub Actions 工作流配置
- 移除 auto-tag 工作流中的 ref 参数配置
- 清理工作流中多余的检查跳过关键词步骤
- 为 ci 工作流添加内容读取权限配置
- 优化工作流触发条件和权限设置
2026-01-29 12:42:22 +08:00
GeWuYou
411cac4028 chore(workflow): 更新自动标签工作流以支持发布触发条件
- 在 auto-tag 工作流中添加对 [release ci] 提交消息的检查
- 仅当提交消息包含 [release ci] 时才执行标签创建
- 在发布工作流中启用自动生成发布说明功能
- 配置 GitHub Release 操作以自动生成版本发布说明
- [skip ci]
2026-01-29 12:28:59 +08:00
GeWuYou
9b77aa4b07 fix(workflow): 修复自动标签工作流中的重复标签问题
- 添加了对现有标签的检查以避免重复创建
- 配置了从正确的提交哈希进行检出
- 在推送标签前验证标签是否已存在
- 添加了标签已存在时的优雅退出机制
- 确保了 Git 配置的一致性设置
2026-01-29 12:23:07 +08:00
GeWuYou
ef655bbaf1 refactor(workflow): 重构自动标签工作流并添加CI构建测试
- 将自动标签触发方式从直接push改为基于CI工作流完成状态
- 新增独立的CI构建测试工作流配置文件
- 简化自动标签逻辑,移除跳过关键字检查和版本解析冗余代码
- 优化Git标签创建和推送流程,统一配置用户名邮箱
- 集成.NET项目构建测试流程,包含依赖恢复、编译和单元测试
- 更新工作流权限配置和并发控制设置
2026-01-29 12:14:38 +08:00
GeWuYou
2f443087a4 ci(workflow): 添加 CodeQL 静态代码分析工作流
- 配置 GitHub Actions 工作流用于 C# 项目安全漏洞分析
- 设置在 main 分支推送和拉取请求时触发扫描
- 添加每周二凌晨 4 点 41 分的定时安全扫描
- 配置 .NET 8.0.x、9.0.x 和 10.0.x 版本环境支持
- 初始化 CodeQL 分析环境并启用 C# 语言支持
- 设置自动构建模式并执行静态代码分析
- 配置安全事件写入权限以生成分析报告
2026-01-29 12:05:40 +08:00
GeWuYou
57fdb1c3d4 chore(.github): 添加dependabot配置文件
- 新增dependabot.yml配置文件用于自动化依赖更新管理,
提升项目维护效率和安全性。
- [skip ci]
2026-01-29 10:20:05 +08:00
GeWuYou
2896f35c67 feat(setting): 更新设置系统支持数据持久化和泛型仓库
- 添加 IDataRepository 依赖注入支持泛型仓库
- 实现 SaveAll 方法用于保存所有设置数据到存储库
- 为 ApplyAll 和 Apply<T> 方法添加返回值类型注释
- 添加 SettingsApplyingEvent 事件发送功能
- 优化代码结构使用泛型约束和空合并运算符
- 添加 Repository 属性确保仓库实例不为空
v0.0.141
2026-01-28 23:01:46 +08:00
GeWuYou
58291fd85c feat(setting): 添加设置迁移器注册和异步初始化功能
- 新增 RegisterMigration 方法用于注册设置迁移器
- 新增 InitializeAsync 方法支持异步初始化指定类型的设置
- 扩展了 ISettingsModel 接口以支持设置迁移功能
- 添加了对设置类型数组的批量异步初始化支持
v0.0.140
2026-01-28 22:36:33 +08:00
GeWuYou
d8188a894a chore(deps): 更新 Meziantou.Polyfill 依赖版本
- 将 GFramework.Core.Abstractions 中的 Meziantou.Polyfill 版本从 1.0.100 更新到 1.0.101
- 将 GFramework.Game.Abstractions 中的 Meziantou.Polyfill 版本从 1.0.100 更新到 1.0.101
- 将 GFramework.Godot.SourceGenerators.Abstractions 中的 Meziantou.Polyfill 版本从 1.0.100 更新到 1.0.101
- 将 GFramework.SourceGenerators.Abstractions 中的 Meziantou.Polyfill 版本从 1.0.100 更新到 1.0.101
- 将 GFramework.SourceGenerators.Common 中的 Meziantou.Polyfill 版本从 1.0.100 更新到 1.0.101
2026-01-28 22:08:57 +08:00
GeWuYou
76a8b140f1 refactor(setting): 将设置持久化功能整合到数据仓库中
- 移除独立的SettingsPersistence类,将其功能合并到DataRepository
- 在DataRepository中新增基于Type参数的异步加载方法
- 修改SettingsModel以使用IDataRepository替代ISettingsPersistence
- 更新SettingsModel为泛型类并注入数据仓库依赖
- 将ISettingsSection接口继承IData接口
- 删除ISettingsPersistence接口定义
v0.0.139
2026-01-28 20:36:24 +08:00
GeWuYou
0b7c64fd99 feat(data): 添加数据仓库功能并重构设置系统接口
- 新增 DataRepository 类实现数据存储和读取功能
- 添加数据仓库配置选项类 DataRepositoryOptions
- 定义 IData 接口作为通用数据标记接口
- 实现数据加载、保存、删除等异步操作方法
- 添加数据事件系统包括加载、保存、删除等事件类型
- 将 ISettingsData 接口重命名为 IResettable 并更新相关实现
- 更新 SettingsModel 和 SettingsPersistence 使用新的接口
- 修改 SettingsBatchChangedEvent 和 SettingsBatchSavedEvent 使用 IResettable 类型
- 重构 AudioSettings、GraphicsSettings、LocalizationSettings 继承新接口
- 更新 IPersistentApplyAbleSettings 接口依赖为 IResettable
2026-01-28 20:08:34 +08:00
GeWuYou
c918085ba9 refactor(setting): 移除 SettingsModel 的 IDisposable 接口实现
- 从 SettingsModel 类定义中移除 IDisposable 接口
- 删除 Dispose 方法及其相关实现逻辑
- 移除 _disposed 标记字段和相关的资源清理代码
- 简化类结构,不再需要手动管理资源释放
- 依赖垃圾回收器自动处理内存管理
v0.0.138
2026-01-28 12:47:08 +08:00
GeWuYou
d250ee1d93 feat(globalusings): 为旧版.NET框架添加IsExternalInit兼容性支持
- 在GlobalUsings.cs中添加条件编译指令支持NETSTANDARD2_0、NETFRAMEWORK和NETCOREAPP2_0
- 添加System.ComponentModel命名空间引用
- 实现IsExternalInit静态类以支持仅初始化setter语法
- 使用EditorBrowsable特性标记为隐藏状态避免IDE显示
- 确保新功能仅在目标框架版本下可用
v0.0.137
2026-01-27 23:03:35 +08:00
GeWuYou
31045f305c refactor(core): 调整命名空间结构以优化模块组织
- 将 IRegistry 接口从 GFramework.Game.Abstractions.registry 移至 GFramework.Core.Abstractions.registries
- 移除 KeyValueRegistryBase 中对旧命名空间的引用
- 将 IsExternalInit 类从 System.Runtime.CompilerServices 移至 GFramework.Game.Abstractions.internals
- 更新 IGameSceneRegistry 对新注册表命名空间的引用
- 将音频和图形设置类移至 GFramework.Game.Abstractions.setting.data 子命名空间
- 将资产注册表接口更新为使用新的核心注册表命名空间
- 调整 Godot 模块中的音频总线映射命名空间至 data 子目录
- 更新 Godot 音频和图形设置类以引用正确的设置数据命名空间
2026-01-27 22:58:37 +08:00
GeWuYou
9531cd0883 refactor(setting): 重构设置模块结构并添加版本控制功能
- 将AudioSettings和GraphicsSettings移至data子目录
- 为AudioSettings和GraphicsSettings实现IVersioned接口
- 新增LocalizationSettings类管理本地化配置
- 重命名AudioBusMapSettings为AudioBusMap并移至data目录
- 新增LocalizationMap类定义语言映射关系
- 更新GodotAudioSettings依赖注入参数名称
- 修复GodotAudioSettings重置方法逻辑
- 新增GodotLocalizationSettings类应用本地化配置到Godot引擎
- 添加必要的using语句和版权注释
2026-01-27 22:57:03 +08:00
GeWuYou
4cfc5d3505 refactor(storage): 将文件存储读取操作改为异步模式
- 使用 await using 替代 using 确保异步资源正确释放
- 优化文件读取流程以支持异步IO操作
- 提高文件存储组件的异步处理能力
2026-01-27 22:39:26 +08:00
GeWuYou
a29a484834 refactor(setting): 优化设置模型的并发安全性和性能
- 将字典集合替换为ConcurrentDictionary以提高并发安全性
- 添加方法缓存机制减少反射调用开销
- 实现迁移缓存避免重复查询操作
- 增加异步加载异常处理和日志记录
- 实现IDisposable接口添加资源清理功能
- 优化GetOrAdd方法简化数据获取逻辑
2026-01-27 22:38:49 +08:00
GeWuYou
11c94d462f feat(setting): 添加设置数据版本迁移功能
- 新增 IVersioned 接口用于定义版本信息
- 实现设置数据自动迁移机制,支持版本升级转换
- 添加 SettingsMigration 接口用于处理不同版本间的数据转换
- 在 SettingsModel 中集成迁移功能,加载时自动执行版本迁移
- 优化设置数据管理,新增 AllData 方法获取所有设置数据
- 重构代码结构,添加清晰的方法分组注释块
2026-01-27 22:22:20 +08:00
GeWuYou
07f5d27ab3 refactor(setting): 重构设置系统的接口设计
- 移除 SettingsModel 中的 All() 方法,避免同时实现两个接口的设置被重复返回
- 添加 AllApplicators() 方法用于获取所有可应用设置
- 添加 AllData() 方法用于获取所有设置数据
- 修改 SettingsSystem.ApplyAll() 方法,直接遍历可应用设置而非设置节
- 更新 ISettingsModel 接口定义,将 All() 方法拆分为 AllData() 和 AllApplicators()
- 移除 SettingsSystem 中的 Apply(Type) 和 Apply(IEnumerable<Type>) 重载方法
- 更新 Apply<T>() 泛型约束从 ISettingsSection 改为 IApplyAbleSettings
- 移除注册时对 ISettingsData 的自动注册逻辑,保持职责分离
2026-01-27 22:11:01 +08:00
GeWuYou
19c0830a7d feat(serializer): 添加运行时类型序列化器接口并重构序列化模块
- 新增 IRuntimeTypeSerializer 接口支持运行时类型序列化
- 将序列化器接口从 Game 模块迁移到 Core 模块
- 更新 JsonSerializer 的命名空间引用
- 为 Godot 音频和图形设置类添加持久化应用接口实现
- 重构设置模型的初始化和去重逻辑
- 移除批量加载所有设置的功能
- 优化设置应用过程为异步执行
- 在存储接口中添加异步删除方法
- 为各种存储实现添加异步删除功能
- 为 Godot 文件存储添加标准文件系统路径删除支持
- 删除废弃的设置数据基类实现
2026-01-27 21:58:30 +08:00
GeWuYou
b49079de3e style(coding-style): 统一代码风格并优化文档格式
- 移除多余using语句和空行,统一代码缩进格式
- 优化注释文档中的缩进和对齐格式
- 简化条件语句和方法实现,提升代码可读性
- 重构协程系统相关类的字段和方法定义格式
- 更新架构服务中容器访问方式的实现
- 调整异步操作类的属性和方法组织结构
- [skip ci]
2026-01-27 20:30:04 +08:00
GeWuYou
a71c7f6f1a docs(architecture): 为IArchitecture接口添加文档注释
- 为RegisterSystem方法添加返回值文档注释
- 为RegisterModel方法添加返回值文档注释
- 为RegisterUtility方法添加返回值文档注释
- 为IArchitecture接口添加WaitUntilReadyAsync方法
- 为新添加的方法添加完整的XML文档注释
v0.0.136
2026-01-27 19:59:02 +08:00
GeWuYou
50e334b006 chore(deps): 更新项目依赖包版本
- 将 Meziantou.Analyzer 从 2.0.283 更新到 2.0.286
- 将 Godot 相关包从 4.5.1 更新到 4.6.0
- 统一所有项目中的代码分析器版本
- 保持依赖包版本一致性
v0.0.135
2026-01-27 19:03:20 +08:00
GeWuYou
cfb55972b1 test(coroutine): 更新 WaitForTask 测试以使用 TaskCompletionSource
- 将测试中的 Task.Run 替换为 TaskCompletionSource
- 确保测试初始状态检查的准确性
- 改进测试的可靠性和可预测性
v0.0.134
2026-01-27 13:13:42 +08:00
GeWuYou
df7ad24b48 test(coroutine): 更新协程句柄和任务扩展测试
- 修改CoroutineHandleTests中的Equals比较测试,使用不同的实例ID进行验证
- 在Equals测试中添加Key值的不同性验证
- 更新AsCoroutineInstruction测试文档,验证已完成任务的状态
- 移除重复的泛型版本测试方法
- 在TaskCoroutineExtensionsTests中移除未使用的句柄变量赋值
- 简化任务协程启动的测试逻辑,专注于调度器行为验证
2026-01-27 13:03:47 +08:00
GeWuYou
684d4601d0 test(coroutine): 为 WaitWhile 添加断言以验证谓词函数行为
- 修改测试逻辑以跟踪谓词函数的调用次数
- 添加对 IsDone 属性访问时谓词评估的验证
- 增加对条件变化时谓词重新评估的检查
- 添加相应的断言确保谓词按预期工作
2026-01-27 12:57:17 +08:00
GeWuYou
bb95f738a8 chore(project): 禁用隐式using并添加全局using文件
- 在所有项目中禁用 ImplicitUsings 配置
- 为所有项目添加 GlobalUsings.cs 文件统一管理常用命名空间
- 统一添加 System、System.Collections.Generic、System.Linq、System.Threading 和 System.Threading.Tasks 的全局引用
- 更新项目文件中的 PackageReference 格式规范化
- 移除各个源文件顶部的重复 using 语句
- 添加标准版权头注释到全局引用文件
2026-01-27 12:45:03 +08:00
GeWuYou
87e11449f1 refactor(core): 移除隐式using并统一全局using配置
- 在多个核心类文件中移除System命名空间的重复using声明
- 创建GlobalUsings.cs文件集中管理公共命名空间引用
- 将System、System.Collections.Generic、System.Linq、System.Threading.Tasks设为全局using
- 禁用项目级别的隐式using功能以提高代码可读性
- 优化项目配置中的包引用格式添加必要的空格
2026-01-27 12:35:44 +08:00
GeWuYou
21c5d1bc68 refactor(command): 重构命令和查询抽象基类以支持输入参数分离
- 将 AbstractAsyncCommand 拆分为 AbstractAsyncCommand 和 AbstractAsyncCommandWithInput
- 将 AbstractAsyncCommand<TInput, TResult> 移至新的 AbstractAsyncCommandWithResult 类
- 将 AbstractCommand 拆分为 AbstractCommand 和 AbstractCommandWithInput
- 将 AbstractCommand<TInput, TResult> 移至新的 AbstractCommandWithResult 类
- 将 AbstractAsyncQuery 简化为不带输入参数的版本
- 将 AbstractQuery 简化为不带输入参数的版本
- 创建新的 AbstractAsyncQueryWithResult 类处理带输入参数的异步查询
- 创建新的 AbstractQueryWithResult 类处理带输入参数的同步查询
v0.0.133
2026-01-26 13:03:50 +08:00
GeWuYou
7e5036ae76 test(coroutine): 添加协程扩展方法和等待所有协程的单元测试
- 添加 CoroutineExtensionsTests 测试类,覆盖 RepeatEvery、ExecuteAfter、Sequence、ParallelCoroutines 和 WaitForSecondsWithProgress 方法
- 添加 WaitForAllCoroutinesTests 测试类,验证 WaitForAllCoroutines 的初始化、IsDone 属性、空句柄处理等功能
- 实现协程调度器集成测试,验证多协程并发执行场景
- 添加边界条件测试,包括空数组、null 参数、负数参数等情况
- 实现异常处理和特殊状态测试,如暂停恢复、终止协程等场景
v0.0.132
2026-01-26 11:45:13 +08:00
GeWuYou
01d9fefa1d feat(coroutine): 扩展协程功能并重构指令结构
- 将协程等待指令移动到instructions命名空间下
- 添加WaitForProgress指令支持带进度回调的时间等待
- 添加WaitForAllCoroutines指令用于等待多个协程完成
- 添加AsyncOperation类用于桥接协程与async/await模型
- 添加协程扩展方法包括RepeatEvery、ExecuteAfter、Sequence等功能
- 添加Task与协程的转换扩展方法AsCoroutineInstruction
- 添加协程调度器的ParallelCoroutines扩展方法
- 添加IsCoroutineAlive方法检查协程状态
- 更新相关测试文件以匹配新的命名空间结构
2026-01-26 09:44:07 +08:00