跳到正文
MyDSH我的 DSH 实战笔记
English
独立维护,非DeepSeek官方;与mydsh.dev等其他MyDSH站点无关联。

首页/开发者与插件开发/发布与版本管理

CHANGELOG 里必须写宿主范围:照着 npm 上 44 个版本的做法

发版时只写「修复若干问题」,别人装了跑不起来才发现版本不对。

已核验版本与环境核验日期2026-11-14
样本
npm上44个dsh版本 + 5个声明engines.dsh的插件
核验日期
2026-11-14

先看别人怎么写 engines

插件engines.dsh原文
dsh-context>=0.2.0-rc.2 || >=0.2.1-rc.2 || >=0.2.2-rc.1
dsh-cost-meter>=0.2.0-rc.1 <0.3.0-0
dsh-vision-router>=0.2.1-rc.5 <0.3.0-0
dsh-ppt>=0.2.2-rc.3
billion-context(不声明engines.dsh,只声明node >=20)

两种写法各有道理:并列多个下界(dsh-context)表示「这几个入口都测过」;区间(dsh-cost-meter)表示「这个范围之外的没见过」。前者更诚实但更难维护,后者更好读但容易过期。

CHANGELOG 范本

## 0.3.0

适用宿主:>=0.2.2-rc.1 <0.3.0-0(在 0.2.2-rc.1 与 0.2.2-rc.3 上实测)
需要宿主提供的 inject 目标:dsh-api-remotes, dsh-client-ui-sidebar-right

### 变更
- 新增:…
- 修复:…

### 升级注意
- 若宿主 < 0.2.2-rc.3,xxx 功能不可用(原因:依赖宿主新增的 yyy)
范本里真正值钱的是那行 「需要宿主提供的inject目标」。本站实测:宿主缺inject包时插件静默挂起、零输出、无报错,用户完全查不到原因。你把这行写出来,等于替用户省掉几小时的排查。

为什么「适用宿主」不能省

  • engines.dsh 不会被任何环节校验(本站实测),所以它挡不住别人装错版本。
  • 唯一能起作用的时机是有人读了CHANGELOG。
  • 写清楚适用范围 + 在哪测的,比写一串版本号有用。

怎么算跑通

照着逐条对,全过才算完成。有一条没过,先解决它再往下。

  • CHANGELOG里有「适用宿主」与「实测在哪几版」
  • 写清了需要宿主提供的inject目标
  • 升级注意里说清了低于某版会失去什么

会失败在哪

现象 / 原因 / 怎么办,按实际踩到的顺序写。

现象原因怎么办
写了engines就以为够了它不会被校验在CHANGELOG里也写一遍,并写清在哪测的

来源

标「已核验」的,来自本站实跑;标「公开资料整理」的,逐条附出处。