ably / ably-cocoa

iOS, tvOS and macOS Objective-C and Swift client library SDK for Ably realtime messaging service
https://ably.com/download
Apache License 2.0
45 stars 24 forks source link

Remove `.xcodeproj`, drop carthage support, Use `swift build` in Github workflow #1137

Open ben-xD opened 3 years ago

ben-xD commented 3 years ago

Background

As part of adding SPM support, a Package.swift was added to Ably cocoa, allowing Xcode projects and other swift packages to easily add Ably as a dependency. Swift packages are separate entities to Xcode projects, and do not co-exist with Xcode projects very well:

Tasks:

In @lukasz-szyszkowski's PR, we are keeping the Ably.xcodeproj temporarily to avoid making too many changes. But these changes should happen soon to avoid developer confusion:

lawrence-forooghian commented 2 years ago

@QuintinWillison @AndyNicks I'm here after looking at #1070. Do we know whether we'd like to proceed with removing Carthage? Do we have a sense of how disruptive this would be to users of the library?

QuintinWillison commented 2 years ago

I've had a quick look through all issues mentioning 'carthage', where most of those only mention it because we were using an issue template that pretty much every issue creator said 'No' to the question 'Are you using Carthage?'.

There is no way, that I'm aware of, for us to get any metrics around use of this SDK via Carthage as it uses GitHub as the natural distribution platform innately.

Ideally I would have us drop Carthage support in a minor, perhaps major, version bump - however, the work to progress us towards enabling that versioning freedom for all SDKs has not yet been completed. I also know that keeping Carthage in the mix is holding this codebase back from a maintainability standpoint.

I think we should proceed with removing Carthage from this codebase now and accept the risk that we'll be doing this as part of a patch version bump, which may well attract complaint from developers who are bringing this SDK in via that route.

What will put us in a good place to handle those complaints will be for any work that is done to remove Carthage under this issue to also include some documentation describing any hints or steps they can go thru in order to put our preferred replacement in place (presumably, SPM).

lawrence-forooghian commented 2 years ago

Just happened to be passing by here - one thing to mention is that we should probably do this as a few separate pieces of work (for ease of review):

  1. Come up with another process for building a binary version of ably-cocoa for people who don't want to use a package manager to install it
  2. remove Carthage support
  3. add ability to run the tests using swift test(this might actually need to come first, since Nimble, which is a dependency of our test suite, is currently brought in using Carthage)
  4. remove the .xcodeproj