Skip to content

Fix hang using multi-node package plugin on Swift 6+ #1208

New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

Merged
merged 2 commits into from
May 9, 2025

Conversation

simonjbeaumont
Copy link
Contributor

Motivation:

The integration tests for Swift 6.0 and 6.1 are hanging. They are passing on Swift 5.10. This is because SwiftPM started taking a lock over the package and cannot be run concurrently on the same package.

This is causing hangs in the integration test because it calls the multi-node package plugin which is running the MultiNodeTestKitRunner using swift run MultiNodeTestKitRunner.

This isn't the supported way for Swift package plugins to use executables from the package, which should instead be looked up from the context passed into the plugin.

Modifications:

Use the package plugin context to find the executable dependency used by the multi-node plugin.

Result:

Integration tests no longer hang on Swift 6.0 and 6.1.

@simonjbeaumont simonjbeaumont added the 🔨 semver/patch No public API change. label May 8, 2025
@simonjbeaumont
Copy link
Contributor Author

@czechboy0 @rnro this is a false positive from the API breakage checker, right? Can't see how it could be legit.

@czechboy0 czechboy0 merged commit e1a6b44 into apple:main May 9, 2025
33 of 34 checks passed
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
🔨 semver/patch No public API change.
Projects
None yet
Development

Successfully merging this pull request may close these issues.

3 participants