Skip to content

workaround for compiler crash - no cloudkit for swift 6.3 at the moment#7

Open
doozMen wants to merge 9 commits intomainfrom
fix/pin-dependency-commits
Open

workaround for compiler crash - no cloudkit for swift 6.3 at the moment#7
doozMen wants to merge 9 commits intomainfrom
fix/pin-dependency-commits

Conversation

@doozMen
Copy link
Owner

@doozMen doozMen commented Dec 13, 2025

workaround for compiler crash - no cloudkit for swift 6.3 at the moment

chore: Use local swift-perception fork with Swift 6.3 fixes

Points to ../swift-perception which has fixes for Swift 6.3-dev
compiler compatibility.

🤖 Generated with Claude Code

Co-Authored-By: Claude Opus 4.5 noreply@anthropic.com

simplify type for compiler

refactor: Use GitHub forks for Swift 6.3 compatibility

Update all local path dependencies to use GitHub forks:

  • doozMen/GRDB.swift (master) - synced with upstream v7.9.0
  • doozMen/swift-sharing (main) - Swift 6.3 fixes for swift-perception
  • doozMen/swift-structured-queries (main) - Swift 6.3 compiler crash guards

All CloudKit code guarded with !compiler(>=6.3) to avoid compiler crashes.
Tested successfully with Swift 6.3-dev snapshot.

🤖 Generated with Claude Code

Co-Authored-By: Claude Opus 4.5 noreply@anthropic.com

doozMen and others added 9 commits December 13, 2025 20:43
"Claude PR Assistant workflow"

"Claude Code Review workflow"
… only (#1)

- Remove `import Perception` from FetchSubscription.swift (was unused)
- Add explicit `import ConcurrencyExtras` for LockIsolated
- Remove swift-perception package dependency from Package.swift
- Update platforms to macOS 15+ only (drop iOS/tvOS/watchOS)
- Update Package@swift-6.0.swift similarly

The Perception import was never actually used - the file only uses
LockIsolated (from ConcurrencyExtras) and SharedReader (from Sharing).

🤖 Generated with [Claude Code](https://claude.com/claude-code)

Co-Authored-By: Claude <noreply@anthropic.com>
Points to ../swift-perception which has fixes for Swift 6.3-dev
compiler compatibility.

🤖 Generated with [Claude Code](https://claude.com/claude-code)

Co-Authored-By: Claude Opus 4.5 <noreply@anthropic.com>
Update all local path dependencies to use GitHub forks:
- doozMen/GRDB.swift (master) - synced with upstream v7.9.0
- doozMen/swift-sharing (main) - Swift 6.3 fixes for swift-perception
- doozMen/swift-structured-queries (main) - Swift 6.3 compiler crash guards

All CloudKit code guarded with `!compiler(>=6.3)` to avoid compiler crashes.
Tested successfully with Swift 6.3-dev snapshot.

🤖 Generated with [Claude Code](https://claude.com/claude-code)

Co-Authored-By: Claude Opus 4.5 <noreply@anthropic.com>
Copy link
Owner Author

doozMen commented Dec 13, 2025

@claude
Copy link

claude bot commented Dec 13, 2025

Pull Request Review

Summary

This PR pins three forked dependencies to specific commit revisions instead of tracking branch heads. This is a good practice for build reproducibility and stability.

Code Quality and Best Practices

✅ Strengths:

  • Build Reproducibility: Pinning to specific commit SHAs ensures all developers and CI builds use identical dependency versions, eliminating "works on my machine" issues related to dependency updates
  • Clear Documentation: The inline comments (lines 28, 33, 36) explain why these forks exist, which is helpful for maintainability
  • Consistent Pattern: All three fork dependencies now follow the same revision-pinning approach

⚠️ Considerations:

  1. Maintenance Overhead: With pinned revisions, dependency updates require manual intervention. Consider:

    • Documenting the update process (which upstream commits these revisions correspond to)
    • Setting up automated checks or reminders to periodically review for updates
    • Adding commit messages or comments about what fixes each revision contains
  2. Commit SHA Documentation: The PR description mentions these revisions contain Swift 6.3 fixes, but the Package.swift file does not indicate what specific Swift 6.3 issues each revision addresses

Potential Bugs or Issues

✅ No Critical Issues Detected

Minor Observations:

  • The PR description mentions CloudKit guards, but this PR only changes Package.swift dependencies. If CloudKit guards were added in previous commits in the stack, ensure those changes are also reviewed
  • Verify that these specific commit SHAs are stable and will not be force-pushed or deleted from the forked repositories

Performance Considerations

✅ No Performance Impact

  • This change only affects dependency resolution at build time
  • Runtime performance remains unchanged

Security Concerns

⚠️ Fork Dependency Security:

  1. Trust Chain: Using personal forks (doozMen/*) instead of official repositories requires trust that:

    • The forks have not been compromised
    • The commits contain only the stated Swift 6.3 fixes
    • Future repository access remains available
  2. Recommendations:

    • Document a plan to migrate back to upstream repositories once they support Swift 6.3
    • Consider contributing the Swift 6.3 fixes upstream via PRs
    • Monitor upstream repositories for Swift 6.3 support

Test Coverage

⚠️ Testing Considerations:

  • The CI workflow tests with Xcode 16.4, which likely uses Swift 6.1 or 6.2, not Swift 6.3
  • Recommendation: Verify the changes work with both current Swift version and Swift 6.3-dev snapshot

Additional Recommendations

  1. Create GitHub Issues: Track the technical debt of using forks
  2. Version Tagging: Consider creating version tags in your forks for better traceability
  3. Dependency Update Process: Document how to check for updates and test new revisions

Verdict

✅ APPROVED with suggestions

The change is technically sound and improves build reproducibility. The main areas for improvement are documentation and planning for eventual migration back to upstream dependencies.


🤖 Generated with Claude Code

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

Comments