6.4 KiB
6.4 KiB
FlowScope P2 第二阶段 Package Preview 记录
日期:2026-06-04
本轮范围
本轮承接 P2 第一阶段后的 package 试迁移工作,重点不是改 Runtime API,而是把 FlowScope Git package 从“仓库内结构存在”推进到“真实消费方可用”的 preview 状态。
已完成事项
-
FlowScope package preview tag
- tag:
v0.2.0-preview.1 - 提交:
31641b2c35d1d6c4f056772f144562007f0d0782 - 远端:
ssh://git@git.zz.com:2222/Developer/FlowScope.git
- tag:
-
消费方 Git package 接入
- 消费项目:
C:\Users\13999\Documents\FishingFrenzy\FishingFrenzy - package URL:
ssh://git@git.zz.com:2222/Developer/FlowScope.git?path=/Packages/com.flowscope.gamecore#v0.2.0-preview.1 - R3 依赖:同时保留
com.cysharp.r3与org.nuget.r3。 - Unity NuGet registry:
https://unitynuget-registry.openupm.com,scope 为org.nuget。
- 消费项目:
-
最小消费方验证脚本
- 文件:
FishingFrenzy/Assets/Scripts/FlowScopePackageSmokeProbe.cs - 覆盖:编译期引用
FlowScope.Container.Container、FlowScope.Flow.GameFlow、FlowScope.Addressables.AddressablesResourceBackend与FlowScope.Resources.IResourceService。 - 运行方式:挂到临时 GameObject 后,通过组件右键菜单
FlowScope/Validate Package References手动执行。 - 设计边界:不自动挂场景、不自动启动、不加载真实业务资源,只证明消费方工程能引用 package API。
- 文件:
-
消费方验证结果
- UnitySkills
debug_check_compilation:isCompiling = false,isUpdating = false。 - UnitySkills
debug_get_errors:count = 0。 - UnitySkills
console_get_stats:errors = 0。 - UnitySkills
package_list:可见com.flowscope.gamecore,版本为0.2.0-preview.1。
- UnitySkills
-
安装文档同步
Packages/com.flowscope.gamecore/README.mdPackages/com.flowscope.gamecore/Documentation~/installation.md- 已改为正式 SSH URL、preview tag、Unity NuGet registry 和
org.nuget.r3说明。
本轮踩坑记录
-
FlowScope remote 曾残留旧仓库地址
- 本地
origin一度指向旧的BombGameFramework地址。 - 已改为
ssh://git@git.zz.com:2222/Developer/FlowScope.git后再推送 tag。
- 本地
-
R3 Git package 不等于完整 R3 依赖
com.cysharp.r3提供 Unity 适配层。R3.dll与 BCL DLL 需要由org.nuget.r3及其 NuGet 传递依赖提供。
-
Git package 必须保留 Unity
.meta- preview tag 基于已补齐 package 顶层
.meta的提交。 - 缺少
.meta时,消费方会出现 immutable package 相关导入错误。
- preview tag 基于已补齐 package 顶层
剩余 P2 第二阶段事项
- 当前 preview tag 已可被消费方解析,但 tag 内 package 文档仍是打 tag 当时的快照。后续如果要让 package 内文档也随 tag 发布,应在文档修正后创建下一个 preview tag。
- 已在后续切片镜像
Samples~/MainMenuP0,但尚未在消费方导入 package sample 做人工验收。 - 已在后续切片建立 package
Tests~/EditMode第一刀 smoke 测试,但尚未迁移完整 Runtime/EditMode/PlayMode 测试。 - Addressables 测试资源已统一到主项目测试目录的
Resources/Fixtures/Addressables,后续迁移 Tests 前需要决定是否镜像到 packageTests~。 - 仍需在一个真正空白 Unity 项目中重复 Git package 接入;FishingFrenzy 是真实消费方,但不是空白项目。
2026-06-06 验证补充
本轮按 P2 收尾顺序补做以下检查:
-
Addressables 测试资源 entry
Default Local Group.asset曾出现本地未提交改动,内容为清空FlowScope.Tests.Addressables.Text对应 entry。- 已确认该改动不是预期变更,并恢复到干净工作树;当前
git status无该文件 diff。
-
静态与生成 csproj 编译验证
Packages/com.flowscope.gamecore/package.json可被ConvertFrom-Json解析。Packages/com.flowscope.gamecore/Tests~/EditMode/FlowScope.PackageTests.EditMode.asmdef可被ConvertFrom-Json解析。FlowScope.Runtime.csproj、FlowScope.Addressables.csproj、FlowScope.Tests.EditMode.csproj、FlowScope.Tests.PlayMode.csproj均可dotnet build --no-restore成功。- 编译仍有 Unity 生成 csproj 常见的
MSB3277引用版本冲突 warning,但无错误。
-
Unity Test Runner
- UnitySkills
http://127.0.0.1:8090/health当前不可连接。 - 去掉
-quit后重跑 Unity batchmode EditMode Test Runner,已生成C:\tmp\flowscope-p2-editmode-retry3-results.xml。 - 结果:
testcasecount=56,result=Passed,passed=56,failed=0,skipped=0。 - 注意:Unity 在保存结果后未自动退出,已手动停止残留 batchmode 进程;这不影响本次 XML 结果判定。
- UnitySkills
-
空白 Unity 项目 Git URL 复验
- 使用
C:\tmp\flowscope-upm-probe-p2手工创建最小 probe 并写入 Git package manifest 后,Unity batchmode 能启动,但 UPM 在更新 manifest 时失败:The "path" argument must be of type string. Received undefined,未生成packages-lock.json。 - 该 probe 不是由 Unity Hub/template 正式创建的完整项目,因此本轮结果不能判定为 FlowScope package 安装失败,只能记录为“手工最小 probe 不足以完成空白项目 gate”。
- 后续仍需使用一个真正由 Unity 创建的空白项目复验 Git URL 安装。
- 使用
2026-06-06 空白项目复验补充
用户已在仓库内创建完整 Unity 空白项目 TestFlowScopePackage,本轮将该目录加入根 .gitignore,避免误提交验证工程。
验证步骤与结果:
- 在
TestFlowScopePackage/Packages/manifest.json写入 FlowScope Git package、R3 Git package、Unity NuGet scoped registry 和org.nuget.r3。 - Unity batchmode 打开项目时 UPM 失败:
The "path" argument must be of type string. Received undefined,未生成可用的 FlowScope package lock。 - 为定位原因,分别移除 FlowScope、R3 Git package、
org.nuget.r3、scoped registry 做隔离验证。 - 清理
Library、Temp和Packages/packages-lock.json后,使用不含 FlowScope/R3/NuGet 的原始 manifest 重跑,仍出现同一个 UPM resolve 错误。
当前判断:该错误不是 FlowScope Git package 本身触发;TestFlowScopePackage 在原始 manifest 下也无法完成 UPM resolve。空白项目 gate 需要先在 Unity GUI 中确认该项目自身 Package Manager 可正常打开且不报错,再继续验证 FlowScope Git package。