From 2a513cbd5b96f08e556dfbce595bef790be39bb2 Mon Sep 17 00:00:00 2001 From: cneicy Date: Wed, 26 Aug 2026 12:49:24 +0800 Subject: [PATCH] feat(workspace): adopt context-first package management --- Assets/Editor/ShrinkSdkWorkspaceValidation.cs | 28 +++++++-------- Assets/Modules/ShrinkApp.Core | 2 +- Assets/Modules/ShrinkApp.Starter.Basic | 2 +- Assets/Modules/ShrinkCommand.Integration.App | 2 +- .../Modules/ShrinkCommand.Integration.Network | 2 +- Assets/Modules/ShrinkContext.AppAdapter | 2 +- Assets/Modules/ShrinkDataSaver | 2 +- .../Modules/ShrinkDataSaver.Integration.App | 2 +- .../ShrinkDataSaver.Integration.EventBus | 2 +- Assets/Modules/ShrinkInstaller | 2 +- Assets/Modules/ShrinkModFramework | 2 +- Assets/Modules/ShrinkNetwork | 2 +- Assets/Modules/ShrinkNetwork.Integration.App | 2 +- .../ShrinkNetwork.Integration.EventBus | 2 +- Assets/Modules/ShrinkTutorial | 2 +- DESIGN.md | 34 +++++++++---------- README.md | 6 ++-- ...nitialize-ShrinkSdkPackageRepositories.ps1 | 16 ++++----- .../Validate-PublishedUpmConsumers.sh | 34 ++++++++++--------- 19 files changed, 74 insertions(+), 72 deletions(-) diff --git a/Assets/Editor/ShrinkSdkWorkspaceValidation.cs b/Assets/Editor/ShrinkSdkWorkspaceValidation.cs index 236dfaf..00fd564 100644 --- a/Assets/Editor/ShrinkSdkWorkspaceValidation.cs +++ b/Assets/Editor/ShrinkSdkWorkspaceValidation.cs @@ -15,27 +15,27 @@ namespace ShrinkSDK.WorkspaceValidation { private static readonly ExpectedPackage[] ExpectedPackages = { - new ExpectedPackage("ShrinkApp.Core", "com.cneicy.shrink-app-core", "0.1.1"), - new ExpectedPackage("ShrinkApp.Starter.Basic", "com.cneicy.shrink-app-starter-basic", "0.1.2"), + new ExpectedPackage("ShrinkApp.Core", "com.cneicy.shrink-app-core", "0.1.2"), + new ExpectedPackage("ShrinkApp.Starter.Basic", "com.cneicy.shrink-app-starter-basic", "0.2.0"), new ExpectedPackage("ShrinkCommand", "com.cneicy.shrink-command", "0.2.0"), - new ExpectedPackage("ShrinkCommand.Integration.App", "com.cneicy.shrink-command-integration-app", "0.1.0"), + new ExpectedPackage("ShrinkCommand.Integration.App", "com.cneicy.shrink-command-integration-app", "0.1.1"), new ExpectedPackage("ShrinkCommand.Integration.EventBus", "com.cneicy.shrink-command-integration-eventbus", "0.1.1"), - new ExpectedPackage("ShrinkCommand.Integration.Network", "com.cneicy.shrink-command-integration-network", "0.1.0"), - new ExpectedPackage("ShrinkContext.AppAdapter", "com.cneicy.shrink-context-app-adapter", "0.1.2"), + new ExpectedPackage("ShrinkCommand.Integration.Network", "com.cneicy.shrink-command-integration-network", "0.1.1"), + new ExpectedPackage("ShrinkContext.AppAdapter", "com.cneicy.shrink-context-app-adapter", "0.1.3"), new ExpectedPackage("ShrinkContext.Core", "com.cneicy.shrink-context-core", "0.1.0"), new ExpectedPackage("ShrinkContext.EventBusAdapter", "com.cneicy.shrink-context-eventbus-adapter", "0.1.0"), - new ExpectedPackage("ShrinkDataSaver", "com.cneicy.shrink-datasaver", "2.2.0"), - new ExpectedPackage("ShrinkDataSaver.Integration.App", "com.cneicy.shrink-datasaver-integration-app", "0.1.0"), - new ExpectedPackage("ShrinkDataSaver.Integration.EventBus", "com.cneicy.shrink-datasaver-integration-eventbus", "2.1.0"), + new ExpectedPackage("ShrinkDataSaver", "com.cneicy.shrink-datasaver", "2.2.1"), + new ExpectedPackage("ShrinkDataSaver.Integration.App", "com.cneicy.shrink-datasaver-integration-app", "0.1.1"), + new ExpectedPackage("ShrinkDataSaver.Integration.EventBus", "com.cneicy.shrink-datasaver-integration-eventbus", "2.1.1"), new ExpectedPackage("ShrinkEventBus", "com.cneicy.shrink-eventbus", "2.0.0"), new ExpectedPackage("ShrinkEventBus.Entities", "com.cneicy.shrink-eventbus-entities", "0.1.0"), - new ExpectedPackage("ShrinkInstaller", "com.cneicy.shrink-installer", "0.1.7"), - new ExpectedPackage("ShrinkModFramework", "com.cneicy.shrink-mod-framework", "0.2.1"), - new ExpectedPackage("ShrinkNetwork", "com.cneicy.shrink-network", "0.2.0"), - new ExpectedPackage("ShrinkNetwork.Integration.App", "com.cneicy.shrink-network-integration-app", "0.1.0"), - new ExpectedPackage("ShrinkNetwork.Integration.EventBus", "com.cneicy.shrink-network-integration-eventbus", "0.1.1"), + new ExpectedPackage("ShrinkInstaller", "com.cneicy.shrink-installer", "0.2.0"), + new ExpectedPackage("ShrinkModFramework", "com.cneicy.shrink-mod-framework", "0.2.2"), + new ExpectedPackage("ShrinkNetwork", "com.cneicy.shrink-network", "0.2.1"), + new ExpectedPackage("ShrinkNetwork.Integration.App", "com.cneicy.shrink-network-integration-app", "0.1.1"), + new ExpectedPackage("ShrinkNetwork.Integration.EventBus", "com.cneicy.shrink-network-integration-eventbus", "0.1.2"), new ExpectedPackage("ShrinkShared.CodeGen", "com.cneicy.shrink-shared-codegen", "0.1.0"), - new ExpectedPackage("ShrinkTutorial", "com.cneicy.shrink-tutorial", "0.1.1") + new ExpectedPackage("ShrinkTutorial", "com.cneicy.shrink-tutorial", "0.1.2") }; public static void Run() diff --git a/Assets/Modules/ShrinkApp.Core b/Assets/Modules/ShrinkApp.Core index 0497fd6..ec91c43 160000 --- a/Assets/Modules/ShrinkApp.Core +++ b/Assets/Modules/ShrinkApp.Core @@ -1 +1 @@ -Subproject commit 0497fd60664f751eb7b380f5c3d6c116c76858aa +Subproject commit ec91c434b6dd17815ce3b65e0b493b1d41f0ed0f diff --git a/Assets/Modules/ShrinkApp.Starter.Basic b/Assets/Modules/ShrinkApp.Starter.Basic index 91cae21..f5e7b89 160000 --- a/Assets/Modules/ShrinkApp.Starter.Basic +++ b/Assets/Modules/ShrinkApp.Starter.Basic @@ -1 +1 @@ -Subproject commit 91cae215532ad3f65c99e1ff8d561cf2c5612748 +Subproject commit f5e7b898c3a6cc77d1ed5724e8e6b2e0ca3a82f9 diff --git a/Assets/Modules/ShrinkCommand.Integration.App b/Assets/Modules/ShrinkCommand.Integration.App index c6c2eb0..a51a6d7 160000 --- a/Assets/Modules/ShrinkCommand.Integration.App +++ b/Assets/Modules/ShrinkCommand.Integration.App @@ -1 +1 @@ -Subproject commit c6c2eb08bb2035ba26f4f588bc2ca2c07f5fa6a9 +Subproject commit a51a6d712ee07171a81d3d8688e4f6f61d4608cb diff --git a/Assets/Modules/ShrinkCommand.Integration.Network b/Assets/Modules/ShrinkCommand.Integration.Network index 1551439..b312265 160000 --- a/Assets/Modules/ShrinkCommand.Integration.Network +++ b/Assets/Modules/ShrinkCommand.Integration.Network @@ -1 +1 @@ -Subproject commit 155143930ef0336494c6355fa7a03322f7c14d97 +Subproject commit b312265c907d46c49ce448231c26bbf421d14ec6 diff --git a/Assets/Modules/ShrinkContext.AppAdapter b/Assets/Modules/ShrinkContext.AppAdapter index d89ea48..52bda43 160000 --- a/Assets/Modules/ShrinkContext.AppAdapter +++ b/Assets/Modules/ShrinkContext.AppAdapter @@ -1 +1 @@ -Subproject commit d89ea4899bf94f85267949195d9b1b5a3884b766 +Subproject commit 52bda43e3cbe24c87a3c251ea483ca18ad694049 diff --git a/Assets/Modules/ShrinkDataSaver b/Assets/Modules/ShrinkDataSaver index b111c5f..ec87b0b 160000 --- a/Assets/Modules/ShrinkDataSaver +++ b/Assets/Modules/ShrinkDataSaver @@ -1 +1 @@ -Subproject commit b111c5f4379b1afb3d99c861d1a69c0e148a2f62 +Subproject commit ec87b0bde32c6180542f66b423cc70906cd08ae0 diff --git a/Assets/Modules/ShrinkDataSaver.Integration.App b/Assets/Modules/ShrinkDataSaver.Integration.App index 5e613f3..fd5c66a 160000 --- a/Assets/Modules/ShrinkDataSaver.Integration.App +++ b/Assets/Modules/ShrinkDataSaver.Integration.App @@ -1 +1 @@ -Subproject commit 5e613f3c0ad634f67b4ee77715c4250f33d3e03d +Subproject commit fd5c66a6daedbcf2bc88fbb4a3781e3807c7a009 diff --git a/Assets/Modules/ShrinkDataSaver.Integration.EventBus b/Assets/Modules/ShrinkDataSaver.Integration.EventBus index 320397c..1486894 160000 --- a/Assets/Modules/ShrinkDataSaver.Integration.EventBus +++ b/Assets/Modules/ShrinkDataSaver.Integration.EventBus @@ -1 +1 @@ -Subproject commit 320397c092b20effa0163eb047ec0596cbd858a5 +Subproject commit 1486894f52c56e0efe2579863029bf3487422e74 diff --git a/Assets/Modules/ShrinkInstaller b/Assets/Modules/ShrinkInstaller index 9bdc57f..96480dd 160000 --- a/Assets/Modules/ShrinkInstaller +++ b/Assets/Modules/ShrinkInstaller @@ -1 +1 @@ -Subproject commit 9bdc57fd883cc58bc54daa56f69b93a759d13844 +Subproject commit 96480dd48818c886798016b1ae587e1b6bbddc80 diff --git a/Assets/Modules/ShrinkModFramework b/Assets/Modules/ShrinkModFramework index 9544601..39f6f97 160000 --- a/Assets/Modules/ShrinkModFramework +++ b/Assets/Modules/ShrinkModFramework @@ -1 +1 @@ -Subproject commit 95446018c307c0ed650ce92bef4ccc03c11a2eab +Subproject commit 39f6f97707142d4021f4b7fe6a52a018826e5347 diff --git a/Assets/Modules/ShrinkNetwork b/Assets/Modules/ShrinkNetwork index da609ca..dd13a01 160000 --- a/Assets/Modules/ShrinkNetwork +++ b/Assets/Modules/ShrinkNetwork @@ -1 +1 @@ -Subproject commit da609cabb97d83c7f58f69c2668af45b1fd5bb34 +Subproject commit dd13a01bc94dbadae87aa40fda3a2d41e2455ff8 diff --git a/Assets/Modules/ShrinkNetwork.Integration.App b/Assets/Modules/ShrinkNetwork.Integration.App index 1b04415..da7c8af 160000 --- a/Assets/Modules/ShrinkNetwork.Integration.App +++ b/Assets/Modules/ShrinkNetwork.Integration.App @@ -1 +1 @@ -Subproject commit 1b04415fd7484f03babedd1a7845b412eab4eba2 +Subproject commit da7c8af3acaa02e67dcd0578f38ba72e70b707a9 diff --git a/Assets/Modules/ShrinkNetwork.Integration.EventBus b/Assets/Modules/ShrinkNetwork.Integration.EventBus index 00f50c1..ac2ee2d 160000 --- a/Assets/Modules/ShrinkNetwork.Integration.EventBus +++ b/Assets/Modules/ShrinkNetwork.Integration.EventBus @@ -1 +1 @@ -Subproject commit 00f50c1289769459f3b153782a27486ae1d119c2 +Subproject commit ac2ee2df1e1b3098832dee4adee62881c6888013 diff --git a/Assets/Modules/ShrinkTutorial b/Assets/Modules/ShrinkTutorial index fbba140..2f9b0ff 160000 --- a/Assets/Modules/ShrinkTutorial +++ b/Assets/Modules/ShrinkTutorial @@ -1 +1 @@ -Subproject commit fbba140fd6e9d7d44e52eb9d513a2c6db9339690 +Subproject commit 2f9b0ff512502d58718626241b541258ec5271b4 diff --git a/DESIGN.md b/DESIGN.md index 76b3043..c4708f3 100644 --- a/DESIGN.md +++ b/DESIGN.md @@ -86,25 +86,25 @@ ShrinkSDK Workspace/ |---|---:|---| | `com.cneicy.shrink-eventbus` | 2.0.0 | 单一事件模型、多 Bus、生成特性订阅、UniTask 调度与零 GC 热路径 | | `com.cneicy.shrink-eventbus-entities` | 0.1.0 | ShrinkEventBus 的 ECS/Burst NativeQueue writer 与 playback 适配 | -| `com.cneicy.shrink-datasaver` | 2.2.0 | 多槽位存档、设置、迁移、加密、原子写入与备份 | +| `com.cneicy.shrink-datasaver` | 2.2.1 | 多槽位存档、设置、迁移、加密、原子写入与备份 | | `com.cneicy.shrink-command` | 0.2.0 | 路径式命令、权限与同步/异步执行 | -| `com.cneicy.shrink-network` | 0.2.0 | 消息、RPC、权限、诊断、TCP/KCP/Loopback 与服务器生成 | -| `com.cneicy.shrink-mod-framework` | 0.2.1 | 模组发现、依赖、可逆生命周期、命名空间内容覆盖、外部 DLL revision 与 Harmony lease | -| `com.cneicy.shrink-tutorial` | 0.1.1 | 数据驱动引导、遮罩、锚点、触发与持久化 | +| `com.cneicy.shrink-network` | 0.2.1 | 消息、RPC、权限、诊断、TCP/KCP/Loopback 与服务器生成 | +| `com.cneicy.shrink-mod-framework` | 0.2.2 | 模组发现、依赖、可逆生命周期、命名空间内容覆盖、外部 DLL revision 与 Harmony lease | +| `com.cneicy.shrink-tutorial` | 0.1.2 | 数据驱动引导、遮罩、锚点、触发与持久化 | | `com.cneicy.shrink-context-core` | 0.1.0 | 可逆效应、coeffect、fiber、声明式 loader 与诊断 | -| `com.cneicy.shrink-app-core` | 0.1.1 | App 设置、服务门面、ClassicHost 兼容面与宿主协议 | -| `com.cneicy.shrink-app-starter-basic` | 0.1.2 | 默认 Context 组合根、配置资产和示例入口 | -| `com.cneicy.shrink-context-app-adapter` | 0.1.2 | ContextLoader 宿主、Profile/JSON、诊断与基准 | +| `com.cneicy.shrink-app-core` | 0.1.2 | App 设置、服务门面、ClassicHost 兼容面与宿主协议 | +| `com.cneicy.shrink-app-starter-basic` | 0.2.0 | 默认 Context 组合根、配置资产和示例入口 | +| `com.cneicy.shrink-context-app-adapter` | 0.1.3 | ContextLoader 宿主、Profile/JSON、诊断与基准 | | `com.cneicy.shrink-context-eventbus-adapter` | 0.1.0 | EventBus 生成绑定的可逆 EffectAttach 包装 | -| `com.cneicy.shrink-datasaver-integration-eventbus` | 2.1.0 | DataSaver 事件桥 | -| `com.cneicy.shrink-datasaver-integration-app` | 0.1.0 | DataSaver App installer/原生 Context 组件 | +| `com.cneicy.shrink-datasaver-integration-eventbus` | 2.1.1 | DataSaver 事件桥 | +| `com.cneicy.shrink-datasaver-integration-app` | 0.1.1 | DataSaver App installer/原生 Context 组件 | | `com.cneicy.shrink-command-integration-eventbus` | 0.1.1 | 命令请求与生命周期事件桥 | -| `com.cneicy.shrink-command-integration-network` | 0.1.0 | `command/execute` RPC 桥 | -| `com.cneicy.shrink-command-integration-app` | 0.1.0 | Command App installer/原生 Context 组件 | -| `com.cneicy.shrink-network-integration-eventbus` | 0.1.1 | 网络事件广播、裁决结果与 delta 去重 | -| `com.cneicy.shrink-network-integration-app` | 0.1.0 | Network App installer/原生 Context 组件 | +| `com.cneicy.shrink-command-integration-network` | 0.1.1 | `command/execute` RPC 桥 | +| `com.cneicy.shrink-command-integration-app` | 0.1.1 | Command App installer/原生 Context 组件 | +| `com.cneicy.shrink-network-integration-eventbus` | 0.1.2 | 网络事件广播、裁决结果与 delta 去重 | +| `com.cneicy.shrink-network-integration-app` | 0.1.1 | Network App installer/原生 Context 组件 | | `com.cneicy.shrink-shared-codegen` | 0.1.0 | App、Command、Network 共用的 Editor-only IL 后处理注册表生成器 | -| `com.cneicy.shrink-installer` | 0.1.7 | 安全合并公开 registry、显示诊断并固定版本安装 Starter 或选定模块的 Editor 引导包 | +| `com.cneicy.shrink-installer` | 0.2.0 | UI Toolkit 包管理器:显示真实安装状态,按 Context 分层提供固定版本单包与推荐组合 | `ShrinkShared.CodeGen` 不反向引用业务 asmdef,只按程序集名与类型全名读取 Cecil 元数据,因此业务包可以依赖它而不形成包循环。 @@ -157,7 +157,7 @@ Cordis 迁移的阶段 0 至阶段 5 已进入当前架构,不再是待办计 `ShrinkAppLoaderBootstrapper.DefaultComposition` 接入 Basic Starter 的七个声明式模块:Command、DataSaver、Network 三个原生组件,Command-Network 集成,以及 Command/DataSaver/Network 的 EventBus 集成。 -`ShrinkAppCompositionProfile` 用 ScriptableObject/JSON 决定条目启用、显式排除、isolate 与 intercept;组件工厂仍由代码注册,配置文件不能按任意类型名反射实例化对象。`ShrinkSDK/Cordis/诊断与组合` 显示 fiber、等待依赖、provider target、事务和外部程序集 revision。 +`ShrinkAppCompositionProfile` 用 ScriptableObject/JSON 决定条目启用、显式排除、isolate 与 intercept;组件工厂仍由代码注册,配置文件不能按任意类型名反射实例化对象。`ShrinkSDK/上下文/诊断与组合` 显示 fiber、等待依赖、provider target、事务和外部程序集 revision。 `ShrinkApp.IsRunning` 与 `ShrinkApp.Services` 已接回 LoaderHost。原生组件停用时使用 `TryUnregister(instance)` 撤回对应门面。旧 `IShrinkAppModuleInstaller` 适配仍可用于 ClassicHost,但默认 ContextLoader 不再通过它启动核心模块。 @@ -206,8 +206,8 @@ Mono 中已加载程序集不能真正卸载。系统只回滚组件实例与效 菜单入口: -- `ShrinkSDK/Network/生成完整独立服务器工程` -- `ShrinkSDK/Network/刷新独立服务器 Generated 合同` +- `ShrinkSDK/网络/生成完整独立服务器工程` +- `ShrinkSDK/网络/刷新独立服务器生成合同` 完整生成分两步: diff --git a/README.md b/README.md index 2d05bf1..0ade663 100644 --- a/README.md +++ b/README.md @@ -28,7 +28,7 @@ git submodule update --init --recursive } ``` -然后按精确版本添加包,例如 `com.cneicy.shrink-app-starter-basic: 0.1.2`。Git 备用安装同样必须固定标签,例如: +然后按精确版本添加包,例如 `com.cneicy.shrink-app-starter-basic: 0.2.0`。Git 备用安装同样必须固定标签,例如: ```text https://git.crash.work/ShrinkSDK/ShrinkEventBus.git#v2.0.0 @@ -37,9 +37,9 @@ https://git.crash.work/ShrinkSDK/ShrinkEventBus.git#v2.0.0 也可先通过固定标签安装 Editor 引导包: ```text -https://git.crash.work/ShrinkSDK/Installer.git#v0.1.7 +https://git.crash.work/ShrinkSDK/Installer.git#v0.2.0 ``` -随后在 Unity 打开 `ShrinkSDK/Packages`。安装器只合并 `com.cneicy` registry,并将内置目录中的固定版本及其必要的固定 UniTask revision 写入 manifest;它不写认证信息,也不复制模板到 `Assets`。 +随后在 Unity 打开 `ShrinkSDK/包管理`。UI Toolkit 窗口会显示直接与间接依赖的真实安装状态,并按 Context 组合基础、应用宿主、独立功能和模块集成组织固定版本包与推荐组合。安装器只合并 `com.cneicy` registry 和依赖数据,不写认证信息,也不复制模板到 `Assets`。 发布、子模块迁移和独立开发宿主生成规则位于 [Tools/RepositoryMigration/Initialize-ShrinkSdkPackageRepositories.ps1](Tools/RepositoryMigration/Initialize-ShrinkSdkPackageRepositories.ps1)。架构约束与跨包验证要求见 [DESIGN.md](DESIGN.md)。 diff --git a/Tools/RepositoryMigration/Initialize-ShrinkSdkPackageRepositories.ps1 b/Tools/RepositoryMigration/Initialize-ShrinkSdkPackageRepositories.ps1 index 0d25723..aed836d 100644 --- a/Tools/RepositoryMigration/Initialize-ShrinkSdkPackageRepositories.ps1 +++ b/Tools/RepositoryMigration/Initialize-ShrinkSdkPackageRepositories.ps1 @@ -40,17 +40,17 @@ $PackageDirectories = @( $DevelopmentHostOnlyDependencies = @{ 'com.cneicy.shrink-command-integration-network' = [ordered]@{ - 'com.cneicy.shrink-command-integration-app' = '0.1.0' - 'com.cneicy.shrink-datasaver-integration-app' = '0.1.0' - 'com.cneicy.shrink-network-integration-app' = '0.1.0' + 'com.cneicy.shrink-command-integration-app' = '0.1.1' + 'com.cneicy.shrink-datasaver-integration-app' = '0.1.1' + 'com.cneicy.shrink-network-integration-app' = '0.1.1' } 'com.cneicy.shrink-context-app-adapter' = [ordered]@{ - 'com.cneicy.shrink-app-starter-basic' = '0.1.2' + 'com.cneicy.shrink-app-starter-basic' = '0.2.0' 'com.cneicy.shrink-command' = '0.2.0' - 'com.cneicy.shrink-command-integration-app' = '0.1.0' - 'com.cneicy.shrink-datasaver-integration-app' = '0.1.0' - 'com.cneicy.shrink-network' = '0.2.0' - 'com.cneicy.shrink-network-integration-app' = '0.1.0' + 'com.cneicy.shrink-command-integration-app' = '0.1.1' + 'com.cneicy.shrink-datasaver-integration-app' = '0.1.1' + 'com.cneicy.shrink-network' = '0.2.1' + 'com.cneicy.shrink-network-integration-app' = '0.1.1' } 'com.cneicy.shrink-eventbus-entities' = [ordered]@{ 'com.unity.modules.physics' = '1.0.0' diff --git a/Tools/UpmConsumerValidation/Validate-PublishedUpmConsumers.sh b/Tools/UpmConsumerValidation/Validate-PublishedUpmConsumers.sh index 2795c73..7c0945d 100644 --- a/Tools/UpmConsumerValidation/Validate-PublishedUpmConsumers.sh +++ b/Tools/UpmConsumerValidation/Validate-PublishedUpmConsumers.sh @@ -46,11 +46,11 @@ public static class PublishedUpmConsumerValidator { Run(() => { - VerifyPackage("com.cneicy.shrink-app-starter-basic", "0.1.2", "ShrinkApp.Starter.Basic.Runtime"); - VerifyPackage("com.cneicy.shrink-context-app-adapter", "0.1.2", "ShrinkContext.AppAdapter.Runtime"); - VerifyPackage("com.cneicy.shrink-tutorial", "0.1.1", "ShrinkTutorial.Runtime"); - RequireManifestValue("com.cneicy.shrink-app-starter-basic", "0.1.2"); - RequireManifestValue("com.cneicy.shrink-tutorial", "0.1.1"); + VerifyPackage("com.cneicy.shrink-app-starter-basic", "0.2.0", "ShrinkApp.Starter.Basic.Runtime"); + VerifyPackage("com.cneicy.shrink-context-app-adapter", "0.1.3", "ShrinkContext.AppAdapter.Runtime"); + VerifyPackage("com.cneicy.shrink-tutorial", "0.1.2", "ShrinkTutorial.Runtime"); + RequireManifestValue("com.cneicy.shrink-app-starter-basic", "0.2.0"); + RequireManifestValue("com.cneicy.shrink-tutorial", "0.1.2"); RequireManifestValue("com.cysharp.unitask", UniTaskUrl); RequireRegistry("com.cneicy", RegistryUrl); }); @@ -72,10 +72,10 @@ public static class PublishedUpmConsumerValidator { try { - VerifyPackage("com.cneicy.shrink-installer", "0.1.7", "ShrinkInstaller.Editor"); + VerifyPackage("com.cneicy.shrink-installer", "0.2.0", "ShrinkInstaller.Editor"); RequireManifestValue( "com.cneicy.shrink-installer", - "https://git.crash.work/ShrinkSDK/Installer.git#v0.1.7"); + "https://git.crash.work/ShrinkSDK/Installer.git#v0.2.0"); var catalog = FindType("ShrinkSDK.Installer.ShrinkSdkPackageCatalog"); var starter = catalog.GetField("StarterBasic", BindingFlags.Static | BindingFlags.NonPublic) @@ -85,9 +85,11 @@ public static class PublishedUpmConsumerValidator "EnsurePackageInstallation", BindingFlags.Static | BindingFlags.NonPublic) ?? throw new InvalidOperationException("Installer manifest installation method was not found."); - install.Invoke(null, new[] { starter }); + var roots = Array.CreateInstance(starter.GetType(), 1); + roots.SetValue(starter, 0); + install.Invoke(null, new object[] { roots }); - RequireManifestValue("com.cneicy.shrink-app-starter-basic", "0.1.2"); + RequireManifestValue("com.cneicy.shrink-app-starter-basic", "0.2.0"); RequireManifestValue("com.cysharp.unitask", UniTaskUrl); RequireRegistry("com.cneicy", RegistryUrl); RequireRegistry("com.example", "https://registry.npmjs.org/"); @@ -103,10 +105,10 @@ public static class PublishedUpmConsumerValidator { Run(() => { - VerifyPackage("com.cneicy.shrink-installer", "0.1.7", "ShrinkInstaller.Editor"); - VerifyPackage("com.cneicy.shrink-app-starter-basic", "0.1.2", "ShrinkApp.Starter.Basic.Runtime"); - VerifyPackage("com.cneicy.shrink-context-app-adapter", "0.1.2", "ShrinkContext.AppAdapter.Runtime"); - RequireManifestValue("com.cneicy.shrink-app-starter-basic", "0.1.2"); + VerifyPackage("com.cneicy.shrink-installer", "0.2.0", "ShrinkInstaller.Editor"); + VerifyPackage("com.cneicy.shrink-app-starter-basic", "0.2.0", "ShrinkApp.Starter.Basic.Runtime"); + VerifyPackage("com.cneicy.shrink-context-app-adapter", "0.1.3", "ShrinkContext.AppAdapter.Runtime"); + RequireManifestValue("com.cneicy.shrink-app-starter-basic", "0.2.0"); RequireManifestValue("com.cysharp.unitask", UniTaskUrl); RequireRegistry("com.cneicy", RegistryUrl); RequireRegistry("com.example", "https://registry.npmjs.org/"); @@ -263,8 +265,8 @@ write_manifest "$registry_project" '{ } ], "dependencies": { - "com.cneicy.shrink-app-starter-basic": "0.1.2", - "com.cneicy.shrink-tutorial": "0.1.1", + "com.cneicy.shrink-app-starter-basic": "0.2.0", + "com.cneicy.shrink-tutorial": "0.1.2", "com.cysharp.unitask": "https://github.com/Cysharp/UniTask.git?path=src/UniTask/Assets/Plugins/UniTask#7c0f199fe0d3fc528024488ccd671e6c7b27745b", "com.unity.nuget.newtonsoft-json": "3.2.2" } @@ -291,7 +293,7 @@ write_manifest "$installer_project" '{ } ], "dependencies": { - "com.cneicy.shrink-installer": "https://git.crash.work/ShrinkSDK/Installer.git#v0.1.7", + "com.cneicy.shrink-installer": "https://git.crash.work/ShrinkSDK/Installer.git#v0.2.0", "com.unity.nuget.newtonsoft-json": "3.2.2", "com.unity.test-framework": "1.1.33" }