Repository navigation
Vend the SDK as a single AblyPubSubDevice module - #2285
Conversation
|
Important Review skippedThe saved review history does not include the base for the last reviewed commit. This saved history cannot establish the base for an incremental review. Comment You can disable this status message by setting the Use the checkbox below for a quick retry:
No actionable comments were generated in the recent review. 🎉 ℹ️ Recent review info⚙️ Run configurationConfiguration used: Organization UI Review profile: CHILL Plan: Advanced Run ID: 📒 Files selected for processing (6)
Included review availability: Your plan provides up to 1 included review per hour; 0 remain after this review. WalkthroughThe core Swift Package Manager product is renamed from ChangesSPM Product Rename
Priority: ⬇️ Low Estimated code review effort: 1 (Trivial) | ~5 minutes Change: Bug fix Suggested reviewers: Merge Risk: ⚪ Minimal · up to The renamed SPM product is consistently referenced by the examples and documentation, with the reported builds passing. 🚥 Pre-merge checks | ✅ 4 | ❌ 1❌ Failed checks (1 warning)
✅ Passed checks (4 passed)
✨ Finishing Touches📝 Generate docstrings
🧪 Generate unit tests (beta)
A rabbit hops where package names align Comment |
Seventeen tests declared an implicitly unwrapped optional, assigned it only inside a waitUntil closure, and read it after. When the wait times out the value is still nil, and reading it raises a fatal error that kills the whole test process rather than failing one test. That is worse than it sounds. xcodebuild relaunches the runner and resumes from the *next* test, so the crashed test is never retried — a failure that -retry-tests-on-failure would otherwise absorb becomes a red lane, and the tests that happened to be in flight are reported as failures too. A run on #2285 lost RealtimeClientConnectionTests.test__085 and three unrelated tests to a single timeout this way. Each site now captures into a plain optional and binds the original name with XCTUnwrap after the wait, so the code below is unchanged. A timeout becomes an ordinary, retryable failure. Two force unwraps inside the same recovery test go with them: an implicitly unwrapped createRecoveryKey() result and a try!.
Seventeen tests declared an implicitly unwrapped optional, assigned it only inside a waitUntil closure, and read it after. When the wait times out the value is still nil, and reading it raises a fatal error that kills the whole test process rather than failing one test. That is worse than it sounds. xcodebuild relaunches the runner and resumes from the *next* test, so the crashed test is never retried — a failure that -retry-tests-on-failure would otherwise absorb becomes a red lane, and the tests that happened to be in flight are reported as failures too. A run on #2285 lost RealtimeClientConnectionTests.test__085 and three unrelated tests to a single timeout this way. Each site now captures into a plain optional and binds the original name with XCTUnwrap after the wait, so the code below is unchanged. A timeout becomes an ordinary, retryable failure. Three force unwraps inside the callbacks go with them, since each could kill the process the same way: an implicitly unwrapped createRecoveryKey() result and a try! in the recovery test, and a try! XCTUnwrap on the token request in AuthTests. The callbacks now assign whatever they were given and let the XCTUnwrap after the wait report a nil.
62ed19a to
4568437
Compare
4568437 to
6231c41
Compare
6231c41 to
7fe8054
Compare
sacOO7
left a comment
There was a problem hiding this comment.
Previously we also provided Rest API on top of existing ably-cocoa library right?
Current AblyPubSubDevice only provides access to realtime api via factory method. How we planning expose REST api then? We already have functionality for the same. I feel we should also expose AblyPubSubServer but use-case for the same will be limited, that would be the only thing wdyt
There was a problem hiding this comment.
🟡 Changes recommended
There are a couple of verified module-name mismatches/incomplete declarations in changed files that will break or degrade tooling/builds (e.g., Jazzy module name and missing emit declaration in ARTEventEmitter.h).
Get a fresh assessment by requesting another Copilot review.
Pull request overview
This PR restructures the SwiftPM packaging so the SDK is vended as a single Clang/Swift module named AblyPubSubDevice, eliminating the previously-importable Ably module entry point while keeping AblyLiveObjects as a separate product that depends on the SDK module.
Changes:
- Merge the former “core” target/module into
AblyPubSubDeviceand update the module map / umbrella headers accordingly (AblyPubSubDevice+AblyPubSubDevice.Private). - Update all Swift/ObjC imports across tests, LiveObjects, examples, and docs from
Ably/Ably.PrivatetoAblyPubSubDevice/AblyPubSubDevice.Private. - Update tooling/scripts to use the new module/header locations (symbolgraph extraction, docs generation, etc.).
File summaries
| File | Description |
|---|---|
| Test/UTS/unit/rest/TimeTests.swift | Update imports to AblyPubSubDevice and AblyPubSubDevice.Private. |
| Test/UTS/unit/realtime/ConnectionRecoveryTests.swift | Update imports to AblyPubSubDevice and AblyPubSubDevice.Private. |
| Test/UTS/unit/objects/ValueTypesTests.swift | Update Swift import from Ably to AblyPubSubDevice. |
| Test/UTS/unit/objects/RealtimeObjectTests.swift | Update Swift import from Ably to AblyPubSubDevice. |
| Test/UTS/unit/objects/PathObjectSubscribeTests.swift | Update Swift import from Ably to AblyPubSubDevice. |
| Test/UTS/unit/objects/PathObjectMutationsTests.swift | Update Swift import from Ably to AblyPubSubDevice. |
| Test/UTS/unit/objects/ObjectsUTSHelpers.swift | Update Swift import from Ably to AblyPubSubDevice. |
| Test/UTS/unit/objects/ObjectsPoolTests.swift | Update Swift import from Ably to AblyPubSubDevice. |
| Test/UTS/unit/objects/LiveObjectSubscribeTests.swift | Update Swift import from Ably to AblyPubSubDevice. |
| Test/UTS/unit/objects/InternalLiveCounterApiTests.swift | Update Swift import from Ably to AblyPubSubDevice. |
| Test/UTS/README.md | Update documentation references from Ably.Private to AblyPubSubDevice.Private. |
| Test/UTS/integration/standard/rest/PublishTests.swift | Update Swift import from Ably to AblyPubSubDevice. |
| Test/UTS/integration/standard/rest/PresenceTests.swift | Update Swift import from Ably to AblyPubSubDevice. |
| Test/UTS/integration/standard/rest/HistoryTests.swift | Update Swift import from Ably to AblyPubSubDevice. |
| Test/UTS/integration/standard/realtime/TokenRequestTests.swift | Update Swift import from Ably to AblyPubSubDevice. |
| Test/UTS/integration/standard/realtime/ChannelHistoryTests.swift | Update Swift import from Ably to AblyPubSubDevice. |
| Test/UTS/integration/standard/objects/ObjectsSyncTests.swift | Update Swift import from Ably to AblyPubSubDevice. |
| Test/UTS/integration/standard/objects/ObjectsLifecycleTests.swift | Update Swift import from Ably to AblyPubSubDevice. |
| Test/UTS/integration/standard/objects/ObjectsGcTests.swift | Update Swift import from Ably to AblyPubSubDevice. |
| Test/UTS/integration/standard/objects/helpers/ObjectsIntegrationHelpers.swift | Update Swift import from Ably to AblyPubSubDevice. |
| Test/UTS/integration/proxy/realtime/AuthReauthTests.swift | Update Swift import from Ably to AblyPubSubDevice. |
| Test/UTS/integration/proxy/objects/ObjectsFaultsTests.swift | Update Swift import from Ably to AblyPubSubDevice. |
| Test/UTS/infra/Utils.swift | Update imports to AblyPubSubDevice and AblyPubSubDevice.Private. |
| Test/UTS/infra/unit/UTSTestCase.swift | Update imports to AblyPubSubDevice and AblyPubSubDevice.Private. |
| Test/UTS/infra/unit/ProtocolMessage.swift | Update imports to AblyPubSubDevice and AblyPubSubDevice.Private. |
| Test/UTS/infra/unit/NoOpReachability.swift | Update imports to AblyPubSubDevice and AblyPubSubDevice.Private. |
| Test/UTS/infra/unit/MockWebSocket.swift | Update imports to AblyPubSubDevice and AblyPubSubDevice.Private. |
| Test/UTS/infra/unit/MockTimeProvider.swift | Update imports to AblyPubSubDevice and AblyPubSubDevice.Private. |
| Test/UTS/infra/unit/MockHTTPClient.swift | Update imports to AblyPubSubDevice and AblyPubSubDevice.Private. |
| Test/UTS/infra/unit/CapturingLog.swift | Update Swift import from Ably to AblyPubSubDevice. |
| Test/UTS/infra/SideSeamTests.swift | Update imports to AblyPubSubDevice and AblyPubSubDevice.Private. |
| Test/UTS/infra/Side.swift | Remove import Ably, keep import AblyPubSubDevice. |
| Test/UTS/infra/integration/proxy/ProxyTestCase.swift | Update Swift import from Ably to AblyPubSubDevice. |
| Test/UTS/infra/integration/proxy/ProxySession.swift | Update Swift import from Ably to AblyPubSubDevice. |
| Test/UTS/infra/integration/IntegrationTestCase.swift | Update Swift import from Ably to AblyPubSubDevice. |
| Test/UTS/deviations.md | Update documentation paths to Source/include/AblyPubSubDevice/.... |
| Test/AblyTestsObjC/ObjcppTest.mm | Update umbrella import to <AblyPubSubDevice/AblyPubSubDevice.h>. |
| Test/AblyTestsObjC/CryptoTest.m | Update @import to AblyPubSubDevice and AblyPubSubDevice.Private. |
| Test/AblyTestsObjC/ARTPubSubDeviceTests.m | Update private import to AblyPubSubDevice.Private. |
| Test/AblyTestsObjC/ARTInternalLogTests.m | Update @import to AblyPubSubDevice and AblyPubSubDevice.Private. |
| Test/AblyTestsObjC/ARTArchiveTests.m | Update @import to AblyPubSubDevice and AblyPubSubDevice.Private. |
| Test/AblyTests/Tests/WrapperSDKProxyTests.swift | Update Swift import from Ably to AblyPubSubDevice. |
| Test/AblyTests/Tests/UtilitiesTests.swift | Update imports to AblyPubSubDevice and AblyPubSubDevice.Private. |
| Test/AblyTests/Tests/SystemTimeProviderTests.swift | Update Swift private import to AblyPubSubDevice.Private. |
| Test/AblyTests/Tests/SummaryTypesTests.swift | Update @testable import to AblyPubSubDevice. |
| Test/AblyTests/Tests/StringifiableTests.swift | Update Swift import from Ably to AblyPubSubDevice. |
| Test/AblyTests/Tests/StatsTests.swift | Update Swift import from Ably to AblyPubSubDevice. |
| Test/AblyTests/Tests/RetrySequenceTests.swift | Update Swift private import to AblyPubSubDevice.Private. |
| Test/AblyTests/Tests/RestPaginatedTests.swift | Update Swift import from Ably to AblyPubSubDevice. |
| Test/AblyTests/Tests/RestClientTests.swift | Update Swift import from Ably to AblyPubSubDevice. |
| Test/AblyTests/Tests/RestClientStatsTests.swift | Update Swift import from Ably to AblyPubSubDevice. |
| Test/AblyTests/Tests/RestClientPresenceTests.swift | Update Swift import from Ably to AblyPubSubDevice. |
| Test/AblyTests/Tests/RestClientChannelTests.swift | Update Swift import from Ably to AblyPubSubDevice. |
| Test/AblyTests/Tests/RestClientChannelsTests.swift | Update Swift import from Ably to AblyPubSubDevice. |
| Test/AblyTests/Tests/RestAnnotationsTests.swift | Update Swift import from Ably to AblyPubSubDevice. |
| Test/AblyTests/Tests/RealtimeClientTests.swift | Update Swift import from Ably to AblyPubSubDevice. |
| Test/AblyTests/Tests/RealtimeClientPresenceTests.swift | Update Swift import from Ably to AblyPubSubDevice. |
| Test/AblyTests/Tests/RealtimeClientConnectionTests.swift | Update Swift import from Ably to AblyPubSubDevice. |
| Test/AblyTests/Tests/RealtimeClientChannelTests.swift | Update Swift import from Ably to AblyPubSubDevice. |
| Test/AblyTests/Tests/RealtimeClientChannelsTests.swift | Update Swift import from Ably to AblyPubSubDevice. |
| Test/AblyTests/Tests/RealtimeAnnotationsTests.swift | Update Swift import from Ably to AblyPubSubDevice. |
| Test/AblyTests/Tests/PushTests.swift | Update Swift import from Ably to AblyPubSubDevice. |
| Test/AblyTests/Tests/PushChannelTests.swift | Update Swift import from Ably to AblyPubSubDevice. |
| Test/AblyTests/Tests/PushAdminTests.swift | Update Swift import from Ably to AblyPubSubDevice. |
| Test/AblyTests/Tests/PushActivationStateMachineTests.swift | Update Swift import from Ably to AblyPubSubDevice. |
| Test/AblyTests/Tests/PubSubDeviceTests.swift | Update imports to AblyPubSubDevice and AblyPubSubDevice.Private. |
| Test/AblyTests/Tests/PluginAPITests.swift | Update Swift private import to AblyPubSubDevice.Private. |
| Test/AblyTests/Tests/ObjectLifetimesTests.swift | Update Swift import from Ably to AblyPubSubDevice. |
| Test/AblyTests/Tests/MessageUpdatesDeletesTests.swift | Update imports to AblyPubSubDevice (including @testable). |
| Test/AblyTests/Tests/LogAdapterTests.swift | Update Swift private import to AblyPubSubDevice.Private. |
| Test/AblyTests/Tests/LocalDeviceStorageTests.swift | Update imports to AblyPubSubDevice and AblyPubSubDevice.Private. |
| Test/AblyTests/Tests/DeltaCodecTests.swift | Update Swift import from Ably to AblyPubSubDevice. |
| Test/AblyTests/Tests/DefaultJitterCoefficientGeneratorTests.swift | Update Swift private import to AblyPubSubDevice.Private. |
| Test/AblyTests/Tests/DefaultInternalLogCoreTests.swift | Update Swift private import to AblyPubSubDevice.Private. |
| Test/AblyTests/Tests/DefaultErrorCheckerTests.swift | Update Swift private import to AblyPubSubDevice.Private. |
| Test/AblyTests/Tests/CryptoTests.swift | Update Swift import from Ably to AblyPubSubDevice. |
| Test/AblyTests/Tests/ConnectRetryStateTests.swift | Update Swift private import to AblyPubSubDevice.Private. |
| Test/AblyTests/Tests/ClientInformationTests.swift | Update Swift import from Ably to AblyPubSubDevice. |
| Test/AblyTests/Tests/ChannelOptionsTests.swift | Update Swift import from Ably to AblyPubSubDevice. |
| Test/AblyTests/Tests/BackoffRetryDelayCalculatorTests.swift | Update Swift import from Ably to AblyPubSubDevice. |
| Test/AblyTests/Tests/AuthTests.swift | Update imports to AblyPubSubDevice and AblyPubSubDevice.Private. |
| Test/AblyTests/Tests/AttachRetryStateTests.swift | Update Swift private import to AblyPubSubDevice.Private. |
| Test/AblyTests/Tests/ARTDefaultTests.swift | Update submodule import to AblyPubSubDevice.ARTDefault. |
| Test/AblyTests/Test Utilities/TestUtilities.swift | Update imports to AblyPubSubDevice and AblyPubSubDevice.Private. |
| Test/AblyTests/Test Utilities/TestProxyTransportFactory.swift | Update Swift private import to AblyPubSubDevice.Private. |
| Test/AblyTests/Test Utilities/MockVersion2Log.swift | Update Swift private import to AblyPubSubDevice.Private. |
| Test/AblyTests/Test Utilities/MockRetryDelayCalculator.swift | Update Swift private import to AblyPubSubDevice.Private. |
| Test/AblyTests/Test Utilities/MockJitterCoefficientGenerator.swift | Update Swift private import to AblyPubSubDevice.Private. |
| Test/AblyTests/Test Utilities/MockErrorChecker.swift | Update Swift private import to AblyPubSubDevice.Private. |
| Test/AblyTests/Test Utilities/MockDeviceStorage.swift | Update Swift import from Ably to AblyPubSubDevice. |
| Test/AblyTesting/MockInternalLogCore.swift | Update Swift private import to AblyPubSubDevice.Private. |
| Test/AblySoakTests/SoakTestWebSocket.swift | Update Swift private import to AblyPubSubDevice.Private. |
| Test/AblySoakTests/SoakTestURLSession.swift | Update Swift private import to AblyPubSubDevice.Private. |
| Test/AblySoakTests/SoakTestReachability.swift | Update Swift private import to AblyPubSubDevice.Private. |
| Test/AblySoakTests/SoakTest.swift | Update Swift private import to AblyPubSubDevice.Private. |
| Test/AblyLiveObjectsTesting/Internals/InternalDefaultRealtimeObjects+TestsOnly.swift | Update Swift import from Ably to AblyPubSubDevice. |
| Test/AblyLiveObjectsTesting/Internals/ARTRealtimeChannel+TestsOnly.swift | Update Swift import from Ably to AblyPubSubDevice. |
| Test/AblyLiveObjectsTesting/Internals/ARTErrorInfo+TestsOnly.swift | Update Swift import from Ably to AblyPubSubDevice. |
| Test/AblyLiveObjectsTesting/Helpers/MockRealtimeObjects.swift | Update Swift import from Ably to AblyPubSubDevice. |
| Test/AblyLiveObjectsTesting/Helpers/MockCoreSDK.swift | Update Swift import from Ably to AblyPubSubDevice. |
| Source/PrivateHeaders/Ably/ARTWrapperSDKProxyRealtimePresence+Private.h | Update public header include path to AblyPubSubDevice. |
| Source/PrivateHeaders/Ably/ARTWrapperSDKProxyRealtimeChannels+Private.h | Update public header include path to AblyPubSubDevice. |
| Source/PrivateHeaders/Ably/ARTWrapperSDKProxyRealtimeChannel+Private.h | Update public header include path to AblyPubSubDevice. |
| Source/PrivateHeaders/Ably/ARTWrapperSDKProxyRealtimeAnnotations+Private.h | Update public header include path to AblyPubSubDevice. |
| Source/PrivateHeaders/Ably/ARTWrapperSDKProxyRealtime+Private.h | Update public header include path to AblyPubSubDevice. |
| Source/PrivateHeaders/Ably/ARTWrapperSDKProxyPushDeviceRegistrations+Private.h | Update public header include path to AblyPubSubDevice. |
| Source/PrivateHeaders/Ably/ARTWrapperSDKProxyPushChannelSubscriptions+Private.h | Update public header include path to AblyPubSubDevice. |
| Source/PrivateHeaders/Ably/ARTWrapperSDKProxyPushChannel+Private.h | Update public header include path to AblyPubSubDevice. |
| Source/PrivateHeaders/Ably/ARTWrapperSDKProxyPushAdmin+Private.h | Update public header include path to AblyPubSubDevice. |
| Source/PrivateHeaders/Ably/ARTWrapperSDKProxyPush+Private.h | Update public header include path to AblyPubSubDevice. |
| Source/PrivateHeaders/Ably/ARTWebSocketTransport+Private.h | Update public header include path to AblyPubSubDevice. |
| Source/PrivateHeaders/Ably/ARTVersion2Log.h | Update public header include path to AblyPubSubDevice. |
| Source/PrivateHeaders/Ably/ARTURLSessionServerTrust.h | Update public header include path to AblyPubSubDevice. |
| Source/PrivateHeaders/Ably/ARTTypes+Private.h | Update public header include path to AblyPubSubDevice. |
| Source/PrivateHeaders/Ably/ARTTokenParams+Private.h | Update public header include path to AblyPubSubDevice. |
| Source/PrivateHeaders/Ably/ARTRestPresence+Private.h | Update public header include path to AblyPubSubDevice. |
| Source/PrivateHeaders/Ably/ARTRestChannels+Private.h | Update public header include path to AblyPubSubDevice. |
| Source/PrivateHeaders/Ably/ARTRestChannel+Private.h | Update public header include path to AblyPubSubDevice. |
| Source/PrivateHeaders/Ably/ARTRestAnnotations+Private.h | Update public header include path to AblyPubSubDevice. |
| Source/PrivateHeaders/Ably/ARTRest+Private.h | Update public header include path to AblyPubSubDevice. |
| Source/PrivateHeaders/Ably/ARTRealtimeTransport.h | Update public header include path to AblyPubSubDevice. |
| Source/PrivateHeaders/Ably/ARTRealtimePresence+Private.h | Update public header include path to AblyPubSubDevice. |
| Source/PrivateHeaders/Ably/ARTRealtimeChannels+Private.h | Update public header include path to AblyPubSubDevice. |
| Source/PrivateHeaders/Ably/ARTRealtimeChannel+Private.h | Update public header include path to AblyPubSubDevice. |
| Source/PrivateHeaders/Ably/ARTRealtimeAnnotations+Private.h | Update public header include path to AblyPubSubDevice. |
| Source/PrivateHeaders/Ably/ARTRealtime+Private.h | Update public header include path to AblyPubSubDevice. |
| Source/PrivateHeaders/Ably/ARTQueuedMessage.h | Update public header include path to AblyPubSubDevice. |
| Source/PrivateHeaders/Ably/ARTPushDeviceRegistrations+Private.h | Update public header include path to AblyPubSubDevice. |
| Source/PrivateHeaders/Ably/ARTPushChannelSubscriptions+Private.h | Update public header include path to AblyPubSubDevice. |
| Source/PrivateHeaders/Ably/ARTPushChannel+Private.h | Update public header include path to AblyPubSubDevice. |
| Source/PrivateHeaders/Ably/ARTPushAdmin+Private.h | Update public header include path to AblyPubSubDevice. |
| Source/PrivateHeaders/Ably/ARTPush+Private.h | Update public header include path to AblyPubSubDevice. |
| Source/PrivateHeaders/Ably/ARTPublishResultSerial+Private.h | Update public header include path to AblyPubSubDevice. |
| Source/PrivateHeaders/Ably/ARTPublishResult+Private.h | Update public header include path to AblyPubSubDevice. |
| Source/PrivateHeaders/Ably/ARTProtocolMessage.h | Update public header include path to AblyPubSubDevice. |
| Source/PrivateHeaders/Ably/ARTPresenceMessage+Private.h | Update public header include path to AblyPubSubDevice. |
| Source/PrivateHeaders/Ably/ARTPresence+Private.h | Update public header include path to AblyPubSubDevice. |
| Source/PrivateHeaders/Ably/ARTPaginatedResult+Subclass.h | Update public header include path to AblyPubSubDevice. |
| Source/PrivateHeaders/Ably/ARTPaginatedResult+Private.h | Update public header include path to AblyPubSubDevice. |
| Source/PrivateHeaders/Ably/ARTNSMutableRequest+ARTPush.h | Update public header include path to AblyPubSubDevice. |
| Source/PrivateHeaders/Ably/ARTMessageVersion+Private.h | Update public header include path to AblyPubSubDevice. |
| Source/PrivateHeaders/Ably/ARTMessageSendStatus.h | Update public header include path to AblyPubSubDevice. |
| Source/PrivateHeaders/Ably/ARTMessageOperation+Private.h | Update public header include path to AblyPubSubDevice. |
| Source/PrivateHeaders/Ably/ARTMessageAnnotations+Private.h | Update public header include path to AblyPubSubDevice. |
| Source/PrivateHeaders/Ably/ARTMessage+Private.h | Update public header include path to AblyPubSubDevice. |
| Source/PrivateHeaders/Ably/ARTLog+Private.h | Update public header include path to AblyPubSubDevice. |
| Source/PrivateHeaders/Ably/ARTLocalDevice+Private.h | Update public header include path to AblyPubSubDevice. |
| Source/PrivateHeaders/Ably/ARTJsonLikeEncoder.h | Update public header include path to AblyPubSubDevice. |
| Source/PrivateHeaders/Ably/ARTInternalLogCore.h | Update public header include path to AblyPubSubDevice. |
| Source/PrivateHeaders/Ably/ARTInternalLog.h | Update public header include path to AblyPubSubDevice. |
| Source/PrivateHeaders/Ably/ARTHTTPPaginatedResponse+Private.h | Update public header include path to AblyPubSubDevice. |
| Source/PrivateHeaders/Ably/ARTHttp.h | Update public header include path to AblyPubSubDevice. |
| Source/PrivateHeaders/Ably/ARTEventEmitter+Private.h | Update public header include path to AblyPubSubDevice. |
| Source/PrivateHeaders/Ably/ARTErrorInfo+Private.h | Update public header include path to AblyPubSubDevice. |
| Source/PrivateHeaders/Ably/ARTEncoder.h | Update public header include path to AblyPubSubDevice. |
| Source/PrivateHeaders/Ably/ARTDeviceStorage.h | Update public header include path to AblyPubSubDevice. |
| Source/PrivateHeaders/Ably/ARTDevicePushDetails+Private.h | Ensure private header imports new public module path. |
| Source/PrivateHeaders/Ably/ARTDeviceIdentityTokenDetails+Private.h | Update public header include path to AblyPubSubDevice. |
| Source/PrivateHeaders/Ably/ARTDeviceDetails+Private.h | Update public header include path to AblyPubSubDevice. |
| Source/PrivateHeaders/Ably/ARTDefault+Private.h | Update public header include path to AblyPubSubDevice. |
| Source/PrivateHeaders/Ably/ARTDataQuery+Private.h | Update public header include path to AblyPubSubDevice. |
| Source/PrivateHeaders/Ably/ARTDataEncoder.h | Update public header include path to AblyPubSubDevice. |
| Source/PrivateHeaders/Ably/ARTCrypto+Private.h | Update public header include path to AblyPubSubDevice. |
| Source/PrivateHeaders/Ably/ARTConnectRetryState.h | Update public header include path to AblyPubSubDevice. |
| Source/PrivateHeaders/Ably/ARTConnection+Private.h | Update public header include path to AblyPubSubDevice. |
| Source/PrivateHeaders/Ably/ARTClientOptions+TestConfiguration.h | Update public header include path to AblyPubSubDevice. |
| Source/PrivateHeaders/Ably/ARTClientOptions+Private.h | Update public header include path to AblyPubSubDevice. |
| Source/PrivateHeaders/Ably/ARTClientInformation+Private.h | Update public header include path to AblyPubSubDevice. |
| Source/PrivateHeaders/Ably/ARTChannelStateChangeParams.h | Update public header include path to AblyPubSubDevice. |
| Source/PrivateHeaders/Ably/ARTChannels+Private.h | Update public header include path to AblyPubSubDevice. |
| Source/PrivateHeaders/Ably/ARTChannelOptions+Private.h | Update public header include path to AblyPubSubDevice. |
| Source/PrivateHeaders/Ably/ARTChannel.h | Update public header include path to AblyPubSubDevice. |
| Source/PrivateHeaders/Ably/ARTBaseMessage+Private.h | Update public header include path to AblyPubSubDevice. |
| Source/PrivateHeaders/Ably/ARTAuthOptions+Private.h | Update public header include path to AblyPubSubDevice. |
| Source/PrivateHeaders/Ably/ARTAuth+Private.h | Update public header include path to AblyPubSubDevice. |
| Source/PrivateHeaders/Ably/ARTAttachRetryState.h | Update public header include path to AblyPubSubDevice. |
| Source/PrivateHeaders/Ably/ARTAnnotation+Private.h | Update public header include path to AblyPubSubDevice. |
| Source/include/module.modulemap | Rename the module to AblyPubSubDevice and update umbrella header path; keep .Private submodule. |
| Source/include/AblyPubSubDevice/ARTWrapperSDKProxyRealtimePresence.h | Update nested includes to AblyPubSubDevice. |
| Source/include/AblyPubSubDevice/ARTWrapperSDKProxyRealtimeChannels.h | Update nested includes to AblyPubSubDevice. |
| Source/include/AblyPubSubDevice/ARTWrapperSDKProxyRealtimeChannel.h | Update nested includes to AblyPubSubDevice. |
| Source/include/AblyPubSubDevice/ARTWrapperSDKProxyRealtimeAnnotations.h | Update nested includes to AblyPubSubDevice. |
| Source/include/AblyPubSubDevice/ARTWrapperSDKProxyRealtime.h | Update nested includes to AblyPubSubDevice. |
| Source/include/AblyPubSubDevice/ARTWrapperSDKProxyPushDeviceRegistrations.h | Update nested includes to AblyPubSubDevice. |
| Source/include/AblyPubSubDevice/ARTWrapperSDKProxyPushChannelSubscriptions.h | Update nested includes to AblyPubSubDevice. |
| Source/include/AblyPubSubDevice/ARTWrapperSDKProxyPushChannel.h | Update nested includes to AblyPubSubDevice. |
| Source/include/AblyPubSubDevice/ARTWrapperSDKProxyPushAdmin.h | Update nested includes to AblyPubSubDevice. |
| Source/include/AblyPubSubDevice/ARTWrapperSDKProxyPush.h | Update nested includes to AblyPubSubDevice. |
| Source/include/AblyPubSubDevice/ARTWrapperSDKProxyOptions.h | New/relocated public header under AblyPubSubDevice. |
| Source/include/AblyPubSubDevice/ARTUpdateDeleteResult.h | New/relocated public header under AblyPubSubDevice. |
| Source/include/AblyPubSubDevice/ARTTypes.h | Update nested includes to AblyPubSubDevice. |
| Source/include/AblyPubSubDevice/ARTTokenRequest.h | Update nested includes to AblyPubSubDevice. |
| Source/include/AblyPubSubDevice/ARTTokenParams.h | Update nested includes to AblyPubSubDevice. |
| Source/include/AblyPubSubDevice/ARTTokenDetails.h | Update nested includes to AblyPubSubDevice. |
| Source/include/AblyPubSubDevice/ARTSummaryTypes.h | Update nested includes to AblyPubSubDevice. |
| Source/include/AblyPubSubDevice/ARTStringifiable.h | New/relocated public header under AblyPubSubDevice. |
| Source/include/AblyPubSubDevice/ARTStatus.h | New/relocated public header under AblyPubSubDevice. |
| Source/include/AblyPubSubDevice/ARTStats.h | Update nested includes to AblyPubSubDevice. |
| Source/include/AblyPubSubDevice/ARTRestPresence.h | Update nested includes to AblyPubSubDevice. |
| Source/include/AblyPubSubDevice/ARTRestChannels.h | Update nested includes to AblyPubSubDevice. |
| Source/include/AblyPubSubDevice/ARTRestChannel.h | Update nested includes to AblyPubSubDevice. |
| Source/include/AblyPubSubDevice/ARTRestAnnotations.h | Update nested includes to AblyPubSubDevice. |
| Source/include/AblyPubSubDevice/ARTRest.h | Update nested includes to AblyPubSubDevice. |
| Source/include/AblyPubSubDevice/ARTRealtimePresence.h | Update nested includes to AblyPubSubDevice. |
| Source/include/AblyPubSubDevice/ARTRealtimeChannels.h | Update nested includes to AblyPubSubDevice. |
| Source/include/AblyPubSubDevice/ARTRealtimeChannelOptions.h | Update nested includes to AblyPubSubDevice. |
| Source/include/AblyPubSubDevice/ARTRealtimeChannel.h | Update nested includes to AblyPubSubDevice. |
| Source/include/AblyPubSubDevice/ARTRealtimeAnnotations.h | Update nested includes to AblyPubSubDevice. |
| Source/include/AblyPubSubDevice/ARTRealtime+WrapperSDKProxy.h | Update nested includes to AblyPubSubDevice. |
| Source/include/AblyPubSubDevice/ARTRealtime.h | Update nested includes to AblyPubSubDevice. |
| Source/include/AblyPubSubDevice/ARTPushDeviceRegistrations.h | Update nested includes to AblyPubSubDevice. |
| Source/include/AblyPubSubDevice/ARTPushChannelSubscriptions.h | Update nested includes to AblyPubSubDevice. |
| Source/include/AblyPubSubDevice/ARTPushChannelSubscription.h | New/relocated public header under AblyPubSubDevice. |
| Source/include/AblyPubSubDevice/ARTPushChannel.h | Update nested includes to AblyPubSubDevice. |
| Source/include/AblyPubSubDevice/ARTPushAdmin.h | Update nested includes to AblyPubSubDevice. |
| Source/include/AblyPubSubDevice/ARTPush.h | Update nested includes to AblyPubSubDevice. |
| Source/include/AblyPubSubDevice/ARTPubSubDevice.h | Update entry-point header to import required SDK headers directly. |
| Source/include/AblyPubSubDevice/ARTPublishResultSerial.h | New/relocated public header under AblyPubSubDevice. |
| Source/include/AblyPubSubDevice/ARTPublishResult.h | New/relocated public header under AblyPubSubDevice. |
| Source/include/AblyPubSubDevice/ARTPresenceMessage.h | Update nested includes to AblyPubSubDevice. |
| Source/include/AblyPubSubDevice/ARTPresence.h | Update nested includes to AblyPubSubDevice. |
| Source/include/AblyPubSubDevice/ARTPaginatedResult.h | Update nested includes to AblyPubSubDevice. |
| Source/include/AblyPubSubDevice/ARTOutboundAnnotation.h | Update nested includes to AblyPubSubDevice. |
| Source/include/AblyPubSubDevice/ARTMessageVersion.h | Update nested includes to AblyPubSubDevice. |
| Source/include/AblyPubSubDevice/ARTMessageOperation.h | Update nested includes to AblyPubSubDevice. |
| Source/include/AblyPubSubDevice/ARTMessageAnnotations.h | Update nested includes to AblyPubSubDevice. |
| Source/include/AblyPubSubDevice/ARTMessage.h | Update nested includes to AblyPubSubDevice. |
| Source/include/AblyPubSubDevice/ARTLog.h | Update nested includes to AblyPubSubDevice. |
| Source/include/AblyPubSubDevice/ARTLocalDevice.h | Update nested includes to AblyPubSubDevice. |
| Source/include/AblyPubSubDevice/ARTHTTPPaginatedResponse.h | Update nested includes to AblyPubSubDevice. |
| Source/include/AblyPubSubDevice/ARTEventEmitter.h | New/relocated public header under AblyPubSubDevice. |
| Source/include/AblyPubSubDevice/ARTDevicePushDetails.h | New/relocated public header under AblyPubSubDevice. |
| Source/include/AblyPubSubDevice/ARTDeviceIdentityTokenDetails.h | New/relocated public header under AblyPubSubDevice. |
| Source/include/AblyPubSubDevice/ARTDeviceDetails.h | Update nested includes to AblyPubSubDevice. |
| Source/include/AblyPubSubDevice/ARTDefault.h | New/relocated public header under AblyPubSubDevice. |
| Source/include/AblyPubSubDevice/ARTDataQuery.h | Update nested includes to AblyPubSubDevice. |
| Source/include/AblyPubSubDevice/ARTCrypto.h | Update nested includes to AblyPubSubDevice. |
| Source/include/AblyPubSubDevice/ARTConnection.h | Update nested includes to AblyPubSubDevice. |
| Source/include/AblyPubSubDevice/ARTClientOptions.h | Update nested includes to AblyPubSubDevice. |
| Source/include/AblyPubSubDevice/ARTClientInformation.h | New/relocated public header under AblyPubSubDevice. |
| Source/include/AblyPubSubDevice/ARTChannels.h | New/relocated public header under AblyPubSubDevice. |
| Source/include/AblyPubSubDevice/ARTChannelProtocol.h | Update nested includes to AblyPubSubDevice. |
| Source/include/AblyPubSubDevice/ARTChannelOptions.h | Update nested includes to AblyPubSubDevice. |
| Source/include/AblyPubSubDevice/ARTBaseMessage.h | Update nested includes to AblyPubSubDevice. |
| Source/include/AblyPubSubDevice/ARTAuthOptions.h | Update nested includes to AblyPubSubDevice. |
| Source/include/AblyPubSubDevice/ARTAuthDetails.h | New/relocated public header under AblyPubSubDevice. |
| Source/include/AblyPubSubDevice/ARTAuth.h | Update nested includes to AblyPubSubDevice. |
| Source/include/AblyPubSubDevice/ARTAnnotation.h | Update nested includes to AblyPubSubDevice. |
| Source/include/AblyPubSubDevice/AblyPubSubDevice.h | Update umbrella to import new AblyPubSubDevice umbrella headers. |
| Source/include/AblyPubSubDevice/AblyPublic.h | New umbrella header listing public headers for the new module. |
| Source/include/AblyPubSubDevice/AblyInternal.h | New umbrella header listing Ably-internal-but-public SDK surface. |
| Source/include/Ably/AblyPublic.h | Remove old Ably module umbrella header. |
| Source/include/Ably/AblyInternal.h | Remove old Ably module internal umbrella header. |
| Source/ARTPubSubDevice.m | Import ARTClientInformation from new module for agent stamping. |
| Source/ARTOutboundAnnotation.m | Update include to AblyPubSubDevice header path. |
| Source/ARTDefault.m | Update internal include from Ably.h to AblyPubSubDevice.h. |
| Scripts/jazzy.sh | Update Jazzy umbrella header path (module name still needs updating). |
| Scripts/generate-markdown-api-reference.py | Update symbolgraph extraction and header paths for AblyPubSubDevice. |
| README.md | Update installation instructions to reference AblyPubSubDevice product. |
| Package.swift | Remove the Ably target/product and make AblyPubSubDevice the sole SDK module; rewire dependencies. |
| LiveObjects/Tests/AblyLiveObjectsTests/Unit/WireValueTests.swift | Update private import to AblyPubSubDevice.Private. |
| LiveObjects/Tests/AblyLiveObjectsTests/Unit/WireObjectMessageSizeTests.swift | Update Swift import from Ably to AblyPubSubDevice. |
| LiveObjects/Tests/AblyLiveObjectsTests/Unit/TestsOnlySeamsTests.swift | Update Swift import from Ably to AblyPubSubDevice. |
| LiveObjects/Tests/AblyLiveObjectsTests/Unit/SyncCursorTests.swift | Update Swift import from Ably to AblyPubSubDevice. |
| LiveObjects/Tests/AblyLiveObjectsTests/Unit/PublicRealtimeObjectTests.swift | Update Swift import from Ably to AblyPubSubDevice. |
| LiveObjects/Tests/AblyLiveObjectsTests/Unit/PathObjectSubscriptionTests.swift | Update Swift import from Ably to AblyPubSubDevice. |
| LiveObjects/Tests/AblyLiveObjectsTests/Unit/ObjectMessageTests.swift | Update Swift import from Ably to AblyPubSubDevice. |
| LiveObjects/Tests/AblyLiveObjectsTests/Unit/LiveObjectMutableStateTests.swift | Update Swift import from Ably to AblyPubSubDevice. |
| LiveObjects/Tests/AblyLiveObjectsTests/Unit/InternalDefaultRealtimeObjectsTests.swift | Update Swift import from Ably to AblyPubSubDevice. |
| LiveObjects/Tests/AblyLiveObjectsTests/Unit/InternalDefaultLiveMapTests.swift | Update Swift import from Ably to AblyPubSubDevice. |
| LiveObjects/Tests/AblyLiveObjectsTests/Unit/InternalDefaultLiveCounterTests.swift | Update Swift import from Ably to AblyPubSubDevice. |
| LiveObjects/Tests/AblyLiveObjectsTests/Unit/DefaultInternalPluginTests.swift | Update Swift import from Ably to AblyPubSubDevice. |
| LiveObjects/Tests/AblyLiveObjectsTests/Unit/DefaultInstanceTests.swift | Update Swift import from Ably to AblyPubSubDevice. |
| LiveObjects/Tests/AblyLiveObjectsTests/JS Integration Tests/TestProxyTransport.swift | Update private import and qualified type to AblyPubSubDevice. |
| LiveObjects/Tests/AblyLiveObjectsTests/Integration/ObjectLifetimesTests.swift | Update private import to AblyPubSubDevice.Private. |
| LiveObjects/Tests/AblyLiveObjectsTests/Integration/NumberPrecisionTests.swift | Update Swift import from Ably to AblyPubSubDevice. |
| LiveObjects/Tests/AblyLiveObjectsTests/Integration/AblyLiveObjectsTests.swift | Update Swift import from Ably to AblyPubSubDevice. |
| LiveObjects/Tests/AblyLiveObjectsTests/Helpers/Sandbox.swift | Update Swift import from Ably to AblyPubSubDevice. |
| LiveObjects/Tests/AblyLiveObjectsTests/Helpers/ClientHelper.swift | Update Swift import from Ably to AblyPubSubDevice. |
| LiveObjects/Tests/AblyLiveObjectsTests/Helpers/Ably+Concurrency.swift | Update Swift import from Ably to AblyPubSubDevice. |
| LiveObjects/Tests/AblyLiveObjectsTests/CLAUDE.md | Update documented import from Ably to AblyPubSubDevice. |
| LiveObjects/Sources/AblyLiveObjects/Utility/WireValue.swift | Update Swift import from Ably to AblyPubSubDevice. |
| LiveObjects/Sources/AblyLiveObjects/Utility/WireCodable.swift | Update Swift import from Ably to AblyPubSubDevice. |
| LiveObjects/Sources/AblyLiveObjects/Utility/MarkerProtocolHelpers.swift | Update Swift import from Ably to AblyPubSubDevice. |
| LiveObjects/Sources/AblyLiveObjects/Utility/JSONValue.swift | Update Swift import from Ably to AblyPubSubDevice. |
| LiveObjects/Sources/AblyLiveObjects/Utility/Errors.swift | Update Swift import from Ably to AblyPubSubDevice. |
| LiveObjects/Sources/AblyLiveObjects/Utility/Data+Extensions.swift | Update Swift import from Ably to AblyPubSubDevice. |
| LiveObjects/Sources/AblyLiveObjects/Public/Public Proxy Objects/PublicDefaultRealtimeObject.swift | Update Swift import from Ably to AblyPubSubDevice. |
| LiveObjects/Sources/AblyLiveObjects/Public/Plugin.swift | Update documentation snippet import to AblyPubSubDevice. |
| LiveObjects/Sources/AblyLiveObjects/Protocol/WireObjectMessage.swift | Update Swift import from Ably to AblyPubSubDevice. |
| LiveObjects/Sources/AblyLiveObjects/Protocol/SyncCursor.swift | Update Swift import from Ably to AblyPubSubDevice. |
| LiveObjects/Sources/AblyLiveObjects/Protocol/ObjectMessage.swift | Update Swift import from Ably to AblyPubSubDevice. |
| LiveObjects/Sources/AblyLiveObjects/Path Based API/Public/ValueTypes.swift | Update Swift import from Ably to AblyPubSubDevice. |
| LiveObjects/Sources/AblyLiveObjects/Path Based API/Public/Subscriptions.swift | Update Swift import from Ably to AblyPubSubDevice. |
| LiveObjects/Sources/AblyLiveObjects/Path Based API/Public/RealtimeObject.swift | Update Swift import from Ably to AblyPubSubDevice. |
| LiveObjects/Sources/AblyLiveObjects/Path Based API/Public/PublicObjectMessage.swift | Update Swift import from Ably to AblyPubSubDevice. |
| LiveObjects/Sources/AblyLiveObjects/Path Based API/Public/PathObject.swift | Update Swift import from Ably to AblyPubSubDevice. |
| LiveObjects/Sources/AblyLiveObjects/Path Based API/Public/Instance.swift | Update Swift import from Ably to AblyPubSubDevice. |
| LiveObjects/Sources/AblyLiveObjects/Path Based API/Public/Channel+Object.swift | Update Swift import from Ably to AblyPubSubDevice. |
| LiveObjects/Sources/AblyLiveObjects/Path Based API/Default/DefaultSubscription.swift | Update Swift import from Ably to AblyPubSubDevice. |
| LiveObjects/Sources/AblyLiveObjects/Path Based API/Default/DefaultStatusSubscription.swift | Update Swift import from Ably to AblyPubSubDevice. |
| LiveObjects/Sources/AblyLiveObjects/Path Based API/Default/DefaultPrimitivePathObject.swift | Update Swift import from Ably to AblyPubSubDevice. |
| LiveObjects/Sources/AblyLiveObjects/Path Based API/Default/DefaultPrimitiveInstance.swift | Update Swift import from Ably to AblyPubSubDevice. |
| LiveObjects/Sources/AblyLiveObjects/Path Based API/Default/DefaultPathObject.swift | Update Swift import from Ably to AblyPubSubDevice. |
| LiveObjects/Sources/AblyLiveObjects/Path Based API/Default/DefaultLiveMapPathObject.swift | Update Swift import from Ably to AblyPubSubDevice. |
| LiveObjects/Sources/AblyLiveObjects/Path Based API/Default/DefaultLiveMapInstance.swift | Update Swift import from Ably to AblyPubSubDevice. |
| LiveObjects/Sources/AblyLiveObjects/Path Based API/Default/DefaultLiveCounterPathObject.swift | Update Swift import from Ably to AblyPubSubDevice. |
| LiveObjects/Sources/AblyLiveObjects/Path Based API/Default/DefaultLiveCounterInstance.swift | Update Swift import from Ably to AblyPubSubDevice. |
| LiveObjects/Sources/AblyLiveObjects/Internal/PathObjectSubscriptionRegister.swift | Update Swift import from Ably to AblyPubSubDevice. |
| LiveObjects/Sources/AblyLiveObjects/Internal/ObjectCreationHelpers.swift | Update Swift import from Ably to AblyPubSubDevice. |
| LiveObjects/Sources/AblyLiveObjects/Internal/LiveObjectMutableState.swift | Update Swift import from Ably to AblyPubSubDevice. |
| LiveObjects/Sources/AblyLiveObjects/Internal/InternalTypes.swift | Update Swift import from Ably to AblyPubSubDevice. |
| LiveObjects/Sources/AblyLiveObjects/Internal/InternalDefaultRealtimeObjects.swift | Update Swift import from Ably to AblyPubSubDevice. |
| LiveObjects/Sources/AblyLiveObjects/Internal/InternalDefaultLiveMap.swift | Update Swift import from Ably to AblyPubSubDevice. |
| LiveObjects/Sources/AblyLiveObjects/Internal/InternalDefaultLiveCounter.swift | Update Swift import from Ably to AblyPubSubDevice. |
| LiveObjects/Sources/AblyLiveObjects/Internal/DefaultInternalPlugin.swift | Update Swift import from Ably to AblyPubSubDevice. |
| LiveObjects/Sources/AblyLiveObjects/Internal/CoreSDK.swift | Update Swift import from Ably to AblyPubSubDevice. |
| LiveObjects/Sources/AblyLiveObjects/Internal/ChannelConfigGuards.swift | Update Swift import from Ably to AblyPubSubDevice. |
| LiveObjects/Sources/AblyLiveObjects/Internal/ARTClientOptions+Objects.swift | Update Swift import from Ably to AblyPubSubDevice. |
| LiveObjects/README.md | Update usage examples to import AblyPubSubDevice. |
| LiveObjects/Example/AblyLiveObjectsExample/Views/TaskBoardView.swift | Update Swift import to AblyPubSubDevice. |
| LiveObjects/Example/AblyLiveObjectsExample/Views/LiveCounterView.swift | Update Swift import to AblyPubSubDevice. |
| LiveObjects/Example/AblyLiveObjectsExample/ViewModels/TaskBoardViewModel.swift | Update Swift import to AblyPubSubDevice. |
| LiveObjects/Example/AblyLiveObjectsExample/ViewModels/LiveCounterViewModel.swift | Update Swift import to AblyPubSubDevice. |
| LiveObjects/Example/AblyLiveObjectsExample/ContentView.swift | Update Swift import to AblyPubSubDevice. |
| LiveObjects/Example/AblyLiveObjectsExample/AblyLiveObjectsExampleApp.swift | Update Swift import to AblyPubSubDevice. |
| LiveObjects/CONTRIBUTING.md | Update guidance to use import AblyPubSubDevice.Private. |
| LiveObjects/CLAUDE.md | Update documented import from Ably to AblyPubSubDevice. |
| Examples/SPM/Tests/SPMTests/SPMTests.swift | Remove import Ably, keep import AblyPubSubDevice. |
| Examples/SPM/Package.swift | Remove AblyPubSubCore product dependency, keep AblyPubSubDevice. |
| Examples/AblyPush/AblyPushExample/ContentView.swift | Update Swift import from Ably to AblyPubSubDevice. |
| Examples/AblyPush/AblyPushExample/App.swift | Update Swift import from Ably to AblyPubSubDevice. |
| Examples/AblyPush/AblyPushExample/AblyHelper.swift | Update Swift import from Ably to AblyPubSubDevice. |
| Examples/AblyPush/AblyPushExample.xcodeproj/project.pbxproj | Update Xcode package product dependency from AblyPubSubCore to AblyPubSubDevice. |
| Docs/plugins.md | Update docs to reflect plugin support is compiled into AblyPubSubDevice target. |
| CONTRIBUTING.md | Update file paths and target/module references for the new AblyPubSubDevice layout. |
| CLAUDE.md | Update repository guidance to reflect single-module SDK (AblyPubSubDevice). |
| .swiftpm/xcode/xcshareddata/xcschemes/ably-cocoa.xcscheme | Update scheme buildable references from Ably to AblyPubSubDevice. |
| .claude/skills/uts-to-swift/SKILL.md | Update skill docs examples to import AblyPubSubDevice / .Private. |
| .claude/skills/uts-to-swift/references/objects-mapping.md | Update skill reference docs to import AblyPubSubDevice. |
Review details
- Files reviewed: 286/341 changed files
- Comments generated: 1
- Review effort level: Lite
💡 Add a code-review agent skill or configure MCP servers for context-aware, tailored reviews. Learn more in the docs.
for device packages we no longer going to provide rest clients in public api across all sdks |
The package exposes two products, AblyPubSubDevice and AblyLiveObjects. AblyPubSubDevice is the SDK: one target, one module, reached through PubSubDevice.createClient(options:), which declares that the client runs on an end user's device. There is no longer a core separate from the device package, so nothing is described as a core SDK or vended as an Ably product. `import Ably` does not compile — the module does not exist. Keeping the core as a target of its own could not achieve that, because nothing in SPM or Clang hides a module that is in the build graph. The public headers move to Source/include/AblyPubSubDevice under an AblyPubSubDevice.h umbrella, the module map declares the new name, and every `#import <Ably/…>`, `@import Ably`, `import Ably` and `Ably.Private` follows. jazzy and generate-markdown-api-reference.py carried the old module name, header path and document title. The tracked ably-cocoa scheme named the old target too, so the Fastlane lanes could not resolve it.
7fe8054 to
c6c83a5
Compare
Stacked on #2284. The package vends two products and one module.
PDR-091b2 specifies exactly this for ably-cocoa — "New package: SPM product
AblyPubSubDevice. Factory door:PubSubDevice.createClient(options)".AblyPubSubDeviceis the SDK here: there is no core package or core product beside it, because this SDK has no server half to share a core with. An application has one way in:import Ablyno longer existsThat is the part worth reviewing, because it required merging rather than renaming. Removing the core product does not stop anyone writing
import Ably: the module is what makes an import resolve, and nothing in SPM or Clang hides a module that sits in the build graph. I verified that — a consumer depending only onAblyPubSubDevicecould stillimport Ablyand compile.So the core target is merged into
AblyPubSubDevice. There is now a single module, and the probe that used to compile now fails:The alternative was to keep two targets and rename the core's module to
AblyPubSubCore. That would have leftimport AblyPubSubCoreavailable as a second entry point; merging leaves none.What moved
PubSubDevice/ARTPubSubDevice.{h,m}intoSource, and the directory is gone.Source/include/Ably/→Source/include/AblyPubSubDevice/(72 public headers), withAbly.h→AblyPubSubDevice.has the umbrella.AblyPublic.hnow imports the door, soPubSubDevice.createClientis reachable from the module.Source/include/module.modulemapdeclaresmodule AblyPubSubDevice, andAbly.PrivatebecomesAblyPubSubDevice.Private.#import <Ably/…>, 196 Swiftimport Ably, 48Ably.Private, plus@importforms in Objective-C++ and one module-qualifiedAbly.WebSocketFactory.AblyLiveObjectsand every test target depend onAblyPubSubDeviceinstead ofAbly.Scripts/jazzy.shandScripts/generate-markdown-api-reference.pyboth carried the old module name and header path; the API-reference script failed outright until its-module-namewas updated.Consequences to weigh
AblyLiveObjectsconsumers now link the whole SDK. The plugin's target depends on the merged module, so there is no way to take LiveObjects without it. Acceptable for a plugin that loads into a client, but it is a real coupling that the two-target shape avoided.The core/device separation is gone, not merely relaxed. The door used to be its own target that could only reach the core's public headers. They are now one target, so nothing stops implementation code referencing the factory. In exchange there is no second module for anyone to import, and nothing in the manifest or the docs describes a core SDK any more.
Objective-C consumers change their imports too —
#import <Ably/Ably.h>becomes#import <AblyPubSubDevice/AblyPubSubDevice.h>. A new major with a new package name, so no existing consumer is broken in place.Verification
swift build --build-testsclean.Examples/SPMbuilds from a clean.build.AblyPushExamplereaches** BUILD SUCCEEDED **on the iOS simulator — its project file linked the old product by name in two places.PubSubDeviceTests/test__001passes against the sandbox, and the generated API reference builds and contains the door.Wording
Nothing in
Package.swift,CLAUDE.md,CONTRIBUTING.mdorDocs/plugins.mdstill calls anything a core SDK or anAblyproduct, and theAblytarget no longer exists to be referred to.generate-markdown-api-reference.pyalso titled its output after theAblymodule; the reference now namesAblyPubSubDevice.