VibeTunnel/version.xcconfig
$(MARKETING_VERSION)
and $(CURRENT_PROJECT_VERSION)
MARKETING_VERSION = 1.0.0-beta.2
in version.xcconfig./scripts/release.sh beta 2
when version.xcconfig already has 1.0.0-beta.2
1.0.0-beta.2-beta.2
(double suffix)$(MARKETING_VERSION)
and $(CURRENT_PROJECT_VERSION)
./scripts/release-checklist.sh
for an interactive pre-release validation.
Before running ANY release commands, verify these items:
private/sparkle_private_key
-f
flag with ALL sign_update commands-f
flag!AGCY8w5vHirVfGGDGc8Szc5iuOqupZSh9pMj/Qs67XI=
1.0.0-beta.2
)1.0.0-beta.2
and you run ./scripts/release.sh beta 2
,
it will create 1.0.0-beta.2-beta.2
which is wrong!
/vibetunnel/CHANGELOG.md
) and contains a proper section for the version being released:
/vibetunnel/CHANGELOG.md
(project root, NOT in mac/
)generate-release-notes.sh
)generate-release-notes.sh
- Extracts markdown release notes for GitHubchangelog-to-html.sh
- Converts markdown to HTML for Sparkle appcastfind-changelog.sh
- Reliably locates CHANGELOG.md from any directorysign_update -f private/sparkle_private_key [dmg-file]
./scripts/validate-sparkle-signature.sh
to verify all signaturesVibeTunnel/version.xcconfig
):
../web/package.json
):
VibeTunnel-Mac.xcodeproj
Version | Build | Result |
---|---|---|
1.0.0-beta.1 | 100 | ✅ |
1.0.0-beta.2 | 101 | ✅ |
1.0.0-beta.3 | 99 | ❌ Build went backwards |
1.0.0 | 101 | ❌ Duplicate build number |
gh auth status
~/.local/bin/
(sign_update, generate_appcast)private/sparkle_ed_private_key
(clean key file - REQUIRED for sign_update)private/sparkle_private_key
(commented version for documentation)-f
flag when signing:
AGCY8w5vHirVfGGDGc8Szc5iuOqupZSh9pMj/Qs67XI=
Key File Format Requirements:
sparkle_ed_private_key
) must contain ONLY the base64 keySMYPxE98bJ5iLdHTLHTqGKZNFcZLgrT5Hyjh79h3TaU=
notarize-app.sh
script should sign the app:
appcast.xml
)
appcast-prerelease.xml
)
$(MARKETING_VERSION)
$(CURRENT_PROJECT_VERSION)
<h2>
instead of formatted text.
Root Cause: The generate-appcast.sh script is escaping HTML content from GitHub release descriptions.
Solution:
hdiutil: create failed - Resource temporarily unavailable
mac/VibeTunnel/version.xcconfig
:
generate-appcast.sh
failed with GitHub API error despite valid authentication.
Workaround:
sign_update [dmg] --account VibeTunnel
.release-state
for the last successful step./scripts/release.sh --resume
to continuegit add appcast*.xml && git commit -m "Update appcast" && git push
--account VibeTunnel
.
/vibetunnel/
), NOT in mac/
appcast.xml
appcast-prerelease.xml
mac/CHANGELOG.md
(preferred by release script)/vibetunnel/CHANGELOG.md
(common location)mac/private/sparkle_private_key
generate-release-notes.sh
find-changelog.sh
fix-release-changelogs.sh
scripts/check-release-status.sh
:
screen
or tmux
for long operationsgenerate-appcast.sh
was including .git
suffix when parsing repository name from git remote URL.
Fix:
.git
suffix: ${BASH_REMATCH[2]%.git}
private/sparkle_ed_private_key
private/sparkle_private_key
) is kept for documentationrelease-state.sh
for state management./scripts/release.sh --resume
to continue interrupted release./scripts/release.sh --status
to check current state.release-state
contains progress information