Fix Sparkle pin verification path after project rename#231
Merged
Conversation
The Sparkle pin check still pointed at tabby.xcodeproj after the project was renamed to Cotabby.xcodeproj, so the Build job on main has been failing on every push with `sed: tabby.xcodeproj/project.pbxproj: No such file or directory`. Point both the pbxproj read and the Package.resolved read at the new project bundle.
Package.resolved is gitignored, so the Sparkle pin verification step crashed with FileNotFoundError on every CI run after the project rename. Run xcodebuild -resolvePackageDependencies first to materialize Package.resolved from the package references in the pbxproj.
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.
Summary
The Sparkle exact-version pin check in `.github/workflows/build.yml`
still reads from `tabby.xcodeproj/project.pbxproj` and
`tabby.xcodeproj/.../Package.resolved`. After the rename to
`Cotabby.xcodeproj`, every Build job on main fails with:
```
sed: tabby.xcodeproj/project.pbxproj: No such file or directory
```
Point both reads at `Cotabby.xcodeproj`.
Validation
Ran the exact verification logic locally against the renamed project:
```
sparkle_block="$(sed -n '/XCRemoteSwiftPackageReference "Sparkle" */ = {/,/};/p' Cotabby.xcodeproj/project.pbxproj)"
kind = exactVersion present
pbxproj=2.9.1 resolved=2.9.1 → PASS
```
Linked issues
None.
Risk / rollout notes
the rename merged).
Greptile Summary
This PR fixes two stale
tabby.xcodeprojpath references in the Sparkle pin verification step after the project was renamed toCotabby.xcodeproj, and adds axcodebuild -resolvePackageDependenciesstep to materializePackage.resolved(which is gitignored) before the verification logic reads it.tabby.xcodeproj→Cotabby.xcodeprojin both thesedcall onproject.pbxprojand the Pythonjson.load(open(...))call onPackage.resolved.Cotabby.xcodeproj/project.xcworkspace/xcshareddata/swiftpm/Package.resolvedexists at verification time, addressing theFileNotFoundErrorthat was raised on every CI run because the file is gitignored.Confidence Score: 5/5
Safe to merge — workflow-only change that unblocks CI without touching any app code.
Both path renames are mechanical and correct. The new xcodebuild -resolvePackageDependencies step writes Package.resolved to exactly the path the subsequent Python script reads, cleanly resolving the gitignore problem flagged in the previous review round. No app logic is affected.
No files require special attention.
Important Files Changed
Sequence Diagram
sequenceDiagram participant GH as GitHub Actions participant XC as xcodebuild participant FS as Filesystem participant Verify as Verify Step GH->>XC: -project Cotabby.xcodeproj -resolvePackageDependencies XC->>FS: write Cotabby.xcodeproj/.../swiftpm/Package.resolved GH->>Verify: Verify Sparkle version pin Verify->>FS: sed read Cotabby.xcodeproj/project.pbxproj FS-->>Verify: sparkle_block (kind + version) Verify->>FS: python3 open(Cotabby.xcodeproj/.../Package.resolved) FS-->>Verify: resolved version Verify->>Verify: "compare pbxproj_version == resolved_version" Verify-->>GH: PASS / FAILComments Outside Diff (1)
.github/workflows/build.yml, line 65-73 (link)Package.resolvedis gitignored — this step will still fail on CI.gitignorecontains**/xcshareddata/swiftpm/Package.resolved, soactions/checkoutwill never produce this file. The Python call on line 67 will raiseFileNotFoundErrorin every CI run regardless of the renamed path, because the file simply doesn't exist in the working tree after checkout. Thesed/pbxprojread on line 56 is fixed correctly, but thePackage.resolvedcheck cannot pass until the file is either committed (by removing it from.gitignore) or this step is replaced with an alternative that sources the version from a tracked artifact.Reviews (2): Last reviewed commit: "Resolve SwiftPM packages before Sparkle ..." | Re-trigger Greptile