Switch SwiftPM Superscript dep to superscript-ios-next#469
Merged
Conversation
Migrates from `superwall/Superscript-iOS` (which committed the ~250 MB libcel.xcframework into git, ballooning history past 1.2 GB and making SPM clones painfully slow) to the new slim repo `superwall/superscript-ios-next`, which distributes the xcframework as a GitHub Release asset and uses SPM's binaryTarget(url:checksum:). The Superscript Swift module name is unchanged, so source files don't need edits. CocoaPods consumers are intentionally NOT touched in this PR — the `Superscript` pod on Trunk is still published from the legacy repo's pipeline. SuperwallKit.podspec keeps depending on `Superscript`, '1.0.13'. We can flip the pod over later once the new repo's COCOAPODS_TRUNK_TOKEN is configured and a release is published.
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
Superscriptdependency fromsuperwall/Superscript-iOSto the new slim reposuperwall/superscript-ios-next, pinned at1.0.14.Superscript) is unchanged, so no source edits required.Why
Superscript-iOShas been committing the ~250 MBlibcel.xcframeworkinto git on every release for over 20 versions. Its.gitis ~1.2 GB and SwiftPM cannot do shallow clones, so every freshswift package resolveof SuperwallKit pays for the full clone — minutes on slow connections, painful on CI.superscript-ios-nextdistributes the framework as a GitHub Release asset and uses SwiftPM'sbinaryTarget(url:checksum:). The repo itself is ~60 KB. I measured a fresh consumer resolve and the git-side work completes in ~2 seconds; the binary download is then cached at~/Library/Caches/org.swift.swiftpm.What's NOT in this PR
CocoaPods is intentionally untouched.
SuperwallKit.podspecstill depends onSuperscript1.0.13 from CocoaPods Trunk. The pod is published by the legacy repo's pipeline, andsuperscript-ios-nextdoes not yet have itsCOCOAPODS_TRUNK_TOKENconfigured. Once that's set up and a release is published from the new repo, we can bump the podspec dep in a follow-up PR. Pod consumers are unaffected by this change.Files touched
Package.swiftpackage(url:)andproduct(name:package:)updatedPackage.resolvedswift package resolveproject.ymlpackages.Superscript.url+exactVersionSuperwallKit.xcodeproj/project.pbxprojXCRemoteSwiftPackageReferenceURL + versionSuperwallKit.xcodeproj/.../Package.resolvedExamples/Basic/.../Package.resolvedExamples/Advanced/.../Package.resolvedCLAUDE.mdTest plan
swift package resolvesucceeds (verified locally — git ops finish in ~2s vs. minutes against the legacy repo)swift buildfor SuperwallKit succeeds against the new depSuperwallKit.xcodeprojin Xcode, confirm package re-resolves cleanly (Xcode will refresh theoriginHashin the workspacePackage.resolvedautomatically — minor follow-up diff expected)Examples/BasicandExamples/Advancedend-to-endSuperscriptconsumers inCELEvaluator.swiftandEvaluationContext.swift) — module API surface is identical, but the underlying xcframework comes via a different transport nowRelated
🤖 Generated with Claude Code
Greptile Summary
This PR migrates the SwiftPM
Superscriptdependency fromsuperwall/Superscript-iOS(1.0.13) tosuperwall/superscript-ios-next(1.0.14), a slim repo that distributeslibcel.xcframeworkvia a GitHub Release binary target instead of committing it to git. All eight affected files (Package.swift,project.yml,project.pbxproj, and fivePackage.resolvedfiles) are updated consistently to the same URL, version, and revision (abb2c8c9); the public module nameSuperscriptis unchanged so no source edits are needed.Confidence Score: 5/5
Safe to merge — purely a dependency source/version update with no source code changes and full consistency across all resolved files.
All Package.resolved files agree on the new URL, version 1.0.14, and commit hash
abb2c8c9. The public module API is unchanged. CocoaPods is intentionally left at the previous version with a clear follow-up plan. No logic changes, no source edits, no migration risks.No files require special attention. The
originHashinSuperwallKit.xcodeproj/project.xcworkspace/xcshareddata/swiftpm/Package.resolvedis expected to regenerate when Xcode next opens the project, as noted in the PR test plan.Important Files Changed
Superscript-iOS1.0.13 tosuperscript-ios-next1.0.14; module product nameSuperscriptunchanged so no import churn.superscript-ios-next1.0.14 at commitabb2c8c9; consistent with all other resolved files in the PR.XCRemoteSwiftPackageReferenceURL and version updated tosuperscript-ios-next1.0.14; PBXPROJ object IDs preserved, product dependency nameSuperscriptunchanged.superscript-ios-next1.0.14;originHashmay be regenerated by Xcode on next open (noted in PR test plan).packages.SuperscriptURL andexactVersionupdated tosuperscript-ios-next1.0.14; consistent withPackage.swift.superscript-ios-next1.0.14 at the same revision as the root resolved file.superscript-ios-next1.0.14 at the same revision as the root resolved file.Flowchart
%%{init: {'theme': 'neutral'}}%% flowchart TD A[SuperwallKit consumers] --> B[Package.swift / project.yml] B -->|SwiftPM resolves| C[superscript-ios-next @ 1.0.14\ngithub.com/superwall/superscript-ios-next] C -->|binaryTarget download\ncached in ~/Library/Caches| D[libcel.xcframework] D --> E[Superscript module\nused by CELEvaluator.swift\nand EvaluationContext.swift] B2[SuperwallKit.podspec] -->|CocoaPods — unchanged| F[Superscript 1.0.13 on CocoaPods Trunk\nlegacy Superscript-iOS repo] F --> G[libcel.xcframework\ncommitted to git — follow-up PR planned] style C fill:#d4edda,stroke:#28a745 style F fill:#fff3cd,stroke:#ffc107Reviews (1): Last reviewed commit: "Switch SwiftPM Superscript dependency to..." | Re-trigger Greptile