Release 1.0.1: first-run permission fix - #6
Merged
Merged
Conversation
Bumps MARKETING_VERSION to 1.0.1 and CURRENT_PROJECT_VERSION to 2, and makes the project file the single source of truth for both. release.sh previously passed MARKETING_VERSION on the command line, which left CURRENT_PROJECT_VERSION untouched. Sparkle compares build numbers, so a 1.0.1 built that way would have advertised the same build as 1.0.0 and would never have been offered as an update. The script now verifies that the project's MARKETING_VERSION matches the requested version, and refuses to build when the build number is not greater than the one the published appcast advertises.
There was a problem hiding this comment.
Pull request overview
This PR updates InputPilot’s release pipeline and Xcode project versioning to ensure Sparkle updates are correctly offered (by enforcing a monotonically increasing build number) while shipping the 1.0.1 release.
Changes:
- Add preflight version/build-number guards to
Scripts/release.sh, and stop overridingMARKETING_VERSIONat archive time. - Bump
MARKETING_VERSIONto1.0.1andCURRENT_PROJECT_VERSIONto2in the Xcode project.
Reviewed changes
Copilot reviewed 2 out of 2 changed files in this pull request and generated 1 comment.
| File | Description |
|---|---|
| Scripts/release.sh | Adds version/build-number validation against the Xcode project and (optionally) the committed appcast; removes command-line override of MARKETING_VERSION. |
| InputPilot.xcodeproj/project.pbxproj | Updates marketing version and build number across project build configurations/targets for the 1.0.1 release. |
💡 Add a code-review agent skill or configure MCP servers for context-aware, tailored reviews. Learn more in the docs.
Comment on lines
+56
to
+60
| echo "==> Checking versions" | ||
| BUILD_SETTINGS="$(xcodebuild -project InputPilot.xcodeproj -target InputPilot -configuration Release -showBuildSettings 2>/dev/null)" | ||
| PROJECT_VERSION="$(echo "$BUILD_SETTINGS" | awk -F' = ' '/ MARKETING_VERSION =/ {print $2; exit}' | tr -d ' ')" | ||
| BUILD_NUMBER="$(echo "$BUILD_SETTINGS" | awk -F' = ' '/ CURRENT_PROJECT_VERSION =/ {print $2; exit}' | tr -d ' ')" | ||
|
|
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment
Add this suggestion to a batch that can be applied as a single commit.This suggestion is invalid because no changes were made to the code.Suggestions cannot be applied while the pull request is closed.Suggestions cannot be applied while viewing a subset of changes.Only one suggestion per line can be applied in a batch.Add this suggestion to a batch that can be applied as a single commit.Applying suggestions on deleted lines is not supported.You must change the existing code in this line in order to create a valid suggestion.Outdated suggestions cannot be applied.This suggestion has been applied or marked resolved.Suggestions cannot be applied from pending reviews.Suggestions cannot be applied on multi-line comments.Suggestions cannot be applied while the pull request is queued to merge.Suggestion cannot be applied right now. Please check back later.
Ships the first-run Input Monitoring fix (PR #5) to users, and closes a version-numbering trap in the release pipeline.
Version guards
release.shpassedMARKETING_VERSIONon the command line but leftCURRENT_PROJECT_VERSIONalone. Sparkle compares build numbers, so 1.0.1 would have shipped advertising the same build as 1.0.0 and would never have been offered as an update — the update mechanism would look fine and silently do nothing.The project file is now the single source of truth, and the script refuses to build if:
MARKETING_VERSIONdoes not match the requested version, orChanges
MARKETING_VERSION1.0 → 1.0.1 (it was also inconsistent with the shipped 1.0.0, since the old override masked it)CURRENT_PROJECT_VERSION1 → 2Merging this lets me run
Scripts/release.sh 1.0.1— which will also be the first real end-to-end test of the Sparkle update path, from an installed 1.0.0.