Skip to content

升级 Node 24.22.0 LTS 上游 PR,沿用 danmu lite 裁剪构建 - #10

Merged
fogtape merged 7 commits into
recipefrom
upgrade/node24.22-lts-pr
Oct 13, 2026
Merged

fogtape merged 7 commits into
recipefrom
upgrade/node24.22-lts-pr

Conversation

@fogtape

@fogtape fogtape commented Oct 12, 2026 •

Copy link
Copy Markdown
Owner

将 Node 24 LTS 构建线升级到官方 nodejs/node#66667 的 24.22.0 提案,固定提交 a5d0eb95dd03b90986ad1a7c0cd3f2de1a0f383c。产物标明为 CI preview;普通 PR/build 不创建标签或 GitHub Release。

沿用 Node 24 PR #6 确定的 danmu lite 裁剪。完整 ICU API、指定数据 profile、Amaro/Inspector/SQLite/Web Storage/SEA/对象打印裁剪、Android 64 位指针压缩及保持动态导出的 SDK strip 均保持原样。iOS 继续使用 jitless V8 和 polywasm。

重新生成 20 个移动端补丁,采用上游 WebAssembly/JSPI 开关并排除新增上游工作流。源码重建、缓存、基线审计及逐补丁 configure 支持固定 SHA。升级 PR 编译十个 full/lite 目标,通过完整设备门禁后打包四个带 BUILD-INFO.json 和 SHA256SUMS 的版本预览包。

设备测试保留进程内覆盖:Intl 仅跳过移动端两次子 Node 启动,SQLite backup 仅跳过独立进程子测试,目录删除严格校验两端实测的 ENOTEMPTY 及路径/消息,原生 WASM 参数测试仅在 iOS 排除。26 个新上游回归和三个适配回归进入 239 项 curated gate。Android 完整套件保留全部 3,771 项 runnable cases,分成 16 个分片,四并发;iOS 使用四个分片。

工作流修复包含:

  • 三个 Android emulator 入口固定并验证官方 Emulator 37.2.12 build 16428233。缓存和下载必须通过大小、SHA-256、ZIP 及实际版本验证,并预装 libpulse0;仅绕过 SDK Manager 的重复 emulator 更新,其余安装调用及失败状态保持原样。
  • iOS smoke 使用应用 PID、token verdict 和沙箱输出文件,避免 simctl console FIFO。真实 FAIL 不重试,缺少 verdict 不通过。
  • Android 每次测试启动前确认旧应用停止和日志清理成功。MainActivity 在 Node 开始前写入 token 启动标记。仅在停止应用后能确定 Node 未开始时允许有限重试;查询失败、已开始的 FAIL、崩溃或挂起均不授权重试。ADB 调用有超时,失败启动保留诊断输出。test-https-simple 继续执行。

验证:

  • 最新源码树 786da7b5d33a6cabb31668f3089731b3c0a62713 从完整配方重建通过。
  • 本地 10 项 Android 启动行为回归、7 项 Android 分片覆盖/失败传播检查、5 项 flavor/ICU 检查通过;libnode 编译输入与前一提交相同。
  • 前一提交的 Verify 38337972310 全部通过。Build 38337972601 已通过十项编译、两端 full/lite smoke、curated gates、四个 iOS 完整分片及十五个 Android 分片。Android 第 15 分片通过 234 项,唯一超时伴随 am start 失败和旧 TLS 测试输出,触发本次启动握手修复;host 检查仍在运行。
  • 当前提交 38ad82d7 的 Verify 38343876886 全部通过。Build 38343877089 已通过十项 full/lite 编译、两端 full/lite smoke、全部 curated gates 和十六个 Android 完整分片。之前失败的第 15 分片为 235 passed、0 failed、0 hung、0 crashed、0 no-verdict,test-https-simple 已正常执行通过。iOS 完整分片和 host 编译仍在运行,完整门禁尚未宣称通过。

提案来源、lite 合约及各项适配依据见 docs/UPSTREAM-24.22.md。正式标签发布后比较源码、更新 pin、重新验证,再走独立手动发版流程。

固定 nodejs/node#66667 的 a5d0eb95dd03b90986ad1a7c0cd3f2de1a0f383c,重建 20 个移动端补丁与源码校验值。保留后来确定的完整 ICU API、danmu ICU 数据配方、功能裁剪、Android 指针压缩及导出符号验证。

补齐 SHA 克隆、缓存与 CI 基线验证,升级 PR 编译全部 full/lite 平台并打包预览。加入 26 个上游进程内回归,复用已经验证的有限并发设备分片。34 项本地回归和全新源码重建往返一致;完整交叉编译与设备运行交由 CI。

Assisted-by: Codex
Signed-off-by: fogtape <lilixu3210@gmail.com>
@fogtape fogtape added the preserve-build-cache Queue replacement builds so running jobs can save reusable compiler caches label Oct 12, 2026
Signed-off-by: fogtape <lilixu3210@gmail.com>
保留 Intl 与 SQLite backup 的进程内断言,仅跳过无法在移动端运行的子进程探针。按 Android/iOS 实测校验只读目录删除的 ENOTEMPTY,并在 iOS 排除原生 WASM 参数测试。

新增精选回归与桌面/移动端运行隔离验证;全新源码重建与校验值一致,全部 libnode 编译缓存输入不变,继续保留既定 danmu lite 裁剪。

Assisted-by: Codex
Signed-off-by: fogtape <lilixu3210@gmail.com>
准备 Google Emulator 37.2.12 build 16428233,校验固定大小与 SHA-256、ZIP 内容及实际版本。下载失败仅在准备阶段有限重试并缓存完整包,绕过 SDK Manager 重复更新 emulator 的调用,保留所有其他 SDK 安装及错误码。

覆盖 Android smoke、精选套件和完整分片三个入口;六项离线回归通过,源码树和 danmu lite 裁剪保持不变。

Assisted-by: Codex
Signed-off-by: fogtape <lilixu3210@gmail.com>
Signed-off-by: fogtape <lilixu3210@gmail.com>
simctl console 启动连续三次没有输出或 verdict,而同产物的精选测试已通过。沿用精选代理的无 console FIFO 启动,按应用 PID 及沙箱文件读取输出和结果。真实 FAIL 不重试,缺失 verdict 不会通过。四项回归通过,libnode 构建输入和 lite 裁剪不变。

Assisted-by: Codex
Signed-off-by: fogtape <lilixu3210@gmail.com>
@fogtape
fogtape merged commit 6fc6c05 into recipe Oct 13, 2026
57 checks passed
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

preserve-build-cache Queue replacement builds so running jobs can save reusable compiler caches

Projects

None yet

Development

Successfully merging this pull request may close these issues.

1 participant