↖ 项目笔记

项目笔记 02 / DSH HUB / 开源贡献

更新
DSH 配置。

我在 DSH Hub 0.5.0 中做的工作:比较上游更新和本地修改,处理冲突,并支持回滚。

DSH Plugin Hub开源贡献 · 0.5.0 版本阅读约 2 分钟RSS ↗

上游更新和本地修改#

DSH Profile 把插件和配置打包,供其他人安装。安装之后,用户可以添加依赖、禁用 bundle、调整插件顺序,或者修改配置。作者发布更新时,需要保留这些本地改动。

直接用新版本替换,会丢掉本地修改;完全不更新,又拿不到作者的新版本。我提交的 0.5.0 Profile 生命周期贡献 通过区分作者基线、个人补丁与明确的启用/移除选择来处理这个问题。

升级场景示意

作者更新了一个插件,而用户已在本地禁用它。升级需要同时考虑这两项变化。

生成升级计划#

改动先保存成计划,确认后再应用,同时支持处理冲突、查看历史和恢复旧版本。计划会记录生成时的本地状态;执行前如果状态变了,就需要重新生成。

直接运行 CLI 修改命令会立即生效,除非传入 --plan 或 --dry-run。代理工具采用 plan/apply 流程。修改之前,需要确认自己使用的是哪种流程。

作者基线
比较已安装版本与上游更新的起点。
本地意图
需要在日常编辑中保留的个人补丁、额外依赖,以及明确的插件选择。
恢复
需要回退时,之前的版本及其依赖记录仍然可用。

隔离已保存的输入#

准备依赖包和调用嵌套宿主工具时,不传入已保存的输入值。只有验证、启动所选 Profile 时才单独加载,避免准备依赖的过程拿到保存的凭据。

这次改动测试了暂存失败、回滚、依赖锁复用和输入隔离。原生 Windows 环境和第三方从零安装的验收仍需后续验证。

下方附有合并记录和后续工作文档。

源码与延伸阅读#

Jiahang 已合并的 Profile 生命周期改动 · 0.5.0 ↗版本验证边界与后续工作 ↗