SuperAPI AI 工具集

update-v8

部署与运维

查看项目

更新于 10-15 19:50

技能介绍

用途:指导在 workerd 中更新 V8 JavaScript 引擎,属高风险变更,需谨慎管理补丁,合并冲突依赖人工判断。开始前必须与开发者确认目标版本。

前置条件:depot_tools 已安装并在 $PATH;在 workerd 仓库外单独检出 V8:mkdir v8 && cd v8 && fetch v8。

主要流程:1) 在 chromiumdash.appspot.com 查 Chrome Beta 使用的 V8 版本并与开发者确认;在 build/deps/v8.MODULE.bazel 查看当前 VERSION。2) 将本地 V8 同步到旧版本:git checkout <old_version> 后 gclient sync。3) 应用补丁:git checkout -b workerd-patches;git am --keep-non-patch <path_to_workerd>/patches/v8/*;补丁含序列化、构建系统、嵌入钩子、Bug 绕过、API 增补、ICU 配置等类别。4) 重基:git rebase --onto <new_version> <old_version>,构建系统与 API 补丁最易冲突,不得自动解决或未经确认丢弃补丁。5) 生成补丁:git format-patch --full-index -k --no-signature --no-stat --zero-commit <new_version>。6) 经人工确认后替换 patches/v8/ 下文件。7) 更新 v8.MODULE.bazel 的 VERSION、INTEGRITY(sha256 经 openssl 计算,格式 sha256-<base64>=)与 PATCHES 列表(须与文件名和顺序完全一致)。8) 检查 V8 的 DEPS,更新 com_googlesource_chromium_icu,并用 python3 build/deps/update-deps.py perfetto 和 simdutf 更新 deps.jsonc 依赖;不要手改 build/deps/gen/。9) 运行 just build 与 just test,关注 V8 API 变更引发的构建失败、行为变化引发的测试失败及弃用警告。10) 提交并推送评审,未人工审查补丁前不得推送。

限制:不得执行不可逆操作,如丢弃补丁或更新哈希,须获明确确认;不提供收费、平台、效果等信息。