Repository navigation
Conversation
|
Important Draft PR not reviewedDraft PRs are not automatically reviewed by default.
To automatically review draft PRs, update your CodeRabbit configuration: reviews:
auto_review:
drafts: trueThanks for using CodeRabbit! It's free for OSS, and your support helps us grow. If you like it, consider giving us a shout-out. Comment |
github-actions
Bot
temporarily deployed
to
staging/pull/2280/features
September 10, 2026 15:13
Inactive
github-actions
Bot
temporarily deployed
to
staging/pull/2280/AblyLiveObjects
September 10, 2026 15:14
Inactive
github-actions
Bot
temporarily deployed
to
staging/pull/2280/jazzydoc
September 10, 2026 15:16
Inactive
github-actions
Bot
temporarily deployed
to
staging/pull/2280/markdown-api-reference
September 10, 2026 15:16
Inactive
Moves Ably-SoakTest-AppUITests to Test/AblySoakTests, a test target of the package, and deletes the host app it no longer needs. It had stopped compiling against the SDK's private API, so this also brings the fakes back up to date: the transport factory and connection details signatures changed, protocol messages no longer carry a connection serial, and the fake server has to stamp messages with a connection id now that presence members inherit it. `swift test` runs every test target, so the twenty-minute run is skipped unless RUN_SOAK_TEST is set. Nothing in CI sets it — the test stays manual.
The project built the iOS, macOS and tvOS framework targets that CocoaPods and Carthage shipped, and it hosted the soak test. Neither is true any more, and it took its dependencies from Carthage, so it had no way to resolve them either. Ably.xcworkspace stays: it now contains only the package, whose ably-cocoa scheme is what the Fastlane lanes and Xcode build. Also removed are the files the project alone read — Ably.xcconfig, the three Info plists and Source/Ably.modulemap, leaving Source/include/module.modulemap as the SDK's only module map.
maratal
force-pushed
the
test/soak-to-spm
branch
from
September 10, 2026 16:39
045000e to
fd3b79e
Compare
Contributor
Author
|
Closed in favour of #2283, same two commits rebased onto the new |
This branch was successfully deployed
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.
Stacked on #2278. With CocoaPods and Carthage gone, nothing consumes the hand-maintained Xcode project — except the soak test, which lived in it. This moves the soak test into the package and then deletes the project.
Part of the PubSub device/server package split (PDR-091b). Merge #2278 first.
1. Port the soak test to an SPM test target
Ably-SoakTest-AppUITestsbecomesTest/AblySoakTests, a test target of the package, and the host app it no longer needs is deleted. It was a UI-test bundle that never touchedXCUIApplication, so nothing was lost in the move.It had stopped compiling against the SDK's private API — nothing has built it since the Xcode project stopped resolving its dependencies — so the fakes needed bringing up to date:
ARTRealtimeTransportFactoryandARTWebSocketTransportno longer take a connection serial, andARTProtocolMessageno longer has one.ARTConnectionDetailsgainedobjectsGCGracePeriodandsiteCode.ARTJsonLikeEncodergained atimeProviderparameter.ARTReachabilitytakes anARTInternalLograther than anARTLog.One fidelity gap needed fixing too: the fake server never stamped a connection id on the protocol messages it sent, and
ARTRealtimePresenceInternalcopies bothconnectionIdandidonto each presence member it decodes.ARTPresenceMessage.isSynthesizedthen calledhasPrefix:with a nil argument and the process aborted about forty seconds in. The fake now sets a connection id and ids of the form<connectionId>:<serial>, as the server does.Not wired into CI, deliberately.
swift testruns every test target, and this one is a hundred connections for twenty minutes, so it is skipped unlessRUN_SOAK_TESTis set. No workflow sets it — the test is a manual tool:Verified both ways:
swift testskips it, and a fullRUN_SOAK_TEST=1run passes —Executed 1 test, with 0 failures (0 unexpected) in 1200.018 seconds.2. Remove Ably.xcodeproj
The project built the three framework targets that the pod and the Carthage xcframework shipped, and hosted the soak test. Both reasons are now gone, and it had no way to resolve its dependencies since they came from Carthage.
Ably.xcworkspacestays. It already referenced the repository root, so it now contains only the package;xcodebuild -list -workspace Ably.xcworkspacestill offers theably-cocoascheme the Fastlane lanes build. Also deleted are the files the project alone read:Ably.xcconfig,Source/Info-{iOS,tvOS,macOS}.plist(dropped fromPackage.swift'sexcludelist with them) andSource/Ably.modulemap, which leavesSource/include/module.modulemapas the SDK's only module map.Docs updated to match:
CONTRIBUTING.md(no more "add it to all three SDK targets" steps, one module map, a Soak test section),CLAUDE.md(the no-pbxproj-edit rule has nothing left to protect),Docs/plugins.mdandTest/UTS/README.md.