Skip to content

Stop shipping Deepin ARMv7 and retry Apple ticket disconnects - #135

Merged
shaohaozhi286 merged 2 commits into
masterfrom
claude/harden-package-release
Oct 16, 2026
Merged

shaohaozhi286 merged 2 commits into
masterfrom
claude/harden-package-release

Conversation

@shaohaozhi286

Copy link
Copy Markdown
Collaborator

为什么

v1.0.7 的 tag 构建有两个平台失败,最后都是从同一 tag 源码另跑恢复工作流补出来的:

  • Deepin ARMv7:buster 容器里 archive.debian.org 的 CDN 对确实存在的 .deb 一直返回缓存 404,交叉编译依赖装不上。决定以后不再发布这个包。
  • macOS x64:签名后 xcrun stapler 反复连不上 Apple 票据服务(CloudKit -1005,退出码 68),重跑三次每次断在不同的 stapler 调用上。v1.0.6 也遇到过同样的错误。

改了什么

停止发布 Deepin ARMv7

  • package.yml 的 Deepin 矩阵去掉 linux-deepin-armv7,连同它的交叉编译依赖、ARMv7 可执行文件校验和交叉 binutils 前缀。普通 linux-armv7 包不变。
  • verify_release_assets.py:必需产物 18 → 17;混进来的 acecode-linux-deepin-armv7.tar.gz 按意外资产拒绝发布。
  • 文档(deepin-desktop.md、release-artifacts.md、帮助站点安装页)注明 1.0.7 是最后一个 Deepin ARMv7 版本。升级代码里的 linux-deepin-armv7 更新标识保持不变,已安装的用户不受影响。

stapler 断线重试

  • 新增 scripts/macos_stapler.sh 的 acecode_stapler:只对退出码 68 原样重试,默认最多 6 次、间隔 15 秒,其它退出码立即返回。
  • 公证 app / PKG、安装器 DMG、更新 ZIP 以及 packaging/macos-installer/build.sh 里的 9 处 stapler 调用全部改走它。
  • 契约测试:macos_installer_release_test.py 用假 xcrun 覆盖断线后恢复、持续 68 后放弃、非 68 不重试;macos_release_scripts_test.sh 不依赖 macOS,直接测 acecode_stapler 的三种行为,并拒绝新增直接 xcrun stapler 调用。

openspec:retire-deepin-armv7-and-retry-stapler。

验证

  • 本机:verify_release_assets_test.py(7 项)、macos_release_scripts_test.sh 通过;变异检查确认去掉重试、新增直接调用都会让测试失败;Shell 语法检查、git diff --check、openspec validate --strict 通过。
  • macos_installer_release_test.py 需要 macOS,靠本 PR 的 macos-installer-tests 验证。
  • 下一次 v* 标签构建确认 Deepin 只产出 x64 / arm64、macOS 两个架构完整。

tmoonlight and others added 2 commits October 16, 2026 08:27
v1.0.7's tagged build lost two platforms. Deepin ARMv7 could not install
its cross toolchain because archive.debian.org kept serving cached 404s;
it is no longer published, so the job, its toolchain and ARMv7 checks are
removed and a stray archive now fails release verification. The release
set drops to 17 required downloads.

macos-x64 failed three runs in a row because xcrun stapler could not reach
Apple's ticket service (exit 68, CloudKit -1005). Every stapler call in the
macOS packaging scripts now goes through acecode_stapler, which retries
only exit 68 (six attempts, 15 seconds apart) and fails other errors at
once. Contract tests cover recovery, persistent failure, non-68 errors and
reject new direct xcrun stapler calls.
macos_create_update_zip.sh now sources scripts/macos_stapler.sh from its own
directory; the dedup test copies the script into a temporary tree and must
copy the helper beside it.

Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
@shaohaozhi286
shaohaozhi286 merged commit 1b5e94b into master Oct 16, 2026
4 checks passed
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

2 participants