Skip to content

v0.2.5

Choose a tag to compare

@lmr233 lmr233 released this 11 Sep 11:06
· 7 commits to master since this release

v0.2.5

把「更新」从一次性的写操作,变成可中断、可继续、装前先验的过程。

新增

  • 更新包下载的断点续传:先把 tarball 下到 $DSH_HOME/dsh-git-update-notifier-downloads/,再用 Range 从断点继续。网络断开、主动取消、甚至 dsh 重启,下次都接着下(断点记在磁盘上)
  • 更新包校验:交给 npm install 之前校验 dist.integrity(sha512)、dist.shasum(sha1)与 tarball 内的包名 / 版本;两层凭据都缺失时拒绝安装
  • 源码形态抓取可重试:git pull 拆成 git fetch(可中断、可重试、git 复用已下载对象)+ 本地 merge --ff-only
  • 更新过程可见:阶段、已下载 / 总大小与百分比,并标注「这次是从断点续上的」
  • 中断入口:「中断下载」(保留断点)与「中断并丢弃断点」

变更

  • npx / npm 形态改为安装校验过的本地 tarball:项目形态加 --no-save --no-package-lock(不改用户清单),npx 缓存写回依赖版本
  • HTTP 路由由 7 条增至 9 条:新增 GET /progress.json 与 POST /download/cancel

修复

  • 服务端忽略 Range、回 200 全量重下时,不再把磁盘断点位置误报成「续传了多少」
  • 对端直接掐断连接时不一定报 error —— 改为同时依据 complete 判定为可续传的中断

完整变更:CHANGELOG.md
发布归档:docs/releases/v0.2.5.md

宿主端有改动:升级后需要重启 dsh web 才生效。另外「下载 + 校验 + 装本地包」这条路径只对 npx / npm 形态生效,源码形态的续传由 git 自身完成。