From 2c5948731a47956e7eec9738218ed88a8db3db9d Mon Sep 17 00:00:00 2001 From: Kenta Kubo <601636+kkebo@users.noreply.github.com> Date: Mon, 24 Nov 2025 22:22:40 +0900 Subject: [PATCH 1/2] Disable Swift 5.9 CI job on Windows Exclude `"5.9"` from `windows_swift_versions` until #1094 is resolved on swift-markdown's side --- .github/workflows/pull_request.yml | 2 ++ 1 file changed, 2 insertions(+) diff --git a/.github/workflows/pull_request.yml b/.github/workflows/pull_request.yml index 6beedf44..13c0e63e 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 + # "5.9" is excluded because of https://github.com/swiftlang/swift-format/issues/1094. + windows_exclude_swift_versions: "[{\"swift_version\": \"5.9\"}]" soundness: name: Soundness uses: swiftlang/github-workflows/.github/workflows/soundness.yml@main From f0589d399e2c10dac6d2de29858bf616380553af Mon Sep 17 00:00:00 2001 From: Ben Barham Date: Sat, 6 Dec 2025 08:08:19 +1000 Subject: [PATCH 2/2] Bump to Swift 6.0 5.9 has issues with swift-markdown's use of versioned `Package.swift` after the added use of unsafe flags (which are 6.2 only). 6.0 is over a year old now. --- .github/workflows/pull_request.yml | 2 +- Package.swift | 6 ++++-- Plugins/FormatPlugin/plugin.swift | 7 ++++--- Plugins/LintPlugin/plugin.swift | 7 ++++--- 4 files changed, 13 insertions(+), 9 deletions(-) diff --git a/.github/workflows/pull_request.yml b/.github/workflows/pull_request.yml index 13c0e63e..8cde0780 100644 --- a/.github/workflows/pull_request.yml +++ b/.github/workflows/pull_request.yml @@ -20,7 +20,7 @@ jobs: uses: swiftlang/github-workflows/.github/workflows/swift_package_test.yml@main with: enable_cross_pr_testing: true - # "5.9" is excluded because of https://github.com/swiftlang/swift-format/issues/1094. + linux_exclude_swift_versions: "[{\"swift_version\": \"5.9\"}, {\"swift_version\": \"5.10\"}]" windows_exclude_swift_versions: "[{\"swift_version\": \"5.9\"}]" soundness: name: Soundness diff --git a/Package.swift b/Package.swift index 6d090366..3742aa4b 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 74dbb039..217d1292 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 5749bf13..9e8ee50f 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 ) }