3 Commits
Author SHA1 Message Date
cneicy c08334107b fix: download release SDK directly from Microsoft Blob
Publish NuGet packages / publish (push) Canceled after 1s
Publish UPM package / publish (push) Successful in 2s
2026-11-06 19:26:44 +08:00
cneicy 0127fae182 feat: update Godot integration and coordinated package dependencies 2026-11-06 19:13:11 +08:00
cneicy fd3788e2ce chore: align SDK dependencies and document reusable capabilities
Publish UPM package / publish (push) Successful in 2s
Publish NuGet packages / publish (push) Successful in 3m3s
2026-09-29 10:14:37 +08:00
7 changed files with 61 additions and 25 deletions

No files matched your search

+2 -1
View File
@@ -63,7 +63,8 @@ jobs:
const release = metadata.releases.find(item => item.sdk?.version === sdkVersion); const release = metadata.releases.find(item => item.sdk?.version === sdkVersion);
const file = release?.sdk?.files?.find(item => item.rid === 'linux-x64' && item.name.endsWith('.tar.gz')); const file = release?.sdk?.files?.find(item => item.rid === 'linux-x64' && item.name.endsWith('.tar.gz'));
if (!file) throw new Error(`Linux x64 SDK archive not found for ${sdkVersion}`); if (!file) throw new Error(`Linux x64 SDK archive not found for ${sdkVersion}`);
const archiveResponse = await fetch(file.url); const archiveUrl = `https://dotnetcli.blob.core.windows.net/dotnet/Sdk/${sdkVersion}/dotnet-sdk-${sdkVersion}-linux-x64.tar.gz`;
const archiveResponse = await fetch(archiveUrl);
if (!archiveResponse.ok) throw new Error(`SDK download failed: ${archiveResponse.status}`); if (!archiveResponse.ok) throw new Error(`SDK download failed: ${archiveResponse.status}`);
await writeFile('/tmp/dotnet-sdk.tar.gz', new Uint8Array(await archiveResponse.arrayBuffer())); await writeFile('/tmp/dotnet-sdk.tar.gz', new Uint8Array(await archiveResponse.arrayBuffer()));
+11
View File
@@ -2,6 +2,17 @@
本文件记录 `ShrinkApp.Starter.Basic` 的包内变更。 本文件记录 `ShrinkApp.Starter.Basic` 的包内变更。
## [0.4.0] - 2026-11-06
### Added
- `ShrinkBasicComposition.CreateEntries(...)` 接受 `ShrinkDataSaverAppModuleConfig`,可把自定义存储或运行时配置传入默认组合。
- `ShrinkAppBasicContextComposition.Configure(host, ShrinkDataSaverRuntimeConfig)` 支持在 Context 组合中覆盖 DataSaver 配置。
### Changed
- 默认组合升级到 `ShrinkDataSaver 2.5.0` 与 `ShrinkDataSaver.Integration.App 0.3.0`。
## [0.2.2] - 2026-08-28 ## [0.2.2] - 2026-08-28
### Changed ### Changed
+8 -2
View File
@@ -22,9 +22,15 @@ public static class ShrinkBasicComposition
} }
public static IReadOnlyList<ShrinkLoaderEntry> CreateEntries(ShrinkAppServices services, public static IReadOnlyList<ShrinkLoaderEntry> CreateEntries(ShrinkAppServices services,
ShrinkNetworkAppModuleConfig? network = null) => new[] ShrinkNetworkAppModuleConfig? network = null) => CreateEntries(services,
network, new ShrinkDataSaverAppModuleConfig(services));
public static IReadOnlyList<ShrinkLoaderEntry> CreateEntries(ShrinkAppServices services,
ShrinkNetworkAppModuleConfig? network,
ShrinkDataSaverAppModuleConfig dataSaver) => new[]
{ {
new ShrinkLoaderEntry("datasaver", "shrink.datasaver", services), new ShrinkLoaderEntry("datasaver", "shrink.datasaver",
dataSaver ?? new ShrinkDataSaverAppModuleConfig(services)),
new ShrinkLoaderEntry("command", "shrink.command", services), new ShrinkLoaderEntry("command", "shrink.command", services),
new ShrinkLoaderEntry("network", "shrink.network", network ?? new ShrinkNetworkAppModuleConfig new ShrinkLoaderEntry("network", "shrink.network", network ?? new ShrinkNetworkAppModuleConfig
{ {
+7 -7
View File
@@ -5,17 +5,17 @@
<AssemblyName>ShrinkApp.Starter.Basic</AssemblyName> <AssemblyName>ShrinkApp.Starter.Basic</AssemblyName>
<RootNamespace>ShrinkApp.Starter.Basic</RootNamespace> <RootNamespace>ShrinkApp.Starter.Basic</RootNamespace>
<PackageId>ShrinkSDK.App.Starter.Basic</PackageId> <PackageId>ShrinkSDK.App.Starter.Basic</PackageId>
<Version>0.3.0</Version> <Version>0.4.1</Version>
<Description>Engine-neutral basic ShrinkApp composition.</Description> <Description>Engine-neutral basic ShrinkApp composition.</Description>
<ShrinkCodeGenEnabled>false</ShrinkCodeGenEnabled> <ShrinkCodeGenEnabled>false</ShrinkCodeGenEnabled>
</PropertyGroup> </PropertyGroup>
<ItemGroup> <ItemGroup>
<Compile Include="Runtime\*.cs" /> <Compile Include="Runtime\*.cs" />
<PackageReference Include="ShrinkSDK.App.Core" Version="0.2.0" /> <PackageReference Include="ShrinkSDK.App.Core" Version="0.2.4" />
<PackageReference Include="ShrinkSDK.Context.Core" Version="0.2.0" /> <PackageReference Include="ShrinkSDK.Context.Core" Version="0.3.1" />
<PackageReference Include="ShrinkSDK.Context.AppAdapter" Version="0.2.0" /> <PackageReference Include="ShrinkSDK.Context.AppAdapter" Version="0.2.5" />
<PackageReference Include="ShrinkSDK.Command.Integration.App" Version="0.2.0" /> <PackageReference Include="ShrinkSDK.Command.Integration.App" Version="0.2.6" />
<PackageReference Include="ShrinkSDK.DataSaver.Integration.App" Version="0.2.0" /> <PackageReference Include="ShrinkSDK.DataSaver.Integration.App" Version="0.3.1" />
<PackageReference Include="ShrinkSDK.Network.Integration.App" Version="0.2.0" /> <PackageReference Include="ShrinkSDK.Network.Integration.App" Version="0.2.6" />
</ItemGroup> </ItemGroup>
</Project> </Project>
+10
View File
@@ -47,3 +47,13 @@ Godot 和普通 .NET 项目安装 `ShrinkSDK.App.Starter.Basic`;可打包源
- 是否把命令输出打印到控制台 - 是否把命令输出打印到控制台
- 启动时是否自动执行默认命令 - 启动时是否自动执行默认命令
- 命令输出区最多保留多少行 - 命令输出区最多保留多少行
## 可复用能力
<!-- shrink:capabilities -->
Capability: 组合 Command、DataSaver、Network,提供最小启动与调试样例
Aliases: 起盘 启动应用 starter 样例 演示
Limits: 不预置背包、战斗或任务系统;场景对象属于宿主主线程
Extension: Starter settings 和 Context 组合条目
Evidence: [ShrinkAppBasicSampleController](Runtime/ShrinkAppBasicSampleController.cs)
<!-- /shrink:capabilities -->
+9 -1
View File
@@ -5,6 +5,7 @@ using System.Linq;
using ShrinkCommand.Integration.App; using ShrinkCommand.Integration.App;
using ShrinkCommand.Integration; using ShrinkCommand.Integration;
using ShrinkContext.AppAdapter; using ShrinkContext.AppAdapter;
using ShrinkDataSaver;
using ShrinkDataSaver.Integration.App; using ShrinkDataSaver.Integration.App;
using ShrinkDataSaver.Integration; using ShrinkDataSaver.Integration;
using ShrinkNetwork.Integration.App; using ShrinkNetwork.Integration.App;
@@ -39,13 +40,20 @@ namespace ShrinkApp.Starter.Basic
} }
public static void Configure(ShrinkAppLoaderHost host) public static void Configure(ShrinkAppLoaderHost host)
{
Configure(host, null);
}
public static void Configure(ShrinkAppLoaderHost host,
ShrinkDataSaverRuntimeConfig? dataSaverRuntimeConfig)
{ {
if (host == null) if (host == null)
throw new System.ArgumentNullException(nameof(host)); throw new System.ArgumentNullException(nameof(host));
RegisterOrReplace(host, "shrink.network", static () => new ShrinkNetworkAppComponent()); RegisterOrReplace(host, "shrink.network", static () => new ShrinkNetworkAppComponent());
RegisterOrReplace(host, "shrink.command", static () => new ShrinkCommandAppComponent()); RegisterOrReplace(host, "shrink.command", static () => new ShrinkCommandAppComponent());
RegisterOrReplace(host, "shrink.datasaver", static () => new ShrinkDataSaverAppComponent()); RegisterOrReplace(host, "shrink.datasaver",
() => new ShrinkDataSaverAppComponent(dataSaverRuntimeConfig));
host.AddModuleComponent("shrink.integration.command-network", host.AddModuleComponent("shrink.integration.command-network",
static () => new ShrinkCommandNetworkIntegrationComponent()); static () => new ShrinkCommandNetworkIntegrationComponent());
host.AddModuleComponent("shrink.integration.command-eventbus", host.AddModuleComponent("shrink.integration.command-eventbus",
+14 -14
View File
@@ -1,23 +1,23 @@
{ {
"name": "com.cneicy.shrink-app-starter-basic", "name": "com.cneicy.shrink-app-starter-basic",
"version": "0.3.0", "version": "0.4.1",
"displayName": "ShrinkApp Starter Basic", "displayName": "ShrinkApp Starter Basic",
"description": "ShrinkApp 最小起盘 Starter,提供向导、入口场景和 DataSaver 示例。", "description": "ShrinkApp 最小起盘 Starter,提供向导、入口场景和 DataSaver 示例。",
"unity": "2022.3", "unity": "2022.3",
"dependencies": { "dependencies": {
"com.cneicy.shrink-app-core": "0.2.0", "com.cneicy.shrink-app-core": "0.2.4",
"com.cneicy.shrink-context-core": "0.2.0", "com.cneicy.shrink-context-core": "0.3.1",
"com.cneicy.shrink-context-app-adapter": "0.2.0", "com.cneicy.shrink-context-app-adapter": "0.2.5",
"com.cneicy.shrink-command": "0.3.0", "com.cneicy.shrink-command": "0.4.3",
"com.cneicy.shrink-command-integration-app": "0.2.0", "com.cneicy.shrink-command-integration-app": "0.2.6",
"com.cneicy.shrink-datasaver": "2.3.0", "com.cneicy.shrink-datasaver": "2.5.0",
"com.cneicy.shrink-datasaver-integration-app": "0.2.0", "com.cneicy.shrink-datasaver-integration-app": "0.3.1",
"com.cneicy.shrink-network": "0.3.0", "com.cneicy.shrink-network": "0.4.3",
"com.cneicy.shrink-network-integration-app": "0.2.0", "com.cneicy.shrink-network-integration-app": "0.2.6",
"com.cneicy.shrink-command-integration-eventbus": "0.2.0", "com.cneicy.shrink-command-integration-eventbus": "0.2.6",
"com.cneicy.shrink-datasaver-integration-eventbus": "2.2.0", "com.cneicy.shrink-datasaver-integration-eventbus": "2.2.6",
"com.cneicy.shrink-network-integration-eventbus": "0.2.0", "com.cneicy.shrink-network-integration-eventbus": "0.2.6",
"com.cneicy.shrink-command-integration-network": "0.2.0", "com.cneicy.shrink-command-integration-network": "0.2.6",
"com.unity.ugui": "1.0.0", "com.unity.ugui": "1.0.0",
"com.cysharp.unitask": "2.5.10" "com.cysharp.unitask": "2.5.10"
}, },