mirror of
https://github.com/openclaw/openclaw.git
synced 2026-08-26 20:35:39 -06:00
feat: sidebar update card (web + macOS) with app-first mac update flow and Sparkle beta track (#104171)
* feat: sidebar update card (web + macOS) with app-first mac update flow and Sparkle beta track Squashed from claude/update-notification-display-c6cfb9 after semantic merge with #104178 (channel-aware CLI installs). See PR #104171 body for details. * chore(i18n): resync generated inventories after rebase * chore(i18n): resync locale metadata after rebase
This commit is contained in:
committed by
GitHub
parent
7da12cbbe5
commit
ebc848deec
@@ -38,6 +38,15 @@ if [[ -z "$VERSION" ]]; then
|
||||
fi
|
||||
fi
|
||||
|
||||
CHANNEL_ARGS=()
|
||||
if [[ "$VERSION" == *-alpha.* || "$VERSION" == *.alpha.* ]]; then
|
||||
echo "Alpha releases do not ship via Sparkle: $VERSION" >&2
|
||||
exit 1
|
||||
fi
|
||||
if [[ "$VERSION" == *-beta.* || "$VERSION" == *.beta.* ]]; then
|
||||
CHANNEL_ARGS=(--channel beta)
|
||||
fi
|
||||
|
||||
TMP_DIR="$(mktemp -d)"
|
||||
NOTES_HTML=""
|
||||
cleanup() {
|
||||
@@ -74,6 +83,7 @@ fi
|
||||
--download-url-prefix "$DOWNLOAD_URL_PREFIX" \
|
||||
--embed-release-notes \
|
||||
--link "$FEED_URL" \
|
||||
"${CHANNEL_ARGS[@]}" \
|
||||
"$TMP_DIR"
|
||||
|
||||
cp -f "$TMP_DIR/appcast.xml" "$ROOT/appcast.xml"
|
||||
|
||||
@@ -1107,6 +1107,7 @@ export function collectAppcastSparkleVersionErrors(xml: string): string[] {
|
||||
const title = extractTag(item, "title") ?? "unknown";
|
||||
const shortVersion = extractTag(item, "sparkle:shortVersionString");
|
||||
const sparkleVersion = extractTag(item, "sparkle:version");
|
||||
const sparkleChannel = extractTag(item, "sparkle:channel");
|
||||
|
||||
if (!sparkleVersion) {
|
||||
errors.push(`appcast item '${title}' is missing sparkle:version.`);
|
||||
@@ -1120,6 +1121,9 @@ export function collectAppcastSparkleVersionErrors(xml: string): string[] {
|
||||
if (!shortVersion) {
|
||||
continue;
|
||||
}
|
||||
if (/(?:^|[.-])beta(?:[.-]|$)/i.test(shortVersion) && sparkleChannel !== "beta") {
|
||||
errors.push(`appcast item '${title}' must set sparkle:channel to 'beta'.`);
|
||||
}
|
||||
const floors = sparkleBuildFloorsFromShortVersion(shortVersion);
|
||||
if (floors === null) {
|
||||
errors.push(
|
||||
|
||||
Reference in New Issue
Block a user