SwiftKickMobile/SwiftMessages

Breaking change released in patch release

Closed this issue · 10 comments

Mordil commented

The latest release 9.0.10 introduces a breaking change

With Xcode 15, and Swift 5.9, the @MainActor annotations are causing compiler errors as we're not also annotating our code to work within the Async/Await ecosystem.

See this release

633b6e5

Mordil commented

There are technically a few breaking changes within this release.

Please release a 9.0.11 reverting these changes and re-release as 10.0.0

Yep, that was a mistake. It didn't occur to me that this was a breaking change. However, I don't think I'm going to revert – I'm not going to avoid new technologies because a small subset of projects aren't adopting them.

Oh, I misread. You want me to change the version number. Yeah, I'll probably do that.

Please rename the tag ASAP since it's breaking people's apps ~now.

There are technically a few breaking changes within this release.

@Mordil what else did you note as a breaking change? I'm contemplating re-releasing the as 9.0.10, but without @MainActor. So if you have other concerns, please share.

Mordil commented

There are technically a few breaking changes within this release.

@Mordil what else did you note as a breaking change? I'm contemplating re-releasing the as 9.0.10, but without @MainActor. So if you have other concerns, please share.

It's arguable this doesn't count, but I believe changing the minimum supported platform to iOS 13 is itself a breaking change, because people will stop receiving updates if they have iOS 12 or earlier as their minimum - which breaks expectations of patch releases.

Yes, any increase to minimum iOS version is always a breaking change. My team was hitting an issue with @MainActor and also nonisolated breaking the builds in our apps.

I'm keeping @MainActor, so I'll be moving to 10.0.0. However, while I agree that bumping the minimum target is technically a breaking change, practically, I would not bump the major version for that given how few people would be affected, it would not be worth the tradeoff.

Mordil commented

Then please document in your README that you’re not SemVer compliant so others may know