Skip to content

Fix Sparkle pin verification path after project rename#231

Merged
FuJacob merged 2 commits into
mainfrom
fix-sparkle-pin-pbxproj-path
May 25, 2026
Merged

Fix Sparkle pin verification path after project rename#231
FuJacob merged 2 commits into
mainfrom
fix-sparkle-pin-pbxproj-path

Conversation

@FuJacob
Copy link
Copy Markdown
Owner

@FuJacob FuJacob commented May 25, 2026

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

  • Workflow-only change; touches no app code.
  • Unblocks every future push to `main` (Build job has been red since
    the rename merged).

Greptile Summary

This PR fixes two stale tabby.xcodeproj path references in the Sparkle pin verification step after the project was renamed to Cotabby.xcodeproj, and adds a xcodebuild -resolvePackageDependencies step to materialize Package.resolved (which is gitignored) before the verification logic reads it.

  • Renames tabby.xcodeprojCotabby.xcodeproj in both the sed call on project.pbxproj and the Python json.load(open(...)) call on Package.resolved.
  • Inserts a new "Resolve Swift package dependencies" step before "Verify Sparkle version pin" so that Cotabby.xcodeproj/project.xcworkspace/xcshareddata/swiftpm/Package.resolved exists at verification time, addressing the FileNotFoundError that 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

Filename Overview
.github/workflows/build.yml Renames two tabby.xcodeproj path references to Cotabby.xcodeproj and adds a dependency-resolution step so Package.resolved is present before the Sparkle pin check runs; no logic changes to the verification itself.

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 / FAIL
Loading

Comments Outside Diff (1)

  1. .github/workflows/build.yml, line 65-73 (link)

    P1 Package.resolved is gitignored — this step will still fail on CI

    .gitignore contains **/xcshareddata/swiftpm/Package.resolved, so actions/checkout will never produce this file. The Python call on line 67 will raise FileNotFoundError in every CI run regardless of the renamed path, because the file simply doesn't exist in the working tree after checkout. The sed/pbxproj read on line 56 is fixed correctly, but the Package.resolved check 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.

    Fix in Codex Fix in Claude Code

Reviews (2): Last reviewed commit: "Resolve SwiftPM packages before Sparkle ..." | Re-trigger Greptile

FuJacob added 2 commits May 25, 2026 00:11
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.
@FuJacob FuJacob merged commit 697a068 into main May 25, 2026
3 checks passed
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.

1 participant