Skip to content

Conversation

@pyrtsa
Copy link
Contributor

@pyrtsa pyrtsa commented Oct 23, 2025

There seem to have been a recent change to the macOS toolchain where both Testing.framework and libXCTestSwiftSupport.dylib got built against macOS 14.0 runtime.

As a result, swift test (unless run with both --disable-xctest and --disable-swift-testing) forces the test target to build with arm64-apple-macosx14.0 as the minimum deployment target, no matter which lower value the Package.swift file has in its platforms array.

This PR adds deprecation annotations on the affected tests, silencing the deprecation warnings, and also skips the failing tests unless the test target it proven to built against an older deployment target1. I set swift test to build against the older deployment target by passing -target arm64-apple-macosx13.0 to swiftc in ci.yml. This seems to work, but YMMV.

There are two new linker warnings when running tests like this, but I think we can live with them:

ld: warning: building for macOS-13.0, but linking with dylib '@rpath/Testing.framework/Versions/A/Testing' which was built for newer version 14.0
ld: warning: building for macOS-13.0, but linking with dylib '@rpath/libXCTestSwiftSupport.dylib' which was built for newer version 14.0

With these changes, I think we can restore unit tests in ci.yml and also include Xcode 26.0.

Footnotes

  1. This in turn is a little hack with @_disfavoredOverload, intentionally symmetrical to what the library already does to hide the backports.

@pyrtsa pyrtsa changed the title Restore back perception checking tests on macOS Restore perception checking tests on macOS Oct 23, 2025
Copy link
Member

@stephencelis stephencelis left a comment

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Good finds, thanks for diving into this!

@stephencelis stephencelis merged commit a27c2d4 into pointfreeco:main Oct 23, 2025
6 checks passed
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.

2 participants