From 100eab2decb87460b1bc96e0d82af87c6189c9b4 Mon Sep 17 00:00:00 2001 From: Brandon Thomas Date: Sat, 17 Oct 2026 23:29:43 -0400 Subject: [PATCH] Release 0.13.1: retry the macOS stapler steps The 0.13.0 macOS job was notarized (Accepted) and stapled, then failed in `stapler validate` when the connection to Apple's CloudKit ticket service dropped (NSURLErrorDomain -1005, exit 68). Retry staple and validate up to five times, as FigCraft does. Co-Authored-By: Claude Opus 5.5 --- Cargo.lock | 56 +++++++++++++++++++------------------- Cargo.toml | 2 +- packaging/env.sh | 10 +++++++ packaging/macos/package.sh | 8 +++--- 4 files changed, 43 insertions(+), 33 deletions(-) diff --git a/Cargo.lock b/Cargo.lock index 1d33e0ad7..a41f608e4 100644 --- a/Cargo.lock +++ b/Cargo.lock @@ -4512,7 +4512,7 @@ dependencies = [ [[package]] name = "vectorcraft" -version = "0.13.0" +version = "0.13.1" dependencies = [ "arboard", "block2 0.6.2", @@ -4547,7 +4547,7 @@ dependencies = [ [[package]] name = "vectorcraft-affinity" -version = "0.13.0" +version = "0.13.1" dependencies = [ "crc32fast", "flate2", @@ -4558,7 +4558,7 @@ dependencies = [ [[package]] name = "vectorcraft-brush" -version = "0.13.0" +version = "0.13.1" dependencies = [ "kurbo 0.13.1", "serde", @@ -4570,7 +4570,7 @@ dependencies = [ [[package]] name = "vectorcraft-cad" -version = "0.13.0" +version = "0.13.1" dependencies = [ "image", "kurbo 0.13.1", @@ -4586,7 +4586,7 @@ dependencies = [ [[package]] name = "vectorcraft-cli" -version = "0.13.0" +version = "0.13.1" dependencies = [ "log", "objc2-core-foundation", @@ -4608,7 +4608,7 @@ dependencies = [ [[package]] name = "vectorcraft-color" -version = "0.13.0" +version = "0.13.1" dependencies = [ "kurbo 0.13.1", "moxcms", @@ -4620,7 +4620,7 @@ dependencies = [ [[package]] name = "vectorcraft-doc" -version = "0.13.0" +version = "0.13.1" dependencies = [ "hayro-ccitt", "image", @@ -4638,7 +4638,7 @@ dependencies = [ [[package]] name = "vectorcraft-effects" -version = "0.13.0" +version = "0.13.1" dependencies = [ "image", "kurbo 0.13.1", @@ -4654,7 +4654,7 @@ dependencies = [ [[package]] name = "vectorcraft-engine" -version = "0.13.0" +version = "0.13.1" dependencies = [ "craft-docpath", "crc32fast", @@ -4692,7 +4692,7 @@ dependencies = [ [[package]] name = "vectorcraft-eps" -version = "0.13.0" +version = "0.13.1" dependencies = [ "fax", "flate2", @@ -4715,7 +4715,7 @@ dependencies = [ [[package]] name = "vectorcraft-format" -version = "0.13.0" +version = "0.13.1" dependencies = [ "flate2", "proptest", @@ -4730,7 +4730,7 @@ dependencies = [ [[package]] name = "vectorcraft-geom" -version = "0.13.0" +version = "0.13.1" dependencies = [ "kurbo 0.13.1", "proptest", @@ -4742,7 +4742,7 @@ dependencies = [ [[package]] name = "vectorcraft-mcp" -version = "0.13.0" +version = "0.13.1" dependencies = [ "image", "log", @@ -4761,7 +4761,7 @@ dependencies = [ [[package]] name = "vectorcraft-metafile" -version = "0.13.0" +version = "0.13.1" dependencies = [ "image", "kurbo 0.13.1", @@ -4775,7 +4775,7 @@ dependencies = [ [[package]] name = "vectorcraft-pathops" -version = "0.13.0" +version = "0.13.1" dependencies = [ "kurbo 0.13.1", "linesweeper", @@ -4787,7 +4787,7 @@ dependencies = [ [[package]] name = "vectorcraft-pdf" -version = "0.13.0" +version = "0.13.1" dependencies = [ "aes", "craft-pdf", @@ -4817,7 +4817,7 @@ dependencies = [ [[package]] name = "vectorcraft-plugins" -version = "0.13.0" +version = "0.13.1" dependencies = [ "serde", "serde_json", @@ -4831,7 +4831,7 @@ dependencies = [ [[package]] name = "vectorcraft-render" -version = "0.13.0" +version = "0.13.1" dependencies = [ "flate2", "gif", @@ -4858,14 +4858,14 @@ dependencies = [ [[package]] name = "vectorcraft-scriptcheck" -version = "0.13.0" +version = "0.13.1" dependencies = [ "proptest", ] [[package]] name = "vectorcraft-svg" -version = "0.13.0" +version = "0.13.1" dependencies = [ "craft-docpath", "flate2", @@ -4890,7 +4890,7 @@ dependencies = [ [[package]] name = "vectorcraft-testkit" -version = "0.13.0" +version = "0.13.1" dependencies = [ "fax", "image", @@ -4908,7 +4908,7 @@ dependencies = [ [[package]] name = "vectorcraft-text" -version = "0.13.0" +version = "0.13.1" dependencies = [ "harfrust 0.13.3", "icu_segmenter", @@ -4928,7 +4928,7 @@ dependencies = [ [[package]] name = "vectorcraft-three-d" -version = "0.13.0" +version = "0.13.1" dependencies = [ "vectorcraft-geom", "vectorcraft-pathops", @@ -4936,7 +4936,7 @@ dependencies = [ [[package]] name = "vectorcraft-tools" -version = "0.13.0" +version = "0.13.1" dependencies = [ "image", "kurbo 0.13.1", @@ -4952,7 +4952,7 @@ dependencies = [ [[package]] name = "vectorcraft-trace" -version = "0.13.0" +version = "0.13.1" dependencies = [ "image", "kurbo 0.13.1", @@ -4964,7 +4964,7 @@ dependencies = [ [[package]] name = "vectorcraft-ui-egui" -version = "0.13.0" +version = "0.13.1" dependencies = [ "craft-ui", "egui", @@ -4998,7 +4998,7 @@ dependencies = [ [[package]] name = "vectorcraft-web" -version = "0.13.0" +version = "0.13.1" dependencies = [ "eframe", "egui", @@ -6108,7 +6108,7 @@ checksum = "9440ea3e5aeabb0ac63af70daf835274065238cdd0cec83418f417eae38bacee" [[package]] name = "xtask" -version = "0.13.0" +version = "0.13.1" dependencies = [ "serde_json", ] diff --git a/Cargo.toml b/Cargo.toml index 47f55c45c..9e407ece6 100644 --- a/Cargo.toml +++ b/Cargo.toml @@ -4,7 +4,7 @@ members = ["crates/*", "apps/*", "xtask"] default-members = ["crates/*", "apps/vectorcraft", "apps/vectorcraft-cli", "xtask"] [workspace.package] -version = "0.13.0" +version = "0.13.1" edition = "2024" license = "MIT OR Apache-2.0" rust-version = "1.95" diff --git a/packaging/env.sh b/packaging/env.sh index 9d84cd916..fc8c8bb33 100644 --- a/packaging/env.sh +++ b/packaging/env.sh @@ -40,6 +40,16 @@ export VECTORCRAFT_BUILD_DATE="${VECTORCRAFT_BUILD_DATE:-$(date -u +%Y-%m-%d)}" export CARGO_TARGET_DIR="${CARGO_TARGET_DIR:-$ROOT/target}" # Emit a GitHub Actions warning (plain stderr outside Actions). +# Retry a flaky network step (Apple stapler/CloudKit) up to five times, 15 s apart. +retry() { + local attempt + for attempt in 1 2 3 4 5; do + "$@" && return 0 + [ "$attempt" = 5 ] || { echo "retrying ($attempt/5): $*" >&2; sleep 15; } + done + return 1 +} + warn() { if [ -n "${GITHUB_ACTIONS:-}" ]; then echo "::warning::$*"; else echo "warning: $*" >&2; fi } diff --git a/packaging/macos/package.sh b/packaging/macos/package.sh index a86071275..5f996c493 100755 --- a/packaging/macos/package.sh +++ b/packaging/macos/package.sh @@ -120,8 +120,8 @@ codesign --verify --strict --deep --verbose=2 "$APP" if [ "$NOTARIZE" = 1 ]; then ditto -c -k --keepParent "$APP" "$WORK/VectorCraft-notarize.zip" notarize "$WORK/VectorCraft-notarize.zip" - xcrun stapler staple "$APP" - xcrun stapler validate "$APP" + retry xcrun stapler staple "$APP" + retry xcrun stapler validate "$APP" spctl --assess --type execute -vvv "$APP" fi @@ -170,8 +170,8 @@ fi hdiutil_retry detach detach "$MOUNT" >/dev/null if [ "$NOTARIZE" = 1 ]; then notarize "$DMG" - xcrun stapler staple "$DMG" - xcrun stapler validate "$DMG" + retry xcrun stapler staple "$DMG" + retry xcrun stapler validate "$DMG" spctl --assess --type open --context context:primary-signature -vvv "$DMG" fi