diff --git a/.github/workflows/pull_request.yml b/.github/workflows/pull_request.yml index 6beedf440..8cde07805 100644 --- a/.github/workflows/pull_request.yml +++ b/.github/workflows/pull_request.yml @@ -20,6 +20,8 @@ jobs: uses: swiftlang/github-workflows/.github/workflows/swift_package_test.yml@main with: enable_cross_pr_testing: true + linux_exclude_swift_versions: "[{\"swift_version\": \"5.9\"}, {\"swift_version\": \"5.10\"}]" + windows_exclude_swift_versions: "[{\"swift_version\": \"5.9\"}]" soundness: name: Soundness uses: swiftlang/github-workflows/.github/workflows/soundness.yml@main diff --git a/Package.swift b/Package.swift index 6d0903660..3742aa4bf 100644 --- a/Package.swift +++ b/Package.swift @@ -1,4 +1,4 @@ -// swift-tools-version: 5.9 +// swift-tools-version: 6.0 //===----------------------------------------------------------------------===// // // This source file is part of the Swift.org open source project @@ -146,9 +146,11 @@ let package = Package( ], products: products, dependencies: dependencies, - targets: targets + targets: targets, + swiftLanguageModes: [.v5] ) +@MainActor func swiftSyntaxDependencies(_ names: [String]) -> [Target.Dependency] { if buildDynamicSwiftSyntaxLibrary { return [.product(name: "_SwiftSyntaxDynamic", package: "swift-syntax")] diff --git a/Plugins/FormatPlugin/plugin.swift b/Plugins/FormatPlugin/plugin.swift index 74dbb0393..217d1292b 100644 --- a/Plugins/FormatPlugin/plugin.swift +++ b/Plugins/FormatPlugin/plugin.swift @@ -16,7 +16,7 @@ import PackagePlugin @main struct FormatPlugin { func format(tool: PluginContext.Tool, targetDirectories: [String], configurationFilePath: String?) throws { - let swiftFormatExec = URL(fileURLWithPath: tool.path.string) + let swiftFormatExec = tool.url var arguments: [String] = ["format"] @@ -58,7 +58,8 @@ extension FormatPlugin: CommandPlugin { try format( tool: swiftFormatTool, - targetDirectories: sourceCodeTargets.map(\.directory.string), + // This should be `directoryURL`, but it's only available in 6.1+ + targetDirectories: sourceCodeTargets.map { String(describing: $0.directory) }, configurationFilePath: configurationFilePath ) } @@ -76,7 +77,7 @@ extension FormatPlugin: XcodeCommandPlugin { try format( tool: swiftFormatTool, - targetDirectories: [context.xcodeProject.directory.string], + targetDirectories: [context.xcodeProject.directoryURL.path()], configurationFilePath: configurationFilePath ) } diff --git a/Plugins/LintPlugin/plugin.swift b/Plugins/LintPlugin/plugin.swift index 5749bf131..9e8ee50fc 100644 --- a/Plugins/LintPlugin/plugin.swift +++ b/Plugins/LintPlugin/plugin.swift @@ -16,7 +16,7 @@ import PackagePlugin @main struct LintPlugin { func lint(tool: PluginContext.Tool, targetDirectories: [String], configurationFilePath: String?) throws { - let swiftFormatExec = URL(fileURLWithPath: tool.path.string) + let swiftFormatExec = tool.url var arguments: [String] = ["lint"] @@ -59,7 +59,8 @@ extension LintPlugin: CommandPlugin { try lint( tool: swiftFormatTool, - targetDirectories: sourceCodeTargets.map(\.directory.string), + // This should be `directoryURL`, but it's only available in 6.1+ + targetDirectories: sourceCodeTargets.map { String(describing: $0.directory) }, configurationFilePath: configurationFilePath ) } @@ -76,7 +77,7 @@ extension LintPlugin: XcodeCommandPlugin { try lint( tool: swiftFormatTool, - targetDirectories: [context.xcodeProject.directory.string], + targetDirectories: [context.xcodeProject.directoryURL.path()], configurationFilePath: configurationFilePath ) }