Ship Sendable annotations in 1.0.6
lorentey opened this issue · 1 comments
Enabling strict concurrency diagnostics is now a common thing; we cannot keep shipping swift-collections without Sendable
conformances.
- Cherry pick #191 onto release/1.0
- Ship it in a patch release, 1.0.6.
New conformances are usually considered API changes, and they would need to ship in a new minor release. However, Sendable
is not a regular protocol. On reflection, making types conform to Sendable
are not really API additions in the usual sense, like adding Equatable
-- Sendable
is more like a required declaration that adds proper support for Swift 5.5+ toolchains.
Therefore, I think that adding Sendable declarations better match the risk profile of patch release than a full minor version. (They feel closer to https://github.com/apple/swift-collections/pull/268/files, than, say, a change that added a new method to an existing type.) We have some precedent in doing this in the 1.0.2 release of swift-atomics -- although there our hands were forced by the new compiler "helpfully" inferring incorrect Sendable conformances for us.