Skip to content

Add automated version bumping script for plist files#4

Merged
jonathanKingston merged 2 commits into
mainfrom
claude/fix-sparkle-modal-issue-kfFev
Mar 1, 2026
Merged

Add automated version bumping script for plist files#4
jonathanKingston merged 2 commits into
mainfrom
claude/fix-sparkle-modal-issue-kfFev

Conversation

@jonathanKingston

Copy link
Copy Markdown
Owner

Summary

This PR introduces an automated version bumping workflow to keep CFBundleShortVersionString and CFBundleVersion in sync across all plist files during releases.

Key Changes

  • New script: scripts/bump-version.sh - Automates updating version strings in plist files

    • Validates version format (major.minor.patch)
    • Updates both Info.plist and Info.direct.plist
    • Includes error handling for missing files
    • Provides clear feedback on updated files
  • Updated release workflow: scripts/release.sh now calls the bump-version script before building

    • Ensures version consistency across all plist files during releases
    • Eliminates manual version updates
  • Synchronized plist files: Both Info.plist and Info.direct.plist now have matching CFBundleVersion values (1.1.1)

    • Previously CFBundleVersion was set to "1" while CFBundleShortVersionString was "1.1.1"

Implementation Details

  • Uses macOS's built-in PlistBuddy utility for safe plist modifications
  • Script validates input format before making changes
  • Gracefully handles missing plist files with warnings
  • Integrated into the existing release process for seamless automation

https://claude.ai/code/session_012XtbEGjyQCfrYqwnfuMRcs

CFBundleVersion was stuck at "1" while the appcast uses the marketing
version (e.g. "1.1.1") in sparkle:version. Sparkle compares these two
values to decide if an update is available, so it always saw
"1.1.1" > "1" and re-offered the same download — even after the user
already installed the update.

Sync CFBundleVersion with CFBundleShortVersionString in both plists.

https://claude.ai/code/session_012XtbEGjyQCfrYqwnfuMRcs
Introduces scripts/bump-version.sh which sets both CFBundleVersion and
CFBundleShortVersionString in all plist files, preventing the mismatch
that caused Sparkle to loop on download modals.

The release script now calls bump-version.sh automatically so the
plists are always in sync with the release version.

https://claude.ai/code/session_012XtbEGjyQCfrYqwnfuMRcs
@jonathanKingston
jonathanKingston merged commit 546fff3 into main Mar 1, 2026
@jonathanKingston
jonathanKingston deleted the claude/fix-sparkle-modal-issue-kfFev branch April 21, 2026 22:36
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