Skip to content
Merged
Show file tree
Hide file tree
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension


Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
4 changes: 2 additions & 2 deletions Package.resolved

Some generated files are not rendered by default. Learn more about how customized files appear on GitHub.

8 changes: 4 additions & 4 deletions Sources/App/Core/SwiftVersion+Build.swift
Original file line number Diff line number Diff line change
Expand Up @@ -18,27 +18,27 @@ extension SwiftVersion {
// https://github.com/SwiftPackageIndex/SwiftPackageIndex-Server/issues/1267#issuecomment-975379966
// Patch versions are irrelevant here but the underlying type requires one, so use 0
// in general.
static let v5_8: Self = .init(5, 8, 0)
static let v5_9: Self = .init(5, 9, 0)
static let v5_10: Self = .init(5, 10, 0)
static let v6_0: Self = .init(6, 0, 0)
static let v6_1: Self = .init(6, 1, 0)

/// Currently supported swift versions for building
static var allActive: [Self] {
[.v5_8, .v5_9, .v5_10, .v6_0]
[.v5_9, .v5_10, .v6_0, .v6_1]
}

var xcodeVersion: String? {
// NB: this is used for display purposes and not critical for compiler selection
switch self {
case .v5_8:
return "Xcode 14.3"
case .v5_9:
return "Xcode 15.2"
case .v5_10:
return "Xcode 15.4"
case .v6_0:
return "Xcode 16.2"
case .v6_1:
return "Xcode 16.3"
default:
return nil
}
Expand Down
1 change: 1 addition & 0 deletions Sources/App/Models/Manifest.swift
Original file line number Diff line number Diff line change
Expand Up @@ -39,6 +39,7 @@ struct Manifest: Decodable, Equatable {
case android // from 5.2
case custom // from 5.6
case driverkit // from 5.5
case freebsd // from 6.1
case ios
case linux
case maccatalyst // from 5.5
Expand Down
3 changes: 3 additions & 0 deletions Sources/App/Models/Platform.swift
Original file line number Diff line number Diff line change
Expand Up @@ -21,6 +21,7 @@ struct Platform: Codable, Equatable {
case android
case custom
case driverkit
case freebsd
case ios
case linux
case maccatalyst
Expand Down Expand Up @@ -62,6 +63,8 @@ extension Platform: CustomStringConvertible {
return "Custom \(version)"
case .driverkit:
return "DriverKit \(version)"
case .freebsd:
return "FreeBSD \(version)"
case .ios:
return "iOS \(version)"
case .linux:
Expand Down
48 changes: 24 additions & 24 deletions Tests/AppTests/API+PackageController+GetRoute+ModelTests.swift
Original file line number Diff line number Diff line change
Expand Up @@ -484,25 +484,25 @@ extension AllTests.API_PackageController_GetRoute_ModelTests {

do {
let info = BuildInfo(stable: .some(.init(referenceName: "1.2.3",
results: Results(results: [.v5_8: .compatible,
.v5_9: .incompatible,
.v5_10: .unknown,
.v6_0: .compatible]))),
results: Results(results: [.v1: .compatible,
.v2: .incompatible,
.v3: .unknown,
.v4: .compatible]))),
beta: nil,
latest: nil)
#expect(info?.compatibility == [.v1, .v4])
}
do {
let info = BuildInfo(stable: .some(.init(referenceName: "1.2.3",
results: Results(results: [.v5_8: .compatible,
.v5_9: .incompatible,
.v5_10: .unknown,
.v6_0: .compatible]))),
results: Results(results: [.v1: .compatible,
.v2: .incompatible,
.v3: .unknown,
.v4: .compatible]))),
beta: .some(.init(referenceName: "1.2.3-b1",
results: Results(results: [.v5_8: .incompatible,
.v5_9: .incompatible,
.v5_10: .compatible,
.v6_0: .unknown]))),
results: Results(results: [.v1: .incompatible,
.v2: .incompatible,
.v3: .compatible,
.v4: .unknown]))),
latest: nil)
#expect(info?.compatibility == [.v1, .v3, .v4])
}
Expand Down Expand Up @@ -545,18 +545,18 @@ extension AllTests.API_PackageController_GetRoute_ModelTests {

@Test func groupBuildInfo() async throws {
try await withSPIApp { app in
let result1: BuildResults = .init(results: [.v5_8: .compatible,
.v5_9: .compatible,
.v5_10: .compatible,
.v6_0: .compatible])
let result2: BuildResults = .init(results: [.v5_8: .compatible,
.v5_9: .incompatible,
.v5_10: .incompatible,
.v6_0: .incompatible])
let result3: BuildResults = .init(results: [.v5_8: .unknown,
.v5_9: .unknown,
.v5_10: .unknown,
.v6_0: .unknown])
let result1: BuildResults = .init(results: [.v1: .compatible,
.v2: .compatible,
.v3: .compatible,
.v4: .compatible])
let result2: BuildResults = .init(results: [.v1: .compatible,
.v2: .incompatible,
.v3: .incompatible,
.v4: .incompatible])
let result3: BuildResults = .init(results: [.v1: .unknown,
.v2: .unknown,
.v3: .unknown,
.v4: .unknown])
do { // three distinct groups
let buildInfo: BuildInfo = .init(stable: .init(referenceName: "1.2.3", results: result1),
beta: .init(referenceName: "2.0.0-b1", results: result2),
Expand Down
6 changes: 3 additions & 3 deletions Tests/AppTests/API+PackageControllerTests.swift
Original file line number Diff line number Diff line change
Expand Up @@ -343,9 +343,9 @@ extension AllTests.API_PackageControllerTests {
#expect(platform.beta?.referenceName == "2.0.0-b1")
let swiftVersion = try #require(res.swiftVersion)
#expect(swiftVersion.latest?.referenceName == "main")
#expect(swiftVersion.latest?.results[.v5_10] == .compatible)
#expect(swiftVersion.latest?.results[.v5_9] == .incompatible)
#expect(swiftVersion.latest?.results[.v5_8] == .unknown)
#expect(swiftVersion.latest?.results[.v3] == .compatible)
#expect(swiftVersion.latest?.results[.v2] == .incompatible)
#expect(swiftVersion.latest?.results[.v1] == .unknown)
#expect(swiftVersion.stable?.referenceName == "1.2.3")
#expect(swiftVersion.beta?.referenceName == "2.0.0-b1")
}
Expand Down
10 changes: 5 additions & 5 deletions Tests/AppTests/AlertingTests.swift
Original file line number Diff line number Diff line change
Expand Up @@ -34,8 +34,8 @@ extension AllTests.AlertingTests {
Alerting.BuildInfo.mock(swiftVersion: $0)
}
#expect(all.validateSwiftVersionsPresent() == .ok)
#expect(all.filter { $0.swiftVersion != .v1 }.validateSwiftVersionsPresent() == .failed(reasons: ["Missing Swift version: 5.8"]))
#expect(all.filter { $0.swiftVersion != .v1 && $0.swiftVersion != .v2 }.validateSwiftVersionsPresent() == .failed(reasons: ["Missing Swift version: 5.8", "Missing Swift version: 5.9"]))
#expect(all.filter { $0.swiftVersion != .v1 }.validateSwiftVersionsPresent() == .failed(reasons: ["Missing Swift version: 5.9"]))
#expect(all.filter { $0.swiftVersion != .v1 && $0.swiftVersion != .v2 }.validateSwiftVersionsPresent() == .failed(reasons: ["Missing Swift version: 5.9", "Missing Swift version: 5.10"]))
}

@Test func validatePlatformsSuccessful() throws {
Expand All @@ -57,13 +57,13 @@ extension AllTests.AlertingTests {
Alerting.BuildInfo.mock(swiftVersion: $0, status: .ok)
}
#expect(all.validateSwiftVersionsSuccessful() == .ok)
#expect(all.filter { $0.swiftVersion != .v1 }.validateSwiftVersionsSuccessful() == .failed(reasons: ["Swift version without successful builds: 5.8"]))
#expect(all.filter { $0.swiftVersion != .v1 }.validateSwiftVersionsSuccessful() == .failed(reasons: ["Swift version without successful builds: 5.9"]))
#expect(
Array(all.filter { $0.swiftVersion != .v1 })
.appending(.mock(swiftVersion: .v1, status: .failed))
.validateSwiftVersionsSuccessful() == .failed(reasons: ["Swift version without successful builds: 5.8"])
.validateSwiftVersionsSuccessful() == .failed(reasons: ["Swift version without successful builds: 5.9"])
)
#expect(all.filter { $0.swiftVersion != .v1 && $0.swiftVersion != .v2 }.validateSwiftVersionsSuccessful() == .failed(reasons: ["Swift version without successful builds: 5.8", "Swift version without successful builds: 5.9"]))
#expect(all.filter { $0.swiftVersion != .v1 && $0.swiftVersion != .v2 }.validateSwiftVersionsSuccessful() == .failed(reasons: ["Swift version without successful builds: 5.9", "Swift version without successful builds: 5.10"]))
}

@Test func validateRunnerIdsPresent() throws {
Expand Down
2 changes: 1 addition & 1 deletion Tests/AppTests/ApiTests.swift
Original file line number Diff line number Diff line change
Expand Up @@ -817,7 +817,7 @@ extension AllTests.ApiTests {
let badge = try res.content.decode(Badge.self)
#expect(badge.schemaVersion == 1)
#expect(badge.label == "Swift")
#expect(badge.message == "5.9 | 5.8")
#expect(badge.message == "5.10 | 5.9")
#expect(badge.isError == false)
#expect(badge.color == "blue")
#expect(badge.cacheSeconds == 6*3600)
Expand Down
2 changes: 1 addition & 1 deletion Tests/AppTests/BadgeTests.swift
Original file line number Diff line number Diff line change
Expand Up @@ -20,7 +20,7 @@ import Testing
extension AllTests.BadgeTests {

@Test func badgeMessage_swiftVersions() throws {
#expect(Badge.badgeMessage(swiftVersions: [.v1, .v2, .v3, .v4]) == "6.0 | 5.10 | 5.9 | 5.8")
#expect(Badge.badgeMessage(swiftVersions: [.v1, .v2, .v3, .v4]) == "6.1 | 6.0 | 5.10 | 5.9")
#expect(Badge.badgeMessage(swiftVersions: []) == nil)
}

Expand Down
4 changes: 2 additions & 2 deletions Tests/AppTests/BuildIndexModelTests.swift
Original file line number Diff line number Diff line change
Expand Up @@ -96,7 +96,7 @@ extension AllTests.BuildIndexModelTests {
let matrix = model.buildMatrix

// validate
#expect(matrix.values.keys.count == 27)
#expect(matrix.values.keys.count == 28)
#expect(
matrix.values[.init(swiftVersion: .v3, platform: .iOS)]?.map(\.column.label) == ["1.2.3", "2.0.0-b1", "main"]
)
Expand Down Expand Up @@ -141,7 +141,7 @@ extension AllTests.BuildIndexModelTests {
let matrix = model.buildMatrix

// validate
#expect(matrix.values.keys.count == 27)
#expect(matrix.values.keys.count == 28)
#expect(
matrix.values[.init(swiftVersion: .v3, platform: .iOS)]?.map(\.column.label) == ["1.2.3", "main"]
)
Expand Down
Loading
Loading