Open nesium opened 5 months ago
Hello!
I have the same use case as @nesium and I observe the same issues. I've just tested with Swift 6.0/Xcode 16 and the problem is still happening. The more aliases we define, the more likely we are to get build errors.
Description
Hello!
Aliasing immediate and transient dependencies in a Swift package breaks builds with Swift 5.9.2 (Xcode 15.2) when library evolution is enabled. It fails with an error like this:
The build used to work with Swift 5.7.2 (Xcode 14.2).
Reproduction
The issue can easily be reproduced by trying to build the following Swift package…
… with the following build script…
Expected behavior
The build should succeed when building with Swift 5.9.2
Environment
Non-working version:
Working version:
Additional information
For context: We're distributing an SDK in binary form and using module aliasing as a way to prevent issues with duplicate symbols. Unfortunately it broke immediately after introduction with this specific set of dependencies. It seems to work perfectly fine - even when aliasing transient dependencies - with simpler dependency trees.