From 9db609e8d854ab920596450537b063d1c2c96c58 Mon Sep 17 00:00:00 2001 From: Sami Samhuri Date: Mon, 21 Apr 2025 13:50:12 -0700 Subject: [PATCH] Update to Swift 6 --- gensite/Package.swift | 2 +- samhuri.net/Package.swift | 2 +- .../samhuri.net/Dates/Date+Sugar.swift | 8 ++-- .../samhuri.net/Posts/PostMetadata.swift | 2 +- .../Sources/samhuri.net/Posts/PostRepo.swift | 12 +++--- .../Dates/Date+SugarTests.swift | 37 ------------------- 6 files changed, 12 insertions(+), 51 deletions(-) delete mode 100644 samhuri.net/Tests/samhuri.netTests/Dates/Date+SugarTests.swift diff --git a/gensite/Package.swift b/gensite/Package.swift index 8cc7e11..ac865ad 100644 --- a/gensite/Package.swift +++ b/gensite/Package.swift @@ -1,4 +1,4 @@ -// swift-tools-version:5.10 +// swift-tools-version:6.0 // The swift-tools-version declares the minimum version of Swift required to build this package. import PackageDescription diff --git a/samhuri.net/Package.swift b/samhuri.net/Package.swift index c529ecd..c41d646 100644 --- a/samhuri.net/Package.swift +++ b/samhuri.net/Package.swift @@ -1,4 +1,4 @@ -// swift-tools-version:5.10 +// swift-tools-version:6.0 // The swift-tools-version declares the minimum version of Swift required to build this package. import PackageDescription diff --git a/samhuri.net/Sources/samhuri.net/Dates/Date+Sugar.swift b/samhuri.net/Sources/samhuri.net/Dates/Date+Sugar.swift index 13db930..1483e3c 100644 --- a/samhuri.net/Sources/samhuri.net/Dates/Date+Sugar.swift +++ b/samhuri.net/Sources/samhuri.net/Dates/Date+Sugar.swift @@ -8,17 +8,15 @@ import Foundation extension Date { - static var defaultCalendar = Calendar.current - var year: Int { - Date.defaultCalendar.dateComponents([.year], from: self).year! + Calendar.current.dateComponents([.year], from: self).year! } var month: Int { - Date.defaultCalendar.dateComponents([.month], from: self).month! + Calendar.current.dateComponents([.month], from: self).month! } var day: Int { - Date.defaultCalendar.dateComponents([.day], from: self).day! + Calendar.current.dateComponents([.day], from: self).day! } } diff --git a/samhuri.net/Sources/samhuri.net/Posts/PostMetadata.swift b/samhuri.net/Sources/samhuri.net/Posts/PostMetadata.swift index 90b39aa..70028f8 100644 --- a/samhuri.net/Sources/samhuri.net/Posts/PostMetadata.swift +++ b/samhuri.net/Sources/samhuri.net/Posts/PostMetadata.swift @@ -24,7 +24,7 @@ extension PostMetadata { case invalidTimestamp(String?) } - private static let iso8601Formatter = ISO8601DateFormatter() + nonisolated(unsafe) private static let iso8601Formatter = ISO8601DateFormatter() init(dictionary: [String: String], slug: String) throws { let requiredKeys = ["Title", "Author", "Date", "Timestamp"] diff --git a/samhuri.net/Sources/samhuri.net/Posts/PostRepo.swift b/samhuri.net/Sources/samhuri.net/Posts/PostRepo.swift index 94ad21c..e9a167e 100644 --- a/samhuri.net/Sources/samhuri.net/Posts/PostRepo.swift +++ b/samhuri.net/Sources/samhuri.net/Posts/PostRepo.swift @@ -12,17 +12,17 @@ struct RawPost { let slug: String let markdown: String - private static let StripMetadataRegex = try! Regex(#"---\n.*?---\n"#).dotMatchesNewlines() + private nonisolated(unsafe) static let StripMetadataRegex = try! Regex(#"---\n.*?---\n"#).dotMatchesNewlines() - private static let TextifyParenthesesLinksRegex = try! Regex(#"\[([\w\s.-_]*)\]\([^)]+\)"#) + private nonisolated(unsafe) static let TextifyParenthesesLinksRegex = try! Regex(#"\[([\w\s.-_]*)\]\([^)]+\)"#) - private static let TextifyBracketLinksRegex = try! Regex(#"\[([\w\s.-_]*)\]\[[^\]]+\]"#) + private nonisolated(unsafe) static let TextifyBracketLinksRegex = try! Regex(#"\[([\w\s.-_]*)\]\[[^\]]+\]"#) - private static let StripImagesRegex = try! Regex(#"!\[[\w\s.-_]*\]\([^)]+\)"#) + private nonisolated(unsafe) static let StripImagesRegex = try! Regex(#"!\[[\w\s.-_]*\]\([^)]+\)"#) - private static let WhitespaceRegex = try! Regex(#"\s+"#) + private nonisolated(unsafe) static let WhitespaceRegex = try! Regex(#"\s+"#) - private static let StripHTMLTagsRegex = try! Regex(#"<[^>]+>"#) + private nonisolated(unsafe) static let StripHTMLTagsRegex = try! Regex(#"<[^>]+>"#) var excerpt: String { markdown diff --git a/samhuri.net/Tests/samhuri.netTests/Dates/Date+SugarTests.swift b/samhuri.net/Tests/samhuri.netTests/Dates/Date+SugarTests.swift deleted file mode 100644 index ae294db..0000000 --- a/samhuri.net/Tests/samhuri.netTests/Dates/Date+SugarTests.swift +++ /dev/null @@ -1,37 +0,0 @@ -// -// Date+SugarTests.swift -// samhuri.net -// -// Created by Sami Samhuri on 2019-12-31. -// - -import Foundation -@testable import samhuri_net -import Testing - -class DateSugarTests { - let date: Date - - init() { - var calendar = Calendar(identifier: .gregorian) - calendar.timeZone = TimeZone(secondsFromGMT: 0)! - Date.defaultCalendar = calendar - date = Date(timeIntervalSince1970: 0) - } - - deinit { - Date.defaultCalendar = .current - } - - @Test func year() { - #expect(date.year == 1970) - } - - @Test func month() { - #expect(date.month == 1) - } - - @Test func day() { - #expect(date.day == 1) - } -}