# Brisk Package 发布流程 本文档用于约定当前仓库的发布方式。 仓库地址: - `http://private.lightyears.ltd:18650/foldcc/CC-Framework.BriskGameServer.git` ## 开发态 当前仓库是 Unity 原始开发工程: - SDK 活代码放在 `Assets/BriskSdk/Runtime` - 示例脚本放在 `Assets/BriskSdk/Samples/QuickStart` - 示例场景放在 `Assets/Scenes/BriskQuickStartScene.unity` ## 发布态 对外发布 Git Package 时,不直接把整个 Unity 工程作为包发布。 统一从以下目录产出 package 内容: - `PackageSource/com.foldcc.cc-framework.BriskGameServer` 该目录用于承载: - `package.json` - `README.md` - `CHANGELOG.md` - `Documentation~` - `Runtime` - `Samples~` ## 同步步骤 在准备发布分支或发布 tag 前,执行: ```powershell ./Tools/Sync-BriskPackage.ps1 ``` 脚本会自动: 1. 从 `Assets/BriskSdk/Runtime` 同步到 `PackageSource/com.foldcc.cc-framework.BriskGameServer/Runtime` 2. 从 `Assets/BriskSdk/Samples/QuickStart` 同步到 `PackageSource/com.foldcc.cc-framework.BriskGameServer/Samples~/QuickStart` 3. 把 `Assets/Scenes/BriskQuickStartScene.unity` 一并复制到 package sample 目录 ## 分支与 Tag 规范 建议采用以下命名: - 日常开发分支: - `feature/...` - `fix/...` - 对外发包分支: - `release/upm-vX.Y.Z` - 对外发包 tag: - `upm/vX.Y.Z` 示例: - `release/upm-v0.1.0` - `upm/v0.1.0` ## 推荐发布动作 每次准备发版时,建议严格按以下顺序执行: 1. 在开发分支完成 SDK 功能与测试 2. 更新 `Assets` 下源码与示例场景 3. 运行 `./Tools/Sync-BriskPackage.ps1` 4. 检查 `PackageSource/com.foldcc.cc-framework.BriskGameServer` 输出结果 5. 更新 `package.json` 版本号 6. 更新 `CHANGELOG.md` 7. 创建发布分支 `release/upm-vX.Y.Z` 8. 提交发布目录改动 9. 打 tag `upm/vX.Y.Z` 10. 推送发布分支与 tag ## 外部项目接入示例 外部项目通过 Git Package Manager 接入时,建议固定到 tag: ```text http://private.lightyears.ltd:18650/foldcc/CC-Framework.BriskGameServer.git?path=/PackageSource/com.foldcc.cc-framework.BriskGameServer#upm/v0.1.0 ``` 这样做的好处: - 外部项目不会直接依赖整个 Unity 开发工程 - 接入版本稳定,可回滚 - package 内容和开发态源码解耦 ## 当前注意事项 当前 `package.json` 中的包名仍然沿用既定命名: - `com.foldcc.cc-framework.BriskGameServer` 这符合当前项目命名诉求,但从 UPM / npm 生态习惯看,正式大范围外发前,建议再确认一次是否需要改成全小写形式,以避免潜在兼容性问题。 ## 建议发布流程 1. 在开发分支完成功能 2. 运行 `./Tools/Sync-BriskPackage.ps1` 3. 检查 `PackageSource/com.foldcc.cc-framework.BriskGameServer` 内容 4. 切到对外发布分支,或基于当前提交创建发布分支 5. 只保留 package 所需目录,或以该子目录作为 git package 子路径 6. 更新 `package.json` 版本号与 `CHANGELOG.md` 7. 打 tag 给外部项目接入