Currently the deprecation roadmap is noted in the README as follows:
The deprecating plan is a 3 major versions removal. Which is as follows:
- Introduce new Predicate API, deprecation warning for old matcher APIs. (Nimble v7.x.x)
- Introduce warnings on migration-path features (.predicate, Predicate-constructors with similar arguments to old API). (Nimble v8.x.x)
- Remove old API. (Nimble v9.x.x)
I think we are not ready for v8 release yet but maintaining v7 release (at 7.x-branch) for 3 Swift versions (Swift 3, Swift 4 and Swift 4.2) and many Xcode versions (from Xcode 8 to Xcode 10.1) is so difficult and tedious.
So I propose releasing Nimble v8 just for bumping Swift version requirement to Swift 4.2 with no API changes since v7.3.2. That should fairly make the development easier.
As a result,
- Introduce warnings on migration-path features (.predicate, Predicate-constructors with similar arguments to old API). (Nimble v8.x.x)
will be Nimble v9.x.x and
- Remove old API. (Nimble v9.x.x)
will be Nimble v10.x.x.
@Quick/core How do you think?
I think this is a good idea especially with the Xcode 10.2 beta 1 release today which includes Swift 5 and drops support for Swift 3.
error: SWIFT_VERSION '3.0' is unsupported, supported versions are: 4.0, 4.2, 5.0. (in target 'Nimble-macOS')
Build system information
warning: Swift 3 mode has been deprecated and will be removed in a later version of Xcode. Please migrate "Nimble-macOS" to Swift 4.2 using "Convert > To Current Swift Syntax…" in the Edit menu. (in target 'Nimble-macOS')
Thanks @phatblat, I'll go for it!
Most helpful comment
I think this is a good idea especially with the Xcode 10.2 beta 1 release today which includes Swift 5 and drops support for Swift 3.