之前其实吐槽过 Hermes Agent 的安装与更新,流程其实差不多,从仓库 main 分支 pull 源码后在本地安装依赖并在本地构建。而仓库迭代非常快,每天上百次提交,所以我更新还是蛮频繁的。就因为这个流程繁琐,构建也需要时间,我算了下,每次更新都需要3分钟左右。
不过最近的更新都比较顺利,以前还会不时弹出更新错误,需要我自己查log排查。我让 Hermes 分析了一下 Hermes update 的相关代码。发现其实逻辑目前是比较完备了,有很多报错兜底的机制。比方说,如果 .git 不存在且是 Windows 系统,就会走 ZIP 下载。比方说还提供了 hermes update --pip 的方式,也就是可以走 PyPI 的路径。虽然 tag 都是 V0.17.0,但 PyPI 上的版本,其实和我本地相比还是落后了 2150 个提交。
我本来在想,为什么 Hermes 不分发预编译包呢?我想到有几个可能的原因,第一个就是仓库代码迭代的频率太快,一天上百个 commit 就意味着需要构建上百次,加上多平台支持,压力可能会比较大。第二个原因是,用户本身可能会修改源码,比如我就魔改过很多模块,这些改动的代码都会在 pull 之前被 stash。第三就是,Python 项目想做预编译分发本身就有些尴尬,.pyc 也不算传统意义上的二进制。