Quick / Nimble

A Matcher Framework for Swift and Objective-C
https://quick.github.io/Nimble/documentation/nimble/
Apache License 2.0
4.8k stars 596 forks source link

Rename Predicate to Matcher #1090

Closed younata closed 10 months ago

younata commented 11 months ago

Because I couldn't think of a better name, This re-uses the name of the old Matcher API (removed since Nimble 10.0).

This change is due to the 2023 Apple Platforms release renaming NSPredicate to Predicate, which causes friction for developers creating custom matchers.

I also considered using "NimblePredicate" instead, but went with Matcher because our documentation already refers to predicates as matchers, so the idea/concept is still around.

This is a backwards compatible change, but it should still be a major version.

My current thinking is to take the non-sendable-related work from the Nimble 13 PR (consolidating the targets in the xcodeproj, marking AsyncDefaults as unavailable) and include them with this PR as Nimble 13. The work making Nimble compatible with Sendable/Swift 6 will be part of Nimble 14 (though, I'm going to name that branch nimble_next to account for if we need to release another major version of Nimble prior to that work being usable).

visionOS support will likely be a point release on Nimble 13.

Fixes #1061

Checklist - While not every PR needs it, new features should consider this list:

younata commented 11 months ago

As noted in this comment, I'm going to keep this PR open for a week in case anyone in the public has concerns. Then I'm going to merge this into main. Then I'm going to redo https://github.com/Quick/Nimble/pull/1063 and https://github.com/Quick/Nimble/pull/1069 and cut Nimble 13 RC from that.