<?xml version="1.0"?>
<feed xmlns="http://www.w3.org/2005/Atom" xml:lang="zh-Hans-CN">
	<id>https://wiki2.lessokaji.com/index.php?action=history&amp;feed=atom&amp;title=MDCS%E5%B9%B3%E5%8F%B0%E5%8F%91%E5%B8%83%E6%B5%81%E7%A8%8B</id>
	<title>MDCS平台发布流程 - 版本历史</title>
	<link rel="self" type="application/atom+xml" href="https://wiki2.lessokaji.com/index.php?action=history&amp;feed=atom&amp;title=MDCS%E5%B9%B3%E5%8F%B0%E5%8F%91%E5%B8%83%E6%B5%81%E7%A8%8B"/>
	<link rel="alternate" type="text/html" href="https://wiki2.lessokaji.com/index.php?title=MDCS%E5%B9%B3%E5%8F%B0%E5%8F%91%E5%B8%83%E6%B5%81%E7%A8%8B&amp;action=history"/>
	<updated>2026-05-16T16:08:28Z</updated>
	<subtitle>本wiki上该页面的版本历史</subtitle>
	<generator>MediaWiki 1.40.0</generator>
	<entry>
		<id>https://wiki2.lessokaji.com/index.php?title=MDCS%E5%B9%B3%E5%8F%B0%E5%8F%91%E5%B8%83%E6%B5%81%E7%A8%8B&amp;diff=1040&amp;oldid=prev</id>
		<title>Artheru：​Initial bilingual draft (auto-published)</title>
		<link rel="alternate" type="text/html" href="https://wiki2.lessokaji.com/index.php?title=MDCS%E5%B9%B3%E5%8F%B0%E5%8F%91%E5%B8%83%E6%B5%81%E7%A8%8B&amp;diff=1040&amp;oldid=prev"/>
		<updated>2026-05-16T14:00:19Z</updated>

		<summary type="html">&lt;p&gt;Initial bilingual draft (auto-published)&lt;/p&gt;
&lt;p&gt;&lt;b&gt;新页面&lt;/b&gt;&lt;/p&gt;&lt;div&gt;&amp;lt;languages/&amp;gt;&lt;br /&gt;
&lt;br /&gt;
== 概述 / Overview ==&lt;br /&gt;
本页是 MDCS 平台 ''内核 + 一方插件 + 客户端''的发布流程。客户端单插件发布见 [[Special:MyLanguage/插件测试与发布|插件测试与发布]]。&lt;br /&gt;
&lt;br /&gt;
This page covers MDCS '''kernel + first-party plugin + client''' release flow. Single-plugin release: see [[Special:MyLanguage/插件测试与发布|insert plugin testing &amp;amp; release]].&lt;br /&gt;
&lt;br /&gt;
== 0. 准备 / Pre-flight ==&lt;br /&gt;
* 所有目标变更已合并到主分支&lt;br /&gt;
* 单元测试通过（特别是 `D:\src\Fundamentals\Test\`）&lt;br /&gt;
* 仿真车集成测试通过&lt;br /&gt;
* DEV_LOG.md 已记录本期所有 ''发现 / 注意 / 灵感''&lt;br /&gt;
* 已确认变更不破坏向后兼容（或明确标注 break）&lt;br /&gt;
&lt;br /&gt;
== 1. 版本号 / Version bumping ==&lt;br /&gt;
按 ''SemVer + 助记词'' ：&lt;br /&gt;
SemVer + mnemonic:&lt;br /&gt;
&lt;br /&gt;
* '''Major''' (`X.0.0+...`)：破坏性 API 变更 / breaking API change&lt;br /&gt;
* '''Minor''' (`x.X.0+...`)：新功能 / new features&lt;br /&gt;
* '''Patch''' (`x.x.X+...`)：bug 修复 / bug fix&lt;br /&gt;
* '''Mnemonic''' (`+lantern`)：每次构建唯一单词，便于现场区分&lt;br /&gt;
&lt;br /&gt;
更新位置 ：&lt;br /&gt;
Update locations:&lt;br /&gt;
&lt;br /&gt;
# 各仓库根 `Directory.Build.props` 中的 `&amp;lt;Version&amp;gt;`&lt;br /&gt;
# 各 csproj 中的 `&amp;lt;AssemblyInformationalVersion&amp;gt;`（含助记词）&lt;br /&gt;
# `CHANGELOG.md`（如果有）&lt;br /&gt;
# DEV_LOG.md 加一条发布条目&lt;br /&gt;
&lt;br /&gt;
== 2. 构建顺序 / Build order ==&lt;br /&gt;
按依赖自底向上 ：&lt;br /&gt;
Bottom-up:&lt;br /&gt;
&lt;br /&gt;
# `LessokajiWeaver` — `dotnet build -c Release`&lt;br /&gt;
# `Fundamentals` — 同&lt;br /&gt;
# `CycleGUI` —— C++ libVRender 先构建 + 复制 .dll 到 Windows / Linux 输出&lt;br /&gt;
# `M2` —— MedullaCore 先，OfficialPlugins 后&lt;br /&gt;
# `Detour` —— DetourCore，然后 Detour.exe（.NET 4.8）+ DetourLite.exe（.NET 8）&lt;br /&gt;
# `Clumsy` —— ClumsyCore，然后 ClumsyDance&lt;br /&gt;
# `Simple` —— SimpleCore，然后 SimpleComposer&lt;br /&gt;
&lt;br /&gt;
每个仓库构建后 ：&lt;br /&gt;
After each:&lt;br /&gt;
&lt;br /&gt;
* 验证 `Ref&amp;lt;Name&amp;gt;.dll` 已重新生成（如果公共 API 变了）&lt;br /&gt;
* 把新 Ref 复制到下游仓库的 `tools/` 目录&lt;br /&gt;
* 提交 Ref 到下游仓库的 git&lt;br /&gt;
&lt;br /&gt;
== 3. 烟雾测试 / Smoke tests ==&lt;br /&gt;
=== 单元 / Unit ===&lt;br /&gt;
&amp;lt;syntaxhighlight lang=&amp;quot;bash&amp;quot;&amp;gt;&lt;br /&gt;
dotnet test D:\src\Fundamentals\Test\&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
&lt;br /&gt;
特别盯 DObject 测试 —— IPC bug 灾难性。&lt;br /&gt;
Watch DObject tests especially — IPC bugs are catastrophic.&lt;br /&gt;
&lt;br /&gt;
=== 集成 / Integration ===&lt;br /&gt;
仿真车 SimpleComposer ：&lt;br /&gt;
SimpleComposer with virtual car:&lt;br /&gt;
&lt;br /&gt;
# 启动 Medulla + 仿真 `Lidar + Cart` 插件&lt;br /&gt;
# 启动 DetourLite&lt;br /&gt;
# 启动 SimpleComposer，加载场景&lt;br /&gt;
# 派 5–10 个混合任务&lt;br /&gt;
# 观察 Hedingben 是否有红色 toast&lt;br /&gt;
# 检查任务完成率 100%&lt;br /&gt;
&lt;br /&gt;
=== 现场冒烟 / Site smoke ===&lt;br /&gt;
（可选 / 大改动时必做）在 ''一辆真车''上跑核心场景 ：&lt;br /&gt;
(For major changes) run the core scenarios on one real vehicle:&lt;br /&gt;
&lt;br /&gt;
* 巡线行走&lt;br /&gt;
* 自动识别工位并取放货&lt;br /&gt;
* 充电流程&lt;br /&gt;
* 异常停 + 恢复&lt;br /&gt;
&lt;br /&gt;
== 4. 一方插件重建 / Rebuild first-party plugins ==&lt;br /&gt;
所有 `D:\src\M2\OfficialPlugins\*` 都引用核心 Ref。任何核心 API 变更都要求 ：&lt;br /&gt;
All first-party plugins reference core Refs. Any core API change requires:&lt;br /&gt;
&lt;br /&gt;
# 拉取最新核心仓库&lt;br /&gt;
# `dotnet build -c Release` 各插件&lt;br /&gt;
# 在干净 Medulla 控制台测试加载（确保 Costura 内嵌没问题）&lt;br /&gt;
# 把生成的 `&amp;lt;plugin&amp;gt;.dll` 复制到发布 staging&lt;br /&gt;
&lt;br /&gt;
== 5. 打包 / Bundle ==&lt;br /&gt;
=== Medulla bundle ===&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
medulla-&amp;lt;version&amp;gt;.zip&lt;br /&gt;
├── MedullaConsole.exe&lt;br /&gt;
├── MedullaCore.dll&lt;br /&gt;
├── plugins/&lt;br /&gt;
│   ├── LidarController/LidarController.dll&lt;br /&gt;
│   ├── CartActivator/CartActivator.dll&lt;br /&gt;
│   ├── Camera/Camera.dll&lt;br /&gt;
│   └── ...&lt;br /&gt;
├── tools/&lt;br /&gt;
│   └── (运行时工具)&lt;br /&gt;
├── README.md&lt;br /&gt;
├── CHANGELOG.md&lt;br /&gt;
└── startup.iocmd.sample&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
=== Detour bundle ===&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
detour-&amp;lt;version&amp;gt;.zip&lt;br /&gt;
├── Detour.exe              (or DetourLite.exe)&lt;br /&gt;
├── DetourCore.dll&lt;br /&gt;
├── CycleGUI.dll&lt;br /&gt;
├── libVRender.dll&lt;br /&gt;
├── README.md&lt;br /&gt;
└── CHANGELOG.md&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
=== SimpleComposer bundle ===&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
simplecomposer-&amp;lt;version&amp;gt;.zip&lt;br /&gt;
├── SimpleComposer.exe&lt;br /&gt;
├── SimpleCore.dll&lt;br /&gt;
├── plugins/  (空，客户填一方/三方车型 plugin)&lt;br /&gt;
├── README.md&lt;br /&gt;
└── CHANGELOG.md&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
== 6. 发布到 dl.lessokaji.com ==&lt;br /&gt;
* 上传 3 个 bundle 到 `dl.lessokaji.com`（内部 SFTP / S3）&lt;br /&gt;
* 路径 ：`releases/&amp;lt;component&amp;gt;/&amp;lt;version&amp;gt;/`&lt;br /&gt;
* 在 `auth.lessokaji.com` 注册新版本（用于授权门控）&lt;br /&gt;
&lt;br /&gt;
== 7. 文档更新 / Documentation update ==&lt;br /&gt;
* Wiki 发布说明 ：`wiki/Detour版本发布记录`，Medulla / Simple 各自的发布说明页&lt;br /&gt;
* 主页 `首页` 更新版本徽章（如有）&lt;br /&gt;
* HOW_TO_USE.md / HOW_TO_CUSTOMIZE.md / HOW_TO_DEV_CORE.md（在 `D:\src\cookbook\`）&lt;br /&gt;
&lt;br /&gt;
== 8. 通知 / Notify ==&lt;br /&gt;
* 内部团队 ：邮件 + Slack / 微信 群通知&lt;br /&gt;
* 客户 ：按其升级合约的节奏；major 变更要预约升级窗口&lt;br /&gt;
* CHANGELOG 高亮 ''行为变更''（不只是 &amp;quot;fix bug&amp;quot;）&lt;br /&gt;
&lt;br /&gt;
== 9. 回滚预案 / Rollback plan ==&lt;br /&gt;
每个 bundle 至少保留 ''前一版本''可下载。客户回滚 ：&lt;br /&gt;
Keep at least the prior version available. Client rollback:&lt;br /&gt;
&lt;br /&gt;
# 停服务&lt;br /&gt;
# 替换为旧 bundle&lt;br /&gt;
# 启动；验证关键场景&lt;br /&gt;
&lt;br /&gt;
''数据''兼容 ：&lt;br /&gt;
Data compatibility:&lt;br /&gt;
* DObject 协议（FundamentalLib 版本哈希）必须兼容；否则需重启全套&lt;br /&gt;
* SLAM 地图文件 ：通常向后兼容&lt;br /&gt;
* SimpleComposer 场景 JSON：通常向后兼容&lt;br /&gt;
* Plugin 接口（Ref assembly）：major 变更不兼容；minor 兼容&lt;br /&gt;
&lt;br /&gt;
== 10. 发布后 / Post-release ==&lt;br /&gt;
* 在 ''新版本'' Medulla 控制台跑一遍 `io load` + `cart Init` + 核心场景，做最后冒烟。&lt;br /&gt;
* 收集第一周客户反馈到 ''发布后看板''。&lt;br /&gt;
* DEV_LOG.md 加 &amp;quot;release N+0day notes&amp;quot;。&lt;br /&gt;
&lt;br /&gt;
== 11. 紧急补丁 / Emergency patch ==&lt;br /&gt;
* 直接在 `release/&amp;lt;X.Y&amp;gt;` 分支上 fix&lt;br /&gt;
* Patch 版本号 + 助记词&lt;br /&gt;
* 通过 ''快速通道''跳过部分 smoke（在 hot incident 时）&lt;br /&gt;
* 但 ''必须''跑 DObject 单元测试&lt;br /&gt;
&lt;br /&gt;
== 12. 大版本规划 / Major version planning ==&lt;br /&gt;
* Pre-release ''alpha / beta''先给 ''友好客户''&lt;br /&gt;
* Beta 周期 ≥ 2 周&lt;br /&gt;
* Public release 必须有 ''迁移文档''（旧 → 新 API）&lt;br /&gt;
&lt;br /&gt;
== 相关页面 / See also ==&lt;br /&gt;
* [[Special:MyLanguage/MDCS仓库布局与构建链|MDCS仓库布局与构建链]]&lt;br /&gt;
* [[Special:MyLanguage/MDCS跨切面约定|MDCS跨切面约定]]&lt;br /&gt;
* [[Special:MyLanguage/插件测试与发布|插件测试与发布]]&lt;br /&gt;
* [[Special:MyLanguage/Detour版本发布记录|Detour版本发布记录]]&lt;br /&gt;
* [[Special:MyLanguage/核心开发指南|核心开发指南]]&lt;br /&gt;
&lt;br /&gt;
[[Category:开发手册]]&lt;br /&gt;
[[Category:二次开发相关说明]]&lt;/div&gt;</summary>
		<author><name>Artheru</name></author>
	</entry>
</feed>