This is a staging environment. For live and up-to-date package information, visit swiftpackageindex.com.

The Swift Package Index logo.Swift Package Index

Track the adoption of Swift 6 strict concurrency checks for data race safety. How many packages are Ready for Swift 6?

Build Information

Successful build of steampress-core with Swift 6.0 for macOS (SPM).

Swift 6 data race errors: 19

Build Command

env DEVELOPER_DIR=/Applications/Xcode-15.3.0.app xcrun --toolchain org.swift.600202405261a swift build --arch arm64 -Xswiftc -Xfrontend -Xswiftc -stats-output-dir -Xswiftc -Xfrontend -Xswiftc .stats -Xswiftc -strict-concurrency=complete

Build Log

   |                |- note: convert 'current' to a 'let' constant to make 'Sendable' shared state immutable
   |                |- note: annotate 'current' with '@MainActor' if property should only be accessed from the main actor
   |                `- note: disable concurrency-safety checks if accesses are protected by an external synchronization mechanism
35 |         title: "SteamPress",
36 |         description: "The SteamPress Blog. SteamPress is an Open Source Blogging Engine and Platform Written in Swift, Powered by Vapor."
/Users/admin/builder/spi-builder-workspace/Sources/SteamPressCore/Extensions/Request+ThemeUpdater.swift:96:13: warning: variable 'destinationURL' was never mutated; consider changing to 'let' constant
 94 |             try FileManager.default.removeItem(atPath: backupPath)
 95 |         }
 96 |         var destinationURL = URL(fileURLWithPath: backupPath)
    |             `- warning: variable 'destinationURL' was never mutated; consider changing to 'let' constant
 97 |         try Zip.zipFiles(paths: [URL(fileURLWithPath: defaultThemeFolderPath)], zipFilePath: destinationURL, password: nil, progress: { progress in
 98 |         })
/Users/admin/builder/spi-builder-workspace/Sources/SteamPressCore/Models/BlogTag.swift:16:6: warning: type 'BlogTag.TagVisibility' does not conform to the 'Sendable' protocol; this is an error in the Swift 6 language mode
14 |     public var name: String
15 |
16 |     @Field(key: "visibility")
   |      `- warning: type 'BlogTag.TagVisibility' does not conform to the 'Sendable' protocol; this is an error in the Swift 6 language mode
17 |     public var visibility: TagVisibility
18 |
   :
44 |
45 | extension BlogTag {
46 |     public enum TagVisibility: String, Codable {
   |                 `- note: consider making enum 'TagVisibility' conform to the 'Sendable' protocol
47 |         case `public`
48 |         case `private`
/Users/admin/builder/spi-builder-workspace/Sources/SteamPressCore/Models/BlogUser.swift:28:6: warning: type 'BlogUser.BlogUserType' does not conform to the 'Sendable' protocol; this is an error in the Swift 6 language mode
 26 |     public var resetPasswordRequired: Bool
 27 |
 28 |     @Field(key: "user_type")
    |      `- warning: type 'BlogUser.BlogUserType' does not conform to the 'Sendable' protocol; this is an error in the Swift 6 language mode
 29 |     public var type: BlogUserType
 30 |
    :
 77 |
 78 | public extension BlogUser {
 79 |     enum BlogUserType: String, Codable {
    |          `- note: consider making enum 'BlogUserType' conform to the 'Sendable' protocol
 80 |         case member
 81 |         case owner
[2071/2086] Compiling SteamPressCore String+Optional+Whitespace.swift
/Users/admin/builder/spi-builder-workspace/Sources/SteamPressCore/Models/SPSiteInformation.swift:34:16: warning: static property 'current' is not concurrency-safe because it is non-isolated global shared mutable state; this is an error in the Swift 6 language mode
32 |     }
33 |
34 |     static var current: SPSiteInformation = SPSiteInformation(
   |                |- warning: static property 'current' is not concurrency-safe because it is non-isolated global shared mutable state; this is an error in the Swift 6 language mode
   |                |- note: convert 'current' to a 'let' constant to make 'Sendable' shared state immutable
   |                |- note: annotate 'current' with '@MainActor' if property should only be accessed from the main actor
   |                `- note: disable concurrency-safety checks if accesses are protected by an external synchronization mechanism
35 |         title: "SteamPress",
36 |         description: "The SteamPress Blog. SteamPress is an Open Source Blogging Engine and Platform Written in Swift, Powered by Vapor."
/Users/admin/builder/spi-builder-workspace/Sources/SteamPressCore/Extensions/Request+ThemeUpdater.swift:96:13: warning: variable 'destinationURL' was never mutated; consider changing to 'let' constant
 94 |             try FileManager.default.removeItem(atPath: backupPath)
 95 |         }
 96 |         var destinationURL = URL(fileURLWithPath: backupPath)
    |             `- warning: variable 'destinationURL' was never mutated; consider changing to 'let' constant
 97 |         try Zip.zipFiles(paths: [URL(fileURLWithPath: defaultThemeFolderPath)], zipFilePath: destinationURL, password: nil, progress: { progress in
 98 |         })
/Users/admin/builder/spi-builder-workspace/Sources/SteamPressCore/Models/BlogTag.swift:16:6: warning: type 'BlogTag.TagVisibility' does not conform to the 'Sendable' protocol; this is an error in the Swift 6 language mode
14 |     public var name: String
15 |
16 |     @Field(key: "visibility")
   |      `- warning: type 'BlogTag.TagVisibility' does not conform to the 'Sendable' protocol; this is an error in the Swift 6 language mode
17 |     public var visibility: TagVisibility
18 |
   :
44 |
45 | extension BlogTag {
46 |     public enum TagVisibility: String, Codable {
   |                 `- note: consider making enum 'TagVisibility' conform to the 'Sendable' protocol
47 |         case `public`
48 |         case `private`
/Users/admin/builder/spi-builder-workspace/Sources/SteamPressCore/Models/BlogUser.swift:28:6: warning: type 'BlogUser.BlogUserType' does not conform to the 'Sendable' protocol; this is an error in the Swift 6 language mode
 26 |     public var resetPasswordRequired: Bool
 27 |
 28 |     @Field(key: "user_type")
    |      `- warning: type 'BlogUser.BlogUserType' does not conform to the 'Sendable' protocol; this is an error in the Swift 6 language mode
 29 |     public var type: BlogUserType
 30 |
    :
 77 |
 78 | public extension BlogUser {
 79 |     enum BlogUserType: String, Codable {
    |          `- note: consider making enum 'BlogUserType' conform to the 'Sendable' protocol
 80 |         case member
 81 |         case owner
[2072/2086] Compiling SteamPressCore String+Random.swift
/Users/admin/builder/spi-builder-workspace/Sources/SteamPressCore/Models/SPSiteInformation.swift:34:16: warning: static property 'current' is not concurrency-safe because it is non-isolated global shared mutable state; this is an error in the Swift 6 language mode
32 |     }
33 |
34 |     static var current: SPSiteInformation = SPSiteInformation(
   |                |- warning: static property 'current' is not concurrency-safe because it is non-isolated global shared mutable state; this is an error in the Swift 6 language mode
   |                |- note: convert 'current' to a 'let' constant to make 'Sendable' shared state immutable
   |                |- note: annotate 'current' with '@MainActor' if property should only be accessed from the main actor
   |                `- note: disable concurrency-safety checks if accesses are protected by an external synchronization mechanism
35 |         title: "SteamPress",
36 |         description: "The SteamPress Blog. SteamPress is an Open Source Blogging Engine and Platform Written in Swift, Powered by Vapor."
/Users/admin/builder/spi-builder-workspace/Sources/SteamPressCore/Extensions/Request+ThemeUpdater.swift:96:13: warning: variable 'destinationURL' was never mutated; consider changing to 'let' constant
 94 |             try FileManager.default.removeItem(atPath: backupPath)
 95 |         }
 96 |         var destinationURL = URL(fileURLWithPath: backupPath)
    |             `- warning: variable 'destinationURL' was never mutated; consider changing to 'let' constant
 97 |         try Zip.zipFiles(paths: [URL(fileURLWithPath: defaultThemeFolderPath)], zipFilePath: destinationURL, password: nil, progress: { progress in
 98 |         })
/Users/admin/builder/spi-builder-workspace/Sources/SteamPressCore/Models/BlogTag.swift:16:6: warning: type 'BlogTag.TagVisibility' does not conform to the 'Sendable' protocol; this is an error in the Swift 6 language mode
14 |     public var name: String
15 |
16 |     @Field(key: "visibility")
   |      `- warning: type 'BlogTag.TagVisibility' does not conform to the 'Sendable' protocol; this is an error in the Swift 6 language mode
17 |     public var visibility: TagVisibility
18 |
   :
44 |
45 | extension BlogTag {
46 |     public enum TagVisibility: String, Codable {
   |                 `- note: consider making enum 'TagVisibility' conform to the 'Sendable' protocol
47 |         case `public`
48 |         case `private`
/Users/admin/builder/spi-builder-workspace/Sources/SteamPressCore/Models/BlogUser.swift:28:6: warning: type 'BlogUser.BlogUserType' does not conform to the 'Sendable' protocol; this is an error in the Swift 6 language mode
 26 |     public var resetPasswordRequired: Bool
 27 |
 28 |     @Field(key: "user_type")
    |      `- warning: type 'BlogUser.BlogUserType' does not conform to the 'Sendable' protocol; this is an error in the Swift 6 language mode
 29 |     public var type: BlogUserType
 30 |
    :
 77 |
 78 | public extension BlogUser {
 79 |     enum BlogUserType: String, Codable {
    |          `- note: consider making enum 'BlogUserType' conform to the 'Sendable' protocol
 80 |         case member
 81 |         case owner
[2073/2086] Compiling SteamPressCore PostsAdminController.swift
/Users/admin/builder/spi-builder-workspace/Sources/SteamPressCore/Controllers/Admin/PostsAdminController.swift:7:34: warning: converting non-sendable function value to '@Sendable (Request) async throws -> View' may introduce data races
  5 |     // MARK: - Route setup
  6 |     func boot(routes: RoutesBuilder) throws {
  7 |         routes.get("posts", use: postsHandler)
    |                                  `- warning: converting non-sendable function value to '@Sendable (Request) async throws -> View' may introduce data races
  8 |         routes.get("posts", "new", use: createPostHandler)
  9 |         routes.post("posts", "new", use: createPostPostHandler)
/Users/admin/builder/spi-builder-workspace/Sources/SteamPressCore/Controllers/Admin/PostsAdminController.swift:8:41: warning: converting non-sendable function value to '@Sendable (Request) async throws -> View' may introduce data races
  6 |     func boot(routes: RoutesBuilder) throws {
  7 |         routes.get("posts", use: postsHandler)
  8 |         routes.get("posts", "new", use: createPostHandler)
    |                                         `- warning: converting non-sendable function value to '@Sendable (Request) async throws -> View' may introduce data races
  9 |         routes.post("posts", "new", use: createPostPostHandler)
 10 |         routes.get("posts", BlogPost.parameter, use: editPostHandler)
/Users/admin/builder/spi-builder-workspace/Sources/SteamPressCore/Controllers/Admin/PostsAdminController.swift:9:42: warning: converting non-sendable function value to '@Sendable (Request) async throws -> Response' may introduce data races
  7 |         routes.get("posts", use: postsHandler)
  8 |         routes.get("posts", "new", use: createPostHandler)
  9 |         routes.post("posts", "new", use: createPostPostHandler)
    |                                          `- warning: converting non-sendable function value to '@Sendable (Request) async throws -> Response' may introduce data races
 10 |         routes.get("posts", BlogPost.parameter, use: editPostHandler)
 11 |         routes.post("posts", BlogPost.parameter, use: editPostPostHandler)
/Users/admin/builder/spi-builder-workspace/Sources/SteamPressCore/Controllers/Admin/PostsAdminController.swift:10:54: warning: converting non-sendable function value to '@Sendable (Request) async throws -> View' may introduce data races
  8 |         routes.get("posts", "new", use: createPostHandler)
  9 |         routes.post("posts", "new", use: createPostPostHandler)
 10 |         routes.get("posts", BlogPost.parameter, use: editPostHandler)
    |                                                      `- warning: converting non-sendable function value to '@Sendable (Request) async throws -> View' may introduce data races
 11 |         routes.post("posts", BlogPost.parameter, use: editPostPostHandler)
 12 |         routes.get("posts", BlogPost.parameter, "delete", use: deletePostHandler)
/Users/admin/builder/spi-builder-workspace/Sources/SteamPressCore/Controllers/Admin/PostsAdminController.swift:11:55: warning: converting non-sendable function value to '@Sendable (Request) async throws -> Response' may introduce data races
  9 |         routes.post("posts", "new", use: createPostPostHandler)
 10 |         routes.get("posts", BlogPost.parameter, use: editPostHandler)
 11 |         routes.post("posts", BlogPost.parameter, use: editPostPostHandler)
    |                                                       `- warning: converting non-sendable function value to '@Sendable (Request) async throws -> Response' may introduce data races
 12 |         routes.get("posts", BlogPost.parameter, "delete", use: deletePostHandler)
 13 |     }
/Users/admin/builder/spi-builder-workspace/Sources/SteamPressCore/Controllers/Admin/PostsAdminController.swift:12:64: warning: converting non-sendable function value to '@Sendable (Request) async throws -> Response' may introduce data races
 10 |         routes.get("posts", BlogPost.parameter, use: editPostHandler)
 11 |         routes.post("posts", BlogPost.parameter, use: editPostPostHandler)
 12 |         routes.get("posts", BlogPost.parameter, "delete", use: deletePostHandler)
    |                                                                `- warning: converting non-sendable function value to '@Sendable (Request) async throws -> Response' may introduce data races
 13 |     }
 14 |
/Users/admin/builder/spi-builder-workspace/Sources/SteamPressCore/Controllers/Admin/TagsAdminController.swift:7:33: warning: converting non-sendable function value to '@Sendable (Request) async throws -> View' may introduce data races
 5 |     // MARK: - Route setup
 6 |     func boot(routes: RoutesBuilder) throws {
 7 |         routes.get("tags", use: tagsHandler)
   |                                 `- warning: converting non-sendable function value to '@Sendable (Request) async throws -> View' may introduce data races
 8 |         routes.get("tags", "new", use: createTagHandler)
 9 |         routes.post("tags", "new", use: createNewTagHandler)
/Users/admin/builder/spi-builder-workspace/Sources/SteamPressCore/Controllers/Admin/TagsAdminController.swift:8:40: warning: converting non-sendable function value to '@Sendable (Request) async throws -> View' may introduce data races
 6 |     func boot(routes: RoutesBuilder) throws {
 7 |         routes.get("tags", use: tagsHandler)
 8 |         routes.get("tags", "new", use: createTagHandler)
   |                                        `- warning: converting non-sendable function value to '@Sendable (Request) async throws -> View' may introduce data races
 9 |         routes.post("tags", "new", use: createNewTagHandler)
10 |         routes.get("tags", BlogTag.parameter, use: tagHandler)
/Users/admin/builder/spi-builder-workspace/Sources/SteamPressCore/Controllers/Admin/TagsAdminController.swift:9:41: warning: converting non-sendable function value to '@Sendable (Request) async throws -> Response' may introduce data races
 7 |         routes.get("tags", use: tagsHandler)
 8 |         routes.get("tags", "new", use: createTagHandler)
 9 |         routes.post("tags", "new", use: createNewTagHandler)
   |                                         `- warning: converting non-sendable function value to '@Sendable (Request) async throws -> Response' may introduce data races
10 |         routes.get("tags", BlogTag.parameter, use: tagHandler)
11 |         routes.post("tags", BlogTag.parameter, use: updateTagHandler)
/Users/admin/builder/spi-builder-workspace/Sources/SteamPressCore/Controllers/Admin/TagsAdminController.swift:10:52: warning: converting non-sendable function value to '@Sendable (Request) async throws -> View' may introduce data races
 8 |         routes.get("tags", "new", use: createTagHandler)
 9 |         routes.post("tags", "new", use: createNewTagHandler)
10 |         routes.get("tags", BlogTag.parameter, use: tagHandler)
   |                                                    `- warning: converting non-sendable function value to '@Sendable (Request) async throws -> View' may introduce data races
11 |         routes.post("tags", BlogTag.parameter, use: updateTagHandler)
12 |         routes.get("tags", BlogTag.parameter, "delete", use: deleteTagHandler)
/Users/admin/builder/spi-builder-workspace/Sources/SteamPressCore/Controllers/Admin/TagsAdminController.swift:11:53: warning: converting non-sendable function value to '@Sendable (Request) async throws -> Response' may introduce data races
 9 |         routes.post("tags", "new", use: createNewTagHandler)
10 |         routes.get("tags", BlogTag.parameter, use: tagHandler)
11 |         routes.post("tags", BlogTag.parameter, use: updateTagHandler)
   |                                                     `- warning: converting non-sendable function value to '@Sendable (Request) async throws -> Response' may introduce data races
12 |         routes.get("tags", BlogTag.parameter, "delete", use: deleteTagHandler)
13 |     }
/Users/admin/builder/spi-builder-workspace/Sources/SteamPressCore/Controllers/Admin/TagsAdminController.swift:12:62: warning: converting non-sendable function value to '@Sendable (Request) async throws -> Response' may introduce data races
10 |         routes.get("tags", BlogTag.parameter, use: tagHandler)
11 |         routes.post("tags", BlogTag.parameter, use: updateTagHandler)
12 |         routes.get("tags", BlogTag.parameter, "delete", use: deleteTagHandler)
   |                                                              `- warning: converting non-sendable function value to '@Sendable (Request) async throws -> Response' may introduce data races
13 |     }
14 |
/Users/admin/builder/spi-builder-workspace/Sources/SteamPressCore/Models/BlogTag.swift:16:6: warning: type 'BlogTag.TagVisibility' does not conform to the 'Sendable' protocol; this is an error in the Swift 6 language mode
14 |     public var name: String
15 |
16 |     @Field(key: "visibility")
   |      `- warning: type 'BlogTag.TagVisibility' does not conform to the 'Sendable' protocol; this is an error in the Swift 6 language mode
17 |     public var visibility: TagVisibility
18 |
   :
44 |
45 | extension BlogTag {
46 |     public enum TagVisibility: String, Codable {
   |                 `- note: consider making enum 'TagVisibility' conform to the 'Sendable' protocol
47 |         case `public`
48 |         case `private`
/Users/admin/builder/spi-builder-workspace/Sources/SteamPressCore/Controllers/Admin/UsersAdminController.swift:7:36: warning: converting non-sendable function value to '@Sendable (Request) async throws -> View' may introduce data races
  5 |     // MARK: - Route setup
  6 |     func boot(routes: RoutesBuilder) throws {
  7 |         routes.get("members", use: membersHandler)
    |                                    `- warning: converting non-sendable function value to '@Sendable (Request) async throws -> View' may introduce data races
  8 |         routes.get("members", "new", use: createMemberHandler)
  9 |         routes.post("members", "new", use: createNewMemberHandler)
/Users/admin/builder/spi-builder-workspace/Sources/SteamPressCore/Controllers/Admin/UsersAdminController.swift:8:43: warning: converting non-sendable function value to '@Sendable (Request) async throws -> View' may introduce data races
  6 |     func boot(routes: RoutesBuilder) throws {
  7 |         routes.get("members", use: membersHandler)
  8 |         routes.get("members", "new", use: createMemberHandler)
    |                                           `- warning: converting non-sendable function value to '@Sendable (Request) async throws -> View' may introduce data races
  9 |         routes.post("members", "new", use: createNewMemberHandler)
 10 |         routes.get("members", BlogUser.parameter, use: memberHandler)
/Users/admin/builder/spi-builder-workspace/Sources/SteamPressCore/Controllers/Admin/UsersAdminController.swift:9:44: warning: converting non-sendable function value to '@Sendable (Request) async throws -> Response' may introduce data races
  7 |         routes.get("members", use: membersHandler)
  8 |         routes.get("members", "new", use: createMemberHandler)
  9 |         routes.post("members", "new", use: createNewMemberHandler)
    |                                            `- warning: converting non-sendable function value to '@Sendable (Request) async throws -> Response' may introduce data races
 10 |         routes.get("members", BlogUser.parameter, use: memberHandler)
 11 |         routes.post("members", BlogUser.parameter, use: updateMemberHandler)
/Users/admin/builder/spi-builder-workspace/Sources/SteamPressCore/Controllers/Admin/UsersAdminController.swift:10:56: warning: converting non-sendable function value to '@Sendable (Request) async throws -> View' may introduce data races
  8 |         routes.get("members", "new", use: createMemberHandler)
  9 |         routes.post("members", "new", use: createNewMemberHandler)
 10 |         routes.get("members", BlogUser.parameter, use: memberHandler)
    |                                                        `- warning: converting non-sendable function value to '@Sendable (Request) async throws -> View' may introduce data races
 11 |         routes.post("members", BlogUser.parameter, use: updateMemberHandler)
 12 |         routes.get("members", BlogUser.parameter, "delete", use: deleteMemberHandler)
/Users/admin/builder/spi-builder-workspace/Sources/SteamPressCore/Controllers/Admin/UsersAdminController.swift:11:57: warning: converting non-sendable function value to '@Sendable (Request) async throws -> Response' may introduce data races
  9 |         routes.post("members", "new", use: createNewMemberHandler)
 10 |         routes.get("members", BlogUser.parameter, use: memberHandler)
 11 |         routes.post("members", BlogUser.parameter, use: updateMemberHandler)
    |                                                         `- warning: converting non-sendable function value to '@Sendable (Request) async throws -> Response' may introduce data races
 12 |         routes.get("members", BlogUser.parameter, "delete", use: deleteMemberHandler)
 13 |     }
/Users/admin/builder/spi-builder-workspace/Sources/SteamPressCore/Controllers/Admin/UsersAdminController.swift:12:66: warning: converting non-sendable function value to '@Sendable (Request) async throws -> Response' may introduce data races
 10 |         routes.get("members", BlogUser.parameter, use: memberHandler)
 11 |         routes.post("members", BlogUser.parameter, use: updateMemberHandler)
 12 |         routes.get("members", BlogUser.parameter, "delete", use: deleteMemberHandler)
    |                                                                  `- warning: converting non-sendable function value to '@Sendable (Request) async throws -> Response' may introduce data races
 13 |     }
 14 |
/Users/admin/builder/spi-builder-workspace/Sources/SteamPressCore/Controllers/BlogController.swift:24:25: warning: converting non-sendable function value to '@Sendable (Request) async throws -> View' may introduce data races
 22 |     // MARK: - Add routes
 23 |     func boot(routes: RoutesBuilder) throws {
 24 |         routes.get(use: indexHandler)
    |                         `- warning: converting non-sendable function value to '@Sendable (Request) async throws -> View' may introduce data races
 25 |         routes.get(blogPostsPath, ":blogSlug", use: blogPostHandler)
 26 |         routes.get(blogPostsPath, use: blogPostIndexRedirectHandler)
/Users/admin/builder/spi-builder-workspace/Sources/SteamPressCore/Controllers/BlogController.swift:25:53: warning: converting non-sendable function value to '@Sendable (Request) async throws -> View' may introduce data races
 23 |     func boot(routes: RoutesBuilder) throws {
 24 |         routes.get(use: indexHandler)
 25 |         routes.get(blogPostsPath, ":blogSlug", use: blogPostHandler)
    |                                                     `- warning: converting non-sendable function value to '@Sendable (Request) async throws -> View' may introduce data races
 26 |         routes.get(blogPostsPath, use: blogPostIndexRedirectHandler)
 27 |         routes.get(searchPath, use: searchHandler)
/Users/admin/builder/spi-builder-workspace/Sources/SteamPressCore/Controllers/BlogController.swift:26:40: warning: converting non-sendable function value to '@Sendable (Request) async throws -> Response' may introduce data races
 24 |         routes.get(use: indexHandler)
 25 |         routes.get(blogPostsPath, ":blogSlug", use: blogPostHandler)
 26 |         routes.get(blogPostsPath, use: blogPostIndexRedirectHandler)
    |                                        `- warning: converting non-sendable function value to '@Sendable (Request) async throws -> Response' may introduce data races
 27 |         routes.get(searchPath, use: searchHandler)
 28 |         if enableAuthorPages {
/Users/admin/builder/spi-builder-workspace/Sources/SteamPressCore/Controllers/BlogController.swift:27:37: warning: converting non-sendable function value to '@Sendable (Request) async throws -> View' may introduce data races
 25 |         routes.get(blogPostsPath, ":blogSlug", use: blogPostHandler)
 26 |         routes.get(blogPostsPath, use: blogPostIndexRedirectHandler)
 27 |         routes.get(searchPath, use: searchHandler)
    |                                     `- warning: converting non-sendable function value to '@Sendable (Request) async throws -> View' may introduce data races
 28 |         if enableAuthorPages {
 29 |             routes.get(authorsPath, use: allAuthorsViewHandler)
/Users/admin/builder/spi-builder-workspace/Sources/SteamPressCore/Controllers/BlogController.swift:29:42: warning: converting non-sendable function value to '@Sendable (Request) async throws -> View' may introduce data races
 27 |         routes.get(searchPath, use: searchHandler)
 28 |         if enableAuthorPages {
 29 |             routes.get(authorsPath, use: allAuthorsViewHandler)
    |                                          `- warning: converting non-sendable function value to '@Sendable (Request) async throws -> View' may introduce data races
 30 |             routes.get(authorsPath, ":authorUsername", use: authorViewHandler)
 31 |         }
/Users/admin/builder/spi-builder-workspace/Sources/SteamPressCore/Controllers/BlogController.swift:30:61: warning: converting non-sendable function value to '@Sendable (Request) async throws -> View' may introduce data races
 28 |         if enableAuthorPages {
 29 |             routes.get(authorsPath, use: allAuthorsViewHandler)
 30 |             routes.get(authorsPath, ":authorUsername", use: authorViewHandler)
    |                                                             `- warning: converting non-sendable function value to '@Sendable (Request) async throws -> View' may introduce data races
 31 |         }
 32 |         if enableTagsPages {
/Users/admin/builder/spi-builder-workspace/Sources/SteamPressCore/Controllers/BlogController.swift:33:58: warning: converting non-sendable function value to '@Sendable (Request) async throws -> View' may introduce data races
 31 |         }
 32 |         if enableTagsPages {
 33 |             routes.get(tagsPath, BlogTag.parameter, use: tagViewHandler)
    |                                                          `- warning: converting non-sendable function value to '@Sendable (Request) async throws -> View' may introduce data races
 34 |             routes.get(tagsPath, use: allTagsViewHandler)
 35 |         }
/Users/admin/builder/spi-builder-workspace/Sources/SteamPressCore/Controllers/BlogController.swift:34:39: warning: converting non-sendable function value to '@Sendable (Request) async throws -> View' may introduce data races
 32 |         if enableTagsPages {
 33 |             routes.get(tagsPath, BlogTag.parameter, use: tagViewHandler)
 34 |             routes.get(tagsPath, use: allTagsViewHandler)
    |                                       `- warning: converting non-sendable function value to '@Sendable (Request) async throws -> View' may introduce data races
 35 |         }
 36 |     }
/Users/admin/builder/spi-builder-workspace/Sources/SteamPressCore/Presenters/BlogPathCreator.swift:5:29: warning: static property 'blogPath' is not concurrency-safe because it is non-isolated global shared mutable state; this is an error in the Swift 6 language mode
 3 | public struct BlogPathCreator {
 4 |
 5 |     private(set) static var blogPath: String? = nil
   |                             |- warning: static property 'blogPath' is not concurrency-safe because it is non-isolated global shared mutable state; this is an error in the Swift 6 language mode
   |                             |- note: convert 'blogPath' to a 'let' constant to make 'Sendable' shared state immutable
   |                             |- note: annotate 'blogPath' with '@MainActor' if property should only be accessed from the main actor
   |                             `- note: disable concurrency-safety checks if accesses are protected by an external synchronization mechanism
 6 |
 7 |     public static func createPath(for path: String?, query: String? = nil) -> String {
/Users/admin/builder/spi-builder-workspace/Sources/SteamPressCore/Controllers/FeedController.swift:37:51: warning: converting non-sendable function value to '@Sendable (Request) async throws -> Response' may introduce data races
35 |     // MARK: - Route Collection
36 |     func boot(routes: RoutesBuilder) throws {
37 |         routes.get("atom.xml", use: atomGenerator.feedHandler)
   |                                                   `- warning: converting non-sendable function value to '@Sendable (Request) async throws -> Response' may introduce data races
38 |         routes.get("rss.xml", use: rssGenerator.feedHandler)
39 |     }
/Users/admin/builder/spi-builder-workspace/Sources/SteamPressCore/Controllers/FeedController.swift:38:49: warning: converting non-sendable function value to '@Sendable (Request) async throws -> Response' may introduce data races
36 |     func boot(routes: RoutesBuilder) throws {
37 |         routes.get("atom.xml", use: atomGenerator.feedHandler)
38 |         routes.get("rss.xml", use: rssGenerator.feedHandler)
   |                                                 `- warning: converting non-sendable function value to '@Sendable (Request) async throws -> Response' may introduce data races
39 |     }
40 | }
/Users/admin/builder/spi-builder-workspace/Sources/SteamPressCore/Models/BlogUser.swift:28:6: warning: type 'BlogUser.BlogUserType' does not conform to the 'Sendable' protocol; this is an error in the Swift 6 language mode
 26 |     public var resetPasswordRequired: Bool
 27 |
 28 |     @Field(key: "user_type")
    |      `- warning: type 'BlogUser.BlogUserType' does not conform to the 'Sendable' protocol; this is an error in the Swift 6 language mode
 29 |     public var type: BlogUserType
 30 |
    :
 77 |
 78 | public extension BlogUser {
 79 |     enum BlogUserType: String, Codable {
    |          `- note: consider making enum 'BlogUserType' conform to the 'Sendable' protocol
 80 |         case member
 81 |         case owner
[2074/2086] Compiling SteamPressCore TagsAdminController.swift
/Users/admin/builder/spi-builder-workspace/Sources/SteamPressCore/Controllers/Admin/PostsAdminController.swift:7:34: warning: converting non-sendable function value to '@Sendable (Request) async throws -> View' may introduce data races
  5 |     // MARK: - Route setup
  6 |     func boot(routes: RoutesBuilder) throws {
  7 |         routes.get("posts", use: postsHandler)
    |                                  `- warning: converting non-sendable function value to '@Sendable (Request) async throws -> View' may introduce data races
  8 |         routes.get("posts", "new", use: createPostHandler)
  9 |         routes.post("posts", "new", use: createPostPostHandler)
/Users/admin/builder/spi-builder-workspace/Sources/SteamPressCore/Controllers/Admin/PostsAdminController.swift:8:41: warning: converting non-sendable function value to '@Sendable (Request) async throws -> View' may introduce data races
  6 |     func boot(routes: RoutesBuilder) throws {
  7 |         routes.get("posts", use: postsHandler)
  8 |         routes.get("posts", "new", use: createPostHandler)
    |                                         `- warning: converting non-sendable function value to '@Sendable (Request) async throws -> View' may introduce data races
  9 |         routes.post("posts", "new", use: createPostPostHandler)
 10 |         routes.get("posts", BlogPost.parameter, use: editPostHandler)
/Users/admin/builder/spi-builder-workspace/Sources/SteamPressCore/Controllers/Admin/PostsAdminController.swift:9:42: warning: converting non-sendable function value to '@Sendable (Request) async throws -> Response' may introduce data races
  7 |         routes.get("posts", use: postsHandler)
  8 |         routes.get("posts", "new", use: createPostHandler)
  9 |         routes.post("posts", "new", use: createPostPostHandler)
    |                                          `- warning: converting non-sendable function value to '@Sendable (Request) async throws -> Response' may introduce data races
 10 |         routes.get("posts", BlogPost.parameter, use: editPostHandler)
 11 |         routes.post("posts", BlogPost.parameter, use: editPostPostHandler)
/Users/admin/builder/spi-builder-workspace/Sources/SteamPressCore/Controllers/Admin/PostsAdminController.swift:10:54: warning: converting non-sendable function value to '@Sendable (Request) async throws -> View' may introduce data races
  8 |         routes.get("posts", "new", use: createPostHandler)
  9 |         routes.post("posts", "new", use: createPostPostHandler)
 10 |         routes.get("posts", BlogPost.parameter, use: editPostHandler)
    |                                                      `- warning: converting non-sendable function value to '@Sendable (Request) async throws -> View' may introduce data races
 11 |         routes.post("posts", BlogPost.parameter, use: editPostPostHandler)
 12 |         routes.get("posts", BlogPost.parameter, "delete", use: deletePostHandler)
/Users/admin/builder/spi-builder-workspace/Sources/SteamPressCore/Controllers/Admin/PostsAdminController.swift:11:55: warning: converting non-sendable function value to '@Sendable (Request) async throws -> Response' may introduce data races
  9 |         routes.post("posts", "new", use: createPostPostHandler)
 10 |         routes.get("posts", BlogPost.parameter, use: editPostHandler)
 11 |         routes.post("posts", BlogPost.parameter, use: editPostPostHandler)
    |                                                       `- warning: converting non-sendable function value to '@Sendable (Request) async throws -> Response' may introduce data races
 12 |         routes.get("posts", BlogPost.parameter, "delete", use: deletePostHandler)
 13 |     }
/Users/admin/builder/spi-builder-workspace/Sources/SteamPressCore/Controllers/Admin/PostsAdminController.swift:12:64: warning: converting non-sendable function value to '@Sendable (Request) async throws -> Response' may introduce data races
 10 |         routes.get("posts", BlogPost.parameter, use: editPostHandler)
 11 |         routes.post("posts", BlogPost.parameter, use: editPostPostHandler)
 12 |         routes.get("posts", BlogPost.parameter, "delete", use: deletePostHandler)
    |                                                                `- warning: converting non-sendable function value to '@Sendable (Request) async throws -> Response' may introduce data races
 13 |     }
 14 |
/Users/admin/builder/spi-builder-workspace/Sources/SteamPressCore/Controllers/Admin/TagsAdminController.swift:7:33: warning: converting non-sendable function value to '@Sendable (Request) async throws -> View' may introduce data races
 5 |     // MARK: - Route setup
 6 |     func boot(routes: RoutesBuilder) throws {
 7 |         routes.get("tags", use: tagsHandler)
   |                                 `- warning: converting non-sendable function value to '@Sendable (Request) async throws -> View' may introduce data races
 8 |         routes.get("tags", "new", use: createTagHandler)
 9 |         routes.post("tags", "new", use: createNewTagHandler)
/Users/admin/builder/spi-builder-workspace/Sources/SteamPressCore/Controllers/Admin/TagsAdminController.swift:8:40: warning: converting non-sendable function value to '@Sendable (Request) async throws -> View' may introduce data races
 6 |     func boot(routes: RoutesBuilder) throws {
 7 |         routes.get("tags", use: tagsHandler)
 8 |         routes.get("tags", "new", use: createTagHandler)
   |                                        `- warning: converting non-sendable function value to '@Sendable (Request) async throws -> View' may introduce data races
 9 |         routes.post("tags", "new", use: createNewTagHandler)
10 |         routes.get("tags", BlogTag.parameter, use: tagHandler)
/Users/admin/builder/spi-builder-workspace/Sources/SteamPressCore/Controllers/Admin/TagsAdminController.swift:9:41: warning: converting non-sendable function value to '@Sendable (Request) async throws -> Response' may introduce data races
 7 |         routes.get("tags", use: tagsHandler)
 8 |         routes.get("tags", "new", use: createTagHandler)
 9 |         routes.post("tags", "new", use: createNewTagHandler)
   |                                         `- warning: converting non-sendable function value to '@Sendable (Request) async throws -> Response' may introduce data races
10 |         routes.get("tags", BlogTag.parameter, use: tagHandler)
11 |         routes.post("tags", BlogTag.parameter, use: updateTagHandler)
/Users/admin/builder/spi-builder-workspace/Sources/SteamPressCore/Controllers/Admin/TagsAdminController.swift:10:52: warning: converting non-sendable function value to '@Sendable (Request) async throws -> View' may introduce data races
 8 |         routes.get("tags", "new", use: createTagHandler)
 9 |         routes.post("tags", "new", use: createNewTagHandler)
10 |         routes.get("tags", BlogTag.parameter, use: tagHandler)
   |                                                    `- warning: converting non-sendable function value to '@Sendable (Request) async throws -> View' may introduce data races
11 |         routes.post("tags", BlogTag.parameter, use: updateTagHandler)
12 |         routes.get("tags", BlogTag.parameter, "delete", use: deleteTagHandler)
/Users/admin/builder/spi-builder-workspace/Sources/SteamPressCore/Controllers/Admin/TagsAdminController.swift:11:53: warning: converting non-sendable function value to '@Sendable (Request) async throws -> Response' may introduce data races
 9 |         routes.post("tags", "new", use: createNewTagHandler)
10 |         routes.get("tags", BlogTag.parameter, use: tagHandler)
11 |         routes.post("tags", BlogTag.parameter, use: updateTagHandler)
   |                                                     `- warning: converting non-sendable function value to '@Sendable (Request) async throws -> Response' may introduce data races
12 |         routes.get("tags", BlogTag.parameter, "delete", use: deleteTagHandler)
13 |     }
/Users/admin/builder/spi-builder-workspace/Sources/SteamPressCore/Controllers/Admin/TagsAdminController.swift:12:62: warning: converting non-sendable function value to '@Sendable (Request) async throws -> Response' may introduce data races
10 |         routes.get("tags", BlogTag.parameter, use: tagHandler)
11 |         routes.post("tags", BlogTag.parameter, use: updateTagHandler)
12 |         routes.get("tags", BlogTag.parameter, "delete", use: deleteTagHandler)
   |                                                              `- warning: converting non-sendable function value to '@Sendable (Request) async throws -> Response' may introduce data races
13 |     }
14 |
/Users/admin/builder/spi-builder-workspace/Sources/SteamPressCore/Models/BlogTag.swift:16:6: warning: type 'BlogTag.TagVisibility' does not conform to the 'Sendable' protocol; this is an error in the Swift 6 language mode
14 |     public var name: String
15 |
16 |     @Field(key: "visibility")
   |      `- warning: type 'BlogTag.TagVisibility' does not conform to the 'Sendable' protocol; this is an error in the Swift 6 language mode
17 |     public var visibility: TagVisibility
18 |
   :
44 |
45 | extension BlogTag {
46 |     public enum TagVisibility: String, Codable {
   |                 `- note: consider making enum 'TagVisibility' conform to the 'Sendable' protocol
47 |         case `public`
48 |         case `private`
/Users/admin/builder/spi-builder-workspace/Sources/SteamPressCore/Controllers/Admin/UsersAdminController.swift:7:36: warning: converting non-sendable function value to '@Sendable (Request) async throws -> View' may introduce data races
  5 |     // MARK: - Route setup
  6 |     func boot(routes: RoutesBuilder) throws {
  7 |         routes.get("members", use: membersHandler)
    |                                    `- warning: converting non-sendable function value to '@Sendable (Request) async throws -> View' may introduce data races
  8 |         routes.get("members", "new", use: createMemberHandler)
  9 |         routes.post("members", "new", use: createNewMemberHandler)
/Users/admin/builder/spi-builder-workspace/Sources/SteamPressCore/Controllers/Admin/UsersAdminController.swift:8:43: warning: converting non-sendable function value to '@Sendable (Request) async throws -> View' may introduce data races
  6 |     func boot(routes: RoutesBuilder) throws {
  7 |         routes.get("members", use: membersHandler)
  8 |         routes.get("members", "new", use: createMemberHandler)
    |                                           `- warning: converting non-sendable function value to '@Sendable (Request) async throws -> View' may introduce data races
  9 |         routes.post("members", "new", use: createNewMemberHandler)
 10 |         routes.get("members", BlogUser.parameter, use: memberHandler)
/Users/admin/builder/spi-builder-workspace/Sources/SteamPressCore/Controllers/Admin/UsersAdminController.swift:9:44: warning: converting non-sendable function value to '@Sendable (Request) async throws -> Response' may introduce data races
  7 |         routes.get("members", use: membersHandler)
  8 |         routes.get("members", "new", use: createMemberHandler)
  9 |         routes.post("members", "new", use: createNewMemberHandler)
    |                                            `- warning: converting non-sendable function value to '@Sendable (Request) async throws -> Response' may introduce data races
 10 |         routes.get("members", BlogUser.parameter, use: memberHandler)
 11 |         routes.post("members", BlogUser.parameter, use: updateMemberHandler)
/Users/admin/builder/spi-builder-workspace/Sources/SteamPressCore/Controllers/Admin/UsersAdminController.swift:10:56: warning: converting non-sendable function value to '@Sendable (Request) async throws -> View' may introduce data races
  8 |         routes.get("members", "new", use: createMemberHandler)
  9 |         routes.post("members", "new", use: createNewMemberHandler)
 10 |         routes.get("members", BlogUser.parameter, use: memberHandler)
    |                                                        `- warning: converting non-sendable function value to '@Sendable (Request) async throws -> View' may introduce data races
 11 |         routes.post("members", BlogUser.parameter, use: updateMemberHandler)
 12 |         routes.get("members", BlogUser.parameter, "delete", use: deleteMemberHandler)
/Users/admin/builder/spi-builder-workspace/Sources/SteamPressCore/Controllers/Admin/UsersAdminController.swift:11:57: warning: converting non-sendable function value to '@Sendable (Request) async throws -> Response' may introduce data races
  9 |         routes.post("members", "new", use: createNewMemberHandler)
 10 |         routes.get("members", BlogUser.parameter, use: memberHandler)
 11 |         routes.post("members", BlogUser.parameter, use: updateMemberHandler)
    |                                                         `- warning: converting non-sendable function value to '@Sendable (Request) async throws -> Response' may introduce data races
 12 |         routes.get("members", BlogUser.parameter, "delete", use: deleteMemberHandler)
 13 |     }
/Users/admin/builder/spi-builder-workspace/Sources/SteamPressCore/Controllers/Admin/UsersAdminController.swift:12:66: warning: converting non-sendable function value to '@Sendable (Request) async throws -> Response' may introduce data races
 10 |         routes.get("members", BlogUser.parameter, use: memberHandler)
 11 |         routes.post("members", BlogUser.parameter, use: updateMemberHandler)
 12 |         routes.get("members", BlogUser.parameter, "delete", use: deleteMemberHandler)
    |                                                                  `- warning: converting non-sendable function value to '@Sendable (Request) async throws -> Response' may introduce data races
 13 |     }
 14 |
/Users/admin/builder/spi-builder-workspace/Sources/SteamPressCore/Controllers/BlogController.swift:24:25: warning: converting non-sendable function value to '@Sendable (Request) async throws -> View' may introduce data races
 22 |     // MARK: - Add routes
 23 |     func boot(routes: RoutesBuilder) throws {
 24 |         routes.get(use: indexHandler)
    |                         `- warning: converting non-sendable function value to '@Sendable (Request) async throws -> View' may introduce data races
 25 |         routes.get(blogPostsPath, ":blogSlug", use: blogPostHandler)
 26 |         routes.get(blogPostsPath, use: blogPostIndexRedirectHandler)
/Users/admin/builder/spi-builder-workspace/Sources/SteamPressCore/Controllers/BlogController.swift:25:53: warning: converting non-sendable function value to '@Sendable (Request) async throws -> View' may introduce data races
 23 |     func boot(routes: RoutesBuilder) throws {
 24 |         routes.get(use: indexHandler)
 25 |         routes.get(blogPostsPath, ":blogSlug", use: blogPostHandler)
    |                                                     `- warning: converting non-sendable function value to '@Sendable (Request) async throws -> View' may introduce data races
 26 |         routes.get(blogPostsPath, use: blogPostIndexRedirectHandler)
 27 |         routes.get(searchPath, use: searchHandler)
/Users/admin/builder/spi-builder-workspace/Sources/SteamPressCore/Controllers/BlogController.swift:26:40: warning: converting non-sendable function value to '@Sendable (Request) async throws -> Response' may introduce data races
 24 |         routes.get(use: indexHandler)
 25 |         routes.get(blogPostsPath, ":blogSlug", use: blogPostHandler)
 26 |         routes.get(blogPostsPath, use: blogPostIndexRedirectHandler)
    |                                        `- warning: converting non-sendable function value to '@Sendable (Request) async throws -> Response' may introduce data races
 27 |         routes.get(searchPath, use: searchHandler)
 28 |         if enableAuthorPages {
/Users/admin/builder/spi-builder-workspace/Sources/SteamPressCore/Controllers/BlogController.swift:27:37: warning: converting non-sendable function value to '@Sendable (Request) async throws -> View' may introduce data races
 25 |         routes.get(blogPostsPath, ":blogSlug", use: blogPostHandler)
 26 |         routes.get(blogPostsPath, use: blogPostIndexRedirectHandler)
 27 |         routes.get(searchPath, use: searchHandler)
    |                                     `- warning: converting non-sendable function value to '@Sendable (Request) async throws -> View' may introduce data races
 28 |         if enableAuthorPages {
 29 |             routes.get(authorsPath, use: allAuthorsViewHandler)
/Users/admin/builder/spi-builder-workspace/Sources/SteamPressCore/Controllers/BlogController.swift:29:42: warning: converting non-sendable function value to '@Sendable (Request) async throws -> View' may introduce data races
 27 |         routes.get(searchPath, use: searchHandler)
 28 |         if enableAuthorPages {
 29 |             routes.get(authorsPath, use: allAuthorsViewHandler)
    |                                          `- warning: converting non-sendable function value to '@Sendable (Request) async throws -> View' may introduce data races
 30 |             routes.get(authorsPath, ":authorUsername", use: authorViewHandler)
 31 |         }
/Users/admin/builder/spi-builder-workspace/Sources/SteamPressCore/Controllers/BlogController.swift:30:61: warning: converting non-sendable function value to '@Sendable (Request) async throws -> View' may introduce data races
 28 |         if enableAuthorPages {
 29 |             routes.get(authorsPath, use: allAuthorsViewHandler)
 30 |             routes.get(authorsPath, ":authorUsername", use: authorViewHandler)
    |                                                             `- warning: converting non-sendable function value to '@Sendable (Request) async throws -> View' may introduce data races
 31 |         }
 32 |         if enableTagsPages {
/Users/admin/builder/spi-builder-workspace/Sources/SteamPressCore/Controllers/BlogController.swift:33:58: warning: converting non-sendable function value to '@Sendable (Request) async throws -> View' may introduce data races
 31 |         }
 32 |         if enableTagsPages {
 33 |             routes.get(tagsPath, BlogTag.parameter, use: tagViewHandler)
    |                                                          `- warning: converting non-sendable function value to '@Sendable (Request) async throws -> View' may introduce data races
 34 |             routes.get(tagsPath, use: allTagsViewHandler)
 35 |         }
/Users/admin/builder/spi-builder-workspace/Sources/SteamPressCore/Controllers/BlogController.swift:34:39: warning: converting non-sendable function value to '@Sendable (Request) async throws -> View' may introduce data races
 32 |         if enableTagsPages {
 33 |             routes.get(tagsPath, BlogTag.parameter, use: tagViewHandler)
 34 |             routes.get(tagsPath, use: allTagsViewHandler)
    |                                       `- warning: converting non-sendable function value to '@Sendable (Request) async throws -> View' may introduce data races
 35 |         }
 36 |     }
/Users/admin/builder/spi-builder-workspace/Sources/SteamPressCore/Presenters/BlogPathCreator.swift:5:29: warning: static property 'blogPath' is not concurrency-safe because it is non-isolated global shared mutable state; this is an error in the Swift 6 language mode
 3 | public struct BlogPathCreator {
 4 |
 5 |     private(set) static var blogPath: String? = nil
   |                             |- warning: static property 'blogPath' is not concurrency-safe because it is non-isolated global shared mutable state; this is an error in the Swift 6 language mode
   |                             |- note: convert 'blogPath' to a 'let' constant to make 'Sendable' shared state immutable
   |                             |- note: annotate 'blogPath' with '@MainActor' if property should only be accessed from the main actor
   |                             `- note: disable concurrency-safety checks if accesses are protected by an external synchronization mechanism
 6 |
 7 |     public static func createPath(for path: String?, query: String? = nil) -> String {
/Users/admin/builder/spi-builder-workspace/Sources/SteamPressCore/Controllers/FeedController.swift:37:51: warning: converting non-sendable function value to '@Sendable (Request) async throws -> Response' may introduce data races
35 |     // MARK: - Route Collection
36 |     func boot(routes: RoutesBuilder) throws {
37 |         routes.get("atom.xml", use: atomGenerator.feedHandler)
   |                                                   `- warning: converting non-sendable function value to '@Sendable (Request) async throws -> Response' may introduce data races
38 |         routes.get("rss.xml", use: rssGenerator.feedHandler)
39 |     }
/Users/admin/builder/spi-builder-workspace/Sources/SteamPressCore/Controllers/FeedController.swift:38:49: warning: converting non-sendable function value to '@Sendable (Request) async throws -> Response' may introduce data races
36 |     func boot(routes: RoutesBuilder) throws {
37 |         routes.get("atom.xml", use: atomGenerator.feedHandler)
38 |         routes.get("rss.xml", use: rssGenerator.feedHandler)
   |                                                 `- warning: converting non-sendable function value to '@Sendable (Request) async throws -> Response' may introduce data races
39 |     }
40 | }
/Users/admin/builder/spi-builder-workspace/Sources/SteamPressCore/Models/BlogUser.swift:28:6: warning: type 'BlogUser.BlogUserType' does not conform to the 'Sendable' protocol; this is an error in the Swift 6 language mode
 26 |     public var resetPasswordRequired: Bool
 27 |
 28 |     @Field(key: "user_type")
    |      `- warning: type 'BlogUser.BlogUserType' does not conform to the 'Sendable' protocol; this is an error in the Swift 6 language mode
 29 |     public var type: BlogUserType
 30 |
    :
 77 |
 78 | public extension BlogUser {
 79 |     enum BlogUserType: String, Codable {
    |          `- note: consider making enum 'BlogUserType' conform to the 'Sendable' protocol
 80 |         case member
 81 |         case owner
[2075/2086] Compiling SteamPressCore UsersAdminController.swift
/Users/admin/builder/spi-builder-workspace/Sources/SteamPressCore/Controllers/Admin/PostsAdminController.swift:7:34: warning: converting non-sendable function value to '@Sendable (Request) async throws -> View' may introduce data races
  5 |     // MARK: - Route setup
  6 |     func boot(routes: RoutesBuilder) throws {
  7 |         routes.get("posts", use: postsHandler)
    |                                  `- warning: converting non-sendable function value to '@Sendable (Request) async throws -> View' may introduce data races
  8 |         routes.get("posts", "new", use: createPostHandler)
  9 |         routes.post("posts", "new", use: createPostPostHandler)
/Users/admin/builder/spi-builder-workspace/Sources/SteamPressCore/Controllers/Admin/PostsAdminController.swift:8:41: warning: converting non-sendable function value to '@Sendable (Request) async throws -> View' may introduce data races
  6 |     func boot(routes: RoutesBuilder) throws {
  7 |         routes.get("posts", use: postsHandler)
  8 |         routes.get("posts", "new", use: createPostHandler)
    |                                         `- warning: converting non-sendable function value to '@Sendable (Request) async throws -> View' may introduce data races
  9 |         routes.post("posts", "new", use: createPostPostHandler)
 10 |         routes.get("posts", BlogPost.parameter, use: editPostHandler)
/Users/admin/builder/spi-builder-workspace/Sources/SteamPressCore/Controllers/Admin/PostsAdminController.swift:9:42: warning: converting non-sendable function value to '@Sendable (Request) async throws -> Response' may introduce data races
  7 |         routes.get("posts", use: postsHandler)
  8 |         routes.get("posts", "new", use: createPostHandler)
  9 |         routes.post("posts", "new", use: createPostPostHandler)
    |                                          `- warning: converting non-sendable function value to '@Sendable (Request) async throws -> Response' may introduce data races
 10 |         routes.get("posts", BlogPost.parameter, use: editPostHandler)
 11 |         routes.post("posts", BlogPost.parameter, use: editPostPostHandler)
/Users/admin/builder/spi-builder-workspace/Sources/SteamPressCore/Controllers/Admin/PostsAdminController.swift:10:54: warning: converting non-sendable function value to '@Sendable (Request) async throws -> View' may introduce data races
  8 |         routes.get("posts", "new", use: createPostHandler)
  9 |         routes.post("posts", "new", use: createPostPostHandler)
 10 |         routes.get("posts", BlogPost.parameter, use: editPostHandler)
    |                                                      `- warning: converting non-sendable function value to '@Sendable (Request) async throws -> View' may introduce data races
 11 |         routes.post("posts", BlogPost.parameter, use: editPostPostHandler)
 12 |         routes.get("posts", BlogPost.parameter, "delete", use: deletePostHandler)
/Users/admin/builder/spi-builder-workspace/Sources/SteamPressCore/Controllers/Admin/PostsAdminController.swift:11:55: warning: converting non-sendable function value to '@Sendable (Request) async throws -> Response' may introduce data races
  9 |         routes.post("posts", "new", use: createPostPostHandler)
 10 |         routes.get("posts", BlogPost.parameter, use: editPostHandler)
 11 |         routes.post("posts", BlogPost.parameter, use: editPostPostHandler)
    |                                                       `- warning: converting non-sendable function value to '@Sendable (Request) async throws -> Response' may introduce data races
 12 |         routes.get("posts", BlogPost.parameter, "delete", use: deletePostHandler)
 13 |     }
/Users/admin/builder/spi-builder-workspace/Sources/SteamPressCore/Controllers/Admin/PostsAdminController.swift:12:64: warning: converting non-sendable function value to '@Sendable (Request) async throws -> Response' may introduce data races
 10 |         routes.get("posts", BlogPost.parameter, use: editPostHandler)
 11 |         routes.post("posts", BlogPost.parameter, use: editPostPostHandler)
 12 |         routes.get("posts", BlogPost.parameter, "delete", use: deletePostHandler)
    |                                                                `- warning: converting non-sendable function value to '@Sendable (Request) async throws -> Response' may introduce data races
 13 |     }
 14 |
/Users/admin/builder/spi-builder-workspace/Sources/SteamPressCore/Controllers/Admin/TagsAdminController.swift:7:33: warning: converting non-sendable function value to '@Sendable (Request) async throws -> View' may introduce data races
 5 |     // MARK: - Route setup
 6 |     func boot(routes: RoutesBuilder) throws {
 7 |         routes.get("tags", use: tagsHandler)
   |                                 `- warning: converting non-sendable function value to '@Sendable (Request) async throws -> View' may introduce data races
 8 |         routes.get("tags", "new", use: createTagHandler)
 9 |         routes.post("tags", "new", use: createNewTagHandler)
/Users/admin/builder/spi-builder-workspace/Sources/SteamPressCore/Controllers/Admin/TagsAdminController.swift:8:40: warning: converting non-sendable function value to '@Sendable (Request) async throws -> View' may introduce data races
 6 |     func boot(routes: RoutesBuilder) throws {
 7 |         routes.get("tags", use: tagsHandler)
 8 |         routes.get("tags", "new", use: createTagHandler)
   |                                        `- warning: converting non-sendable function value to '@Sendable (Request) async throws -> View' may introduce data races
 9 |         routes.post("tags", "new", use: createNewTagHandler)
10 |         routes.get("tags", BlogTag.parameter, use: tagHandler)
/Users/admin/builder/spi-builder-workspace/Sources/SteamPressCore/Controllers/Admin/TagsAdminController.swift:9:41: warning: converting non-sendable function value to '@Sendable (Request) async throws -> Response' may introduce data races
 7 |         routes.get("tags", use: tagsHandler)
 8 |         routes.get("tags", "new", use: createTagHandler)
 9 |         routes.post("tags", "new", use: createNewTagHandler)
   |                                         `- warning: converting non-sendable function value to '@Sendable (Request) async throws -> Response' may introduce data races
10 |         routes.get("tags", BlogTag.parameter, use: tagHandler)
11 |         routes.post("tags", BlogTag.parameter, use: updateTagHandler)
/Users/admin/builder/spi-builder-workspace/Sources/SteamPressCore/Controllers/Admin/TagsAdminController.swift:10:52: warning: converting non-sendable function value to '@Sendable (Request) async throws -> View' may introduce data races
 8 |         routes.get("tags", "new", use: createTagHandler)
 9 |         routes.post("tags", "new", use: createNewTagHandler)
10 |         routes.get("tags", BlogTag.parameter, use: tagHandler)
   |                                                    `- warning: converting non-sendable function value to '@Sendable (Request) async throws -> View' may introduce data races
11 |         routes.post("tags", BlogTag.parameter, use: updateTagHandler)
12 |         routes.get("tags", BlogTag.parameter, "delete", use: deleteTagHandler)
/Users/admin/builder/spi-builder-workspace/Sources/SteamPressCore/Controllers/Admin/TagsAdminController.swift:11:53: warning: converting non-sendable function value to '@Sendable (Request) async throws -> Response' may introduce data races
 9 |         routes.post("tags", "new", use: createNewTagHandler)
10 |         routes.get("tags", BlogTag.parameter, use: tagHandler)
11 |         routes.post("tags", BlogTag.parameter, use: updateTagHandler)
   |                                                     `- warning: converting non-sendable function value to '@Sendable (Request) async throws -> Response' may introduce data races
12 |         routes.get("tags", BlogTag.parameter, "delete", use: deleteTagHandler)
13 |     }
/Users/admin/builder/spi-builder-workspace/Sources/SteamPressCore/Controllers/Admin/TagsAdminController.swift:12:62: warning: converting non-sendable function value to '@Sendable (Request) async throws -> Response' may introduce data races
10 |         routes.get("tags", BlogTag.parameter, use: tagHandler)
11 |         routes.post("tags", BlogTag.parameter, use: updateTagHandler)
12 |         routes.get("tags", BlogTag.parameter, "delete", use: deleteTagHandler)
   |                                                              `- warning: converting non-sendable function value to '@Sendable (Request) async throws -> Response' may introduce data races
13 |     }
14 |
/Users/admin/builder/spi-builder-workspace/Sources/SteamPressCore/Models/BlogTag.swift:16:6: warning: type 'BlogTag.TagVisibility' does not conform to the 'Sendable' protocol; this is an error in the Swift 6 language mode
14 |     public var name: String
15 |
16 |     @Field(key: "visibility")
   |      `- warning: type 'BlogTag.TagVisibility' does not conform to the 'Sendable' protocol; this is an error in the Swift 6 language mode
17 |     public var visibility: TagVisibility
18 |
   :
44 |
45 | extension BlogTag {
46 |     public enum TagVisibility: String, Codable {
   |                 `- note: consider making enum 'TagVisibility' conform to the 'Sendable' protocol
47 |         case `public`
48 |         case `private`
/Users/admin/builder/spi-builder-workspace/Sources/SteamPressCore/Controllers/Admin/UsersAdminController.swift:7:36: warning: converting non-sendable function value to '@Sendable (Request) async throws -> View' may introduce data races
  5 |     // MARK: - Route setup
  6 |     func boot(routes: RoutesBuilder) throws {
  7 |         routes.get("members", use: membersHandler)
    |                                    `- warning: converting non-sendable function value to '@Sendable (Request) async throws -> View' may introduce data races
  8 |         routes.get("members", "new", use: createMemberHandler)
  9 |         routes.post("members", "new", use: createNewMemberHandler)
/Users/admin/builder/spi-builder-workspace/Sources/SteamPressCore/Controllers/Admin/UsersAdminController.swift:8:43: warning: converting non-sendable function value to '@Sendable (Request) async throws -> View' may introduce data races
  6 |     func boot(routes: RoutesBuilder) throws {
  7 |         routes.get("members", use: membersHandler)
  8 |         routes.get("members", "new", use: createMemberHandler)
    |                                           `- warning: converting non-sendable function value to '@Sendable (Request) async throws -> View' may introduce data races
  9 |         routes.post("members", "new", use: createNewMemberHandler)
 10 |         routes.get("members", BlogUser.parameter, use: memberHandler)
/Users/admin/builder/spi-builder-workspace/Sources/SteamPressCore/Controllers/Admin/UsersAdminController.swift:9:44: warning: converting non-sendable function value to '@Sendable (Request) async throws -> Response' may introduce data races
  7 |         routes.get("members", use: membersHandler)
  8 |         routes.get("members", "new", use: createMemberHandler)
  9 |         routes.post("members", "new", use: createNewMemberHandler)
    |                                            `- warning: converting non-sendable function value to '@Sendable (Request) async throws -> Response' may introduce data races
 10 |         routes.get("members", BlogUser.parameter, use: memberHandler)
 11 |         routes.post("members", BlogUser.parameter, use: updateMemberHandler)
/Users/admin/builder/spi-builder-workspace/Sources/SteamPressCore/Controllers/Admin/UsersAdminController.swift:10:56: warning: converting non-sendable function value to '@Sendable (Request) async throws -> View' may introduce data races
  8 |         routes.get("members", "new", use: createMemberHandler)
  9 |         routes.post("members", "new", use: createNewMemberHandler)
 10 |         routes.get("members", BlogUser.parameter, use: memberHandler)
    |                                                        `- warning: converting non-sendable function value to '@Sendable (Request) async throws -> View' may introduce data races
 11 |         routes.post("members", BlogUser.parameter, use: updateMemberHandler)
 12 |         routes.get("members", BlogUser.parameter, "delete", use: deleteMemberHandler)
/Users/admin/builder/spi-builder-workspace/Sources/SteamPressCore/Controllers/Admin/UsersAdminController.swift:11:57: warning: converting non-sendable function value to '@Sendable (Request) async throws -> Response' may introduce data races
  9 |         routes.post("members", "new", use: createNewMemberHandler)
 10 |         routes.get("members", BlogUser.parameter, use: memberHandler)
 11 |         routes.post("members", BlogUser.parameter, use: updateMemberHandler)
    |                                                         `- warning: converting non-sendable function value to '@Sendable (Request) async throws -> Response' may introduce data races
 12 |         routes.get("members", BlogUser.parameter, "delete", use: deleteMemberHandler)
 13 |     }
/Users/admin/builder/spi-builder-workspace/Sources/SteamPressCore/Controllers/Admin/UsersAdminController.swift:12:66: warning: converting non-sendable function value to '@Sendable (Request) async throws -> Response' may introduce data races
 10 |         routes.get("members", BlogUser.parameter, use: memberHandler)
 11 |         routes.post("members", BlogUser.parameter, use: updateMemberHandler)
 12 |         routes.get("members", BlogUser.parameter, "delete", use: deleteMemberHandler)
    |                                                                  `- warning: converting non-sendable function value to '@Sendable (Request) async throws -> Response' may introduce data races
 13 |     }
 14 |
/Users/admin/builder/spi-builder-workspace/Sources/SteamPressCore/Controllers/BlogController.swift:24:25: warning: converting non-sendable function value to '@Sendable (Request) async throws -> View' may introduce data races
 22 |     // MARK: - Add routes
 23 |     func boot(routes: RoutesBuilder) throws {
 24 |         routes.get(use: indexHandler)
    |                         `- warning: converting non-sendable function value to '@Sendable (Request) async throws -> View' may introduce data races
 25 |         routes.get(blogPostsPath, ":blogSlug", use: blogPostHandler)
 26 |         routes.get(blogPostsPath, use: blogPostIndexRedirectHandler)
/Users/admin/builder/spi-builder-workspace/Sources/SteamPressCore/Controllers/BlogController.swift:25:53: warning: converting non-sendable function value to '@Sendable (Request) async throws -> View' may introduce data races
 23 |     func boot(routes: RoutesBuilder) throws {
 24 |         routes.get(use: indexHandler)
 25 |         routes.get(blogPostsPath, ":blogSlug", use: blogPostHandler)
    |                                                     `- warning: converting non-sendable function value to '@Sendable (Request) async throws -> View' may introduce data races
 26 |         routes.get(blogPostsPath, use: blogPostIndexRedirectHandler)
 27 |         routes.get(searchPath, use: searchHandler)
/Users/admin/builder/spi-builder-workspace/Sources/SteamPressCore/Controllers/BlogController.swift:26:40: warning: converting non-sendable function value to '@Sendable (Request) async throws -> Response' may introduce data races
 24 |         routes.get(use: indexHandler)
 25 |         routes.get(blogPostsPath, ":blogSlug", use: blogPostHandler)
 26 |         routes.get(blogPostsPath, use: blogPostIndexRedirectHandler)
    |                                        `- warning: converting non-sendable function value to '@Sendable (Request) async throws -> Response' may introduce data races
 27 |         routes.get(searchPath, use: searchHandler)
 28 |         if enableAuthorPages {
/Users/admin/builder/spi-builder-workspace/Sources/SteamPressCore/Controllers/BlogController.swift:27:37: warning: converting non-sendable function value to '@Sendable (Request) async throws -> View' may introduce data races
 25 |         routes.get(blogPostsPath, ":blogSlug", use: blogPostHandler)
 26 |         routes.get(blogPostsPath, use: blogPostIndexRedirectHandler)
 27 |         routes.get(searchPath, use: searchHandler)
    |                                     `- warning: converting non-sendable function value to '@Sendable (Request) async throws -> View' may introduce data races
 28 |         if enableAuthorPages {
 29 |             routes.get(authorsPath, use: allAuthorsViewHandler)
/Users/admin/builder/spi-builder-workspace/Sources/SteamPressCore/Controllers/BlogController.swift:29:42: warning: converting non-sendable function value to '@Sendable (Request) async throws -> View' may introduce data races
 27 |         routes.get(searchPath, use: searchHandler)
 28 |         if enableAuthorPages {
 29 |             routes.get(authorsPath, use: allAuthorsViewHandler)
    |                                          `- warning: converting non-sendable function value to '@Sendable (Request) async throws -> View' may introduce data races
 30 |             routes.get(authorsPath, ":authorUsername", use: authorViewHandler)
 31 |         }
/Users/admin/builder/spi-builder-workspace/Sources/SteamPressCore/Controllers/BlogController.swift:30:61: warning: converting non-sendable function value to '@Sendable (Request) async throws -> View' may introduce data races
 28 |         if enableAuthorPages {
 29 |             routes.get(authorsPath, use: allAuthorsViewHandler)
 30 |             routes.get(authorsPath, ":authorUsername", use: authorViewHandler)
    |                                                             `- warning: converting non-sendable function value to '@Sendable (Request) async throws -> View' may introduce data races
 31 |         }
 32 |         if enableTagsPages {
/Users/admin/builder/spi-builder-workspace/Sources/SteamPressCore/Controllers/BlogController.swift:33:58: warning: converting non-sendable function value to '@Sendable (Request) async throws -> View' may introduce data races
 31 |         }
 32 |         if enableTagsPages {
 33 |             routes.get(tagsPath, BlogTag.parameter, use: tagViewHandler)
    |                                                          `- warning: converting non-sendable function value to '@Sendable (Request) async throws -> View' may introduce data races
 34 |             routes.get(tagsPath, use: allTagsViewHandler)
 35 |         }
/Users/admin/builder/spi-builder-workspace/Sources/SteamPressCore/Controllers/BlogController.swift:34:39: warning: converting non-sendable function value to '@Sendable (Request) async throws -> View' may introduce data races
 32 |         if enableTagsPages {
 33 |             routes.get(tagsPath, BlogTag.parameter, use: tagViewHandler)
 34 |             routes.get(tagsPath, use: allTagsViewHandler)
    |                                       `- warning: converting non-sendable function value to '@Sendable (Request) async throws -> View' may introduce data races
 35 |         }
 36 |     }
/Users/admin/builder/spi-builder-workspace/Sources/SteamPressCore/Presenters/BlogPathCreator.swift:5:29: warning: static property 'blogPath' is not concurrency-safe because it is non-isolated global shared mutable state; this is an error in the Swift 6 language mode
 3 | public struct BlogPathCreator {
 4 |
 5 |     private(set) static var blogPath: String? = nil
   |                             |- warning: static property 'blogPath' is not concurrency-safe because it is non-isolated global shared mutable state; this is an error in the Swift 6 language mode
   |                             |- note: convert 'blogPath' to a 'let' constant to make 'Sendable' shared state immutable
   |                             |- note: annotate 'blogPath' with '@MainActor' if property should only be accessed from the main actor
   |                             `- note: disable concurrency-safety checks if accesses are protected by an external synchronization mechanism
 6 |
 7 |     public static func createPath(for path: String?, query: String? = nil) -> String {
/Users/admin/builder/spi-builder-workspace/Sources/SteamPressCore/Controllers/FeedController.swift:37:51: warning: converting non-sendable function value to '@Sendable (Request) async throws -> Response' may introduce data races
35 |     // MARK: - Route Collection
36 |     func boot(routes: RoutesBuilder) throws {
37 |         routes.get("atom.xml", use: atomGenerator.feedHandler)
   |                                                   `- warning: converting non-sendable function value to '@Sendable (Request) async throws -> Response' may introduce data races
38 |         routes.get("rss.xml", use: rssGenerator.feedHandler)
39 |     }
/Users/admin/builder/spi-builder-workspace/Sources/SteamPressCore/Controllers/FeedController.swift:38:49: warning: converting non-sendable function value to '@Sendable (Request) async throws -> Response' may introduce data races
36 |     func boot(routes: RoutesBuilder) throws {
37 |         routes.get("atom.xml", use: atomGenerator.feedHandler)
38 |         routes.get("rss.xml", use: rssGenerator.feedHandler)
   |                                                 `- warning: converting non-sendable function value to '@Sendable (Request) async throws -> Response' may introduce data races
39 |     }
40 | }
/Users/admin/builder/spi-builder-workspace/Sources/SteamPressCore/Models/BlogUser.swift:28:6: warning: type 'BlogUser.BlogUserType' does not conform to the 'Sendable' protocol; this is an error in the Swift 6 language mode
 26 |     public var resetPasswordRequired: Bool
 27 |
 28 |     @Field(key: "user_type")
    |      `- warning: type 'BlogUser.BlogUserType' does not conform to the 'Sendable' protocol; this is an error in the Swift 6 language mode
 29 |     public var type: BlogUserType
 30 |
    :
 77 |
 78 | public extension BlogUser {
 79 |     enum BlogUserType: String, Codable {
    |          `- note: consider making enum 'BlogUserType' conform to the 'Sendable' protocol
 80 |         case member
 81 |         case owner
[2076/2086] Compiling SteamPressCore BlogController.swift
/Users/admin/builder/spi-builder-workspace/Sources/SteamPressCore/Controllers/Admin/PostsAdminController.swift:7:34: warning: converting non-sendable function value to '@Sendable (Request) async throws -> View' may introduce data races
  5 |     // MARK: - Route setup
  6 |     func boot(routes: RoutesBuilder) throws {
  7 |         routes.get("posts", use: postsHandler)
    |                                  `- warning: converting non-sendable function value to '@Sendable (Request) async throws -> View' may introduce data races
  8 |         routes.get("posts", "new", use: createPostHandler)
  9 |         routes.post("posts", "new", use: createPostPostHandler)
/Users/admin/builder/spi-builder-workspace/Sources/SteamPressCore/Controllers/Admin/PostsAdminController.swift:8:41: warning: converting non-sendable function value to '@Sendable (Request) async throws -> View' may introduce data races
  6 |     func boot(routes: RoutesBuilder) throws {
  7 |         routes.get("posts", use: postsHandler)
  8 |         routes.get("posts", "new", use: createPostHandler)
    |                                         `- warning: converting non-sendable function value to '@Sendable (Request) async throws -> View' may introduce data races
  9 |         routes.post("posts", "new", use: createPostPostHandler)
 10 |         routes.get("posts", BlogPost.parameter, use: editPostHandler)
/Users/admin/builder/spi-builder-workspace/Sources/SteamPressCore/Controllers/Admin/PostsAdminController.swift:9:42: warning: converting non-sendable function value to '@Sendable (Request) async throws -> Response' may introduce data races
  7 |         routes.get("posts", use: postsHandler)
  8 |         routes.get("posts", "new", use: createPostHandler)
  9 |         routes.post("posts", "new", use: createPostPostHandler)
    |                                          `- warning: converting non-sendable function value to '@Sendable (Request) async throws -> Response' may introduce data races
 10 |         routes.get("posts", BlogPost.parameter, use: editPostHandler)
 11 |         routes.post("posts", BlogPost.parameter, use: editPostPostHandler)
/Users/admin/builder/spi-builder-workspace/Sources/SteamPressCore/Controllers/Admin/PostsAdminController.swift:10:54: warning: converting non-sendable function value to '@Sendable (Request) async throws -> View' may introduce data races
  8 |         routes.get("posts", "new", use: createPostHandler)
  9 |         routes.post("posts", "new", use: createPostPostHandler)
 10 |         routes.get("posts", BlogPost.parameter, use: editPostHandler)
    |                                                      `- warning: converting non-sendable function value to '@Sendable (Request) async throws -> View' may introduce data races
 11 |         routes.post("posts", BlogPost.parameter, use: editPostPostHandler)
 12 |         routes.get("posts", BlogPost.parameter, "delete", use: deletePostHandler)
/Users/admin/builder/spi-builder-workspace/Sources/SteamPressCore/Controllers/Admin/PostsAdminController.swift:11:55: warning: converting non-sendable function value to '@Sendable (Request) async throws -> Response' may introduce data races
  9 |         routes.post("posts", "new", use: createPostPostHandler)
 10 |         routes.get("posts", BlogPost.parameter, use: editPostHandler)
 11 |         routes.post("posts", BlogPost.parameter, use: editPostPostHandler)
    |                                                       `- warning: converting non-sendable function value to '@Sendable (Request) async throws -> Response' may introduce data races
 12 |         routes.get("posts", BlogPost.parameter, "delete", use: deletePostHandler)
 13 |     }
/Users/admin/builder/spi-builder-workspace/Sources/SteamPressCore/Controllers/Admin/PostsAdminController.swift:12:64: warning: converting non-sendable function value to '@Sendable (Request) async throws -> Response' may introduce data races
 10 |         routes.get("posts", BlogPost.parameter, use: editPostHandler)
 11 |         routes.post("posts", BlogPost.parameter, use: editPostPostHandler)
 12 |         routes.get("posts", BlogPost.parameter, "delete", use: deletePostHandler)
    |                                                                `- warning: converting non-sendable function value to '@Sendable (Request) async throws -> Response' may introduce data races
 13 |     }
 14 |
/Users/admin/builder/spi-builder-workspace/Sources/SteamPressCore/Controllers/Admin/TagsAdminController.swift:7:33: warning: converting non-sendable function value to '@Sendable (Request) async throws -> View' may introduce data races
 5 |     // MARK: - Route setup
 6 |     func boot(routes: RoutesBuilder) throws {
 7 |         routes.get("tags", use: tagsHandler)
   |                                 `- warning: converting non-sendable function value to '@Sendable (Request) async throws -> View' may introduce data races
 8 |         routes.get("tags", "new", use: createTagHandler)
 9 |         routes.post("tags", "new", use: createNewTagHandler)
/Users/admin/builder/spi-builder-workspace/Sources/SteamPressCore/Controllers/Admin/TagsAdminController.swift:8:40: warning: converting non-sendable function value to '@Sendable (Request) async throws -> View' may introduce data races
 6 |     func boot(routes: RoutesBuilder) throws {
 7 |         routes.get("tags", use: tagsHandler)
 8 |         routes.get("tags", "new", use: createTagHandler)
   |                                        `- warning: converting non-sendable function value to '@Sendable (Request) async throws -> View' may introduce data races
 9 |         routes.post("tags", "new", use: createNewTagHandler)
10 |         routes.get("tags", BlogTag.parameter, use: tagHandler)
/Users/admin/builder/spi-builder-workspace/Sources/SteamPressCore/Controllers/Admin/TagsAdminController.swift:9:41: warning: converting non-sendable function value to '@Sendable (Request) async throws -> Response' may introduce data races
 7 |         routes.get("tags", use: tagsHandler)
 8 |         routes.get("tags", "new", use: createTagHandler)
 9 |         routes.post("tags", "new", use: createNewTagHandler)
   |                                         `- warning: converting non-sendable function value to '@Sendable (Request) async throws -> Response' may introduce data races
10 |         routes.get("tags", BlogTag.parameter, use: tagHandler)
11 |         routes.post("tags", BlogTag.parameter, use: updateTagHandler)
/Users/admin/builder/spi-builder-workspace/Sources/SteamPressCore/Controllers/Admin/TagsAdminController.swift:10:52: warning: converting non-sendable function value to '@Sendable (Request) async throws -> View' may introduce data races
 8 |         routes.get("tags", "new", use: createTagHandler)
 9 |         routes.post("tags", "new", use: createNewTagHandler)
10 |         routes.get("tags", BlogTag.parameter, use: tagHandler)
   |                                                    `- warning: converting non-sendable function value to '@Sendable (Request) async throws -> View' may introduce data races
11 |         routes.post("tags", BlogTag.parameter, use: updateTagHandler)
12 |         routes.get("tags", BlogTag.parameter, "delete", use: deleteTagHandler)
/Users/admin/builder/spi-builder-workspace/Sources/SteamPressCore/Controllers/Admin/TagsAdminController.swift:11:53: warning: converting non-sendable function value to '@Sendable (Request) async throws -> Response' may introduce data races
 9 |         routes.post("tags", "new", use: createNewTagHandler)
10 |         routes.get("tags", BlogTag.parameter, use: tagHandler)
11 |         routes.post("tags", BlogTag.parameter, use: updateTagHandler)
   |                                                     `- warning: converting non-sendable function value to '@Sendable (Request) async throws -> Response' may introduce data races
12 |         routes.get("tags", BlogTag.parameter, "delete", use: deleteTagHandler)
13 |     }
/Users/admin/builder/spi-builder-workspace/Sources/SteamPressCore/Controllers/Admin/TagsAdminController.swift:12:62: warning: converting non-sendable function value to '@Sendable (Request) async throws -> Response' may introduce data races
10 |         routes.get("tags", BlogTag.parameter, use: tagHandler)
11 |         routes.post("tags", BlogTag.parameter, use: updateTagHandler)
12 |         routes.get("tags", BlogTag.parameter, "delete", use: deleteTagHandler)
   |                                                              `- warning: converting non-sendable function value to '@Sendable (Request) async throws -> Response' may introduce data races
13 |     }
14 |
/Users/admin/builder/spi-builder-workspace/Sources/SteamPressCore/Models/BlogTag.swift:16:6: warning: type 'BlogTag.TagVisibility' does not conform to the 'Sendable' protocol; this is an error in the Swift 6 language mode
14 |     public var name: String
15 |
16 |     @Field(key: "visibility")
   |      `- warning: type 'BlogTag.TagVisibility' does not conform to the 'Sendable' protocol; this is an error in the Swift 6 language mode
17 |     public var visibility: TagVisibility
18 |
   :
44 |
45 | extension BlogTag {
46 |     public enum TagVisibility: String, Codable {
   |                 `- note: consider making enum 'TagVisibility' conform to the 'Sendable' protocol
47 |         case `public`
48 |         case `private`
/Users/admin/builder/spi-builder-workspace/Sources/SteamPressCore/Controllers/Admin/UsersAdminController.swift:7:36: warning: converting non-sendable function value to '@Sendable (Request) async throws -> View' may introduce data races
  5 |     // MARK: - Route setup
  6 |     func boot(routes: RoutesBuilder) throws {
  7 |         routes.get("members", use: membersHandler)
    |                                    `- warning: converting non-sendable function value to '@Sendable (Request) async throws -> View' may introduce data races
  8 |         routes.get("members", "new", use: createMemberHandler)
  9 |         routes.post("members", "new", use: createNewMemberHandler)
/Users/admin/builder/spi-builder-workspace/Sources/SteamPressCore/Controllers/Admin/UsersAdminController.swift:8:43: warning: converting non-sendable function value to '@Sendable (Request) async throws -> View' may introduce data races
  6 |     func boot(routes: RoutesBuilder) throws {
  7 |         routes.get("members", use: membersHandler)
  8 |         routes.get("members", "new", use: createMemberHandler)
    |                                           `- warning: converting non-sendable function value to '@Sendable (Request) async throws -> View' may introduce data races
  9 |         routes.post("members", "new", use: createNewMemberHandler)
 10 |         routes.get("members", BlogUser.parameter, use: memberHandler)
/Users/admin/builder/spi-builder-workspace/Sources/SteamPressCore/Controllers/Admin/UsersAdminController.swift:9:44: warning: converting non-sendable function value to '@Sendable (Request) async throws -> Response' may introduce data races
  7 |         routes.get("members", use: membersHandler)
  8 |         routes.get("members", "new", use: createMemberHandler)
  9 |         routes.post("members", "new", use: createNewMemberHandler)
    |                                            `- warning: converting non-sendable function value to '@Sendable (Request) async throws -> Response' may introduce data races
 10 |         routes.get("members", BlogUser.parameter, use: memberHandler)
 11 |         routes.post("members", BlogUser.parameter, use: updateMemberHandler)
/Users/admin/builder/spi-builder-workspace/Sources/SteamPressCore/Controllers/Admin/UsersAdminController.swift:10:56: warning: converting non-sendable function value to '@Sendable (Request) async throws -> View' may introduce data races
  8 |         routes.get("members", "new", use: createMemberHandler)
  9 |         routes.post("members", "new", use: createNewMemberHandler)
 10 |         routes.get("members", BlogUser.parameter, use: memberHandler)
    |                                                        `- warning: converting non-sendable function value to '@Sendable (Request) async throws -> View' may introduce data races
 11 |         routes.post("members", BlogUser.parameter, use: updateMemberHandler)
 12 |         routes.get("members", BlogUser.parameter, "delete", use: deleteMemberHandler)
/Users/admin/builder/spi-builder-workspace/Sources/SteamPressCore/Controllers/Admin/UsersAdminController.swift:11:57: warning: converting non-sendable function value to '@Sendable (Request) async throws -> Response' may introduce data races
  9 |         routes.post("members", "new", use: createNewMemberHandler)
 10 |         routes.get("members", BlogUser.parameter, use: memberHandler)
 11 |         routes.post("members", BlogUser.parameter, use: updateMemberHandler)
    |                                                         `- warning: converting non-sendable function value to '@Sendable (Request) async throws -> Response' may introduce data races
 12 |         routes.get("members", BlogUser.parameter, "delete", use: deleteMemberHandler)
 13 |     }
/Users/admin/builder/spi-builder-workspace/Sources/SteamPressCore/Controllers/Admin/UsersAdminController.swift:12:66: warning: converting non-sendable function value to '@Sendable (Request) async throws -> Response' may introduce data races
 10 |         routes.get("members", BlogUser.parameter, use: memberHandler)
 11 |         routes.post("members", BlogUser.parameter, use: updateMemberHandler)
 12 |         routes.get("members", BlogUser.parameter, "delete", use: deleteMemberHandler)
    |                                                                  `- warning: converting non-sendable function value to '@Sendable (Request) async throws -> Response' may introduce data races
 13 |     }
 14 |
/Users/admin/builder/spi-builder-workspace/Sources/SteamPressCore/Controllers/BlogController.swift:24:25: warning: converting non-sendable function value to '@Sendable (Request) async throws -> View' may introduce data races
 22 |     // MARK: - Add routes
 23 |     func boot(routes: RoutesBuilder) throws {
 24 |         routes.get(use: indexHandler)
    |                         `- warning: converting non-sendable function value to '@Sendable (Request) async throws -> View' may introduce data races
 25 |         routes.get(blogPostsPath, ":blogSlug", use: blogPostHandler)
 26 |         routes.get(blogPostsPath, use: blogPostIndexRedirectHandler)
/Users/admin/builder/spi-builder-workspace/Sources/SteamPressCore/Controllers/BlogController.swift:25:53: warning: converting non-sendable function value to '@Sendable (Request) async throws -> View' may introduce data races
 23 |     func boot(routes: RoutesBuilder) throws {
 24 |         routes.get(use: indexHandler)
 25 |         routes.get(blogPostsPath, ":blogSlug", use: blogPostHandler)
    |                                                     `- warning: converting non-sendable function value to '@Sendable (Request) async throws -> View' may introduce data races
 26 |         routes.get(blogPostsPath, use: blogPostIndexRedirectHandler)
 27 |         routes.get(searchPath, use: searchHandler)
/Users/admin/builder/spi-builder-workspace/Sources/SteamPressCore/Controllers/BlogController.swift:26:40: warning: converting non-sendable function value to '@Sendable (Request) async throws -> Response' may introduce data races
 24 |         routes.get(use: indexHandler)
 25 |         routes.get(blogPostsPath, ":blogSlug", use: blogPostHandler)
 26 |         routes.get(blogPostsPath, use: blogPostIndexRedirectHandler)
    |                                        `- warning: converting non-sendable function value to '@Sendable (Request) async throws -> Response' may introduce data races
 27 |         routes.get(searchPath, use: searchHandler)
 28 |         if enableAuthorPages {
/Users/admin/builder/spi-builder-workspace/Sources/SteamPressCore/Controllers/BlogController.swift:27:37: warning: converting non-sendable function value to '@Sendable (Request) async throws -> View' may introduce data races
 25 |         routes.get(blogPostsPath, ":blogSlug", use: blogPostHandler)
 26 |         routes.get(blogPostsPath, use: blogPostIndexRedirectHandler)
 27 |         routes.get(searchPath, use: searchHandler)
    |                                     `- warning: converting non-sendable function value to '@Sendable (Request) async throws -> View' may introduce data races
 28 |         if enableAuthorPages {
 29 |             routes.get(authorsPath, use: allAuthorsViewHandler)
/Users/admin/builder/spi-builder-workspace/Sources/SteamPressCore/Controllers/BlogController.swift:29:42: warning: converting non-sendable function value to '@Sendable (Request) async throws -> View' may introduce data races
 27 |         routes.get(searchPath, use: searchHandler)
 28 |         if enableAuthorPages {
 29 |             routes.get(authorsPath, use: allAuthorsViewHandler)
    |                                          `- warning: converting non-sendable function value to '@Sendable (Request) async throws -> View' may introduce data races
 30 |             routes.get(authorsPath, ":authorUsername", use: authorViewHandler)
 31 |         }
/Users/admin/builder/spi-builder-workspace/Sources/SteamPressCore/Controllers/BlogController.swift:30:61: warning: converting non-sendable function value to '@Sendable (Request) async throws -> View' may introduce data races
 28 |         if enableAuthorPages {
 29 |             routes.get(authorsPath, use: allAuthorsViewHandler)
 30 |             routes.get(authorsPath, ":authorUsername", use: authorViewHandler)
    |                                                             `- warning: converting non-sendable function value to '@Sendable (Request) async throws -> View' may introduce data races
 31 |         }
 32 |         if enableTagsPages {
/Users/admin/builder/spi-builder-workspace/Sources/SteamPressCore/Controllers/BlogController.swift:33:58: warning: converting non-sendable function value to '@Sendable (Request) async throws -> View' may introduce data races
 31 |         }
 32 |         if enableTagsPages {
 33 |             routes.get(tagsPath, BlogTag.parameter, use: tagViewHandler)
    |                                                          `- warning: converting non-sendable function value to '@Sendable (Request) async throws -> View' may introduce data races
 34 |             routes.get(tagsPath, use: allTagsViewHandler)
 35 |         }
/Users/admin/builder/spi-builder-workspace/Sources/SteamPressCore/Controllers/BlogController.swift:34:39: warning: converting non-sendable function value to '@Sendable (Request) async throws -> View' may introduce data races
 32 |         if enableTagsPages {
 33 |             routes.get(tagsPath, BlogTag.parameter, use: tagViewHandler)
 34 |             routes.get(tagsPath, use: allTagsViewHandler)
    |                                       `- warning: converting non-sendable function value to '@Sendable (Request) async throws -> View' may introduce data races
 35 |         }
 36 |     }
/Users/admin/builder/spi-builder-workspace/Sources/SteamPressCore/Presenters/BlogPathCreator.swift:5:29: warning: static property 'blogPath' is not concurrency-safe because it is non-isolated global shared mutable state; this is an error in the Swift 6 language mode
 3 | public struct BlogPathCreator {
 4 |
 5 |     private(set) static var blogPath: String? = nil
   |                             |- warning: static property 'blogPath' is not concurrency-safe because it is non-isolated global shared mutable state; this is an error in the Swift 6 language mode
   |                             |- note: convert 'blogPath' to a 'let' constant to make 'Sendable' shared state immutable
   |                             |- note: annotate 'blogPath' with '@MainActor' if property should only be accessed from the main actor
   |                             `- note: disable concurrency-safety checks if accesses are protected by an external synchronization mechanism
 6 |
 7 |     public static func createPath(for path: String?, query: String? = nil) -> String {
/Users/admin/builder/spi-builder-workspace/Sources/SteamPressCore/Controllers/FeedController.swift:37:51: warning: converting non-sendable function value to '@Sendable (Request) async throws -> Response' may introduce data races
35 |     // MARK: - Route Collection
36 |     func boot(routes: RoutesBuilder) throws {
37 |         routes.get("atom.xml", use: atomGenerator.feedHandler)
   |                                                   `- warning: converting non-sendable function value to '@Sendable (Request) async throws -> Response' may introduce data races
38 |         routes.get("rss.xml", use: rssGenerator.feedHandler)
39 |     }
/Users/admin/builder/spi-builder-workspace/Sources/SteamPressCore/Controllers/FeedController.swift:38:49: warning: converting non-sendable function value to '@Sendable (Request) async throws -> Response' may introduce data races
36 |     func boot(routes: RoutesBuilder) throws {
37 |         routes.get("atom.xml", use: atomGenerator.feedHandler)
38 |         routes.get("rss.xml", use: rssGenerator.feedHandler)
   |                                                 `- warning: converting non-sendable function value to '@Sendable (Request) async throws -> Response' may introduce data races
39 |     }
40 | }
/Users/admin/builder/spi-builder-workspace/Sources/SteamPressCore/Models/BlogUser.swift:28:6: warning: type 'BlogUser.BlogUserType' does not conform to the 'Sendable' protocol; this is an error in the Swift 6 language mode
 26 |     public var resetPasswordRequired: Bool
 27 |
 28 |     @Field(key: "user_type")
    |      `- warning: type 'BlogUser.BlogUserType' does not conform to the 'Sendable' protocol; this is an error in the Swift 6 language mode
 29 |     public var type: BlogUserType
 30 |
    :
 77 |
 78 | public extension BlogUser {
 79 |     enum BlogUserType: String, Codable {
    |          `- note: consider making enum 'BlogUserType' conform to the 'Sendable' protocol
 80 |         case member
 81 |         case owner
[2077/2086] Compiling SteamPressCore FeedController.swift
/Users/admin/builder/spi-builder-workspace/Sources/SteamPressCore/Controllers/Admin/PostsAdminController.swift:7:34: warning: converting non-sendable function value to '@Sendable (Request) async throws -> View' may introduce data races
  5 |     // MARK: - Route setup
  6 |     func boot(routes: RoutesBuilder) throws {
  7 |         routes.get("posts", use: postsHandler)
    |                                  `- warning: converting non-sendable function value to '@Sendable (Request) async throws -> View' may introduce data races
  8 |         routes.get("posts", "new", use: createPostHandler)
  9 |         routes.post("posts", "new", use: createPostPostHandler)
/Users/admin/builder/spi-builder-workspace/Sources/SteamPressCore/Controllers/Admin/PostsAdminController.swift:8:41: warning: converting non-sendable function value to '@Sendable (Request) async throws -> View' may introduce data races
  6 |     func boot(routes: RoutesBuilder) throws {
  7 |         routes.get("posts", use: postsHandler)
  8 |         routes.get("posts", "new", use: createPostHandler)
    |                                         `- warning: converting non-sendable function value to '@Sendable (Request) async throws -> View' may introduce data races
  9 |         routes.post("posts", "new", use: createPostPostHandler)
 10 |         routes.get("posts", BlogPost.parameter, use: editPostHandler)
/Users/admin/builder/spi-builder-workspace/Sources/SteamPressCore/Controllers/Admin/PostsAdminController.swift:9:42: warning: converting non-sendable function value to '@Sendable (Request) async throws -> Response' may introduce data races
  7 |         routes.get("posts", use: postsHandler)
  8 |         routes.get("posts", "new", use: createPostHandler)
  9 |         routes.post("posts", "new", use: createPostPostHandler)
    |                                          `- warning: converting non-sendable function value to '@Sendable (Request) async throws -> Response' may introduce data races
 10 |         routes.get("posts", BlogPost.parameter, use: editPostHandler)
 11 |         routes.post("posts", BlogPost.parameter, use: editPostPostHandler)
/Users/admin/builder/spi-builder-workspace/Sources/SteamPressCore/Controllers/Admin/PostsAdminController.swift:10:54: warning: converting non-sendable function value to '@Sendable (Request) async throws -> View' may introduce data races
  8 |         routes.get("posts", "new", use: createPostHandler)
  9 |         routes.post("posts", "new", use: createPostPostHandler)
 10 |         routes.get("posts", BlogPost.parameter, use: editPostHandler)
    |                                                      `- warning: converting non-sendable function value to '@Sendable (Request) async throws -> View' may introduce data races
 11 |         routes.post("posts", BlogPost.parameter, use: editPostPostHandler)
 12 |         routes.get("posts", BlogPost.parameter, "delete", use: deletePostHandler)
/Users/admin/builder/spi-builder-workspace/Sources/SteamPressCore/Controllers/Admin/PostsAdminController.swift:11:55: warning: converting non-sendable function value to '@Sendable (Request) async throws -> Response' may introduce data races
  9 |         routes.post("posts", "new", use: createPostPostHandler)
 10 |         routes.get("posts", BlogPost.parameter, use: editPostHandler)
 11 |         routes.post("posts", BlogPost.parameter, use: editPostPostHandler)
    |                                                       `- warning: converting non-sendable function value to '@Sendable (Request) async throws -> Response' may introduce data races
 12 |         routes.get("posts", BlogPost.parameter, "delete", use: deletePostHandler)
 13 |     }
/Users/admin/builder/spi-builder-workspace/Sources/SteamPressCore/Controllers/Admin/PostsAdminController.swift:12:64: warning: converting non-sendable function value to '@Sendable (Request) async throws -> Response' may introduce data races
 10 |         routes.get("posts", BlogPost.parameter, use: editPostHandler)
 11 |         routes.post("posts", BlogPost.parameter, use: editPostPostHandler)
 12 |         routes.get("posts", BlogPost.parameter, "delete", use: deletePostHandler)
    |                                                                `- warning: converting non-sendable function value to '@Sendable (Request) async throws -> Response' may introduce data races
 13 |     }
 14 |
/Users/admin/builder/spi-builder-workspace/Sources/SteamPressCore/Controllers/Admin/TagsAdminController.swift:7:33: warning: converting non-sendable function value to '@Sendable (Request) async throws -> View' may introduce data races
 5 |     // MARK: - Route setup
 6 |     func boot(routes: RoutesBuilder) throws {
 7 |         routes.get("tags", use: tagsHandler)
   |                                 `- warning: converting non-sendable function value to '@Sendable (Request) async throws -> View' may introduce data races
 8 |         routes.get("tags", "new", use: createTagHandler)
 9 |         routes.post("tags", "new", use: createNewTagHandler)
/Users/admin/builder/spi-builder-workspace/Sources/SteamPressCore/Controllers/Admin/TagsAdminController.swift:8:40: warning: converting non-sendable function value to '@Sendable (Request) async throws -> View' may introduce data races
 6 |     func boot(routes: RoutesBuilder) throws {
 7 |         routes.get("tags", use: tagsHandler)
 8 |         routes.get("tags", "new", use: createTagHandler)
   |                                        `- warning: converting non-sendable function value to '@Sendable (Request) async throws -> View' may introduce data races
 9 |         routes.post("tags", "new", use: createNewTagHandler)
10 |         routes.get("tags", BlogTag.parameter, use: tagHandler)
/Users/admin/builder/spi-builder-workspace/Sources/SteamPressCore/Controllers/Admin/TagsAdminController.swift:9:41: warning: converting non-sendable function value to '@Sendable (Request) async throws -> Response' may introduce data races
 7 |         routes.get("tags", use: tagsHandler)
 8 |         routes.get("tags", "new", use: createTagHandler)
 9 |         routes.post("tags", "new", use: createNewTagHandler)
   |                                         `- warning: converting non-sendable function value to '@Sendable (Request) async throws -> Response' may introduce data races
10 |         routes.get("tags", BlogTag.parameter, use: tagHandler)
11 |         routes.post("tags", BlogTag.parameter, use: updateTagHandler)
/Users/admin/builder/spi-builder-workspace/Sources/SteamPressCore/Controllers/Admin/TagsAdminController.swift:10:52: warning: converting non-sendable function value to '@Sendable (Request) async throws -> View' may introduce data races
 8 |         routes.get("tags", "new", use: createTagHandler)
 9 |         routes.post("tags", "new", use: createNewTagHandler)
10 |         routes.get("tags", BlogTag.parameter, use: tagHandler)
   |                                                    `- warning: converting non-sendable function value to '@Sendable (Request) async throws -> View' may introduce data races
11 |         routes.post("tags", BlogTag.parameter, use: updateTagHandler)
12 |         routes.get("tags", BlogTag.parameter, "delete", use: deleteTagHandler)
/Users/admin/builder/spi-builder-workspace/Sources/SteamPressCore/Controllers/Admin/TagsAdminController.swift:11:53: warning: converting non-sendable function value to '@Sendable (Request) async throws -> Response' may introduce data races
 9 |         routes.post("tags", "new", use: createNewTagHandler)
10 |         routes.get("tags", BlogTag.parameter, use: tagHandler)
11 |         routes.post("tags", BlogTag.parameter, use: updateTagHandler)
   |                                                     `- warning: converting non-sendable function value to '@Sendable (Request) async throws -> Response' may introduce data races
12 |         routes.get("tags", BlogTag.parameter, "delete", use: deleteTagHandler)
13 |     }
/Users/admin/builder/spi-builder-workspace/Sources/SteamPressCore/Controllers/Admin/TagsAdminController.swift:12:62: warning: converting non-sendable function value to '@Sendable (Request) async throws -> Response' may introduce data races
10 |         routes.get("tags", BlogTag.parameter, use: tagHandler)
11 |         routes.post("tags", BlogTag.parameter, use: updateTagHandler)
12 |         routes.get("tags", BlogTag.parameter, "delete", use: deleteTagHandler)
   |                                                              `- warning: converting non-sendable function value to '@Sendable (Request) async throws -> Response' may introduce data races
13 |     }
14 |
/Users/admin/builder/spi-builder-workspace/Sources/SteamPressCore/Models/BlogTag.swift:16:6: warning: type 'BlogTag.TagVisibility' does not conform to the 'Sendable' protocol; this is an error in the Swift 6 language mode
14 |     public var name: String
15 |
16 |     @Field(key: "visibility")
   |      `- warning: type 'BlogTag.TagVisibility' does not conform to the 'Sendable' protocol; this is an error in the Swift 6 language mode
17 |     public var visibility: TagVisibility
18 |
   :
44 |
45 | extension BlogTag {
46 |     public enum TagVisibility: String, Codable {
   |                 `- note: consider making enum 'TagVisibility' conform to the 'Sendable' protocol
47 |         case `public`
48 |         case `private`
/Users/admin/builder/spi-builder-workspace/Sources/SteamPressCore/Controllers/Admin/UsersAdminController.swift:7:36: warning: converting non-sendable function value to '@Sendable (Request) async throws -> View' may introduce data races
  5 |     // MARK: - Route setup
  6 |     func boot(routes: RoutesBuilder) throws {
  7 |         routes.get("members", use: membersHandler)
    |                                    `- warning: converting non-sendable function value to '@Sendable (Request) async throws -> View' may introduce data races
  8 |         routes.get("members", "new", use: createMemberHandler)
  9 |         routes.post("members", "new", use: createNewMemberHandler)
/Users/admin/builder/spi-builder-workspace/Sources/SteamPressCore/Controllers/Admin/UsersAdminController.swift:8:43: warning: converting non-sendable function value to '@Sendable (Request) async throws -> View' may introduce data races
  6 |     func boot(routes: RoutesBuilder) throws {
  7 |         routes.get("members", use: membersHandler)
  8 |         routes.get("members", "new", use: createMemberHandler)
    |                                           `- warning: converting non-sendable function value to '@Sendable (Request) async throws -> View' may introduce data races
  9 |         routes.post("members", "new", use: createNewMemberHandler)
 10 |         routes.get("members", BlogUser.parameter, use: memberHandler)
/Users/admin/builder/spi-builder-workspace/Sources/SteamPressCore/Controllers/Admin/UsersAdminController.swift:9:44: warning: converting non-sendable function value to '@Sendable (Request) async throws -> Response' may introduce data races
  7 |         routes.get("members", use: membersHandler)
  8 |         routes.get("members", "new", use: createMemberHandler)
  9 |         routes.post("members", "new", use: createNewMemberHandler)
    |                                            `- warning: converting non-sendable function value to '@Sendable (Request) async throws -> Response' may introduce data races
 10 |         routes.get("members", BlogUser.parameter, use: memberHandler)
 11 |         routes.post("members", BlogUser.parameter, use: updateMemberHandler)
/Users/admin/builder/spi-builder-workspace/Sources/SteamPressCore/Controllers/Admin/UsersAdminController.swift:10:56: warning: converting non-sendable function value to '@Sendable (Request) async throws -> View' may introduce data races
  8 |         routes.get("members", "new", use: createMemberHandler)
  9 |         routes.post("members", "new", use: createNewMemberHandler)
 10 |         routes.get("members", BlogUser.parameter, use: memberHandler)
    |                                                        `- warning: converting non-sendable function value to '@Sendable (Request) async throws -> View' may introduce data races
 11 |         routes.post("members", BlogUser.parameter, use: updateMemberHandler)
 12 |         routes.get("members", BlogUser.parameter, "delete", use: deleteMemberHandler)
/Users/admin/builder/spi-builder-workspace/Sources/SteamPressCore/Controllers/Admin/UsersAdminController.swift:11:57: warning: converting non-sendable function value to '@Sendable (Request) async throws -> Response' may introduce data races
  9 |         routes.post("members", "new", use: createNewMemberHandler)
 10 |         routes.get("members", BlogUser.parameter, use: memberHandler)
 11 |         routes.post("members", BlogUser.parameter, use: updateMemberHandler)
    |                                                         `- warning: converting non-sendable function value to '@Sendable (Request) async throws -> Response' may introduce data races
 12 |         routes.get("members", BlogUser.parameter, "delete", use: deleteMemberHandler)
 13 |     }
/Users/admin/builder/spi-builder-workspace/Sources/SteamPressCore/Controllers/Admin/UsersAdminController.swift:12:66: warning: converting non-sendable function value to '@Sendable (Request) async throws -> Response' may introduce data races
 10 |         routes.get("members", BlogUser.parameter, use: memberHandler)
 11 |         routes.post("members", BlogUser.parameter, use: updateMemberHandler)
 12 |         routes.get("members", BlogUser.parameter, "delete", use: deleteMemberHandler)
    |                                                                  `- warning: converting non-sendable function value to '@Sendable (Request) async throws -> Response' may introduce data races
 13 |     }
 14 |
/Users/admin/builder/spi-builder-workspace/Sources/SteamPressCore/Controllers/BlogController.swift:24:25: warning: converting non-sendable function value to '@Sendable (Request) async throws -> View' may introduce data races
 22 |     // MARK: - Add routes
 23 |     func boot(routes: RoutesBuilder) throws {
 24 |         routes.get(use: indexHandler)
    |                         `- warning: converting non-sendable function value to '@Sendable (Request) async throws -> View' may introduce data races
 25 |         routes.get(blogPostsPath, ":blogSlug", use: blogPostHandler)
 26 |         routes.get(blogPostsPath, use: blogPostIndexRedirectHandler)
/Users/admin/builder/spi-builder-workspace/Sources/SteamPressCore/Controllers/BlogController.swift:25:53: warning: converting non-sendable function value to '@Sendable (Request) async throws -> View' may introduce data races
 23 |     func boot(routes: RoutesBuilder) throws {
 24 |         routes.get(use: indexHandler)
 25 |         routes.get(blogPostsPath, ":blogSlug", use: blogPostHandler)
    |                                                     `- warning: converting non-sendable function value to '@Sendable (Request) async throws -> View' may introduce data races
 26 |         routes.get(blogPostsPath, use: blogPostIndexRedirectHandler)
 27 |         routes.get(searchPath, use: searchHandler)
/Users/admin/builder/spi-builder-workspace/Sources/SteamPressCore/Controllers/BlogController.swift:26:40: warning: converting non-sendable function value to '@Sendable (Request) async throws -> Response' may introduce data races
 24 |         routes.get(use: indexHandler)
 25 |         routes.get(blogPostsPath, ":blogSlug", use: blogPostHandler)
 26 |         routes.get(blogPostsPath, use: blogPostIndexRedirectHandler)
    |                                        `- warning: converting non-sendable function value to '@Sendable (Request) async throws -> Response' may introduce data races
 27 |         routes.get(searchPath, use: searchHandler)
 28 |         if enableAuthorPages {
/Users/admin/builder/spi-builder-workspace/Sources/SteamPressCore/Controllers/BlogController.swift:27:37: warning: converting non-sendable function value to '@Sendable (Request) async throws -> View' may introduce data races
 25 |         routes.get(blogPostsPath, ":blogSlug", use: blogPostHandler)
 26 |         routes.get(blogPostsPath, use: blogPostIndexRedirectHandler)
 27 |         routes.get(searchPath, use: searchHandler)
    |                                     `- warning: converting non-sendable function value to '@Sendable (Request) async throws -> View' may introduce data races
 28 |         if enableAuthorPages {
 29 |             routes.get(authorsPath, use: allAuthorsViewHandler)
/Users/admin/builder/spi-builder-workspace/Sources/SteamPressCore/Controllers/BlogController.swift:29:42: warning: converting non-sendable function value to '@Sendable (Request) async throws -> View' may introduce data races
 27 |         routes.get(searchPath, use: searchHandler)
 28 |         if enableAuthorPages {
 29 |             routes.get(authorsPath, use: allAuthorsViewHandler)
    |                                          `- warning: converting non-sendable function value to '@Sendable (Request) async throws -> View' may introduce data races
 30 |             routes.get(authorsPath, ":authorUsername", use: authorViewHandler)
 31 |         }
/Users/admin/builder/spi-builder-workspace/Sources/SteamPressCore/Controllers/BlogController.swift:30:61: warning: converting non-sendable function value to '@Sendable (Request) async throws -> View' may introduce data races
 28 |         if enableAuthorPages {
 29 |             routes.get(authorsPath, use: allAuthorsViewHandler)
 30 |             routes.get(authorsPath, ":authorUsername", use: authorViewHandler)
    |                                                             `- warning: converting non-sendable function value to '@Sendable (Request) async throws -> View' may introduce data races
 31 |         }
 32 |         if enableTagsPages {
/Users/admin/builder/spi-builder-workspace/Sources/SteamPressCore/Controllers/BlogController.swift:33:58: warning: converting non-sendable function value to '@Sendable (Request) async throws -> View' may introduce data races
 31 |         }
 32 |         if enableTagsPages {
 33 |             routes.get(tagsPath, BlogTag.parameter, use: tagViewHandler)
    |                                                          `- warning: converting non-sendable function value to '@Sendable (Request) async throws -> View' may introduce data races
 34 |             routes.get(tagsPath, use: allTagsViewHandler)
 35 |         }
/Users/admin/builder/spi-builder-workspace/Sources/SteamPressCore/Controllers/BlogController.swift:34:39: warning: converting non-sendable function value to '@Sendable (Request) async throws -> View' may introduce data races
 32 |         if enableTagsPages {
 33 |             routes.get(tagsPath, BlogTag.parameter, use: tagViewHandler)
 34 |             routes.get(tagsPath, use: allTagsViewHandler)
    |                                       `- warning: converting non-sendable function value to '@Sendable (Request) async throws -> View' may introduce data races
 35 |         }
 36 |     }
/Users/admin/builder/spi-builder-workspace/Sources/SteamPressCore/Presenters/BlogPathCreator.swift:5:29: warning: static property 'blogPath' is not concurrency-safe because it is non-isolated global shared mutable state; this is an error in the Swift 6 language mode
 3 | public struct BlogPathCreator {
 4 |
 5 |     private(set) static var blogPath: String? = nil
   |                             |- warning: static property 'blogPath' is not concurrency-safe because it is non-isolated global shared mutable state; this is an error in the Swift 6 language mode
   |                             |- note: convert 'blogPath' to a 'let' constant to make 'Sendable' shared state immutable
   |                             |- note: annotate 'blogPath' with '@MainActor' if property should only be accessed from the main actor
   |                             `- note: disable concurrency-safety checks if accesses are protected by an external synchronization mechanism
 6 |
 7 |     public static func createPath(for path: String?, query: String? = nil) -> String {
/Users/admin/builder/spi-builder-workspace/Sources/SteamPressCore/Controllers/FeedController.swift:37:51: warning: converting non-sendable function value to '@Sendable (Request) async throws -> Response' may introduce data races
35 |     // MARK: - Route Collection
36 |     func boot(routes: RoutesBuilder) throws {
37 |         routes.get("atom.xml", use: atomGenerator.feedHandler)
   |                                                   `- warning: converting non-sendable function value to '@Sendable (Request) async throws -> Response' may introduce data races
38 |         routes.get("rss.xml", use: rssGenerator.feedHandler)
39 |     }
/Users/admin/builder/spi-builder-workspace/Sources/SteamPressCore/Controllers/FeedController.swift:38:49: warning: converting non-sendable function value to '@Sendable (Request) async throws -> Response' may introduce data races
36 |     func boot(routes: RoutesBuilder) throws {
37 |         routes.get("atom.xml", use: atomGenerator.feedHandler)
38 |         routes.get("rss.xml", use: rssGenerator.feedHandler)
   |                                                 `- warning: converting non-sendable function value to '@Sendable (Request) async throws -> Response' may introduce data races
39 |     }
40 | }
/Users/admin/builder/spi-builder-workspace/Sources/SteamPressCore/Models/BlogUser.swift:28:6: warning: type 'BlogUser.BlogUserType' does not conform to the 'Sendable' protocol; this is an error in the Swift 6 language mode
 26 |     public var resetPasswordRequired: Bool
 27 |
 28 |     @Field(key: "user_type")
    |      `- warning: type 'BlogUser.BlogUserType' does not conform to the 'Sendable' protocol; this is an error in the Swift 6 language mode
 29 |     public var type: BlogUserType
 30 |
    :
 77 |
 78 | public extension BlogUser {
 79 |     enum BlogUserType: String, Codable {
    |          `- note: consider making enum 'BlogUserType' conform to the 'Sendable' protocol
 80 |         case member
 81 |         case owner
[2078/2086] Compiling SteamPressCore Application+SteamPress.swift
/Users/admin/builder/spi-builder-workspace/Sources/SteamPressCore/Controllers/Admin/PostsAdminController.swift:7:34: warning: converting non-sendable function value to '@Sendable (Request) async throws -> View' may introduce data races
  5 |     // MARK: - Route setup
  6 |     func boot(routes: RoutesBuilder) throws {
  7 |         routes.get("posts", use: postsHandler)
    |                                  `- warning: converting non-sendable function value to '@Sendable (Request) async throws -> View' may introduce data races
  8 |         routes.get("posts", "new", use: createPostHandler)
  9 |         routes.post("posts", "new", use: createPostPostHandler)
/Users/admin/builder/spi-builder-workspace/Sources/SteamPressCore/Controllers/Admin/PostsAdminController.swift:8:41: warning: converting non-sendable function value to '@Sendable (Request) async throws -> View' may introduce data races
  6 |     func boot(routes: RoutesBuilder) throws {
  7 |         routes.get("posts", use: postsHandler)
  8 |         routes.get("posts", "new", use: createPostHandler)
    |                                         `- warning: converting non-sendable function value to '@Sendable (Request) async throws -> View' may introduce data races
  9 |         routes.post("posts", "new", use: createPostPostHandler)
 10 |         routes.get("posts", BlogPost.parameter, use: editPostHandler)
/Users/admin/builder/spi-builder-workspace/Sources/SteamPressCore/Controllers/Admin/PostsAdminController.swift:9:42: warning: converting non-sendable function value to '@Sendable (Request) async throws -> Response' may introduce data races
  7 |         routes.get("posts", use: postsHandler)
  8 |         routes.get("posts", "new", use: createPostHandler)
  9 |         routes.post("posts", "new", use: createPostPostHandler)
    |                                          `- warning: converting non-sendable function value to '@Sendable (Request) async throws -> Response' may introduce data races
 10 |         routes.get("posts", BlogPost.parameter, use: editPostHandler)
 11 |         routes.post("posts", BlogPost.parameter, use: editPostPostHandler)
/Users/admin/builder/spi-builder-workspace/Sources/SteamPressCore/Controllers/Admin/PostsAdminController.swift:10:54: warning: converting non-sendable function value to '@Sendable (Request) async throws -> View' may introduce data races
  8 |         routes.get("posts", "new", use: createPostHandler)
  9 |         routes.post("posts", "new", use: createPostPostHandler)
 10 |         routes.get("posts", BlogPost.parameter, use: editPostHandler)
    |                                                      `- warning: converting non-sendable function value to '@Sendable (Request) async throws -> View' may introduce data races
 11 |         routes.post("posts", BlogPost.parameter, use: editPostPostHandler)
 12 |         routes.get("posts", BlogPost.parameter, "delete", use: deletePostHandler)
/Users/admin/builder/spi-builder-workspace/Sources/SteamPressCore/Controllers/Admin/PostsAdminController.swift:11:55: warning: converting non-sendable function value to '@Sendable (Request) async throws -> Response' may introduce data races
  9 |         routes.post("posts", "new", use: createPostPostHandler)
 10 |         routes.get("posts", BlogPost.parameter, use: editPostHandler)
 11 |         routes.post("posts", BlogPost.parameter, use: editPostPostHandler)
    |                                                       `- warning: converting non-sendable function value to '@Sendable (Request) async throws -> Response' may introduce data races
 12 |         routes.get("posts", BlogPost.parameter, "delete", use: deletePostHandler)
 13 |     }
/Users/admin/builder/spi-builder-workspace/Sources/SteamPressCore/Controllers/Admin/PostsAdminController.swift:12:64: warning: converting non-sendable function value to '@Sendable (Request) async throws -> Response' may introduce data races
 10 |         routes.get("posts", BlogPost.parameter, use: editPostHandler)
 11 |         routes.post("posts", BlogPost.parameter, use: editPostPostHandler)
 12 |         routes.get("posts", BlogPost.parameter, "delete", use: deletePostHandler)
    |                                                                `- warning: converting non-sendable function value to '@Sendable (Request) async throws -> Response' may introduce data races
 13 |     }
 14 |
/Users/admin/builder/spi-builder-workspace/Sources/SteamPressCore/Controllers/Admin/TagsAdminController.swift:7:33: warning: converting non-sendable function value to '@Sendable (Request) async throws -> View' may introduce data races
 5 |     // MARK: - Route setup
 6 |     func boot(routes: RoutesBuilder) throws {
 7 |         routes.get("tags", use: tagsHandler)
   |                                 `- warning: converting non-sendable function value to '@Sendable (Request) async throws -> View' may introduce data races
 8 |         routes.get("tags", "new", use: createTagHandler)
 9 |         routes.post("tags", "new", use: createNewTagHandler)
/Users/admin/builder/spi-builder-workspace/Sources/SteamPressCore/Controllers/Admin/TagsAdminController.swift:8:40: warning: converting non-sendable function value to '@Sendable (Request) async throws -> View' may introduce data races
 6 |     func boot(routes: RoutesBuilder) throws {
 7 |         routes.get("tags", use: tagsHandler)
 8 |         routes.get("tags", "new", use: createTagHandler)
   |                                        `- warning: converting non-sendable function value to '@Sendable (Request) async throws -> View' may introduce data races
 9 |         routes.post("tags", "new", use: createNewTagHandler)
10 |         routes.get("tags", BlogTag.parameter, use: tagHandler)
/Users/admin/builder/spi-builder-workspace/Sources/SteamPressCore/Controllers/Admin/TagsAdminController.swift:9:41: warning: converting non-sendable function value to '@Sendable (Request) async throws -> Response' may introduce data races
 7 |         routes.get("tags", use: tagsHandler)
 8 |         routes.get("tags", "new", use: createTagHandler)
 9 |         routes.post("tags", "new", use: createNewTagHandler)
   |                                         `- warning: converting non-sendable function value to '@Sendable (Request) async throws -> Response' may introduce data races
10 |         routes.get("tags", BlogTag.parameter, use: tagHandler)
11 |         routes.post("tags", BlogTag.parameter, use: updateTagHandler)
/Users/admin/builder/spi-builder-workspace/Sources/SteamPressCore/Controllers/Admin/TagsAdminController.swift:10:52: warning: converting non-sendable function value to '@Sendable (Request) async throws -> View' may introduce data races
 8 |         routes.get("tags", "new", use: createTagHandler)
 9 |         routes.post("tags", "new", use: createNewTagHandler)
10 |         routes.get("tags", BlogTag.parameter, use: tagHandler)
   |                                                    `- warning: converting non-sendable function value to '@Sendable (Request) async throws -> View' may introduce data races
11 |         routes.post("tags", BlogTag.parameter, use: updateTagHandler)
12 |         routes.get("tags", BlogTag.parameter, "delete", use: deleteTagHandler)
/Users/admin/builder/spi-builder-workspace/Sources/SteamPressCore/Controllers/Admin/TagsAdminController.swift:11:53: warning: converting non-sendable function value to '@Sendable (Request) async throws -> Response' may introduce data races
 9 |         routes.post("tags", "new", use: createNewTagHandler)
10 |         routes.get("tags", BlogTag.parameter, use: tagHandler)
11 |         routes.post("tags", BlogTag.parameter, use: updateTagHandler)
   |                                                     `- warning: converting non-sendable function value to '@Sendable (Request) async throws -> Response' may introduce data races
12 |         routes.get("tags", BlogTag.parameter, "delete", use: deleteTagHandler)
13 |     }
/Users/admin/builder/spi-builder-workspace/Sources/SteamPressCore/Controllers/Admin/TagsAdminController.swift:12:62: warning: converting non-sendable function value to '@Sendable (Request) async throws -> Response' may introduce data races
10 |         routes.get("tags", BlogTag.parameter, use: tagHandler)
11 |         routes.post("tags", BlogTag.parameter, use: updateTagHandler)
12 |         routes.get("tags", BlogTag.parameter, "delete", use: deleteTagHandler)
   |                                                              `- warning: converting non-sendable function value to '@Sendable (Request) async throws -> Response' may introduce data races
13 |     }
14 |
/Users/admin/builder/spi-builder-workspace/Sources/SteamPressCore/Models/BlogTag.swift:16:6: warning: type 'BlogTag.TagVisibility' does not conform to the 'Sendable' protocol; this is an error in the Swift 6 language mode
14 |     public var name: String
15 |
16 |     @Field(key: "visibility")
   |      `- warning: type 'BlogTag.TagVisibility' does not conform to the 'Sendable' protocol; this is an error in the Swift 6 language mode
17 |     public var visibility: TagVisibility
18 |
   :
44 |
45 | extension BlogTag {
46 |     public enum TagVisibility: String, Codable {
   |                 `- note: consider making enum 'TagVisibility' conform to the 'Sendable' protocol
47 |         case `public`
48 |         case `private`
/Users/admin/builder/spi-builder-workspace/Sources/SteamPressCore/Controllers/Admin/UsersAdminController.swift:7:36: warning: converting non-sendable function value to '@Sendable (Request) async throws -> View' may introduce data races
  5 |     // MARK: - Route setup
  6 |     func boot(routes: RoutesBuilder) throws {
  7 |         routes.get("members", use: membersHandler)
    |                                    `- warning: converting non-sendable function value to '@Sendable (Request) async throws -> View' may introduce data races
  8 |         routes.get("members", "new", use: createMemberHandler)
  9 |         routes.post("members", "new", use: createNewMemberHandler)
/Users/admin/builder/spi-builder-workspace/Sources/SteamPressCore/Controllers/Admin/UsersAdminController.swift:8:43: warning: converting non-sendable function value to '@Sendable (Request) async throws -> View' may introduce data races
  6 |     func boot(routes: RoutesBuilder) throws {
  7 |         routes.get("members", use: membersHandler)
  8 |         routes.get("members", "new", use: createMemberHandler)
    |                                           `- warning: converting non-sendable function value to '@Sendable (Request) async throws -> View' may introduce data races
  9 |         routes.post("members", "new", use: createNewMemberHandler)
 10 |         routes.get("members", BlogUser.parameter, use: memberHandler)
/Users/admin/builder/spi-builder-workspace/Sources/SteamPressCore/Controllers/Admin/UsersAdminController.swift:9:44: warning: converting non-sendable function value to '@Sendable (Request) async throws -> Response' may introduce data races
  7 |         routes.get("members", use: membersHandler)
  8 |         routes.get("members", "new", use: createMemberHandler)
  9 |         routes.post("members", "new", use: createNewMemberHandler)
    |                                            `- warning: converting non-sendable function value to '@Sendable (Request) async throws -> Response' may introduce data races
 10 |         routes.get("members", BlogUser.parameter, use: memberHandler)
 11 |         routes.post("members", BlogUser.parameter, use: updateMemberHandler)
/Users/admin/builder/spi-builder-workspace/Sources/SteamPressCore/Controllers/Admin/UsersAdminController.swift:10:56: warning: converting non-sendable function value to '@Sendable (Request) async throws -> View' may introduce data races
  8 |         routes.get("members", "new", use: createMemberHandler)
  9 |         routes.post("members", "new", use: createNewMemberHandler)
 10 |         routes.get("members", BlogUser.parameter, use: memberHandler)
    |                                                        `- warning: converting non-sendable function value to '@Sendable (Request) async throws -> View' may introduce data races
 11 |         routes.post("members", BlogUser.parameter, use: updateMemberHandler)
 12 |         routes.get("members", BlogUser.parameter, "delete", use: deleteMemberHandler)
/Users/admin/builder/spi-builder-workspace/Sources/SteamPressCore/Controllers/Admin/UsersAdminController.swift:11:57: warning: converting non-sendable function value to '@Sendable (Request) async throws -> Response' may introduce data races
  9 |         routes.post("members", "new", use: createNewMemberHandler)
 10 |         routes.get("members", BlogUser.parameter, use: memberHandler)
 11 |         routes.post("members", BlogUser.parameter, use: updateMemberHandler)
    |                                                         `- warning: converting non-sendable function value to '@Sendable (Request) async throws -> Response' may introduce data races
 12 |         routes.get("members", BlogUser.parameter, "delete", use: deleteMemberHandler)
 13 |     }
/Users/admin/builder/spi-builder-workspace/Sources/SteamPressCore/Controllers/Admin/UsersAdminController.swift:12:66: warning: converting non-sendable function value to '@Sendable (Request) async throws -> Response' may introduce data races
 10 |         routes.get("members", BlogUser.parameter, use: memberHandler)
 11 |         routes.post("members", BlogUser.parameter, use: updateMemberHandler)
 12 |         routes.get("members", BlogUser.parameter, "delete", use: deleteMemberHandler)
    |                                                                  `- warning: converting non-sendable function value to '@Sendable (Request) async throws -> Response' may introduce data races
 13 |     }
 14 |
/Users/admin/builder/spi-builder-workspace/Sources/SteamPressCore/Controllers/BlogController.swift:24:25: warning: converting non-sendable function value to '@Sendable (Request) async throws -> View' may introduce data races
 22 |     // MARK: - Add routes
 23 |     func boot(routes: RoutesBuilder) throws {
 24 |         routes.get(use: indexHandler)
    |                         `- warning: converting non-sendable function value to '@Sendable (Request) async throws -> View' may introduce data races
 25 |         routes.get(blogPostsPath, ":blogSlug", use: blogPostHandler)
 26 |         routes.get(blogPostsPath, use: blogPostIndexRedirectHandler)
/Users/admin/builder/spi-builder-workspace/Sources/SteamPressCore/Controllers/BlogController.swift:25:53: warning: converting non-sendable function value to '@Sendable (Request) async throws -> View' may introduce data races
 23 |     func boot(routes: RoutesBuilder) throws {
 24 |         routes.get(use: indexHandler)
 25 |         routes.get(blogPostsPath, ":blogSlug", use: blogPostHandler)
    |                                                     `- warning: converting non-sendable function value to '@Sendable (Request) async throws -> View' may introduce data races
 26 |         routes.get(blogPostsPath, use: blogPostIndexRedirectHandler)
 27 |         routes.get(searchPath, use: searchHandler)
/Users/admin/builder/spi-builder-workspace/Sources/SteamPressCore/Controllers/BlogController.swift:26:40: warning: converting non-sendable function value to '@Sendable (Request) async throws -> Response' may introduce data races
 24 |         routes.get(use: indexHandler)
 25 |         routes.get(blogPostsPath, ":blogSlug", use: blogPostHandler)
 26 |         routes.get(blogPostsPath, use: blogPostIndexRedirectHandler)
    |                                        `- warning: converting non-sendable function value to '@Sendable (Request) async throws -> Response' may introduce data races
 27 |         routes.get(searchPath, use: searchHandler)
 28 |         if enableAuthorPages {
/Users/admin/builder/spi-builder-workspace/Sources/SteamPressCore/Controllers/BlogController.swift:27:37: warning: converting non-sendable function value to '@Sendable (Request) async throws -> View' may introduce data races
 25 |         routes.get(blogPostsPath, ":blogSlug", use: blogPostHandler)
 26 |         routes.get(blogPostsPath, use: blogPostIndexRedirectHandler)
 27 |         routes.get(searchPath, use: searchHandler)
    |                                     `- warning: converting non-sendable function value to '@Sendable (Request) async throws -> View' may introduce data races
 28 |         if enableAuthorPages {
 29 |             routes.get(authorsPath, use: allAuthorsViewHandler)
/Users/admin/builder/spi-builder-workspace/Sources/SteamPressCore/Controllers/BlogController.swift:29:42: warning: converting non-sendable function value to '@Sendable (Request) async throws -> View' may introduce data races
 27 |         routes.get(searchPath, use: searchHandler)
 28 |         if enableAuthorPages {
 29 |             routes.get(authorsPath, use: allAuthorsViewHandler)
    |                                          `- warning: converting non-sendable function value to '@Sendable (Request) async throws -> View' may introduce data races
 30 |             routes.get(authorsPath, ":authorUsername", use: authorViewHandler)
 31 |         }
/Users/admin/builder/spi-builder-workspace/Sources/SteamPressCore/Controllers/BlogController.swift:30:61: warning: converting non-sendable function value to '@Sendable (Request) async throws -> View' may introduce data races
 28 |         if enableAuthorPages {
 29 |             routes.get(authorsPath, use: allAuthorsViewHandler)
 30 |             routes.get(authorsPath, ":authorUsername", use: authorViewHandler)
    |                                                             `- warning: converting non-sendable function value to '@Sendable (Request) async throws -> View' may introduce data races
 31 |         }
 32 |         if enableTagsPages {
/Users/admin/builder/spi-builder-workspace/Sources/SteamPressCore/Controllers/BlogController.swift:33:58: warning: converting non-sendable function value to '@Sendable (Request) async throws -> View' may introduce data races
 31 |         }
 32 |         if enableTagsPages {
 33 |             routes.get(tagsPath, BlogTag.parameter, use: tagViewHandler)
    |                                                          `- warning: converting non-sendable function value to '@Sendable (Request) async throws -> View' may introduce data races
 34 |             routes.get(tagsPath, use: allTagsViewHandler)
 35 |         }
/Users/admin/builder/spi-builder-workspace/Sources/SteamPressCore/Controllers/BlogController.swift:34:39: warning: converting non-sendable function value to '@Sendable (Request) async throws -> View' may introduce data races
 32 |         if enableTagsPages {
 33 |             routes.get(tagsPath, BlogTag.parameter, use: tagViewHandler)
 34 |             routes.get(tagsPath, use: allTagsViewHandler)
    |                                       `- warning: converting non-sendable function value to '@Sendable (Request) async throws -> View' may introduce data races
 35 |         }
 36 |     }
/Users/admin/builder/spi-builder-workspace/Sources/SteamPressCore/Presenters/BlogPathCreator.swift:5:29: warning: static property 'blogPath' is not concurrency-safe because it is non-isolated global shared mutable state; this is an error in the Swift 6 language mode
 3 | public struct BlogPathCreator {
 4 |
 5 |     private(set) static var blogPath: String? = nil
   |                             |- warning: static property 'blogPath' is not concurrency-safe because it is non-isolated global shared mutable state; this is an error in the Swift 6 language mode
   |                             |- note: convert 'blogPath' to a 'let' constant to make 'Sendable' shared state immutable
   |                             |- note: annotate 'blogPath' with '@MainActor' if property should only be accessed from the main actor
   |                             `- note: disable concurrency-safety checks if accesses are protected by an external synchronization mechanism
 6 |
 7 |     public static func createPath(for path: String?, query: String? = nil) -> String {
/Users/admin/builder/spi-builder-workspace/Sources/SteamPressCore/Controllers/FeedController.swift:37:51: warning: converting non-sendable function value to '@Sendable (Request) async throws -> Response' may introduce data races
35 |     // MARK: - Route Collection
36 |     func boot(routes: RoutesBuilder) throws {
37 |         routes.get("atom.xml", use: atomGenerator.feedHandler)
   |                                                   `- warning: converting non-sendable function value to '@Sendable (Request) async throws -> Response' may introduce data races
38 |         routes.get("rss.xml", use: rssGenerator.feedHandler)
39 |     }
/Users/admin/builder/spi-builder-workspace/Sources/SteamPressCore/Controllers/FeedController.swift:38:49: warning: converting non-sendable function value to '@Sendable (Request) async throws -> Response' may introduce data races
36 |     func boot(routes: RoutesBuilder) throws {
37 |         routes.get("atom.xml", use: atomGenerator.feedHandler)
38 |         routes.get("rss.xml", use: rssGenerator.feedHandler)
   |                                                 `- warning: converting non-sendable function value to '@Sendable (Request) async throws -> Response' may introduce data races
39 |     }
40 | }
/Users/admin/builder/spi-builder-workspace/Sources/SteamPressCore/Models/BlogUser.swift:28:6: warning: type 'BlogUser.BlogUserType' does not conform to the 'Sendable' protocol; this is an error in the Swift 6 language mode
 26 |     public var resetPasswordRequired: Bool
 27 |
 28 |     @Field(key: "user_type")
    |      `- warning: type 'BlogUser.BlogUserType' does not conform to the 'Sendable' protocol; this is an error in the Swift 6 language mode
 29 |     public var type: BlogUserType
 30 |
    :
 77 |
 78 | public extension BlogUser {
 79 |     enum BlogUserType: String, Codable {
    |          `- note: consider making enum 'BlogUserType' conform to the 'Sendable' protocol
 80 |         case member
 81 |         case owner
[2079/2086] Compiling SteamPressCore BlogUser+Information.swift
/Users/admin/builder/spi-builder-workspace/Sources/SteamPressCore/Controllers/Admin/PostsAdminController.swift:7:34: warning: converting non-sendable function value to '@Sendable (Request) async throws -> View' may introduce data races
  5 |     // MARK: - Route setup
  6 |     func boot(routes: RoutesBuilder) throws {
  7 |         routes.get("posts", use: postsHandler)
    |                                  `- warning: converting non-sendable function value to '@Sendable (Request) async throws -> View' may introduce data races
  8 |         routes.get("posts", "new", use: createPostHandler)
  9 |         routes.post("posts", "new", use: createPostPostHandler)
/Users/admin/builder/spi-builder-workspace/Sources/SteamPressCore/Controllers/Admin/PostsAdminController.swift:8:41: warning: converting non-sendable function value to '@Sendable (Request) async throws -> View' may introduce data races
  6 |     func boot(routes: RoutesBuilder) throws {
  7 |         routes.get("posts", use: postsHandler)
  8 |         routes.get("posts", "new", use: createPostHandler)
    |                                         `- warning: converting non-sendable function value to '@Sendable (Request) async throws -> View' may introduce data races
  9 |         routes.post("posts", "new", use: createPostPostHandler)
 10 |         routes.get("posts", BlogPost.parameter, use: editPostHandler)
/Users/admin/builder/spi-builder-workspace/Sources/SteamPressCore/Controllers/Admin/PostsAdminController.swift:9:42: warning: converting non-sendable function value to '@Sendable (Request) async throws -> Response' may introduce data races
  7 |         routes.get("posts", use: postsHandler)
  8 |         routes.get("posts", "new", use: createPostHandler)
  9 |         routes.post("posts", "new", use: createPostPostHandler)
    |                                          `- warning: converting non-sendable function value to '@Sendable (Request) async throws -> Response' may introduce data races
 10 |         routes.get("posts", BlogPost.parameter, use: editPostHandler)
 11 |         routes.post("posts", BlogPost.parameter, use: editPostPostHandler)
/Users/admin/builder/spi-builder-workspace/Sources/SteamPressCore/Controllers/Admin/PostsAdminController.swift:10:54: warning: converting non-sendable function value to '@Sendable (Request) async throws -> View' may introduce data races
  8 |         routes.get("posts", "new", use: createPostHandler)
  9 |         routes.post("posts", "new", use: createPostPostHandler)
 10 |         routes.get("posts", BlogPost.parameter, use: editPostHandler)
    |                                                      `- warning: converting non-sendable function value to '@Sendable (Request) async throws -> View' may introduce data races
 11 |         routes.post("posts", BlogPost.parameter, use: editPostPostHandler)
 12 |         routes.get("posts", BlogPost.parameter, "delete", use: deletePostHandler)
/Users/admin/builder/spi-builder-workspace/Sources/SteamPressCore/Controllers/Admin/PostsAdminController.swift:11:55: warning: converting non-sendable function value to '@Sendable (Request) async throws -> Response' may introduce data races
  9 |         routes.post("posts", "new", use: createPostPostHandler)
 10 |         routes.get("posts", BlogPost.parameter, use: editPostHandler)
 11 |         routes.post("posts", BlogPost.parameter, use: editPostPostHandler)
    |                                                       `- warning: converting non-sendable function value to '@Sendable (Request) async throws -> Response' may introduce data races
 12 |         routes.get("posts", BlogPost.parameter, "delete", use: deletePostHandler)
 13 |     }
/Users/admin/builder/spi-builder-workspace/Sources/SteamPressCore/Controllers/Admin/PostsAdminController.swift:12:64: warning: converting non-sendable function value to '@Sendable (Request) async throws -> Response' may introduce data races
 10 |         routes.get("posts", BlogPost.parameter, use: editPostHandler)
 11 |         routes.post("posts", BlogPost.parameter, use: editPostPostHandler)
 12 |         routes.get("posts", BlogPost.parameter, "delete", use: deletePostHandler)
    |                                                                `- warning: converting non-sendable function value to '@Sendable (Request) async throws -> Response' may introduce data races
 13 |     }
 14 |
/Users/admin/builder/spi-builder-workspace/Sources/SteamPressCore/Controllers/Admin/TagsAdminController.swift:7:33: warning: converting non-sendable function value to '@Sendable (Request) async throws -> View' may introduce data races
 5 |     // MARK: - Route setup
 6 |     func boot(routes: RoutesBuilder) throws {
 7 |         routes.get("tags", use: tagsHandler)
   |                                 `- warning: converting non-sendable function value to '@Sendable (Request) async throws -> View' may introduce data races
 8 |         routes.get("tags", "new", use: createTagHandler)
 9 |         routes.post("tags", "new", use: createNewTagHandler)
/Users/admin/builder/spi-builder-workspace/Sources/SteamPressCore/Controllers/Admin/TagsAdminController.swift:8:40: warning: converting non-sendable function value to '@Sendable (Request) async throws -> View' may introduce data races
 6 |     func boot(routes: RoutesBuilder) throws {
 7 |         routes.get("tags", use: tagsHandler)
 8 |         routes.get("tags", "new", use: createTagHandler)
   |                                        `- warning: converting non-sendable function value to '@Sendable (Request) async throws -> View' may introduce data races
 9 |         routes.post("tags", "new", use: createNewTagHandler)
10 |         routes.get("tags", BlogTag.parameter, use: tagHandler)
/Users/admin/builder/spi-builder-workspace/Sources/SteamPressCore/Controllers/Admin/TagsAdminController.swift:9:41: warning: converting non-sendable function value to '@Sendable (Request) async throws -> Response' may introduce data races
 7 |         routes.get("tags", use: tagsHandler)
 8 |         routes.get("tags", "new", use: createTagHandler)
 9 |         routes.post("tags", "new", use: createNewTagHandler)
   |                                         `- warning: converting non-sendable function value to '@Sendable (Request) async throws -> Response' may introduce data races
10 |         routes.get("tags", BlogTag.parameter, use: tagHandler)
11 |         routes.post("tags", BlogTag.parameter, use: updateTagHandler)
/Users/admin/builder/spi-builder-workspace/Sources/SteamPressCore/Controllers/Admin/TagsAdminController.swift:10:52: warning: converting non-sendable function value to '@Sendable (Request) async throws -> View' may introduce data races
 8 |         routes.get("tags", "new", use: createTagHandler)
 9 |         routes.post("tags", "new", use: createNewTagHandler)
10 |         routes.get("tags", BlogTag.parameter, use: tagHandler)
   |                                                    `- warning: converting non-sendable function value to '@Sendable (Request) async throws -> View' may introduce data races
11 |         routes.post("tags", BlogTag.parameter, use: updateTagHandler)
12 |         routes.get("tags", BlogTag.parameter, "delete", use: deleteTagHandler)
/Users/admin/builder/spi-builder-workspace/Sources/SteamPressCore/Controllers/Admin/TagsAdminController.swift:11:53: warning: converting non-sendable function value to '@Sendable (Request) async throws -> Response' may introduce data races
 9 |         routes.post("tags", "new", use: createNewTagHandler)
10 |         routes.get("tags", BlogTag.parameter, use: tagHandler)
11 |         routes.post("tags", BlogTag.parameter, use: updateTagHandler)
   |                                                     `- warning: converting non-sendable function value to '@Sendable (Request) async throws -> Response' may introduce data races
12 |         routes.get("tags", BlogTag.parameter, "delete", use: deleteTagHandler)
13 |     }
/Users/admin/builder/spi-builder-workspace/Sources/SteamPressCore/Controllers/Admin/TagsAdminController.swift:12:62: warning: converting non-sendable function value to '@Sendable (Request) async throws -> Response' may introduce data races
10 |         routes.get("tags", BlogTag.parameter, use: tagHandler)
11 |         routes.post("tags", BlogTag.parameter, use: updateTagHandler)
12 |         routes.get("tags", BlogTag.parameter, "delete", use: deleteTagHandler)
   |                                                              `- warning: converting non-sendable function value to '@Sendable (Request) async throws -> Response' may introduce data races
13 |     }
14 |
/Users/admin/builder/spi-builder-workspace/Sources/SteamPressCore/Models/BlogTag.swift:16:6: warning: type 'BlogTag.TagVisibility' does not conform to the 'Sendable' protocol; this is an error in the Swift 6 language mode
14 |     public var name: String
15 |
16 |     @Field(key: "visibility")
   |      `- warning: type 'BlogTag.TagVisibility' does not conform to the 'Sendable' protocol; this is an error in the Swift 6 language mode
17 |     public var visibility: TagVisibility
18 |
   :
44 |
45 | extension BlogTag {
46 |     public enum TagVisibility: String, Codable {
   |                 `- note: consider making enum 'TagVisibility' conform to the 'Sendable' protocol
47 |         case `public`
48 |         case `private`
/Users/admin/builder/spi-builder-workspace/Sources/SteamPressCore/Controllers/Admin/UsersAdminController.swift:7:36: warning: converting non-sendable function value to '@Sendable (Request) async throws -> View' may introduce data races
  5 |     // MARK: - Route setup
  6 |     func boot(routes: RoutesBuilder) throws {
  7 |         routes.get("members", use: membersHandler)
    |                                    `- warning: converting non-sendable function value to '@Sendable (Request) async throws -> View' may introduce data races
  8 |         routes.get("members", "new", use: createMemberHandler)
  9 |         routes.post("members", "new", use: createNewMemberHandler)
/Users/admin/builder/spi-builder-workspace/Sources/SteamPressCore/Controllers/Admin/UsersAdminController.swift:8:43: warning: converting non-sendable function value to '@Sendable (Request) async throws -> View' may introduce data races
  6 |     func boot(routes: RoutesBuilder) throws {
  7 |         routes.get("members", use: membersHandler)
  8 |         routes.get("members", "new", use: createMemberHandler)
    |                                           `- warning: converting non-sendable function value to '@Sendable (Request) async throws -> View' may introduce data races
  9 |         routes.post("members", "new", use: createNewMemberHandler)
 10 |         routes.get("members", BlogUser.parameter, use: memberHandler)
/Users/admin/builder/spi-builder-workspace/Sources/SteamPressCore/Controllers/Admin/UsersAdminController.swift:9:44: warning: converting non-sendable function value to '@Sendable (Request) async throws -> Response' may introduce data races
  7 |         routes.get("members", use: membersHandler)
  8 |         routes.get("members", "new", use: createMemberHandler)
  9 |         routes.post("members", "new", use: createNewMemberHandler)
    |                                            `- warning: converting non-sendable function value to '@Sendable (Request) async throws -> Response' may introduce data races
 10 |         routes.get("members", BlogUser.parameter, use: memberHandler)
 11 |         routes.post("members", BlogUser.parameter, use: updateMemberHandler)
/Users/admin/builder/spi-builder-workspace/Sources/SteamPressCore/Controllers/Admin/UsersAdminController.swift:10:56: warning: converting non-sendable function value to '@Sendable (Request) async throws -> View' may introduce data races
  8 |         routes.get("members", "new", use: createMemberHandler)
  9 |         routes.post("members", "new", use: createNewMemberHandler)
 10 |         routes.get("members", BlogUser.parameter, use: memberHandler)
    |                                                        `- warning: converting non-sendable function value to '@Sendable (Request) async throws -> View' may introduce data races
 11 |         routes.post("members", BlogUser.parameter, use: updateMemberHandler)
 12 |         routes.get("members", BlogUser.parameter, "delete", use: deleteMemberHandler)
/Users/admin/builder/spi-builder-workspace/Sources/SteamPressCore/Controllers/Admin/UsersAdminController.swift:11:57: warning: converting non-sendable function value to '@Sendable (Request) async throws -> Response' may introduce data races
  9 |         routes.post("members", "new", use: createNewMemberHandler)
 10 |         routes.get("members", BlogUser.parameter, use: memberHandler)
 11 |         routes.post("members", BlogUser.parameter, use: updateMemberHandler)
    |                                                         `- warning: converting non-sendable function value to '@Sendable (Request) async throws -> Response' may introduce data races
 12 |         routes.get("members", BlogUser.parameter, "delete", use: deleteMemberHandler)
 13 |     }
/Users/admin/builder/spi-builder-workspace/Sources/SteamPressCore/Controllers/Admin/UsersAdminController.swift:12:66: warning: converting non-sendable function value to '@Sendable (Request) async throws -> Response' may introduce data races
 10 |         routes.get("members", BlogUser.parameter, use: memberHandler)
 11 |         routes.post("members", BlogUser.parameter, use: updateMemberHandler)
 12 |         routes.get("members", BlogUser.parameter, "delete", use: deleteMemberHandler)
    |                                                                  `- warning: converting non-sendable function value to '@Sendable (Request) async throws -> Response' may introduce data races
 13 |     }
 14 |
/Users/admin/builder/spi-builder-workspace/Sources/SteamPressCore/Controllers/BlogController.swift:24:25: warning: converting non-sendable function value to '@Sendable (Request) async throws -> View' may introduce data races
 22 |     // MARK: - Add routes
 23 |     func boot(routes: RoutesBuilder) throws {
 24 |         routes.get(use: indexHandler)
    |                         `- warning: converting non-sendable function value to '@Sendable (Request) async throws -> View' may introduce data races
 25 |         routes.get(blogPostsPath, ":blogSlug", use: blogPostHandler)
 26 |         routes.get(blogPostsPath, use: blogPostIndexRedirectHandler)
/Users/admin/builder/spi-builder-workspace/Sources/SteamPressCore/Controllers/BlogController.swift:25:53: warning: converting non-sendable function value to '@Sendable (Request) async throws -> View' may introduce data races
 23 |     func boot(routes: RoutesBuilder) throws {
 24 |         routes.get(use: indexHandler)
 25 |         routes.get(blogPostsPath, ":blogSlug", use: blogPostHandler)
    |                                                     `- warning: converting non-sendable function value to '@Sendable (Request) async throws -> View' may introduce data races
 26 |         routes.get(blogPostsPath, use: blogPostIndexRedirectHandler)
 27 |         routes.get(searchPath, use: searchHandler)
/Users/admin/builder/spi-builder-workspace/Sources/SteamPressCore/Controllers/BlogController.swift:26:40: warning: converting non-sendable function value to '@Sendable (Request) async throws -> Response' may introduce data races
 24 |         routes.get(use: indexHandler)
 25 |         routes.get(blogPostsPath, ":blogSlug", use: blogPostHandler)
 26 |         routes.get(blogPostsPath, use: blogPostIndexRedirectHandler)
    |                                        `- warning: converting non-sendable function value to '@Sendable (Request) async throws -> Response' may introduce data races
 27 |         routes.get(searchPath, use: searchHandler)
 28 |         if enableAuthorPages {
/Users/admin/builder/spi-builder-workspace/Sources/SteamPressCore/Controllers/BlogController.swift:27:37: warning: converting non-sendable function value to '@Sendable (Request) async throws -> View' may introduce data races
 25 |         routes.get(blogPostsPath, ":blogSlug", use: blogPostHandler)
 26 |         routes.get(blogPostsPath, use: blogPostIndexRedirectHandler)
 27 |         routes.get(searchPath, use: searchHandler)
    |                                     `- warning: converting non-sendable function value to '@Sendable (Request) async throws -> View' may introduce data races
 28 |         if enableAuthorPages {
 29 |             routes.get(authorsPath, use: allAuthorsViewHandler)
/Users/admin/builder/spi-builder-workspace/Sources/SteamPressCore/Controllers/BlogController.swift:29:42: warning: converting non-sendable function value to '@Sendable (Request) async throws -> View' may introduce data races
 27 |         routes.get(searchPath, use: searchHandler)
 28 |         if enableAuthorPages {
 29 |             routes.get(authorsPath, use: allAuthorsViewHandler)
    |                                          `- warning: converting non-sendable function value to '@Sendable (Request) async throws -> View' may introduce data races
 30 |             routes.get(authorsPath, ":authorUsername", use: authorViewHandler)
 31 |         }
/Users/admin/builder/spi-builder-workspace/Sources/SteamPressCore/Controllers/BlogController.swift:30:61: warning: converting non-sendable function value to '@Sendable (Request) async throws -> View' may introduce data races
 28 |         if enableAuthorPages {
 29 |             routes.get(authorsPath, use: allAuthorsViewHandler)
 30 |             routes.get(authorsPath, ":authorUsername", use: authorViewHandler)
    |                                                             `- warning: converting non-sendable function value to '@Sendable (Request) async throws -> View' may introduce data races
 31 |         }
 32 |         if enableTagsPages {
/Users/admin/builder/spi-builder-workspace/Sources/SteamPressCore/Controllers/BlogController.swift:33:58: warning: converting non-sendable function value to '@Sendable (Request) async throws -> View' may introduce data races
 31 |         }
 32 |         if enableTagsPages {
 33 |             routes.get(tagsPath, BlogTag.parameter, use: tagViewHandler)
    |                                                          `- warning: converting non-sendable function value to '@Sendable (Request) async throws -> View' may introduce data races
 34 |             routes.get(tagsPath, use: allTagsViewHandler)
 35 |         }
/Users/admin/builder/spi-builder-workspace/Sources/SteamPressCore/Controllers/BlogController.swift:34:39: warning: converting non-sendable function value to '@Sendable (Request) async throws -> View' may introduce data races
 32 |         if enableTagsPages {
 33 |             routes.get(tagsPath, BlogTag.parameter, use: tagViewHandler)
 34 |             routes.get(tagsPath, use: allTagsViewHandler)
    |                                       `- warning: converting non-sendable function value to '@Sendable (Request) async throws -> View' may introduce data races
 35 |         }
 36 |     }
/Users/admin/builder/spi-builder-workspace/Sources/SteamPressCore/Presenters/BlogPathCreator.swift:5:29: warning: static property 'blogPath' is not concurrency-safe because it is non-isolated global shared mutable state; this is an error in the Swift 6 language mode
 3 | public struct BlogPathCreator {
 4 |
 5 |     private(set) static var blogPath: String? = nil
   |                             |- warning: static property 'blogPath' is not concurrency-safe because it is non-isolated global shared mutable state; this is an error in the Swift 6 language mode
   |                             |- note: convert 'blogPath' to a 'let' constant to make 'Sendable' shared state immutable
   |                             |- note: annotate 'blogPath' with '@MainActor' if property should only be accessed from the main actor
   |                             `- note: disable concurrency-safety checks if accesses are protected by an external synchronization mechanism
 6 |
 7 |     public static func createPath(for path: String?, query: String? = nil) -> String {
/Users/admin/builder/spi-builder-workspace/Sources/SteamPressCore/Controllers/FeedController.swift:37:51: warning: converting non-sendable function value to '@Sendable (Request) async throws -> Response' may introduce data races
35 |     // MARK: - Route Collection
36 |     func boot(routes: RoutesBuilder) throws {
37 |         routes.get("atom.xml", use: atomGenerator.feedHandler)
   |                                                   `- warning: converting non-sendable function value to '@Sendable (Request) async throws -> Response' may introduce data races
38 |         routes.get("rss.xml", use: rssGenerator.feedHandler)
39 |     }
/Users/admin/builder/spi-builder-workspace/Sources/SteamPressCore/Controllers/FeedController.swift:38:49: warning: converting non-sendable function value to '@Sendable (Request) async throws -> Response' may introduce data races
36 |     func boot(routes: RoutesBuilder) throws {
37 |         routes.get("atom.xml", use: atomGenerator.feedHandler)
38 |         routes.get("rss.xml", use: rssGenerator.feedHandler)
   |                                                 `- warning: converting non-sendable function value to '@Sendable (Request) async throws -> Response' may introduce data races
39 |     }
40 | }
/Users/admin/builder/spi-builder-workspace/Sources/SteamPressCore/Models/BlogUser.swift:28:6: warning: type 'BlogUser.BlogUserType' does not conform to the 'Sendable' protocol; this is an error in the Swift 6 language mode
 26 |     public var resetPasswordRequired: Bool
 27 |
 28 |     @Field(key: "user_type")
    |      `- warning: type 'BlogUser.BlogUserType' does not conform to the 'Sendable' protocol; this is an error in the Swift 6 language mode
 29 |     public var type: BlogUserType
 30 |
    :
 77 |
 78 | public extension BlogUser {
 79 |     enum BlogUserType: String, Codable {
    |          `- note: consider making enum 'BlogUserType' conform to the 'Sendable' protocol
 80 |         case member
 81 |         case owner
[2080/2086] Compiling SteamPressCore URL+Converters.swift
/Users/admin/builder/spi-builder-workspace/Sources/SteamPressCore/Presenters/BlogPathCreator.swift:5:29: warning: static property 'blogPath' is not concurrency-safe because it is non-isolated global shared mutable state; this is an error in the Swift 6 language mode
 3 | public struct BlogPathCreator {
 4 |
 5 |     private(set) static var blogPath: String? = nil
   |                             |- warning: static property 'blogPath' is not concurrency-safe because it is non-isolated global shared mutable state; this is an error in the Swift 6 language mode
   |                             |- note: convert 'blogPath' to a 'let' constant to make 'Sendable' shared state immutable
   |                             |- note: annotate 'blogPath' with '@MainActor' if property should only be accessed from the main actor
   |                             `- note: disable concurrency-safety checks if accesses are protected by an external synchronization mechanism
 6 |
 7 |     public static func createPath(for path: String?, query: String? = nil) -> String {
/Users/admin/builder/spi-builder-workspace/Sources/SteamPressCore/Models/BlogUser.swift:28:6: warning: type 'BlogUser.BlogUserType' does not conform to the 'Sendable' protocol; this is an error in the Swift 6 language mode
 26 |     public var resetPasswordRequired: Bool
 27 |
 28 |     @Field(key: "user_type")
    |      `- warning: type 'BlogUser.BlogUserType' does not conform to the 'Sendable' protocol; this is an error in the Swift 6 language mode
 29 |     public var type: BlogUserType
 30 |
    :
 77 |
 78 | public extension BlogUser {
 79 |     enum BlogUserType: String, Codable {
    |          `- note: consider making enum 'BlogUserType' conform to the 'Sendable' protocol
 80 |         case member
 81 |         case owner
[2081/2086] Compiling SteamPressCore AtomFeedGenerator.swift
/Users/admin/builder/spi-builder-workspace/Sources/SteamPressCore/Presenters/BlogPathCreator.swift:5:29: warning: static property 'blogPath' is not concurrency-safe because it is non-isolated global shared mutable state; this is an error in the Swift 6 language mode
 3 | public struct BlogPathCreator {
 4 |
 5 |     private(set) static var blogPath: String? = nil
   |                             |- warning: static property 'blogPath' is not concurrency-safe because it is non-isolated global shared mutable state; this is an error in the Swift 6 language mode
   |                             |- note: convert 'blogPath' to a 'let' constant to make 'Sendable' shared state immutable
   |                             |- note: annotate 'blogPath' with '@MainActor' if property should only be accessed from the main actor
   |                             `- note: disable concurrency-safety checks if accesses are protected by an external synchronization mechanism
 6 |
 7 |     public static func createPath(for path: String?, query: String? = nil) -> String {
/Users/admin/builder/spi-builder-workspace/Sources/SteamPressCore/Models/BlogUser.swift:28:6: warning: type 'BlogUser.BlogUserType' does not conform to the 'Sendable' protocol; this is an error in the Swift 6 language mode
 26 |     public var resetPasswordRequired: Bool
 27 |
 28 |     @Field(key: "user_type")
    |      `- warning: type 'BlogUser.BlogUserType' does not conform to the 'Sendable' protocol; this is an error in the Swift 6 language mode
 29 |     public var type: BlogUserType
 30 |
    :
 77 |
 78 | public extension BlogUser {
 79 |     enum BlogUserType: String, Codable {
    |          `- note: consider making enum 'BlogUserType' conform to the 'Sendable' protocol
 80 |         case member
 81 |         case owner
[2082/2086] Compiling SteamPressCore RSSFeedGenerator.swift
/Users/admin/builder/spi-builder-workspace/Sources/SteamPressCore/Presenters/BlogPathCreator.swift:5:29: warning: static property 'blogPath' is not concurrency-safe because it is non-isolated global shared mutable state; this is an error in the Swift 6 language mode
 3 | public struct BlogPathCreator {
 4 |
 5 |     private(set) static var blogPath: String? = nil
   |                             |- warning: static property 'blogPath' is not concurrency-safe because it is non-isolated global shared mutable state; this is an error in the Swift 6 language mode
   |                             |- note: convert 'blogPath' to a 'let' constant to make 'Sendable' shared state immutable
   |                             |- note: annotate 'blogPath' with '@MainActor' if property should only be accessed from the main actor
   |                             `- note: disable concurrency-safety checks if accesses are protected by an external synchronization mechanism
 6 |
 7 |     public static func createPath(for path: String?, query: String? = nil) -> String {
/Users/admin/builder/spi-builder-workspace/Sources/SteamPressCore/Models/BlogUser.swift:28:6: warning: type 'BlogUser.BlogUserType' does not conform to the 'Sendable' protocol; this is an error in the Swift 6 language mode
 26 |     public var resetPasswordRequired: Bool
 27 |
 28 |     @Field(key: "user_type")
    |      `- warning: type 'BlogUser.BlogUserType' does not conform to the 'Sendable' protocol; this is an error in the Swift 6 language mode
 29 |     public var type: BlogUserType
 30 |
    :
 77 |
 78 | public extension BlogUser {
 79 |     enum BlogUserType: String, Codable {
    |          `- note: consider making enum 'BlogUserType' conform to the 'Sendable' protocol
 80 |         case member
 81 |         case owner
[2083/2086] Compiling SteamPressCore BlogAuthSessionsMiddleware.swift
/Users/admin/builder/spi-builder-workspace/Sources/SteamPressCore/Presenters/BlogPathCreator.swift:5:29: warning: static property 'blogPath' is not concurrency-safe because it is non-isolated global shared mutable state; this is an error in the Swift 6 language mode
 3 | public struct BlogPathCreator {
 4 |
 5 |     private(set) static var blogPath: String? = nil
   |                             |- warning: static property 'blogPath' is not concurrency-safe because it is non-isolated global shared mutable state; this is an error in the Swift 6 language mode
   |                             |- note: convert 'blogPath' to a 'let' constant to make 'Sendable' shared state immutable
   |                             |- note: annotate 'blogPath' with '@MainActor' if property should only be accessed from the main actor
   |                             `- note: disable concurrency-safety checks if accesses are protected by an external synchronization mechanism
 6 |
 7 |     public static func createPath(for path: String?, query: String? = nil) -> String {
/Users/admin/builder/spi-builder-workspace/Sources/SteamPressCore/Models/BlogUser.swift:28:6: warning: type 'BlogUser.BlogUserType' does not conform to the 'Sendable' protocol; this is an error in the Swift 6 language mode
 26 |     public var resetPasswordRequired: Bool
 27 |
 28 |     @Field(key: "user_type")
    |      `- warning: type 'BlogUser.BlogUserType' does not conform to the 'Sendable' protocol; this is an error in the Swift 6 language mode
 29 |     public var type: BlogUserType
 30 |
    :
 77 |
 78 | public extension BlogUser {
 79 |     enum BlogUserType: String, Codable {
    |          `- note: consider making enum 'BlogUserType' conform to the 'Sendable' protocol
 80 |         case member
 81 |         case owner
[2084/2086] Compiling SteamPressCore BlogLoginRedirectAuthMiddleware.swift
/Users/admin/builder/spi-builder-workspace/Sources/SteamPressCore/Presenters/BlogPathCreator.swift:5:29: warning: static property 'blogPath' is not concurrency-safe because it is non-isolated global shared mutable state; this is an error in the Swift 6 language mode
 3 | public struct BlogPathCreator {
 4 |
 5 |     private(set) static var blogPath: String? = nil
   |                             |- warning: static property 'blogPath' is not concurrency-safe because it is non-isolated global shared mutable state; this is an error in the Swift 6 language mode
   |                             |- note: convert 'blogPath' to a 'let' constant to make 'Sendable' shared state immutable
   |                             |- note: annotate 'blogPath' with '@MainActor' if property should only be accessed from the main actor
   |                             `- note: disable concurrency-safety checks if accesses are protected by an external synchronization mechanism
 6 |
 7 |     public static func createPath(for path: String?, query: String? = nil) -> String {
/Users/admin/builder/spi-builder-workspace/Sources/SteamPressCore/Models/BlogUser.swift:28:6: warning: type 'BlogUser.BlogUserType' does not conform to the 'Sendable' protocol; this is an error in the Swift 6 language mode
 26 |     public var resetPasswordRequired: Bool
 27 |
 28 |     @Field(key: "user_type")
    |      `- warning: type 'BlogUser.BlogUserType' does not conform to the 'Sendable' protocol; this is an error in the Swift 6 language mode
 29 |     public var type: BlogUserType
 30 |
    :
 77 |
 78 | public extension BlogUser {
 79 |     enum BlogUserType: String, Codable {
    |          `- note: consider making enum 'BlogUserType' conform to the 'Sendable' protocol
 80 |         case member
 81 |         case owner
[2085/2086] Compiling SteamPressCore BlogRememberMeMiddleware.swift
/Users/admin/builder/spi-builder-workspace/Sources/SteamPressCore/Presenters/BlogPathCreator.swift:5:29: warning: static property 'blogPath' is not concurrency-safe because it is non-isolated global shared mutable state; this is an error in the Swift 6 language mode
 3 | public struct BlogPathCreator {
 4 |
 5 |     private(set) static var blogPath: String? = nil
   |                             |- warning: static property 'blogPath' is not concurrency-safe because it is non-isolated global shared mutable state; this is an error in the Swift 6 language mode
   |                             |- note: convert 'blogPath' to a 'let' constant to make 'Sendable' shared state immutable
   |                             |- note: annotate 'blogPath' with '@MainActor' if property should only be accessed from the main actor
   |                             `- note: disable concurrency-safety checks if accesses are protected by an external synchronization mechanism
 6 |
 7 |     public static func createPath(for path: String?, query: String? = nil) -> String {
/Users/admin/builder/spi-builder-workspace/Sources/SteamPressCore/Models/BlogUser.swift:28:6: warning: type 'BlogUser.BlogUserType' does not conform to the 'Sendable' protocol; this is an error in the Swift 6 language mode
 26 |     public var resetPasswordRequired: Bool
 27 |
 28 |     @Field(key: "user_type")
    |      `- warning: type 'BlogUser.BlogUserType' does not conform to the 'Sendable' protocol; this is an error in the Swift 6 language mode
 29 |     public var type: BlogUserType
 30 |
    :
 77 |
 78 | public extension BlogUser {
 79 |     enum BlogUserType: String, Codable {
    |          `- note: consider making enum 'BlogUserType' conform to the 'Sendable' protocol
 80 |         case member
 81 |         case owner
[2086/2086] Compiling SteamPressCore BlogPostMigration.swift
/Users/admin/builder/spi-builder-workspace/Sources/SteamPressCore/Presenters/BlogPathCreator.swift:5:29: warning: static property 'blogPath' is not concurrency-safe because it is non-isolated global shared mutable state; this is an error in the Swift 6 language mode
 3 | public struct BlogPathCreator {
 4 |
 5 |     private(set) static var blogPath: String? = nil
   |                             |- warning: static property 'blogPath' is not concurrency-safe because it is non-isolated global shared mutable state; this is an error in the Swift 6 language mode
   |                             |- note: convert 'blogPath' to a 'let' constant to make 'Sendable' shared state immutable
   |                             |- note: annotate 'blogPath' with '@MainActor' if property should only be accessed from the main actor
   |                             `- note: disable concurrency-safety checks if accesses are protected by an external synchronization mechanism
 6 |
 7 |     public static func createPath(for path: String?, query: String? = nil) -> String {
/Users/admin/builder/spi-builder-workspace/Sources/SteamPressCore/Models/BlogUser.swift:28:6: warning: type 'BlogUser.BlogUserType' does not conform to the 'Sendable' protocol; this is an error in the Swift 6 language mode
 26 |     public var resetPasswordRequired: Bool
 27 |
 28 |     @Field(key: "user_type")
    |      `- warning: type 'BlogUser.BlogUserType' does not conform to the 'Sendable' protocol; this is an error in the Swift 6 language mode
 29 |     public var type: BlogUserType
 30 |
    :
 77 |
 78 | public extension BlogUser {
 79 |     enum BlogUserType: String, Codable {
    |          `- note: consider making enum 'BlogUserType' conform to the 'Sendable' protocol
 80 |         case member
 81 |         case owner
Build complete! (157.84s)
Fetching https://github.com/vapor/fluent-sqlite-driver
Fetching https://github.com/marmelroy/Zip.git
Fetching https://github.com/vapor/fluent.git
Fetching https://github.com/binarybirds/spec
Fetching https://github.com/vapor/vapor.git
[1/1963] Fetching zip
[159/3255] Fetching zip, fluent-sqlite-driver
[302/3335] Fetching zip, fluent-sqlite-driver, spec
[1727/16715] Fetching zip, fluent-sqlite-driver, spec, fluent
[6985/85409] Fetching zip, fluent-sqlite-driver, spec, fluent, vapor
Fetched https://github.com/marmelroy/Zip.git from cache (1.66s)
[28491/83446] Fetching fluent-sqlite-driver, spec, fluent, vapor
Fetched https://github.com/vapor/fluent-sqlite-driver from cache (2.61s)
Fetched https://github.com/binarybirds/spec from cache (2.61s)
Fetched https://github.com/vapor/fluent.git from cache (2.61s)
Fetched https://github.com/vapor/vapor.git from cache (2.61s)
Computing version for https://github.com/marmelroy/Zip.git
Computed https://github.com/marmelroy/Zip.git at 2.1.2 (0.68s)
Computing version for https://github.com/binarybirds/spec
Computed https://github.com/binarybirds/spec at 1.2.2 (0.66s)
Computing version for https://github.com/vapor/fluent-sqlite-driver
Computed https://github.com/vapor/fluent-sqlite-driver at 4.7.3 (0.52s)
Fetching https://github.com/apple/swift-log.git
Fetching https://github.com/vapor/fluent-kit.git
Fetching https://github.com/vapor/sqlite-kit.git
[1/2112] Fetching sqlite-kit
[192/5473] Fetching sqlite-kit, swift-log
[773/17702] Fetching sqlite-kit, swift-log, fluent-kit
Fetched https://github.com/apple/swift-log.git from cache (1.35s)
Fetched https://github.com/vapor/sqlite-kit.git from cache (1.36s)
Fetched https://github.com/vapor/fluent-kit.git from cache (1.36s)
Computing version for https://github.com/apple/swift-log.git
Computed https://github.com/apple/swift-log.git at 1.5.4 (0.65s)
Computing version for https://github.com/vapor/sqlite-kit.git
Computed https://github.com/vapor/sqlite-kit.git at 4.5.2 (0.52s)
Fetching https://github.com/vapor/sql-kit.git
Fetching https://github.com/vapor/async-kit.git
Fetching https://github.com/apple/swift-nio.git
Fetching https://github.com/vapor/sqlite-nio.git
[1/2335] Fetching async-kit
[48/8112] Fetching async-kit, sql-kit
[2295/9474] Fetching async-kit, sql-kit, sqlite-nio
[8127/75084] Fetching async-kit, sql-kit, sqlite-nio, swift-nio
Fetched https://github.com/vapor/sqlite-nio.git from cache (3.62s)
Fetched https://github.com/vapor/async-kit.git from cache (3.62s)
Fetched https://github.com/apple/swift-nio.git from cache (3.62s)
Fetched https://github.com/vapor/sql-kit.git from cache (3.62s)
Computing version for https://github.com/vapor/async-kit.git
Computed https://github.com/vapor/async-kit.git at 1.19.0 (0.66s)
Fetching https://github.com/apple/swift-algorithms.git
Fetching https://github.com/apple/swift-collections.git
[1/5228] Fetching swift-algorithms
[106/19257] Fetching swift-algorithms, swift-collections
Fetched https://github.com/apple/swift-algorithms.git from cache (1.73s)
Fetched https://github.com/apple/swift-collections.git from cache (1.73s)
Computing version for https://github.com/apple/swift-nio.git
Computed https://github.com/apple/swift-nio.git at 2.65.0 (0.65s)
Fetching https://github.com/apple/swift-system.git
Fetching https://github.com/apple/swift-atomics.git
[1/1563] Fetching swift-atomics
[33/5086] Fetching swift-atomics, swift-system
Fetched https://github.com/apple/swift-system.git from cache (1.10s)
Fetched https://github.com/apple/swift-atomics.git from cache (1.10s)
Computing version for https://github.com/vapor/fluent-kit.git
Computed https://github.com/vapor/fluent-kit.git at 1.48.5 (0.54s)
Computing version for https://github.com/vapor/sql-kit.git
Computed https://github.com/vapor/sql-kit.git at 3.30.0 (0.52s)
Computing version for https://github.com/apple/swift-collections.git
Computed https://github.com/apple/swift-collections.git at 1.1.0 (0.79s)
Computing version for https://github.com/apple/swift-algorithms.git
Computed https://github.com/apple/swift-algorithms.git at 1.2.0 (0.64s)
Fetching https://github.com/apple/swift-numerics.git
[1/5472] Fetching swift-numerics
Fetched https://github.com/apple/swift-numerics.git from cache (1.24s)
Computing version for https://github.com/apple/swift-atomics.git
Computed https://github.com/apple/swift-atomics.git at 1.2.0 (0.53s)
Computing version for https://github.com/vapor/sqlite-nio.git
Computed https://github.com/vapor/sqlite-nio.git at 1.10.1 (0.55s)
Computing version for https://github.com/apple/swift-system.git
Computed https://github.com/apple/swift-system.git at 1.3.0 (0.51s)
Computing version for https://github.com/apple/swift-numerics.git
Computed https://github.com/apple/swift-numerics.git at 1.0.2 (0.65s)
Computing version for https://github.com/vapor/fluent.git
Computed https://github.com/vapor/fluent.git at 4.11.0 (0.51s)
Computing version for https://github.com/vapor/vapor.git
Computed https://github.com/vapor/vapor.git at 4.101.1 (0.74s)
Fetching https://github.com/apple/swift-nio-extras.git
Fetching https://github.com/apple/swift-metrics.git
Fetching https://github.com/vapor/websocket-kit.git
Fetching https://github.com/vapor/multipart-kit.git
Fetching https://github.com/apple/swift-nio-http2.git
Fetching https://github.com/apple/swift-nio-ssl.git
Fetching https://github.com/vapor/routing-kit.git
[1/2473] Fetching websocket-kit
[100/23163] Fetching websocket-kit, routing-kit
[101/27996] Fetching websocket-kit, routing-kit, swift-nio-extras
[150/30024] Fetching websocket-kit, routing-kit, swift-nio-extras, swift-metrics
[280/31869] Fetching websocket-kit, routing-kit, swift-nio-extras, swift-metrics, multipart-kit
[2152/42102] Fetching websocket-kit, routing-kit, swift-nio-extras, swift-metrics, multipart-kit, swift-nio-http2
[11397/54370] Fetching websocket-kit, routing-kit, swift-nio-extras, swift-metrics, multipart-kit, swift-nio-http2, swift-nio-ssl
Fetched https://github.com/apple/swift-metrics.git from cache (1.16s)
Fetching https://github.com/apple/swift-crypto.git
[11144/52342] Fetching websocket-kit, routing-kit, swift-nio-extras, multipart-kit, swift-nio-http2, swift-nio-ssl
Fetched https://github.com/apple/swift-nio-extras.git from cache (1.24s)
Fetching https://github.com/vapor/console-kit.git
[13218/47509] Fetching websocket-kit, routing-kit, multipart-kit, swift-nio-http2, swift-nio-ssl
Fetched https://github.com/vapor/routing-kit.git from cache (1.69s)
Fetching https://github.com/swift-server/async-http-client.git
[16763/26819] Fetching websocket-kit, multipart-kit, swift-nio-http2, swift-nio-ssl
[25486/34673] Fetching websocket-kit, multipart-kit, swift-nio-http2, swift-nio-ssl, swift-crypto
[25565/40074] Fetching websocket-kit, multipart-kit, swift-nio-http2, swift-nio-ssl, swift-crypto, console-kit
Fetched https://github.com/apple/swift-nio-ssl.git from cache (2.03s)
Fetched https://github.com/apple/swift-nio-http2.git from cache (2.03s)
[3594/17573] Fetching websocket-kit, multipart-kit, swift-crypto, console-kit
Fetched https://github.com/vapor/websocket-kit.git from cache (2.14s)
Fetched https://github.com/vapor/multipart-kit.git from cache (2.14s)
[1386/13255] Fetching swift-crypto, console-kit
Fetched https://github.com/vapor/console-kit.git from cache (1.13s)
[1650/7854] Fetching swift-crypto
[1965/20518] Fetching swift-crypto, async-http-client
Fetched https://github.com/apple/swift-crypto.git from cache (1.66s)
[1647/12664] Fetching async-http-client
Fetched https://github.com/swift-server/async-http-client.git from cache (1.42s)
Computing version for https://github.com/vapor/routing-kit.git
Computed https://github.com/vapor/routing-kit.git at 4.9.1 (0.54s)
Computing version for https://github.com/vapor/websocket-kit.git
Computed https://github.com/vapor/websocket-kit.git at 2.15.0 (0.65s)
Fetching https://github.com/apple/swift-nio-transport-services.git
[1/2105] Fetching swift-nio-transport-services
Fetched https://github.com/apple/swift-nio-transport-services.git from cache (1.07s)
Computing version for https://github.com/apple/swift-nio-ssl.git
Computed https://github.com/apple/swift-nio-ssl.git at 2.26.0 (0.69s)
Computing version for https://github.com/vapor/console-kit.git
Computed https://github.com/vapor/console-kit.git at 4.14.3 (0.54s)
Computing version for https://github.com/apple/swift-nio-extras.git
Computed https://github.com/apple/swift-nio-extras.git at 1.22.0 (0.68s)
Fetching https://github.com/apple/swift-http-types
[5/414] Fetching swift-http-types
Fetched https://github.com/apple/swift-http-types from cache (0.84s)
Computing version for https://github.com/apple/swift-nio-http2.git
Computed https://github.com/apple/swift-nio-http2.git at 1.31.0 (0.51s)
Computing version for https://github.com/swift-server/async-http-client.git
Computed https://github.com/swift-server/async-http-client.git at 1.21.1 (0.52s)
Computing version for https://github.com/apple/swift-nio-transport-services.git
Computed https://github.com/apple/swift-nio-transport-services.git at 1.21.0 (0.50s)
Computing version for https://github.com/apple/swift-http-types
Computed https://github.com/apple/swift-http-types at 1.1.0 (0.63s)
Computing version for https://github.com/vapor/multipart-kit.git
Computed https://github.com/vapor/multipart-kit.git at 4.7.0 (0.51s)
Computing version for https://github.com/apple/swift-metrics.git
Computed https://github.com/apple/swift-metrics.git at 2.4.4 (0.64s)
Computing version for https://github.com/apple/swift-crypto.git
Computed https://github.com/apple/swift-crypto.git at 3.4.0 (0.52s)
Creating working copy for https://github.com/binarybirds/spec
Working copy of https://github.com/binarybirds/spec resolved at 1.2.2
Creating working copy for https://github.com/vapor/console-kit.git
Working copy of https://github.com/vapor/console-kit.git resolved at 4.14.3
Creating working copy for https://github.com/apple/swift-algorithms.git
Working copy of https://github.com/apple/swift-algorithms.git resolved at 1.2.0
Creating working copy for https://github.com/vapor/fluent-kit.git
Working copy of https://github.com/vapor/fluent-kit.git resolved at 1.48.5
Creating working copy for https://github.com/apple/swift-http-types
Working copy of https://github.com/apple/swift-http-types resolved at 1.1.0
Creating working copy for https://github.com/apple/swift-log.git
Working copy of https://github.com/apple/swift-log.git resolved at 1.5.4
Creating working copy for https://github.com/vapor/fluent-sqlite-driver
Working copy of https://github.com/vapor/fluent-sqlite-driver resolved at 4.7.3
Creating working copy for https://github.com/apple/swift-nio-extras.git
Working copy of https://github.com/apple/swift-nio-extras.git resolved at 1.22.0
Creating working copy for https://github.com/vapor/routing-kit.git
Working copy of https://github.com/vapor/routing-kit.git resolved at 4.9.1
Creating working copy for https://github.com/apple/swift-atomics.git
Working copy of https://github.com/apple/swift-atomics.git resolved at 1.2.0
Creating working copy for https://github.com/apple/swift-nio-ssl.git
Working copy of https://github.com/apple/swift-nio-ssl.git resolved at 2.26.0
Creating working copy for https://github.com/apple/swift-collections.git
Working copy of https://github.com/apple/swift-collections.git resolved at 1.1.0
Creating working copy for https://github.com/vapor/sql-kit.git
Working copy of https://github.com/vapor/sql-kit.git resolved at 3.30.0
Creating working copy for https://github.com/apple/swift-numerics.git
Working copy of https://github.com/apple/swift-numerics.git resolved at 1.0.2
Creating working copy for https://github.com/vapor/fluent.git
Working copy of https://github.com/vapor/fluent.git resolved at 4.11.0
Creating working copy for https://github.com/vapor/vapor.git
Working copy of https://github.com/vapor/vapor.git resolved at 4.101.1
Creating working copy for https://github.com/apple/swift-nio-transport-services.git
Working copy of https://github.com/apple/swift-nio-transport-services.git resolved at 1.21.0
Creating working copy for https://github.com/vapor/async-kit.git
Working copy of https://github.com/vapor/async-kit.git resolved at 1.19.0
Creating working copy for https://github.com/apple/swift-nio.git
Working copy of https://github.com/apple/swift-nio.git resolved at 2.65.0
Creating working copy for https://github.com/vapor/sqlite-nio.git
Working copy of https://github.com/vapor/sqlite-nio.git resolved at 1.10.1
Creating working copy for https://github.com/vapor/sqlite-kit.git
Working copy of https://github.com/vapor/sqlite-kit.git resolved at 4.5.2
Creating working copy for https://github.com/marmelroy/Zip.git
Working copy of https://github.com/marmelroy/Zip.git resolved at 2.1.2
Creating working copy for https://github.com/apple/swift-crypto.git
Working copy of https://github.com/apple/swift-crypto.git resolved at 3.4.0
Creating working copy for https://github.com/swift-server/async-http-client.git
Working copy of https://github.com/swift-server/async-http-client.git resolved at 1.21.1
Creating working copy for https://github.com/apple/swift-nio-http2.git
Working copy of https://github.com/apple/swift-nio-http2.git resolved at 1.31.0
Creating working copy for https://github.com/apple/swift-system.git
Working copy of https://github.com/apple/swift-system.git resolved at 1.3.0
Creating working copy for https://github.com/vapor/websocket-kit.git
Working copy of https://github.com/vapor/websocket-kit.git resolved at 2.15.0
Creating working copy for https://github.com/apple/swift-metrics.git
Working copy of https://github.com/apple/swift-metrics.git resolved at 2.4.4
Creating working copy for https://github.com/vapor/multipart-kit.git
Working copy of https://github.com/vapor/multipart-kit.git resolved at 4.7.0
warning: 'swift-system': found 1 file(s) which are unhandled; explicitly declare them as resources or exclude from the target
    /Users/admin/builder/spi-builder-workspace/.build/checkouts/swift-system/Sources/System/CMakeLists.txt
warning: 'swift-algorithms': found 1 file(s) which are unhandled; explicitly declare them as resources or exclude from the target
    /Users/admin/builder/spi-builder-workspace/.build/checkouts/swift-algorithms/Sources/Algorithms/Documentation.docc
Build complete.
{
  "dependencies" : [
    {
      "identity" : "vapor",
      "requirement" : {
        "range" : [
          {
            "lower_bound" : "4.0.0",
            "upper_bound" : "5.0.0"
          }
        ]
      },
      "type" : "sourceControl",
      "url" : "https://github.com/vapor/vapor.git"
    },
    {
      "identity" : "fluent",
      "requirement" : {
        "range" : [
          {
            "lower_bound" : "4.0.0",
            "upper_bound" : "5.0.0"
          }
        ]
      },
      "type" : "sourceControl",
      "url" : "https://github.com/vapor/fluent.git"
    },
    {
      "identity" : "zip",
      "requirement" : {
        "range" : [
          {
            "lower_bound" : "2.1.2",
            "upper_bound" : "3.0.0"
          }
        ]
      },
      "type" : "sourceControl",
      "url" : "https://github.com/marmelroy/Zip.git"
    },
    {
      "identity" : "fluent-sqlite-driver",
      "requirement" : {
        "range" : [
          {
            "lower_bound" : "4.0.0",
            "upper_bound" : "5.0.0"
          }
        ]
      },
      "type" : "sourceControl",
      "url" : "https://github.com/vapor/fluent-sqlite-driver"
    },
    {
      "identity" : "spec",
      "requirement" : {
        "range" : [
          {
            "lower_bound" : "1.0.0",
            "upper_bound" : "2.0.0"
          }
        ]
      },
      "type" : "sourceControl",
      "url" : "https://github.com/binarybirds/spec"
    }
  ],
  "manifest_display_name" : "steampress-core",
  "name" : "steampress-core",
  "path" : "/Users/admin/builder/spi-builder-workspace",
  "platforms" : [
    {
      "name" : "macos",
      "version" : "12.0"
    }
  ],
  "products" : [
    {
      "name" : "SteamPressCore",
      "targets" : [
        "SteamPressCore"
      ],
      "type" : {
        "library" : [
          "automatic"
        ]
      }
    }
  ],
  "targets" : [
    {
      "c99name" : "SteamPressCoreTests",
      "module_type" : "SwiftTarget",
      "name" : "SteamPressCoreTests",
      "path" : "Tests/SteamPressCoreTests",
      "product_dependencies" : [
        "XCTVapor",
        "FluentSQLiteDriver",
        "Spec"
      ],
      "sources" : [
        "APITests/APITagControllerTests.swift",
        "AdminTests/AccessAllowedTests.swift",
        "AdminTests/AccessRestrictedTests.swift",
        "AdminTests/LoginTests.swift",
        "AdminTests/MembersCreateTests.swift",
        "AdminTests/MembersDeleteTests.swift",
        "AdminTests/MembersUpdateTests.swift",
        "AdminTests/PagesPresenterTests.swift",
        "AdminTests/PostsCreateTests.swift",
        "AdminTests/PostsUpdateTests.swift",
        "AdminTests/TagsTests.swift",
        "BlogTests/AuthorTests.swift",
        "BlogTests/DisabledBlogTagTests.swift",
        "BlogTests/IndexTests.swift",
        "BlogTests/PostTests.swift",
        "BlogTests/SearchTests.swift",
        "BlogTests/TagTests.swift",
        "Fakes/CapturingViewRenderer.swift",
        "Fakes/PasswordHasherChoice.swift",
        "Fakes/Presenters/CapturingAdminPresenter.swift",
        "Fakes/Presenters/CapturingBlogPresenter.swift",
        "Fakes/ReversedPasswordHasher.swift",
        "Fakes/StubbedRandomNumberGenerator.swift",
        "Feed Tests/AtomFeedTests.swift",
        "Feed Tests/RSSFeedTests.swift",
        "Helpers/InMemoryRepository.swift",
        "Helpers/SteamPressTestError.swift",
        "Helpers/TestDataBuilder.swift",
        "Helpers/TestWorld+Application.swift",
        "Helpers/TestWorld+Responses.swift",
        "Helpers/TestWorld+TestDataBuilder.swift",
        "Helpers/TestWorld.swift",
        "Models/LoginData.swift",
        "ProviderTests.swift",
        "ViewTests/BlogAdminPresenterTests.swift",
        "ViewTests/BlogPresenterTests.swift",
        "ViewTests/BlogViewTests.swift"
      ],
      "target_dependencies" : [
        "SteamPressCore"
      ],
      "type" : "test"
    },
    {
      "c99name" : "SteamPressCore",
      "module_type" : "SwiftTarget",
      "name" : "SteamPressCore",
      "path" : "Sources/SteamPressCore",
      "product_dependencies" : [
        "Vapor",
        "Fluent",
        "Zip"
      ],
      "product_memberships" : [
        "SteamPressCore"
      ],
      "sources" : [
        "Config/FeedInformation.swift",
        "Config/GlobalWebsiteInformation.swift",
        "Config/PaginationInformation.swift",
        "Controllers/API/APIController.swift",
        "Controllers/API/APITagController.swift",
        "Controllers/Admin/BlogAdminController.swift",
        "Controllers/Admin/LoginController.swift",
        "Controllers/Admin/PostsAdminController.swift",
        "Controllers/Admin/TagsAdminController.swift",
        "Controllers/Admin/UsersAdminController.swift",
        "Controllers/BlogController.swift",
        "Controllers/FeedController.swift",
        "Extensions/Application+SteamPress.swift",
        "Extensions/BlogUser+Information.swift",
        "Extensions/Models+Parameters.swift",
        "Extensions/Request+FilePath.swift",
        "Extensions/Request+PageInformation.swift",
        "Extensions/Request+PaginationInformation.swift",
        "Extensions/Request+ThemeUpdater.swift",
        "Extensions/String+Optional+Whitespace.swift",
        "Extensions/String+Random.swift",
        "Extensions/URL+Converters.swift",
        "Feed Generators/AtomFeedGenerator.swift",
        "Feed Generators/RSSFeedGenerator.swift",
        "Middleware/BlogAuthSessionsMiddleware.swift",
        "Middleware/BlogLoginRedirectAuthMiddleware.swift",
        "Middleware/BlogRememberMeMiddleware.swift",
        "Migrations/BlogPostMigration.swift",
        "Migrations/BlogTagMigration.swift",
        "Migrations/BlogUserMigration.swift",
        "Migrations/PostTagPivotMigration.swift",
        "Migrations/SPSiteInformationMigration.swift",
        "Models/BlogPost.swift",
        "Models/BlogTag.swift",
        "Models/BlogUser.swift",
        "Models/Contexts/ContextViews/BlogTagWithPostCount.swift",
        "Models/Contexts/ContextViews/ViewBlogAuthor.swift",
        "Models/Contexts/ContextViews/ViewBlogPost.swift",
        "Models/Contexts/ContextViews/ViewBlogTag.swift",
        "Models/Contexts/PaginationTagInformation.swift",
        "Models/Errors/CreatePostErrors.swift",
        "Models/FormData/CreatePostData.swift",
        "Models/FormData/CreateTagData.swift",
        "Models/FormData/CreateUserData.swift",
        "Models/FormData/FileContainers.swift",
        "Models/FormData/LoginData.swift",
        "Models/FormData/ResetPasswordData.swift",
        "Models/FormData/UpdateSiteInformation.swift",
        "Models/PostTagPivot.swift",
        "Models/SPSiteInformation.swift",
        "Models/Theme.swift",
        "Presenters/BlogPathCreator.swift",
        "Presenters/Presenter+Registry+Factory+Extensions.swift",
        "Presenters/Presenters+Protocols.swift",
        "Presenters/Presenters.swift",
        "Repositories/Registry+Factory+Extensions.swift",
        "Repositories/Repositories.swift",
        "Repositories/Repository+Protocols.swift",
        "Services/LongPostDateFormatter.swift",
        "Services/NumericPostFormatter.swift",
        "Services/RealRandomNumberGenerator.swift",
        "Services/SteamPressError.swift",
        "Services/SteamPressRandomNumberGenerator.swift",
        "SteamPressConfiguration.swift",
        "SteamPressLifecycleHandler.swift"
      ],
      "type" : "library"
    }
  ],
  "tools_version" : "5.5"
}
Done.
This is a staging environment. For live and up-to-date package information, visit swiftpackageindex.com.