apple/swift-collections

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.

Fix landed in #343; this is scheduled to ship in 1.0.6.