Dropping Swift 5.9 support

Hi folks! The swift-testing package has up to this point been technically available for use with Swift 5.9. Although we do not support Swift 5.9, our package could be added as a dependency and used with the Swift 5.9 compiler. This was allowed because of the package's inclusion in Swift Package Index.

Swift 5.10 has been officially released, so we are updating our package manifest to require the Swift 5.10 toolchain or newer. We will be tagging a 0.6.0 release in the near future. This means that swift-testing 0.5.1 is the last version that can be used with the Swift 5.9 toolchain.

As a reminder, Swift 5.10 support is temporary for the benefit of developers who cannot rely on a nightly main-branch toolchain. Swift 5.10 support will be removed in a future update.

2 Likes

Fair enough re. the change, but shouldn't that warrant a major version increment, since it's a breaking change?

(I suspect you'll say "but we don't want to go to 1.x.y yet because it's not finished", to which I'd say "but they're just numbers; people shouldn't be making assumptions about '1' being magical, anyway" :slightly_smiling_face:)

Formally in "true SemVer" (https://semver.org), all 0.x.y versions are unstable and may contain breaking changes. A few systems, like Rust's Cargo, tweak that to consider 0.x.y and 0.x.z compatible in the same way x.y.0 and x.z.0 are compatible.

SwiftPM spells out its version requirements with exact, upToNextMajor, and upToNextMinor, but anyone using upToNextMajor with 0.x.y versions is definitely playing with fire.

4 Likes

Thanks Jordan. Indeed, swift-testing uses semantic versioning as described here.

1 Like