diff --git a/yh-platform-dotnet建设方案v4.md b/yh-platform-dotnet建设方案v4.md index 9d319dd..9ab204c 100644 --- a/yh-platform-dotnet建设方案v4.md +++ b/yh-platform-dotnet建设方案v4.md @@ -1,3 +1,14 @@ +--- +AIGC: + ContentProducer: '001191110102MAD55U9H0F10002' + ContentPropagator: '001191110102MAD55U9H0F10002' + Label: '1' + ProduceID: '0c3965b2-86bf-44ef-9ca7-c1be5394b48e' + PropagateID: '0c3965b2-86bf-44ef-9ca7-c1be5394b48e' + ReservedCode1: '841092c7-f9f4-4d86-b50c-f4b1e0e9974a' + ReservedCode2: '841092c7-f9f4-4d86-b50c-f4b1e0e9974a' +--- + # yh-platform-dotnet 建设方案 v4 —— 移交文档(已做 / 未做全记录) > 版本:v4.0 | 日期:2026-08-28 | 状态:**移交文档**(接手人从此文档开始) @@ -29,7 +40,7 @@ BasePlatformDotnet/ ├── Directory.Build.props # 共享编译属性:双目标 net5.0;net8.0、LangVersion、NuGet 元数据、YhPlatformNetVersion ├── Directory.Packages.props # CPM 集中包版本(= Java BOM 等价物) ├── yh-platform-net.sln -├── .gitea/workflows/ci.yml # CI:build → test → pack +├── .gitea/workflows/ci.yml # CI:build → test → pack → push(仓库根,仅 main push 触发发布) ├── src/ │ ├── Yh.Platform.Abstractions/ # 模型与信封(对应 yh-utils-core) │ │ ├── BoaUser.cs / BoaRoleInfo.cs / BoaGroup.cs / BoaModule.cs / BoaApp.cs / BoaAppType.cs @@ -161,19 +172,18 @@ UserBase 改 /oapi 契约 ## 四、未完成的工作(移交待办,按优先级) -### 4.1 🔴 发布链(阻塞所有消费方,预计半天) +### 4.1 🔴 发布链(阻塞所有消费方)—— ✅ 已完成(2026-09-02 实测) -- [ ] **Nexus 建仓**(需管理员):登录 `nexus.yunhaixingtong.com` → Repositories → Create → `nuget-hosted`(Version policy: Release;Deployment policy: **Disable redeploy**)→ 拿 API Key。可选:`nuget-proxy`(代理 nuget.org)+ `nuget-public`(group) -- [ ] **版本号裁决**:当前 `YhPlatformNetVersion=1.0.0`。因 9.1 核对表 #6~#9/#12 尚未真实环境实调,**建议先发 `1.0.0-preview.1`**(改 Directory.Build.props 后重 pack),实调通过再定 1.0.0;或直接 1.0.0 接受风险 -- [ ] **推送**: - ```powershell - dotnet nuget add source "http://nexus.yunhaixingtong.com/repository/nuget-hosted/index.json" ` - --name nexus-nuget --username <账号> --password <密码> --store-password-in-clear-text - dotnet nuget push "d:\SoftProject\yunhai\BasePlatformDotnet\artifacts\*.nupkg" ` - --source nexus-nuget --api-key --skip-duplicate - ``` -- [ ] **推送后验证**:空项目 `dotnet add package Yh.Platform.OpenApi` 能还原;注意 http 源在新 SDK 需 `nuget.config` 加 `allowInsecureConnections="true"` -- [ ] **CI push 固化**:Gitea 仓库 Secrets 加 `NEXUS_NUGET_APIKEY`/`NEXUS_NUGET_URL`,ci.yml 的 pack 步骤后追加 push 步骤(仅 main 分支) +- [x] **Nexus 建仓**:`nuget-hosted`(Version policy: Release;Deployment policy: **Disable redeploy**)、`nuget-group`(聚合)、`nuget.org-proxy` 均已在 Nexus 预先建好。**注意**:Nexus 实际地址带端口 `http://nexus.yunhaixingtong.com:8081`(本方案文档 URL 原缺端口);写策略枚举值为 `ALLOW_ONCE`(= Disable redeploy,禁止覆盖),已通过 REST API 确认/修正 +- [x] **版本号裁决**:采用 `1.0.0-preview.1`(核对表 #6~#9/#12 尚未真实环境实调,先发预发布版;实调通过后再改 Directory.Build.props 定 1.0.0) +- [x] **推送**(5 个包全部推送成功): + - `Yh.Platform.Abstractions / AppAuth / OpenApi / Auth / Yh.SchClass.OpenApi` 均 `1.0.0-preview.1` + - **认证方式**:Nexus 的 NuGet 推送走 **HTTP Basic(账号+密码)**,不校验 api-key(`--api-key` 传任意值即可) + - **`--skip-duplicate` 对 Nexus 无效**(重复包直接返回 400),推送脚本改为先调 Nexus REST API 查重、已存在则跳过 +- [x] **推送后验证**:空项目 `dotnet add package Yh.Platform.OpenApi --version 1.0.0-preview.1` 通过 `nuget-group` 成功还原并编译;http 源需在 `nuget.config` 显式加 `allowInsecureConnections="true"` +- [x] **CI push 固化**:Gitea 仓库 Secrets 配置 `NEXUS_URL` / `NEXUS_USER` / `NEXUS_PASS`;工作流已迁到**仓库根** `.gitea/workflows/ci.yml`(`BasePlatformDotnet/.gitea/` 子目录不触发),推送逻辑抽到 `.gitea/scripts/push-to-nexus.sh`(动态生成带凭据 nuget.config + 查重跳过);**CI 运行 #643 全绿**(build-test + publish,Push to Nexus 输出 `pushed=0 skipped=5 failed=0`——5 包已存在被正确跳过) + +> 后续发新版本(如 1.0.0):改 `Directory.Build.props` 的 `YhPlatformNetVersion` → 推送 main → CI 自动 pack + push;同版本因 Disable redeploy 不可覆盖,务必递增版本号。 ### 4.2 🟠 真实环境实调(依赖 UserBase 测试环境 + appKey 注册) @@ -234,8 +244,8 @@ dotnet pack -c Release -o artifacts # 预期 4 包生成 | 信封解析 | ✅ 成功裸数据/code≠0 抛 DException(EnvelopeData 携带),fixture 锁定 | | 模型契约 | ✅ 13 POCO ⇔ 权威快照双向对拍 | | 双序列化器 | ✅ Newtonsoft(大小写不敏感)+ STJ Web 逐节点对拍 | -| pack 产物 | ✅ 4 包、双 TFM lib、依赖分组正确(本地验证) | -| Nexus 发布 | ❌ 未推送(待 4.1) | +| pack 产物 | ✅ 5 包(含 Yh.SchClass.OpenApi)、双 TFM lib、依赖分组正确(本地验证) | +| Nexus 发布 | ✅ 5 包 1.0.0-preview.1 已推送(2026-09-02);CI #643 全绿自动发布链路打通 | | 真实环境实调 | ❌ 待 UserBase 测试环境(待 4.2,核对表 15 项中 11 过 4 待) | | 消费方实际接入 | ❌ 未开始(待 4.3 指南 + 4.1 发布) | @@ -255,3 +265,5 @@ dotnet pack -c Release -o artifacts # 预期 4 包生成 | 2026-08-28 | v2.0 | 消费方实证(GrowthHealth net5.0 + BschOpenApi 考古)、脚手架命令、四包设计、分阶段实施 | | 2026-08-28 | v3.0 | 自检清单(工程/契约/运行)+ 15 项审计核对表 | | 2026-08-28 | v4.0 | **移交版**:已完成(P0~P6 + 两轮缺陷修复 + 快照对拍机制 + pack 验证)与待办(发布链/实调/指南/长期项)全记录,含接手人快速上手路径 | + +> AI生成 \ No newline at end of file