You signed in with another tab or window. Reload to refresh your session.You signed out in another tab or window. Reload to refresh your session.You switched accounts on another tab or window. Reload to refresh your session.Dismiss alert
SwiftPM's convention is Sources/<TargetName>/, which also lets targets drop their explicit path:. #2228 was a deliberately minimal step that only removed the confusing Source/ + Sources/ coexistence; this issue tracks the fuller, idiomatic reorg.
Proposed target layout
Sources/
Ably/ # everything currently in Source/
_AblyPluginSupportPrivate/ # moved back under Sources/
Both targets would then match the Sources/<TargetName>/ convention and could drop their explicit path: in Package.swift.
Note
A naive merge won't work: today's Source/ is a target root (loose .m files at its top), so it can't sit directly inside Sources/ next to another target's root — SwiftPM rejects overlapping/nested source roots. The core files must move into their own Sources/Ably/ subfolder.
Work involved
Unlike the _AblyPluginSupportPrivate move, renaming the core Source/ touches the non-SPM distribution paths:
Package.swift — update (or drop) path: for Ably and _AblyPluginSupportPrivate
Background
The repo's source directories are inconsistent with SwiftPM conventions:
Ablytarget →Source/(singular)_AblyPluginSupportPrivate→_AblyPluginSupportPrivate/at the repo root (after Move _AblyPluginSupportPrivate out ofSources/to the repo root #2228)SwiftPM's convention is
Sources/<TargetName>/, which also lets targets drop their explicitpath:. #2228 was a deliberately minimal step that only removed the confusingSource/+Sources/coexistence; this issue tracks the fuller, idiomatic reorg.Proposed target layout
Both targets would then match the
Sources/<TargetName>/convention and could drop their explicitpath:inPackage.swift.Note
A naive merge won't work: today's
Source/is a target root (loose.mfiles at its top), so it can't sit directly insideSources/next to another target's root — SwiftPM rejects overlapping/nested source roots. The core files must move into their ownSources/Ably/subfolder.Work involved
Unlike the
_AblyPluginSupportPrivatemove, renaming the coreSource/touches the non-SPM distribution paths:Package.swift— update (or drop)path:forAblyand_AblyPluginSupportPrivateAbly.podspec—source_files,resource_bundles,private_header_files,module_map(Source/**→Sources/Ably/**)Scripts/generate-markdown-api-reference.py— theSource/include…referencesAbly.xcodeproj/project.pbxproj— file/group references (done manually in Xcode); Carthage builds through thisTest/singular vsLiveObjects/Tests/plural)swift build --build-tests,make lint, CocoaPods lint, Carthage buildTiming
Best done once the in-flight LiveObjects integration work has landed, to avoid large rebase conflicts.
Follow-up to #2228.
┆Issue is synchronized with this Jira Task by Unito