Skip to content

Support swift 5.9 with minimum 5.5 compatibility.#61

Merged
jminor merged 1 commit intoOpenTimelineIO:mainfrom
wabiverse:main
Mar 31, 2025
Merged

Support swift 5.9 with minimum 5.5 compatibility.#61
jminor merged 1 commit intoOpenTimelineIO:mainfrom
wabiverse:main

Conversation

@furby-tm
Copy link
Copy Markdown
Contributor

Summarize your change.

Support Swift 5.9, visionOS 1.0+, and a minimum iOS version of 12.

Add a list of changes, and note any that might need special attention during review.

  • Created a new Swift Package manifest for backwards compatibility with Swift 5.5 and older.
  • Bumped the existing Swift Package manifest to support a minimum of Swift 5.9 (the minimum required for Swift/C++ interop), visionOS 1.0 and later, and a minimum iOS version of 12.

Reference associated tests.

  • All tests pass.

Signed-off-by: furby™ <devs@wabi.foundation>
@furby-tm
Copy link
Copy Markdown
Contributor Author

furby-tm commented Sep 27, 2024

Noted by @jchen9 - this is likely necessary to use the cross-platform (Linux included) CGRect type (reference).

This version bump is required to be able to begin deprecating the Objective-C bindings and support Swift/C++ interop, and making this Swift Package available for the Linux platform, immediately this change should now allow us to support visionOS.

@furby-tm
Copy link
Copy Markdown
Contributor Author

Screenshot 2024-09-27 at 2 50 03 AM

I've also targeted the visionOS platform, and verified this Swift Package builds successfully for that platform.

@vade
Copy link
Copy Markdown
Collaborator

vade commented Mar 28, 2025

2 Quick question about this PR

swift-tools-version is set to 6.0 in the package, not 5.9 (i know the tools and the swift version differ, but i think in this invocation you do actually target swift 6.0?) as

I think because https://developer.apple.com/documentation/packagedescription/package/swiftlanguageversions

is deprecated , if we want swift 5.9 we should mark the tools version as well, otherwise you'll get the latest on your system?

   platforms: [
       .macOS(.v14),
       .visionOS(.v1),
       .iOS(.v17),
       .tvOS(.v17),
       .watchOS(.v10),

Does this impact deployment scenarios for clients in any way (I do see the 5.5 package remains) - im mostly curious if the package requires these more modern os versions, or if it can be relaxed?

@furby-tm
Copy link
Copy Markdown
Contributor Author

furby-tm commented Mar 31, 2025

@vade sorry about that, I was doing a bunch of c++ interop tests and forgot this PR was still open, reverted all changes to the original intention of this revision, which is simply to support swift 5.9 for future c++ interop work as well as visionOS platform support, along with backwards compatibility with swift 5.5+

@jminor jminor merged commit 5fc1040 into OpenTimelineIO:main Mar 31, 2025
2 checks passed
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Projects

None yet

Development

Successfully merging this pull request may close these issues.

3 participants