Skip to content

Raise the minimum OS versions to iOS 18 and macOS 15 - #23

Merged
Jeehut merged 3 commits into
mainfrom
wip/raise-minimum-os-versions
Oct 25, 2026
Merged

Jeehut merged 3 commits into
mainfrom
wip/raise-minimum-os-versions

Conversation

@Jeehut

@Jeehut Jeehut commented Oct 25, 2026 •

Copy link
Copy Markdown
Member

Summary

First step towards 3.0.0: raise the minimum OS versions and drop the checks that are now always true.

-platforms: [.iOS(.v16), .macOS(.v13), .tvOS(.v16), .visionOS(.v1), .watchOS(.v9)]
+platforms: [.iOS(.v18), .macOS(.v15), .tvOS(.v18), .visionOS(.v2), .watchOS(.v11)]
  • Every @available and #available check for iOS 17, macOS 14, tvOS 17 and watchOS 10 is gone, along with its fallback branch.
  • The internal onValueChange helper is gone. It only existed to pick the right onChange variant below iOS 17. Callers now use onChange directly.
  • The BindingExt doc example uses the two-parameter onChange.

All five minimums come from the same release year. No API in the package needs watchOS 11, but mixing API generations across platforms is asking for trouble.

Evidence

  • Before: builds and tests pass on main.
    After: swift build and swift test pass on macOS, 37 tests. No new warnings. A search for @available, #available and #unavailable finds only the deprecated: 26.0 notes on WebView. CI builds the other platforms.

Merge Danger

Door: two-way

Blast Radius: consumers

Apps below iOS 18, macOS 15, tvOS 18, visionOS 2 or watchOS 11 can't update to 3.0.0. That's why this goes into a major release. Nothing in the public API changes.

HandySwiftUI 3.0.0 targets iOS 18, macOS 15, tvOS 18, visionOS 2 and
watchOS 10. With these minimums, every availability check for iOS 17,
macOS 14, tvOS 17 and watchOS 10 is always true, so the annotations and
the fallback branches go away. The internal onValueChange bridge only
existed to call the right onChange variant below iOS 17 and is replaced
by onChange directly.
All five minimums now come from the same release year, so no API from
an older SDK generation gets combined with newer ones.
@Jeehut
Jeehut merged commit 857ac34 into main Oct 25, 2026
5 checks passed
@Jeehut
Jeehut deleted the wip/raise-minimum-os-versions branch October 25, 2026 13:09
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

1 participant