Skip to content

Commit 18538fc

Browse files
committed
Update -swift-version to default to 6 for swift-tools-version 6
We missed updating this when adding 6.0.
1 parent 3f9587c commit 18538fc

File tree

4 files changed

+57
-5
lines changed

4 files changed

+57
-5
lines changed

Sources/PackageModel/ToolsVersion.swift

Lines changed: 4 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -182,10 +182,11 @@ public struct ToolsVersion: Equatable, Hashable, Codable, Sendable {
182182

183183
// Otherwise, use 4.2
184184
return .v4_2
185-
186-
default:
187-
// Anything above 4 major version uses version 5.
185+
case 5:
188186
return .v5
187+
default:
188+
// Anything above 5 major version uses version 6.
189+
return .v6
189190
}
190191
}
191192
}

Tests/BuildTests/BuildPlanTests.swift

Lines changed: 47 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -6260,4 +6260,51 @@ final class BuildPlanTests: XCTestCase {
62606260
let dylibs = Array(buildProduct.dylibs.map({$0.product.name})).sorted()
62616261
XCTAssertEqual(dylibs, ["BarLogging", "FooLogging"])
62626262
}
6263+
6264+
func testDefaultVersions() throws {
6265+
let fs = InMemoryFileSystem(emptyFiles:
6266+
"/Pkg/Sources/foo/foo.swift"
6267+
)
6268+
6269+
let expectedVersions = [
6270+
ToolsVersion.v4: "4",
6271+
ToolsVersion.v4_2: "4.2",
6272+
ToolsVersion.v5: "5",
6273+
ToolsVersion.v6_0: "6",
6274+
ToolsVersion.vNext: "6"
6275+
]
6276+
for (toolsVersion, expectedVersionString) in expectedVersions {
6277+
let observability = ObservabilitySystem.makeForTesting()
6278+
let graph = try loadModulesGraph(
6279+
fileSystem: fs,
6280+
manifests: [
6281+
Manifest.createRootManifest(
6282+
displayName: "Pkg",
6283+
path: "/Pkg",
6284+
toolsVersion: toolsVersion,
6285+
targets: [
6286+
TargetDescription(
6287+
name: "foo"
6288+
),
6289+
]
6290+
),
6291+
],
6292+
observabilityScope: observability.topScope
6293+
)
6294+
6295+
let result = try BuildPlanResult(plan: BuildPlan(
6296+
buildParameters: mockBuildParameters(),
6297+
graph: graph,
6298+
fileSystem: fs,
6299+
observabilityScope: observability.topScope
6300+
))
6301+
6302+
XCTAssertMatch(
6303+
try result.target(for: "foo").swiftTarget().compileArguments(),
6304+
[
6305+
"-swift-version", .equal(expectedVersionString)
6306+
]
6307+
)
6308+
}
6309+
}
62636310
}

Tests/PackageLoadingTests/PackageBuilderTests.swift

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -3023,7 +3023,7 @@ final class PackageBuilderTests: XCTestCase {
30233023
}
30243024
}
30253025

3026-
func testSwiftLanguageVesionPerTarget() throws {
3026+
func testSwiftLanguageVersionPerTarget() throws {
30273027
let fs = InMemoryFileSystem(emptyFiles:
30283028
"/Sources/foo/foo.swift",
30293029
"/Sources/bar/bar.swift"

Tests/PackageModelTests/ToolsVersionTests.swift

Lines changed: 5 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -91,8 +91,12 @@ class ToolsVersionTests: XCTestCase {
9191
XCTAssertEqual(ToolsVersion(string: version)?.swiftLanguageVersion.description, "4.2")
9292
}
9393

94-
for version in ["5.0.0", "5.1.9", "6.0.0", "7.0.0"] {
94+
for version in ["5.0.0", "5.1.9"] {
9595
XCTAssertEqual(ToolsVersion(string: version)?.swiftLanguageVersion.description, "5")
9696
}
97+
98+
for version in ["6.0.0", "7.0.0"] {
99+
XCTAssertEqual(ToolsVersion(string: version)?.swiftLanguageVersion.description, "6")
100+
}
97101
}
98102
}

0 commit comments

Comments
 (0)