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, reference 2.0.0-beta.4 (376f57), with Swift 6.0 for Linux on 26 Nov 2024 13:30:44 UTC.

Swift 6 data race errors: 7

Build Command

bash -c docker run --pull=always --rm -v "checkouts-4609320-2":/host -w "$PWD" registry.gitlab.com/finestructure/spi-images:basic-6.0-latest swift build --triple x86_64-unknown-linux-gnu -Xswiftc -Xfrontend -Xswiftc -stats-output-dir -Xswiftc -Xfrontend -Xswiftc .stats -Xswiftc -strict-concurrency=complete -Xswiftc -enable-upcoming-feature -Xswiftc StrictConcurrency -Xswiftc -enable-upcoming-feature -Xswiftc DisableOutwardActorInference -Xswiftc -enable-upcoming-feature -Xswiftc GlobalActorIsolatedTypesUsability -Xswiftc -enable-upcoming-feature -Xswiftc InferSendableFromCaptures 2>&1

Build Log

107 |                     if let password = data.password, password != "" {
108 |                         updatePassword = req.password.async.hash(password).map { hashedPassword in
109 |                             user.password = hashedPassword
    |                             `- warning: capture of 'user' with non-sendable type 'BlogUser' in a `@Sendable` closure; this is an error in the Swift 6 language mode
110 |                         }
111 |                     } else {
/host/spi-builder-workspace/Sources/SteamPress/Models/BlogUser.swift:5:20: note: class 'BlogUser' does not conform to the 'Sendable' protocol
 3 | // MARK: - Model
 4 |
 5 | public final class BlogUser: Codable {
   |                    `- note: class 'BlogUser' does not conform to the 'Sendable' protocol
 6 |
 7 |     public var userID: Int?
/host/spi-builder-workspace/Sources/SteamPress/Controllers/Admin/UserAdminController.swift:116:60: warning: capture of 'user' with non-sendable type 'BlogUser' in a `@Sendable` closure; this is an error in the Swift 6 language mode
114 |                     return updatePassword.flatMap {
115 |                         let redirect = req.redirect(to: self.pathCreator.createPath(for: "admin"))
116 |                         return req.blogUserRepository.save(user).transform(to: redirect)
    |                                                            `- warning: capture of 'user' with non-sendable type 'BlogUser' in a `@Sendable` closure; this is an error in the Swift 6 language mode
117 |                     }
118 |                 }
/host/spi-builder-workspace/Sources/SteamPress/Models/BlogUser.swift:5:20: note: class 'BlogUser' does not conform to the 'Sendable' protocol
 3 | // MARK: - Model
 4 |
 5 | public final class BlogUser: Codable {
   |                    `- note: class 'BlogUser' does not conform to the 'Sendable' protocol
 6 |
 7 |     public var userID: Int?
/host/spi-builder-workspace/Sources/SteamPress/Controllers/Admin/UserAdminController.swift:128:99: warning: type 'BlogUser' does not conform to the 'Sendable' protocol; this is an error in the Swift 6 language mode
126 |         req.parameters.findUser(on: req).and(req.blogUserRepository.getUsersCount()).flatMap { user, userCount in
127 |             guard userCount > 1 else {
128 |                 return req.blogPostRepository.getAllPostsSortedByPublishDate(includeDrafts: true).and(req.blogUserRepository.getAllUsers()).flatMap { posts, users in
    |                                                                                                   `- warning: type 'BlogUser' does not conform to the 'Sendable' protocol; this is an error in the Swift 6 language mode
129 |                     do {
130 |                         let view = try req.adminPresenter.createIndexView(posts: posts, users: users, errors: ["You cannot delete the last user"], pageInformation: req.adminPageInfomation())
/host/spi-builder-workspace/Sources/SteamPress/Models/BlogUser.swift:5:20: note: class 'BlogUser' does not conform to the 'Sendable' protocol
 3 | // MARK: - Model
 4 |
 5 | public final class BlogUser: Codable {
   |                    `- note: class 'BlogUser' does not conform to the 'Sendable' protocol
 6 |
 7 |     public var userID: Int?
/host/spi-builder-workspace/Sources/SteamPress/Controllers/Admin/UserAdminController.swift:145:99: warning: type 'BlogUser' does not conform to the 'Sendable' protocol; this is an error in the Swift 6 language mode
143 |             }
144 |             guard loggedInUser.userID != user.userID else {
145 |                 return req.blogPostRepository.getAllPostsSortedByPublishDate(includeDrafts: true).and(req.blogUserRepository.getAllUsers()).flatMap { posts, users in
    |                                                                                                   `- warning: type 'BlogUser' does not conform to the 'Sendable' protocol; this is an error in the Swift 6 language mode
146 |                     do {
147 |                         let view = try req.adminPresenter.createIndexView(posts: posts, users: users, errors: ["You cannot delete yourself whilst logged in"], pageInformation: req.adminPageInfomation())
/host/spi-builder-workspace/Sources/SteamPress/Models/BlogUser.swift:5:20: note: class 'BlogUser' does not conform to the 'Sendable' protocol
 3 | // MARK: - Model
 4 |
 5 | public final class BlogUser: Codable {
   |                    `- note: class 'BlogUser' does not conform to the 'Sendable' protocol
 6 |
 7 |     public var userID: Int?
/host/spi-builder-workspace/Sources/SteamPress/Controllers/Admin/UserAdminController.swift:204:32: warning: 'validate' is deprecated: renamed to 'validate(content:)'
202 |
203 |         do {
204 |             try CreateUserData.validate(req)
    |                                |- warning: 'validate' is deprecated: renamed to 'validate(content:)'
    |                                `- note: use 'validate(content:)' instead
205 |         } catch {
206 |             createUserErrors.append("The username provided is not valid")
/host/spi-builder-workspace/Sources/SteamPress/Controllers/Admin/UserAdminController.swift:229:17: warning: mutation of captured var 'createUserErrors' in concurrently-executing code; this is an error in the Swift 6 language mode
227 |         return usernameUniqueError.map { usernameErrorOccurred in
228 |             if let uniqueError = usernameErrorOccurred {
229 |                 createUserErrors.append(uniqueError)
    |                 `- warning: mutation of captured var 'createUserErrors' in concurrently-executing code; this is an error in the Swift 6 language mode
230 |                 usernameError = true
231 |             }
/host/spi-builder-workspace/Sources/SteamPress/Controllers/Admin/UserAdminController.swift:230:17: warning: mutation of captured var 'usernameError' in concurrently-executing code; this is an error in the Swift 6 language mode
228 |             if let uniqueError = usernameErrorOccurred {
229 |                 createUserErrors.append(uniqueError)
230 |                 usernameError = true
    |                 `- warning: mutation of captured var 'usernameError' in concurrently-executing code; this is an error in the Swift 6 language mode
231 |             }
232 |             if createUserErrors.count == 0 {
/host/spi-builder-workspace/Sources/SteamPress/Controllers/Admin/UserAdminController.swift:232:16: warning: reference to captured var 'createUserErrors' in concurrently-executing code; this is an error in the Swift 6 language mode
230 |                 usernameError = true
231 |             }
232 |             if createUserErrors.count == 0 {
    |                `- warning: reference to captured var 'createUserErrors' in concurrently-executing code; this is an error in the Swift 6 language mode
233 |                 return nil
234 |             }
/host/spi-builder-workspace/Sources/SteamPress/Controllers/Admin/UserAdminController.swift:236:51: warning: reference to captured var 'createUserErrors' in concurrently-executing code; this is an error in the Swift 6 language mode
234 |             }
235 |
236 |             let errors = CreateUserErrors(errors: createUserErrors, passwordError: passwordError, confirmPasswordError: confirmPasswordError, nameError: nameErorr, usernameError: usernameError)
    |                                                   `- warning: reference to captured var 'createUserErrors' in concurrently-executing code; this is an error in the Swift 6 language mode
237 |
238 |             return errors
/host/spi-builder-workspace/Sources/SteamPress/Controllers/Admin/UserAdminController.swift:236:84: warning: reference to captured var 'passwordError' in concurrently-executing code; this is an error in the Swift 6 language mode
234 |             }
235 |
236 |             let errors = CreateUserErrors(errors: createUserErrors, passwordError: passwordError, confirmPasswordError: confirmPasswordError, nameError: nameErorr, usernameError: usernameError)
    |                                                                                    `- warning: reference to captured var 'passwordError' in concurrently-executing code; this is an error in the Swift 6 language mode
237 |
238 |             return errors
/host/spi-builder-workspace/Sources/SteamPress/Controllers/Admin/UserAdminController.swift:236:121: warning: reference to captured var 'confirmPasswordError' in concurrently-executing code; this is an error in the Swift 6 language mode
234 |             }
235 |
236 |             let errors = CreateUserErrors(errors: createUserErrors, passwordError: passwordError, confirmPasswordError: confirmPasswordError, nameError: nameErorr, usernameError: usernameError)
    |                                                                                                                         `- warning: reference to captured var 'confirmPasswordError' in concurrently-executing code; this is an error in the Swift 6 language mode
237 |
238 |             return errors
/host/spi-builder-workspace/Sources/SteamPress/Controllers/Admin/UserAdminController.swift:236:154: warning: reference to captured var 'nameErorr' in concurrently-executing code; this is an error in the Swift 6 language mode
234 |             }
235 |
236 |             let errors = CreateUserErrors(errors: createUserErrors, passwordError: passwordError, confirmPasswordError: confirmPasswordError, nameError: nameErorr, usernameError: usernameError)
    |                                                                                                                                                          `- warning: reference to captured var 'nameErorr' in concurrently-executing code; this is an error in the Swift 6 language mode
237 |
238 |             return errors
/host/spi-builder-workspace/Sources/SteamPress/Controllers/Admin/UserAdminController.swift:236:180: warning: reference to captured var 'usernameError' in concurrently-executing code; this is an error in the Swift 6 language mode
234 |             }
235 |
236 |             let errors = CreateUserErrors(errors: createUserErrors, passwordError: passwordError, confirmPasswordError: confirmPasswordError, nameError: nameErorr, usernameError: usernameError)
    |                                                                                                                                                                                    `- warning: reference to captured var 'usernameError' in concurrently-executing code; this is an error in the Swift 6 language mode
237 |
238 |             return errors
/host/spi-builder-workspace/Sources/SteamPress/Controllers/BlogAdminController.swift:31:91: warning: type 'BlogUser' does not conform to the 'Sendable' protocol; this is an error in the Swift 6 language mode
29 |     // MARK: Admin Handler
30 |     func adminHandler(_ req: Request) throws -> EventLoopFuture<View> {
31 |         return req.blogPostRepository.getAllPostsSortedByPublishDate(includeDrafts: true).and(req.blogUserRepository.getAllUsers()).flatMap { posts, users in
   |                                                                                           `- warning: type 'BlogUser' does not conform to the 'Sendable' protocol; this is an error in the Swift 6 language mode
32 |             do {
33 |                 return try req.adminPresenter.createIndexView(posts: posts, users: users, errors: nil, pageInformation: req.adminPageInfomation())
/host/spi-builder-workspace/Sources/SteamPress/Models/BlogUser.swift:5:20: note: class 'BlogUser' does not conform to the 'Sendable' protocol
 3 | // MARK: - Model
 4 |
 5 | public final class BlogUser: Codable {
   |                    `- note: class 'BlogUser' does not conform to the 'Sendable' protocol
 6 |
 7 |     public var userID: Int?
/host/spi-builder-workspace/Sources/SteamPress/Controllers/BlogAdminController.swift:31:133: warning: type 'View' does not conform to the 'Sendable' protocol; this is an error in the Swift 6 language mode
29 |     // MARK: Admin Handler
30 |     func adminHandler(_ req: Request) throws -> EventLoopFuture<View> {
31 |         return req.blogPostRepository.getAllPostsSortedByPublishDate(includeDrafts: true).and(req.blogUserRepository.getAllUsers()).flatMap { posts, users in
   |                                                                                                                                     `- warning: type 'View' does not conform to the 'Sendable' protocol; this is an error in the Swift 6 language mode
32 |             do {
33 |                 return try req.adminPresenter.createIndexView(posts: posts, users: users, errors: nil, pageInformation: req.adminPageInfomation())
/host/spi-builder-workspace/.build/checkouts/vapor/Sources/Vapor/View/View.swift:3:15: note: struct 'View' does not conform to the 'Sendable' protocol
 1 | import NIOCore
 2 |
 3 | public struct View: ResponseEncodable {
   |               `- note: struct 'View' does not conform to the 'Sendable' protocol
 4 |     public var data: ByteBuffer
 5 |
/host/spi-builder-workspace/Sources/SteamPress/Controllers/BlogAdminController.swift:1:1: warning: add '@preconcurrency' to suppress 'Sendable'-related warnings from module 'Vapor'
 1 | import Vapor
   | `- warning: add '@preconcurrency' to suppress 'Sendable'-related warnings from module 'Vapor'
 2 |
 3 | struct BlogAdminController: RouteCollection {
/host/spi-builder-workspace/Sources/SteamPress/Controllers/BlogController.swift:44:151: warning: type 'BlogTag' does not conform to the 'Sendable' protocol; this is an error in the Swift 6 language mode
 42 |     func indexHandler(_ req: Request) throws -> EventLoopFuture<View> {
 43 |         let paginationInformation = req.getPaginationInformation(postsPerPage: postsPerPage)
 44 |         return req.blogPostRepository.getAllPostsSortedByPublishDate(includeDrafts: false, count: postsPerPage, offset: paginationInformation.offset).and(req.blogTagRepository.getAllTags()).flatMap { posts, tags in
    |                                                                                                                                                       `- warning: type 'BlogTag' does not conform to the 'Sendable' protocol; this is an error in the Swift 6 language mode
 45 |             req.blogUserRepository.getAllUsers().and(req.blogPostRepository.getAllPostsCount(includeDrafts: false)).flatMap { users, totalPostCount in
 46 |                 req.blogTagRepository.getTagsForAllPosts().flatMap { tagsForPosts in
/host/spi-builder-workspace/Sources/SteamPress/Models/BlogTag.swift:5:20: note: class 'BlogTag' does not conform to the 'Sendable' protocol
 3 | // MARK: - Model
 4 |
 5 | public final class BlogTag: Codable {
   |                    `- note: class 'BlogTag' does not conform to the 'Sendable' protocol
 6 |
 7 |     public var tagID: Int?
/host/spi-builder-workspace/Sources/SteamPress/Controllers/BlogController.swift:44:191: warning: type 'View' does not conform to the 'Sendable' protocol; this is an error in the Swift 6 language mode
 42 |     func indexHandler(_ req: Request) throws -> EventLoopFuture<View> {
 43 |         let paginationInformation = req.getPaginationInformation(postsPerPage: postsPerPage)
 44 |         return req.blogPostRepository.getAllPostsSortedByPublishDate(includeDrafts: false, count: postsPerPage, offset: paginationInformation.offset).and(req.blogTagRepository.getAllTags()).flatMap { posts, tags in
    |                                                                                                                                                                                               `- warning: type 'View' does not conform to the 'Sendable' protocol; this is an error in the Swift 6 language mode
 45 |             req.blogUserRepository.getAllUsers().and(req.blogPostRepository.getAllPostsCount(includeDrafts: false)).flatMap { users, totalPostCount in
 46 |                 req.blogTagRepository.getTagsForAllPosts().flatMap { tagsForPosts in
/host/spi-builder-workspace/.build/checkouts/vapor/Sources/Vapor/View/View.swift:3:15: note: struct 'View' does not conform to the 'Sendable' protocol
 1 | import NIOCore
 2 |
 3 | public struct View: ResponseEncodable {
   |               `- note: struct 'View' does not conform to the 'Sendable' protocol
 4 |     public var data: ByteBuffer
 5 |
/host/spi-builder-workspace/Sources/SteamPress/Controllers/BlogController.swift:1:1: warning: add '@preconcurrency' to suppress 'Sendable'-related warnings from module 'Vapor'
  1 | import Vapor
    | `- warning: add '@preconcurrency' to suppress 'Sendable'-related warnings from module 'Vapor'
  2 |
  3 | struct BlogController: RouteCollection {
/host/spi-builder-workspace/Sources/SteamPress/Controllers/BlogController.swift:45:117: warning: type 'View' does not conform to the 'Sendable' protocol; this is an error in the Swift 6 language mode
 43 |         let paginationInformation = req.getPaginationInformation(postsPerPage: postsPerPage)
 44 |         return req.blogPostRepository.getAllPostsSortedByPublishDate(includeDrafts: false, count: postsPerPage, offset: paginationInformation.offset).and(req.blogTagRepository.getAllTags()).flatMap { posts, tags in
 45 |             req.blogUserRepository.getAllUsers().and(req.blogPostRepository.getAllPostsCount(includeDrafts: false)).flatMap { users, totalPostCount in
    |                                                                                                                     `- warning: type 'View' does not conform to the 'Sendable' protocol; this is an error in the Swift 6 language mode
 46 |                 req.blogTagRepository.getTagsForAllPosts().flatMap { tagsForPosts in
 47 |                     do {
/host/spi-builder-workspace/.build/checkouts/vapor/Sources/Vapor/View/View.swift:3:15: note: struct 'View' does not conform to the 'Sendable' protocol
 1 | import NIOCore
 2 |
 3 | public struct View: ResponseEncodable {
   |               `- note: struct 'View' does not conform to the 'Sendable' protocol
 4 |     public var data: ByteBuffer
 5 |
/host/spi-builder-workspace/Sources/SteamPress/Controllers/BlogController.swift:46:60: warning: type 'View' does not conform to the 'Sendable' protocol; this is an error in the Swift 6 language mode
 44 |         return req.blogPostRepository.getAllPostsSortedByPublishDate(includeDrafts: false, count: postsPerPage, offset: paginationInformation.offset).and(req.blogTagRepository.getAllTags()).flatMap { posts, tags in
 45 |             req.blogUserRepository.getAllUsers().and(req.blogPostRepository.getAllPostsCount(includeDrafts: false)).flatMap { users, totalPostCount in
 46 |                 req.blogTagRepository.getTagsForAllPosts().flatMap { tagsForPosts in
    |                                                            `- warning: type 'View' does not conform to the 'Sendable' protocol; this is an error in the Swift 6 language mode
 47 |                     do {
 48 |                         return req.blogPresenter.indexView(posts: posts, tags: tags, authors: users, tagsForPosts: tagsForPosts, pageInformation: try req.pageInformation(), paginationTagInfo: self.getPaginationInformation(currentPage: paginationInformation.page, totalPosts: totalPostCount, currentQuery: req.url.query))
/host/spi-builder-workspace/.build/checkouts/vapor/Sources/Vapor/View/View.swift:3:15: note: struct 'View' does not conform to the 'Sendable' protocol
 1 | import NIOCore
 2 |
 3 | public struct View: ResponseEncodable {
   |               `- note: struct 'View' does not conform to the 'Sendable' protocol
 4 |     public var data: ByteBuffer
 5 |
/host/spi-builder-workspace/Sources/SteamPress/Controllers/BlogController.swift:48:67: warning: capture of 'posts' with non-sendable type '[BlogPost]' in a `@Sendable` closure; this is an error in the Swift 6 language mode
 46 |                 req.blogTagRepository.getTagsForAllPosts().flatMap { tagsForPosts in
 47 |                     do {
 48 |                         return req.blogPresenter.indexView(posts: posts, tags: tags, authors: users, tagsForPosts: tagsForPosts, pageInformation: try req.pageInformation(), paginationTagInfo: self.getPaginationInformation(currentPage: paginationInformation.page, totalPosts: totalPostCount, currentQuery: req.url.query))
    |                                                                   `- warning: capture of 'posts' with non-sendable type '[BlogPost]' in a `@Sendable` closure; this is an error in the Swift 6 language mode
 49 |                     } catch {
 50 |                         return req.eventLoop.makeFailedFuture(error)
/host/spi-builder-workspace/Sources/SteamPress/Models/BlogPost.swift:8:20: note: class 'BlogPost' does not conform to the 'Sendable' protocol
 6 | // MARK: - Model
 7 |
 8 | public final class BlogPost: Codable {
   |                    `- note: class 'BlogPost' does not conform to the 'Sendable' protocol
 9 |
10 |     public var blogID: Int?
/host/spi-builder-workspace/Sources/SteamPress/Controllers/BlogController.swift:48:80: warning: capture of 'tags' with non-sendable type '[BlogTag]' in a `@Sendable` closure; this is an error in the Swift 6 language mode
 46 |                 req.blogTagRepository.getTagsForAllPosts().flatMap { tagsForPosts in
 47 |                     do {
 48 |                         return req.blogPresenter.indexView(posts: posts, tags: tags, authors: users, tagsForPosts: tagsForPosts, pageInformation: try req.pageInformation(), paginationTagInfo: self.getPaginationInformation(currentPage: paginationInformation.page, totalPosts: totalPostCount, currentQuery: req.url.query))
    |                                                                                `- warning: capture of 'tags' with non-sendable type '[BlogTag]' in a `@Sendable` closure; this is an error in the Swift 6 language mode
 49 |                     } catch {
 50 |                         return req.eventLoop.makeFailedFuture(error)
/host/spi-builder-workspace/Sources/SteamPress/Models/BlogTag.swift:5:20: note: class 'BlogTag' does not conform to the 'Sendable' protocol
 3 | // MARK: - Model
 4 |
 5 | public final class BlogTag: Codable {
   |                    `- note: class 'BlogTag' does not conform to the 'Sendable' protocol
 6 |
 7 |     public var tagID: Int?
/host/spi-builder-workspace/Sources/SteamPress/Controllers/BlogController.swift:48:67: warning: capture of 'posts' with non-sendable type '[BlogPost]' in a `@Sendable` closure; this is an error in the Swift 6 language mode
 46 |                 req.blogTagRepository.getTagsForAllPosts().flatMap { tagsForPosts in
 47 |                     do {
 48 |                         return req.blogPresenter.indexView(posts: posts, tags: tags, authors: users, tagsForPosts: tagsForPosts, pageInformation: try req.pageInformation(), paginationTagInfo: self.getPaginationInformation(currentPage: paginationInformation.page, totalPosts: totalPostCount, currentQuery: req.url.query))
    |                                                                   `- warning: capture of 'posts' with non-sendable type '[BlogPost]' in a `@Sendable` closure; this is an error in the Swift 6 language mode
 49 |                     } catch {
 50 |                         return req.eventLoop.makeFailedFuture(error)
/host/spi-builder-workspace/Sources/SteamPress/Models/BlogPost.swift:8:20: note: class 'BlogPost' does not conform to the 'Sendable' protocol
 6 | // MARK: - Model
 7 |
 8 | public final class BlogPost: Codable {
   |                    `- note: class 'BlogPost' does not conform to the 'Sendable' protocol
 9 |
10 |     public var blogID: Int?
/host/spi-builder-workspace/Sources/SteamPress/Controllers/BlogController.swift:48:80: warning: capture of 'tags' with non-sendable type '[BlogTag]' in a `@Sendable` closure; this is an error in the Swift 6 language mode
 46 |                 req.blogTagRepository.getTagsForAllPosts().flatMap { tagsForPosts in
 47 |                     do {
 48 |                         return req.blogPresenter.indexView(posts: posts, tags: tags, authors: users, tagsForPosts: tagsForPosts, pageInformation: try req.pageInformation(), paginationTagInfo: self.getPaginationInformation(currentPage: paginationInformation.page, totalPosts: totalPostCount, currentQuery: req.url.query))
    |                                                                                `- warning: capture of 'tags' with non-sendable type '[BlogTag]' in a `@Sendable` closure; this is an error in the Swift 6 language mode
 49 |                     } catch {
 50 |                         return req.eventLoop.makeFailedFuture(error)
/host/spi-builder-workspace/Sources/SteamPress/Models/BlogTag.swift:5:20: note: class 'BlogTag' does not conform to the 'Sendable' protocol
 3 | // MARK: - Model
 4 |
 5 | public final class BlogTag: Codable {
   |                    `- note: class 'BlogTag' does not conform to the 'Sendable' protocol
 6 |
 7 |     public var tagID: Int?
/host/spi-builder-workspace/Sources/SteamPress/Controllers/BlogController.swift:48:95: warning: capture of 'users' with non-sendable type '[BlogUser]' in a `@Sendable` closure; this is an error in the Swift 6 language mode
 46 |                 req.blogTagRepository.getTagsForAllPosts().flatMap { tagsForPosts in
 47 |                     do {
 48 |                         return req.blogPresenter.indexView(posts: posts, tags: tags, authors: users, tagsForPosts: tagsForPosts, pageInformation: try req.pageInformation(), paginationTagInfo: self.getPaginationInformation(currentPage: paginationInformation.page, totalPosts: totalPostCount, currentQuery: req.url.query))
    |                                                                                               `- warning: capture of 'users' with non-sendable type '[BlogUser]' in a `@Sendable` closure; this is an error in the Swift 6 language mode
 49 |                     } catch {
 50 |                         return req.eventLoop.makeFailedFuture(error)
/host/spi-builder-workspace/Sources/SteamPress/Models/BlogUser.swift:5:20: note: class 'BlogUser' does not conform to the 'Sendable' protocol
 3 | // MARK: - Model
 4 |
 5 | public final class BlogUser: Codable {
   |                    `- note: class 'BlogUser' does not conform to the 'Sendable' protocol
 6 |
 7 |     public var userID: Int?
/host/spi-builder-workspace/Sources/SteamPress/Controllers/BlogController.swift:58:20: warning: 'redirect(to:type:)' is deprecated: renamed to 'redirect(to:redirectType:)'
 56 |
 57 |     func blogPostIndexRedirectHandler(_ req: Request) throws -> Response {
 58 |         return req.redirect(to: pathCreator.createPath(for: pathCreator.blogPath), type: .permanent)
    |                    |- warning: 'redirect(to:type:)' is deprecated: renamed to 'redirect(to:redirectType:)'
    |                    `- note: use 'redirect(to:redirectType:)' instead
 59 |     }
 60 |
/host/spi-builder-workspace/Sources/SteamPress/Controllers/BlogController.swift:65:92: warning: type 'View' does not conform to the 'Sendable' protocol; this is an error in the Swift 6 language mode
 63 |             throw Abort(.badRequest)
 64 |         }
 65 |         return req.blogPostRepository.getPost(slug: blogSlug).unwrap(or: Abort(.notFound)).flatMap { (post: BlogPost) -> EventLoopFuture<View> in
    |                                                                                            `- warning: type 'View' does not conform to the 'Sendable' protocol; this is an error in the Swift 6 language mode
 66 |             let tagsQuery: EventLoopFuture<[BlogTag]> = req.blogTagRepository.getTags(for: post)
 67 |             let userQuery: EventLoopFuture<BlogUser> = req.blogUserRepository.getUser(id: post.author).unwrap(or: Abort(.internalServerError))
/host/spi-builder-workspace/.build/checkouts/vapor/Sources/Vapor/View/View.swift:3:15: note: struct 'View' does not conform to the 'Sendable' protocol
 1 | import NIOCore
 2 |
 3 | public struct View: ResponseEncodable {
   |               `- note: struct 'View' does not conform to the 'Sendable' protocol
 4 |     public var data: ByteBuffer
 5 |
/host/spi-builder-workspace/Sources/SteamPress/Controllers/BlogController.swift:68:30: warning: type 'BlogTag' does not conform to the 'Sendable' protocol; this is an error in the Swift 6 language mode
 66 |             let tagsQuery: EventLoopFuture<[BlogTag]> = req.blogTagRepository.getTags(for: post)
 67 |             let userQuery: EventLoopFuture<BlogUser> = req.blogUserRepository.getUser(id: post.author).unwrap(or: Abort(.internalServerError))
 68 |             return userQuery.and(tagsQuery).flatMap { (user: BlogUser, tags: [BlogTag]) -> EventLoopFuture<View> in
    |                              `- warning: type 'BlogTag' does not conform to the 'Sendable' protocol; this is an error in the Swift 6 language mode
 69 |                 do {
 70 |                     let pageInformation: BlogGlobalPageInformation = try req.pageInformation()
/host/spi-builder-workspace/Sources/SteamPress/Models/BlogTag.swift:5:20: note: class 'BlogTag' does not conform to the 'Sendable' protocol
 3 | // MARK: - Model
 4 |
 5 | public final class BlogTag: Codable {
   |                    `- note: class 'BlogTag' does not conform to the 'Sendable' protocol
 6 |
 7 |     public var tagID: Int?
/host/spi-builder-workspace/Sources/SteamPress/Controllers/BlogController.swift:68:45: warning: type 'View' does not conform to the 'Sendable' protocol; this is an error in the Swift 6 language mode
 66 |             let tagsQuery: EventLoopFuture<[BlogTag]> = req.blogTagRepository.getTags(for: post)
 67 |             let userQuery: EventLoopFuture<BlogUser> = req.blogUserRepository.getUser(id: post.author).unwrap(or: Abort(.internalServerError))
 68 |             return userQuery.and(tagsQuery).flatMap { (user: BlogUser, tags: [BlogTag]) -> EventLoopFuture<View> in
    |                                             `- warning: type 'View' does not conform to the 'Sendable' protocol; this is an error in the Swift 6 language mode
 69 |                 do {
 70 |                     let pageInformation: BlogGlobalPageInformation = try req.pageInformation()
/host/spi-builder-workspace/.build/checkouts/vapor/Sources/Vapor/View/View.swift:3:15: note: struct 'View' does not conform to the 'Sendable' protocol
 1 | import NIOCore
 2 |
 3 | public struct View: ResponseEncodable {
   |               `- note: struct 'View' does not conform to the 'Sendable' protocol
 4 |     public var data: ByteBuffer
 5 |
/host/spi-builder-workspace/Sources/SteamPress/Controllers/BlogController.swift:71:61: warning: capture of 'post' with non-sendable type 'BlogPost' in a `@Sendable` closure; this is an error in the Swift 6 language mode
 69 |                 do {
 70 |                     let pageInformation: BlogGlobalPageInformation = try req.pageInformation()
 71 |                     return req.blogPresenter.postView(post: post, author: user, tags: tags, pageInformation: pageInformation)
    |                                                             `- warning: capture of 'post' with non-sendable type 'BlogPost' in a `@Sendable` closure; this is an error in the Swift 6 language mode
 72 |                 } catch {
 73 |                     return req.eventLoop.makeFailedFuture(error)
/host/spi-builder-workspace/Sources/SteamPress/Models/BlogPost.swift:8:20: note: class 'BlogPost' does not conform to the 'Sendable' protocol
 6 | // MARK: - Model
 7 |
 8 | public final class BlogPost: Codable {
   |                    `- note: class 'BlogPost' does not conform to the 'Sendable' protocol
 9 |
10 |     public var blogID: Int?
/host/spi-builder-workspace/Sources/SteamPress/Controllers/BlogController.swift:80:48: warning: type 'View' does not conform to the 'Sendable' protocol; this is an error in the Swift 6 language mode
 78 |
 79 |     func tagViewHandler(_ req: Request) throws -> EventLoopFuture<View> {
 80 |         return req.parameters.findTag(on: req).flatMap { tag in
    |                                                `- warning: type 'View' does not conform to the 'Sendable' protocol; this is an error in the Swift 6 language mode
 81 |             let paginationInformation = req.getPaginationInformation(postsPerPage: self.postsPerPage)
 82 |             let postsQuery = req.blogPostRepository.getSortedPublishedPosts(for: tag, count: self.postsPerPage, offset: paginationInformation.offset)
/host/spi-builder-workspace/.build/checkouts/vapor/Sources/Vapor/View/View.swift:3:15: note: struct 'View' does not conform to the 'Sendable' protocol
 1 | import NIOCore
 2 |
 3 | public struct View: ResponseEncodable {
   |               `- note: struct 'View' does not conform to the 'Sendable' protocol
 4 |     public var data: ByteBuffer
 5 |
/host/spi-builder-workspace/Sources/SteamPress/Controllers/BlogController.swift:85:51: warning: type 'View' does not conform to the 'Sendable' protocol; this is an error in the Swift 6 language mode
 83 |             let postCountQuery = req.blogPostRepository.getPublishedPostCount(for: tag)
 84 |             let usersQuery = req.blogUserRepository.getAllUsers()
 85 |             return postsQuery.and(postCountQuery).flatMap { posts, totalPosts in
    |                                                   `- warning: type 'View' does not conform to the 'Sendable' protocol; this is an error in the Swift 6 language mode
 86 |                 usersQuery.flatMap { authors in
 87 |                     let paginationTagInfo = self.getPaginationInformation(currentPage: paginationInformation.page, totalPosts: totalPosts, currentQuery: req.url.query)
/host/spi-builder-workspace/.build/checkouts/vapor/Sources/Vapor/View/View.swift:3:15: note: struct 'View' does not conform to the 'Sendable' protocol
 1 | import NIOCore
 2 |
 3 | public struct View: ResponseEncodable {
   |               `- note: struct 'View' does not conform to the 'Sendable' protocol
 4 |     public var data: ByteBuffer
 5 |
/host/spi-builder-workspace/Sources/SteamPress/Controllers/BlogController.swift:86:28: warning: type 'View' does not conform to the 'Sendable' protocol; this is an error in the Swift 6 language mode
 84 |             let usersQuery = req.blogUserRepository.getAllUsers()
 85 |             return postsQuery.and(postCountQuery).flatMap { posts, totalPosts in
 86 |                 usersQuery.flatMap { authors in
    |                            `- warning: type 'View' does not conform to the 'Sendable' protocol; this is an error in the Swift 6 language mode
 87 |                     let paginationTagInfo = self.getPaginationInformation(currentPage: paginationInformation.page, totalPosts: totalPosts, currentQuery: req.url.query)
 88 |                     do {
/host/spi-builder-workspace/.build/checkouts/vapor/Sources/Vapor/View/View.swift:3:15: note: struct 'View' does not conform to the 'Sendable' protocol
 1 | import NIOCore
 2 |
 3 | public struct View: ResponseEncodable {
   |               `- note: struct 'View' does not conform to the 'Sendable' protocol
 4 |     public var data: ByteBuffer
 5 |
/host/spi-builder-workspace/Sources/SteamPress/Controllers/BlogController.swift:89:63: warning: capture of 'tag' with non-sendable type 'BlogTag' in a `@Sendable` closure; this is an error in the Swift 6 language mode
 87 |                     let paginationTagInfo = self.getPaginationInformation(currentPage: paginationInformation.page, totalPosts: totalPosts, currentQuery: req.url.query)
 88 |                     do {
 89 |                         return req.blogPresenter.tagView(tag: tag, posts: posts, authors: authors, totalPosts: totalPosts, pageInformation: try req.pageInformation(), paginationTagInfo: paginationTagInfo)
    |                                                               `- warning: capture of 'tag' with non-sendable type 'BlogTag' in a `@Sendable` closure; this is an error in the Swift 6 language mode
 90 |                     } catch {
 91 |                         return req.eventLoop.makeFailedFuture(error)
/host/spi-builder-workspace/Sources/SteamPress/Models/BlogTag.swift:5:20: note: class 'BlogTag' does not conform to the 'Sendable' protocol
 3 | // MARK: - Model
 4 |
 5 | public final class BlogTag: Codable {
   |                    `- note: class 'BlogTag' does not conform to the 'Sendable' protocol
 6 |
 7 |     public var tagID: Int?
/host/spi-builder-workspace/Sources/SteamPress/Controllers/BlogController.swift:89:63: warning: capture of 'tag' with non-sendable type 'BlogTag' in a `@Sendable` closure; this is an error in the Swift 6 language mode
 87 |                     let paginationTagInfo = self.getPaginationInformation(currentPage: paginationInformation.page, totalPosts: totalPosts, currentQuery: req.url.query)
 88 |                     do {
 89 |                         return req.blogPresenter.tagView(tag: tag, posts: posts, authors: authors, totalPosts: totalPosts, pageInformation: try req.pageInformation(), paginationTagInfo: paginationTagInfo)
    |                                                               `- warning: capture of 'tag' with non-sendable type 'BlogTag' in a `@Sendable` closure; this is an error in the Swift 6 language mode
 90 |                     } catch {
 91 |                         return req.eventLoop.makeFailedFuture(error)
/host/spi-builder-workspace/Sources/SteamPress/Models/BlogTag.swift:5:20: note: class 'BlogTag' does not conform to the 'Sendable' protocol
 3 | // MARK: - Model
 4 |
 5 | public final class BlogTag: Codable {
   |                    `- note: class 'BlogTag' does not conform to the 'Sendable' protocol
 6 |
 7 |     public var tagID: Int?
/host/spi-builder-workspace/Sources/SteamPress/Controllers/BlogController.swift:89:75: warning: capture of 'posts' with non-sendable type '[BlogPost]' in a `@Sendable` closure; this is an error in the Swift 6 language mode
 87 |                     let paginationTagInfo = self.getPaginationInformation(currentPage: paginationInformation.page, totalPosts: totalPosts, currentQuery: req.url.query)
 88 |                     do {
 89 |                         return req.blogPresenter.tagView(tag: tag, posts: posts, authors: authors, totalPosts: totalPosts, pageInformation: try req.pageInformation(), paginationTagInfo: paginationTagInfo)
    |                                                                           `- warning: capture of 'posts' with non-sendable type '[BlogPost]' in a `@Sendable` closure; this is an error in the Swift 6 language mode
 90 |                     } catch {
 91 |                         return req.eventLoop.makeFailedFuture(error)
/host/spi-builder-workspace/Sources/SteamPress/Models/BlogPost.swift:8:20: note: class 'BlogPost' does not conform to the 'Sendable' protocol
 6 | // MARK: - Model
 7 |
 8 | public final class BlogPost: Codable {
   |                    `- note: class 'BlogPost' does not conform to the 'Sendable' protocol
 9 |
10 |     public var blogID: Int?
/host/spi-builder-workspace/Sources/SteamPress/Controllers/BlogController.swift:103:73: warning: type 'View' does not conform to the 'Sendable' protocol; this is an error in the Swift 6 language mode
101 |         }
102 |         let paginationInformation = req.getPaginationInformation(postsPerPage: postsPerPage)
103 |         return req.blogUserRepository.getUser(username: authorUsername).flatMap { user in
    |                                                                         `- warning: type 'View' does not conform to the 'Sendable' protocol; this is an error in the Swift 6 language mode
104 |             guard let author = user else {
105 |                 return req.eventLoop.makeFailedFuture(Abort(.notFound))
/host/spi-builder-workspace/.build/checkouts/vapor/Sources/Vapor/View/View.swift:3:15: note: struct 'View' does not conform to the 'Sendable' protocol
 1 | import NIOCore
 2 |
 3 | public struct View: ResponseEncodable {
   |               `- note: struct 'View' does not conform to the 'Sendable' protocol
 4 |     public var data: ByteBuffer
 5 |
/host/spi-builder-workspace/Sources/SteamPress/Controllers/BlogController.swift:110:62: warning: type 'View' does not conform to the 'Sendable' protocol; this is an error in the Swift 6 language mode
108 |             let tagQuery = req.blogTagRepository.getTagsForAllPosts()
109 |             let authorPostCountQuery = req.blogPostRepository.getPostCount(for: author)
110 |             return authorPostQuery.and(authorPostCountQuery).flatMap { posts, postCount in
    |                                                              `- warning: type 'View' does not conform to the 'Sendable' protocol; this is an error in the Swift 6 language mode
111 |                 tagQuery.flatMap { tagsForPosts in
112 |                     let paginationTagInfo = self.getPaginationInformation(currentPage: paginationInformation.page, totalPosts: postCount, currentQuery: req.url.query)
/host/spi-builder-workspace/.build/checkouts/vapor/Sources/Vapor/View/View.swift:3:15: note: struct 'View' does not conform to the 'Sendable' protocol
 1 | import NIOCore
 2 |
 3 | public struct View: ResponseEncodable {
   |               `- note: struct 'View' does not conform to the 'Sendable' protocol
 4 |     public var data: ByteBuffer
 5 |
/host/spi-builder-workspace/Sources/SteamPress/Controllers/BlogController.swift:111:26: warning: type 'View' does not conform to the 'Sendable' protocol; this is an error in the Swift 6 language mode
109 |             let authorPostCountQuery = req.blogPostRepository.getPostCount(for: author)
110 |             return authorPostQuery.and(authorPostCountQuery).flatMap { posts, postCount in
111 |                 tagQuery.flatMap { tagsForPosts in
    |                          `- warning: type 'View' does not conform to the 'Sendable' protocol; this is an error in the Swift 6 language mode
112 |                     let paginationTagInfo = self.getPaginationInformation(currentPage: paginationInformation.page, totalPosts: postCount, currentQuery: req.url.query)
113 |                     do {
/host/spi-builder-workspace/.build/checkouts/vapor/Sources/Vapor/View/View.swift:3:15: note: struct 'View' does not conform to the 'Sendable' protocol
 1 | import NIOCore
 2 |
 3 | public struct View: ResponseEncodable {
   |               `- note: struct 'View' does not conform to the 'Sendable' protocol
 4 |     public var data: ByteBuffer
 5 |
/host/spi-builder-workspace/Sources/SteamPress/Controllers/BlogController.swift:114:69: warning: capture of 'author' with non-sendable type 'BlogUser' in a `@Sendable` closure; this is an error in the Swift 6 language mode
112 |                     let paginationTagInfo = self.getPaginationInformation(currentPage: paginationInformation.page, totalPosts: postCount, currentQuery: req.url.query)
113 |                     do {
114 |                         return req.blogPresenter.authorView(author: author, posts: posts, postCount: postCount, tagsForPosts: tagsForPosts, pageInformation: try req.pageInformation(), paginationTagInfo: paginationTagInfo)
    |                                                                     `- warning: capture of 'author' with non-sendable type 'BlogUser' in a `@Sendable` closure; this is an error in the Swift 6 language mode
115 |                     } catch {
116 |                         return req.eventLoop.makeFailedFuture(error)
/host/spi-builder-workspace/Sources/SteamPress/Models/BlogUser.swift:5:20: note: class 'BlogUser' does not conform to the 'Sendable' protocol
 3 | // MARK: - Model
 4 |
 5 | public final class BlogUser: Codable {
   |                    `- note: class 'BlogUser' does not conform to the 'Sendable' protocol
 6 |
 7 |     public var userID: Int?
/host/spi-builder-workspace/Sources/SteamPress/Controllers/BlogController.swift:114:69: warning: capture of 'author' with non-sendable type 'BlogUser' in a `@Sendable` closure; this is an error in the Swift 6 language mode
112 |                     let paginationTagInfo = self.getPaginationInformation(currentPage: paginationInformation.page, totalPosts: postCount, currentQuery: req.url.query)
113 |                     do {
114 |                         return req.blogPresenter.authorView(author: author, posts: posts, postCount: postCount, tagsForPosts: tagsForPosts, pageInformation: try req.pageInformation(), paginationTagInfo: paginationTagInfo)
    |                                                                     `- warning: capture of 'author' with non-sendable type 'BlogUser' in a `@Sendable` closure; this is an error in the Swift 6 language mode
115 |                     } catch {
116 |                         return req.eventLoop.makeFailedFuture(error)
/host/spi-builder-workspace/Sources/SteamPress/Models/BlogUser.swift:5:20: note: class 'BlogUser' does not conform to the 'Sendable' protocol
 3 | // MARK: - Model
 4 |
 5 | public final class BlogUser: Codable {
   |                    `- note: class 'BlogUser' does not conform to the 'Sendable' protocol
 6 |
 7 |     public var userID: Int?
/host/spi-builder-workspace/Sources/SteamPress/Controllers/BlogController.swift:114:84: warning: capture of 'posts' with non-sendable type '[BlogPost]' in a `@Sendable` closure; this is an error in the Swift 6 language mode
112 |                     let paginationTagInfo = self.getPaginationInformation(currentPage: paginationInformation.page, totalPosts: postCount, currentQuery: req.url.query)
113 |                     do {
114 |                         return req.blogPresenter.authorView(author: author, posts: posts, postCount: postCount, tagsForPosts: tagsForPosts, pageInformation: try req.pageInformation(), paginationTagInfo: paginationTagInfo)
    |                                                                                    `- warning: capture of 'posts' with non-sendable type '[BlogPost]' in a `@Sendable` closure; this is an error in the Swift 6 language mode
115 |                     } catch {
116 |                         return req.eventLoop.makeFailedFuture(error)
/host/spi-builder-workspace/Sources/SteamPress/Models/BlogPost.swift:8:20: note: class 'BlogPost' does not conform to the 'Sendable' protocol
 6 | // MARK: - Model
 7 |
 8 | public final class BlogPost: Codable {
   |                    `- note: class 'BlogPost' does not conform to the 'Sendable' protocol
 9 |
10 |     public var blogID: Int?
/host/spi-builder-workspace/Sources/SteamPress/Controllers/BlogController.swift:124:64: warning: type 'View' does not conform to the 'Sendable' protocol; this is an error in the Swift 6 language mode
122 |
123 |     func allTagsViewHandler(_ req: Request) throws -> EventLoopFuture<View> {
124 |         return req.blogTagRepository.getAllTagsWithPostCount().flatMap { tagswithCount in
    |                                                                `- warning: type 'View' does not conform to the 'Sendable' protocol; this is an error in the Swift 6 language mode
125 |             let allTags = tagswithCount.map { $0.0 }
126 |             do {
/host/spi-builder-workspace/.build/checkouts/vapor/Sources/Vapor/View/View.swift:3:15: note: struct 'View' does not conform to the 'Sendable' protocol
 1 | import NIOCore
 2 |
 3 | public struct View: ResponseEncodable {
   |               `- note: struct 'View' does not conform to the 'Sendable' protocol
 4 |     public var data: ByteBuffer
 5 |
/host/spi-builder-workspace/Sources/SteamPress/Controllers/BlogController.swift:141:66: warning: type 'View' does not conform to the 'Sendable' protocol; this is an error in the Swift 6 language mode
139 |
140 |     func allAuthorsViewHandler(_ req: Request) throws -> EventLoopFuture<View> {
141 |         return req.blogUserRepository.getAllUsersWithPostCount().flatMap { allUsersWithCount in
    |                                                                  `- warning: type 'View' does not conform to the 'Sendable' protocol; this is an error in the Swift 6 language mode
142 |             let allUsers = allUsersWithCount.map { $0.0 }
143 |             do {
/host/spi-builder-workspace/.build/checkouts/vapor/Sources/Vapor/View/View.swift:3:15: note: struct 'View' does not conform to the 'Sendable' protocol
 1 | import NIOCore
 2 |
 3 | public struct View: ResponseEncodable {
   |               `- note: struct 'View' does not conform to the 'Sendable' protocol
 4 |     public var data: ByteBuffer
 5 |
/host/spi-builder-workspace/Sources/SteamPress/Controllers/BlogController.swift:168:48: warning: type 'View' does not conform to the 'Sendable' protocol; this is an error in the Swift 6 language mode
166 |         let tagsQuery = req.blogTagRepository.getTagsForAllPosts()
167 |         let userQuery = req.blogUserRepository.getAllUsers()
168 |         return postsQuery.and(postsCountQuery).flatMap { posts, totalPosts in
    |                                                `- warning: type 'View' does not conform to the 'Sendable' protocol; this is an error in the Swift 6 language mode
169 |             userQuery.and(tagsQuery).flatMap { users, tagsForPosts in
170 |                 let paginationTagInfo = self.getPaginationInformation(currentPage: paginationInformation.page, totalPosts: totalPosts, currentQuery: req.url.query)
/host/spi-builder-workspace/.build/checkouts/vapor/Sources/Vapor/View/View.swift:3:15: note: struct 'View' does not conform to the 'Sendable' protocol
 1 | import NIOCore
 2 |
 3 | public struct View: ResponseEncodable {
   |               `- note: struct 'View' does not conform to the 'Sendable' protocol
 4 |     public var data: ByteBuffer
 5 |
/host/spi-builder-workspace/Sources/SteamPress/Controllers/BlogController.swift:169:23: warning: type 'BlogTag' does not conform to the 'Sendable' protocol; this is an error in the Swift 6 language mode
167 |         let userQuery = req.blogUserRepository.getAllUsers()
168 |         return postsQuery.and(postsCountQuery).flatMap { posts, totalPosts in
169 |             userQuery.and(tagsQuery).flatMap { users, tagsForPosts in
    |                       `- warning: type 'BlogTag' does not conform to the 'Sendable' protocol; this is an error in the Swift 6 language mode
170 |                 let paginationTagInfo = self.getPaginationInformation(currentPage: paginationInformation.page, totalPosts: totalPosts, currentQuery: req.url.query)
171 |                 do {
/host/spi-builder-workspace/Sources/SteamPress/Models/BlogTag.swift:5:20: note: class 'BlogTag' does not conform to the 'Sendable' protocol
 3 | // MARK: - Model
 4 |
 5 | public final class BlogTag: Codable {
   |                    `- note: class 'BlogTag' does not conform to the 'Sendable' protocol
 6 |
 7 |     public var tagID: Int?
/host/spi-builder-workspace/Sources/SteamPress/Controllers/BlogController.swift:169:38: warning: type 'View' does not conform to the 'Sendable' protocol; this is an error in the Swift 6 language mode
167 |         let userQuery = req.blogUserRepository.getAllUsers()
168 |         return postsQuery.and(postsCountQuery).flatMap { posts, totalPosts in
169 |             userQuery.and(tagsQuery).flatMap { users, tagsForPosts in
    |                                      `- warning: type 'View' does not conform to the 'Sendable' protocol; this is an error in the Swift 6 language mode
170 |                 let paginationTagInfo = self.getPaginationInformation(currentPage: paginationInformation.page, totalPosts: totalPosts, currentQuery: req.url.query)
171 |                 do {
/host/spi-builder-workspace/.build/checkouts/vapor/Sources/Vapor/View/View.swift:3:15: note: struct 'View' does not conform to the 'Sendable' protocol
 1 | import NIOCore
 2 |
 3 | public struct View: ResponseEncodable {
   |               `- note: struct 'View' does not conform to the 'Sendable' protocol
 4 |     public var data: ByteBuffer
 5 |
/host/spi-builder-workspace/Sources/SteamPress/Controllers/BlogController.swift:172:90: warning: capture of 'posts' with non-sendable type '[BlogPost]' in a `@Sendable` closure; this is an error in the Swift 6 language mode
170 |                 let paginationTagInfo = self.getPaginationInformation(currentPage: paginationInformation.page, totalPosts: totalPosts, currentQuery: req.url.query)
171 |                 do {
172 |                     return req.blogPresenter.searchView(totalResults: totalPosts, posts: posts, authors: users, searchTerm: searchTerm, tagsForPosts: tagsForPosts, pageInformation: try req.pageInformation(), paginationTagInfo: paginationTagInfo)
    |                                                                                          `- warning: capture of 'posts' with non-sendable type '[BlogPost]' in a `@Sendable` closure; this is an error in the Swift 6 language mode
173 |                 } catch {
174 |                     return req.eventLoop.makeFailedFuture(error)
/host/spi-builder-workspace/Sources/SteamPress/Models/BlogPost.swift:8:20: note: class 'BlogPost' does not conform to the 'Sendable' protocol
 6 | // MARK: - Model
 7 |
 8 | public final class BlogPost: Codable {
   |                    `- note: class 'BlogPost' does not conform to the 'Sendable' protocol
 9 |
10 |     public var blogID: Int?
[2378/2387] Compiling SteamPress Request+PaginationInformation.swift
/host/spi-builder-workspace/Sources/SteamPress/Controllers/Admin/UserAdminController.swift:61:42: warning: type 'View' does not conform to the 'Sendable' protocol; this is an error in the Swift 6 language mode
 59 |
 60 |     func editUserHandler(_ req: Request) throws -> EventLoopFuture<View> {
 61 |         req.parameters.findUser(on: req).flatMap { user in
    |                                          `- warning: type 'View' does not conform to the 'Sendable' protocol; this is an error in the Swift 6 language mode
 62 |             do {
 63 |                 return try req.adminPresenter.createUserView(editing: true, errors: nil, name: user.name, nameError: false, username: user.username, usernameErorr: false, passwordError: false, confirmPasswordError: false, resetPasswordOnLogin: user.resetPasswordRequired, userID: user.userID, profilePicture: user.profilePicture, twitterHandle: user.twitterHandle, biography: user.biography, tagline: user.tagline, pageInformation: req.adminPageInfomation())
/host/spi-builder-workspace/.build/checkouts/vapor/Sources/Vapor/View/View.swift:3:15: note: struct 'View' does not conform to the 'Sendable' protocol
 1 | import NIOCore
 2 |
 3 | public struct View: ResponseEncodable {
   |               `- note: struct 'View' does not conform to the 'Sendable' protocol
 4 |     public var data: ByteBuffer
 5 |
/host/spi-builder-workspace/Sources/SteamPress/Controllers/Admin/UserAdminController.swift:1:1: warning: add '@preconcurrency' to suppress 'Sendable'-related warnings from module 'Vapor'
  1 | import Vapor
    | `- warning: add '@preconcurrency' to suppress 'Sendable'-related warnings from module 'Vapor'
  2 |
  3 | struct UserAdminController: RouteCollection {
/host/spi-builder-workspace/Sources/SteamPress/Controllers/Admin/UserAdminController.swift:82:422: warning: capture of 'user' with non-sendable type 'BlogUser' in a `@Sendable` closure; this is an error in the Swift 6 language mode
 80 |                     if let editUserErrors = errors {
 81 |                         do {
 82 |                             let view = try req.adminPresenter.createUserView(editing: true, errors: editUserErrors.errors, name: data.name, nameError: errors?.nameError ?? false, username: data.username, usernameErorr: errors?.usernameError ?? false, passwordError: editUserErrors.passwordError, confirmPasswordError: editUserErrors.confirmPasswordError, resetPasswordOnLogin: data.resetPasswordOnLogin ?? false, userID: user.userID, profilePicture: data.profilePicture, twitterHandle: data.twitterHandle, biography: data.biography, tagline: data.tagline, pageInformation: req.adminPageInfomation())
    |                                                                                                                                                                                                                                                                                                                                                                                                                                      `- warning: capture of 'user' with non-sendable type 'BlogUser' in a `@Sendable` closure; this is an error in the Swift 6 language mode
 83 |                             return view.encodeResponse(for: req)
 84 |                         } catch {
/host/spi-builder-workspace/Sources/SteamPress/Models/BlogUser.swift:5:20: note: class 'BlogUser' does not conform to the 'Sendable' protocol
 3 | // MARK: - Model
 4 |
 5 | public final class BlogUser: Codable {
   |                    `- note: class 'BlogUser' does not conform to the 'Sendable' protocol
 6 |
 7 |     public var userID: Int?
/host/spi-builder-workspace/Sources/SteamPress/Controllers/Admin/UserAdminController.swift:109:29: warning: capture of 'user' with non-sendable type 'BlogUser' in a `@Sendable` closure; this is an error in the Swift 6 language mode
107 |                     if let password = data.password, password != "" {
108 |                         updatePassword = req.password.async.hash(password).map { hashedPassword in
109 |                             user.password = hashedPassword
    |                             `- warning: capture of 'user' with non-sendable type 'BlogUser' in a `@Sendable` closure; this is an error in the Swift 6 language mode
110 |                         }
111 |                     } else {
/host/spi-builder-workspace/Sources/SteamPress/Models/BlogUser.swift:5:20: note: class 'BlogUser' does not conform to the 'Sendable' protocol
 3 | // MARK: - Model
 4 |
 5 | public final class BlogUser: Codable {
   |                    `- note: class 'BlogUser' does not conform to the 'Sendable' protocol
 6 |
 7 |     public var userID: Int?
/host/spi-builder-workspace/Sources/SteamPress/Controllers/Admin/UserAdminController.swift:116:60: warning: capture of 'user' with non-sendable type 'BlogUser' in a `@Sendable` closure; this is an error in the Swift 6 language mode
114 |                     return updatePassword.flatMap {
115 |                         let redirect = req.redirect(to: self.pathCreator.createPath(for: "admin"))
116 |                         return req.blogUserRepository.save(user).transform(to: redirect)
    |                                                            `- warning: capture of 'user' with non-sendable type 'BlogUser' in a `@Sendable` closure; this is an error in the Swift 6 language mode
117 |                     }
118 |                 }
/host/spi-builder-workspace/Sources/SteamPress/Models/BlogUser.swift:5:20: note: class 'BlogUser' does not conform to the 'Sendable' protocol
 3 | // MARK: - Model
 4 |
 5 | public final class BlogUser: Codable {
   |                    `- note: class 'BlogUser' does not conform to the 'Sendable' protocol
 6 |
 7 |     public var userID: Int?
/host/spi-builder-workspace/Sources/SteamPress/Controllers/Admin/UserAdminController.swift:128:99: warning: type 'BlogUser' does not conform to the 'Sendable' protocol; this is an error in the Swift 6 language mode
126 |         req.parameters.findUser(on: req).and(req.blogUserRepository.getUsersCount()).flatMap { user, userCount in
127 |             guard userCount > 1 else {
128 |                 return req.blogPostRepository.getAllPostsSortedByPublishDate(includeDrafts: true).and(req.blogUserRepository.getAllUsers()).flatMap { posts, users in
    |                                                                                                   `- warning: type 'BlogUser' does not conform to the 'Sendable' protocol; this is an error in the Swift 6 language mode
129 |                     do {
130 |                         let view = try req.adminPresenter.createIndexView(posts: posts, users: users, errors: ["You cannot delete the last user"], pageInformation: req.adminPageInfomation())
/host/spi-builder-workspace/Sources/SteamPress/Models/BlogUser.swift:5:20: note: class 'BlogUser' does not conform to the 'Sendable' protocol
 3 | // MARK: - Model
 4 |
 5 | public final class BlogUser: Codable {
   |                    `- note: class 'BlogUser' does not conform to the 'Sendable' protocol
 6 |
 7 |     public var userID: Int?
/host/spi-builder-workspace/Sources/SteamPress/Controllers/Admin/UserAdminController.swift:145:99: warning: type 'BlogUser' does not conform to the 'Sendable' protocol; this is an error in the Swift 6 language mode
143 |             }
144 |             guard loggedInUser.userID != user.userID else {
145 |                 return req.blogPostRepository.getAllPostsSortedByPublishDate(includeDrafts: true).and(req.blogUserRepository.getAllUsers()).flatMap { posts, users in
    |                                                                                                   `- warning: type 'BlogUser' does not conform to the 'Sendable' protocol; this is an error in the Swift 6 language mode
146 |                     do {
147 |                         let view = try req.adminPresenter.createIndexView(posts: posts, users: users, errors: ["You cannot delete yourself whilst logged in"], pageInformation: req.adminPageInfomation())
/host/spi-builder-workspace/Sources/SteamPress/Models/BlogUser.swift:5:20: note: class 'BlogUser' does not conform to the 'Sendable' protocol
 3 | // MARK: - Model
 4 |
 5 | public final class BlogUser: Codable {
   |                    `- note: class 'BlogUser' does not conform to the 'Sendable' protocol
 6 |
 7 |     public var userID: Int?
/host/spi-builder-workspace/Sources/SteamPress/Controllers/Admin/UserAdminController.swift:204:32: warning: 'validate' is deprecated: renamed to 'validate(content:)'
202 |
203 |         do {
204 |             try CreateUserData.validate(req)
    |                                |- warning: 'validate' is deprecated: renamed to 'validate(content:)'
    |                                `- note: use 'validate(content:)' instead
205 |         } catch {
206 |             createUserErrors.append("The username provided is not valid")
/host/spi-builder-workspace/Sources/SteamPress/Controllers/Admin/UserAdminController.swift:229:17: warning: mutation of captured var 'createUserErrors' in concurrently-executing code; this is an error in the Swift 6 language mode
227 |         return usernameUniqueError.map { usernameErrorOccurred in
228 |             if let uniqueError = usernameErrorOccurred {
229 |                 createUserErrors.append(uniqueError)
    |                 `- warning: mutation of captured var 'createUserErrors' in concurrently-executing code; this is an error in the Swift 6 language mode
230 |                 usernameError = true
231 |             }
/host/spi-builder-workspace/Sources/SteamPress/Controllers/Admin/UserAdminController.swift:230:17: warning: mutation of captured var 'usernameError' in concurrently-executing code; this is an error in the Swift 6 language mode
228 |             if let uniqueError = usernameErrorOccurred {
229 |                 createUserErrors.append(uniqueError)
230 |                 usernameError = true
    |                 `- warning: mutation of captured var 'usernameError' in concurrently-executing code; this is an error in the Swift 6 language mode
231 |             }
232 |             if createUserErrors.count == 0 {
/host/spi-builder-workspace/Sources/SteamPress/Controllers/Admin/UserAdminController.swift:232:16: warning: reference to captured var 'createUserErrors' in concurrently-executing code; this is an error in the Swift 6 language mode
230 |                 usernameError = true
231 |             }
232 |             if createUserErrors.count == 0 {
    |                `- warning: reference to captured var 'createUserErrors' in concurrently-executing code; this is an error in the Swift 6 language mode
233 |                 return nil
234 |             }
/host/spi-builder-workspace/Sources/SteamPress/Controllers/Admin/UserAdminController.swift:236:51: warning: reference to captured var 'createUserErrors' in concurrently-executing code; this is an error in the Swift 6 language mode
234 |             }
235 |
236 |             let errors = CreateUserErrors(errors: createUserErrors, passwordError: passwordError, confirmPasswordError: confirmPasswordError, nameError: nameErorr, usernameError: usernameError)
    |                                                   `- warning: reference to captured var 'createUserErrors' in concurrently-executing code; this is an error in the Swift 6 language mode
237 |
238 |             return errors
/host/spi-builder-workspace/Sources/SteamPress/Controllers/Admin/UserAdminController.swift:236:84: warning: reference to captured var 'passwordError' in concurrently-executing code; this is an error in the Swift 6 language mode
234 |             }
235 |
236 |             let errors = CreateUserErrors(errors: createUserErrors, passwordError: passwordError, confirmPasswordError: confirmPasswordError, nameError: nameErorr, usernameError: usernameError)
    |                                                                                    `- warning: reference to captured var 'passwordError' in concurrently-executing code; this is an error in the Swift 6 language mode
237 |
238 |             return errors
/host/spi-builder-workspace/Sources/SteamPress/Controllers/Admin/UserAdminController.swift:236:121: warning: reference to captured var 'confirmPasswordError' in concurrently-executing code; this is an error in the Swift 6 language mode
234 |             }
235 |
236 |             let errors = CreateUserErrors(errors: createUserErrors, passwordError: passwordError, confirmPasswordError: confirmPasswordError, nameError: nameErorr, usernameError: usernameError)
    |                                                                                                                         `- warning: reference to captured var 'confirmPasswordError' in concurrently-executing code; this is an error in the Swift 6 language mode
237 |
238 |             return errors
/host/spi-builder-workspace/Sources/SteamPress/Controllers/Admin/UserAdminController.swift:236:154: warning: reference to captured var 'nameErorr' in concurrently-executing code; this is an error in the Swift 6 language mode
234 |             }
235 |
236 |             let errors = CreateUserErrors(errors: createUserErrors, passwordError: passwordError, confirmPasswordError: confirmPasswordError, nameError: nameErorr, usernameError: usernameError)
    |                                                                                                                                                          `- warning: reference to captured var 'nameErorr' in concurrently-executing code; this is an error in the Swift 6 language mode
237 |
238 |             return errors
/host/spi-builder-workspace/Sources/SteamPress/Controllers/Admin/UserAdminController.swift:236:180: warning: reference to captured var 'usernameError' in concurrently-executing code; this is an error in the Swift 6 language mode
234 |             }
235 |
236 |             let errors = CreateUserErrors(errors: createUserErrors, passwordError: passwordError, confirmPasswordError: confirmPasswordError, nameError: nameErorr, usernameError: usernameError)
    |                                                                                                                                                                                    `- warning: reference to captured var 'usernameError' in concurrently-executing code; this is an error in the Swift 6 language mode
237 |
238 |             return errors
/host/spi-builder-workspace/Sources/SteamPress/Controllers/BlogAdminController.swift:31:91: warning: type 'BlogUser' does not conform to the 'Sendable' protocol; this is an error in the Swift 6 language mode
29 |     // MARK: Admin Handler
30 |     func adminHandler(_ req: Request) throws -> EventLoopFuture<View> {
31 |         return req.blogPostRepository.getAllPostsSortedByPublishDate(includeDrafts: true).and(req.blogUserRepository.getAllUsers()).flatMap { posts, users in
   |                                                                                           `- warning: type 'BlogUser' does not conform to the 'Sendable' protocol; this is an error in the Swift 6 language mode
32 |             do {
33 |                 return try req.adminPresenter.createIndexView(posts: posts, users: users, errors: nil, pageInformation: req.adminPageInfomation())
/host/spi-builder-workspace/Sources/SteamPress/Models/BlogUser.swift:5:20: note: class 'BlogUser' does not conform to the 'Sendable' protocol
 3 | // MARK: - Model
 4 |
 5 | public final class BlogUser: Codable {
   |                    `- note: class 'BlogUser' does not conform to the 'Sendable' protocol
 6 |
 7 |     public var userID: Int?
/host/spi-builder-workspace/Sources/SteamPress/Controllers/BlogAdminController.swift:31:133: warning: type 'View' does not conform to the 'Sendable' protocol; this is an error in the Swift 6 language mode
29 |     // MARK: Admin Handler
30 |     func adminHandler(_ req: Request) throws -> EventLoopFuture<View> {
31 |         return req.blogPostRepository.getAllPostsSortedByPublishDate(includeDrafts: true).and(req.blogUserRepository.getAllUsers()).flatMap { posts, users in
   |                                                                                                                                     `- warning: type 'View' does not conform to the 'Sendable' protocol; this is an error in the Swift 6 language mode
32 |             do {
33 |                 return try req.adminPresenter.createIndexView(posts: posts, users: users, errors: nil, pageInformation: req.adminPageInfomation())
/host/spi-builder-workspace/.build/checkouts/vapor/Sources/Vapor/View/View.swift:3:15: note: struct 'View' does not conform to the 'Sendable' protocol
 1 | import NIOCore
 2 |
 3 | public struct View: ResponseEncodable {
   |               `- note: struct 'View' does not conform to the 'Sendable' protocol
 4 |     public var data: ByteBuffer
 5 |
/host/spi-builder-workspace/Sources/SteamPress/Controllers/BlogAdminController.swift:1:1: warning: add '@preconcurrency' to suppress 'Sendable'-related warnings from module 'Vapor'
 1 | import Vapor
   | `- warning: add '@preconcurrency' to suppress 'Sendable'-related warnings from module 'Vapor'
 2 |
 3 | struct BlogAdminController: RouteCollection {
/host/spi-builder-workspace/Sources/SteamPress/Controllers/BlogController.swift:44:151: warning: type 'BlogTag' does not conform to the 'Sendable' protocol; this is an error in the Swift 6 language mode
 42 |     func indexHandler(_ req: Request) throws -> EventLoopFuture<View> {
 43 |         let paginationInformation = req.getPaginationInformation(postsPerPage: postsPerPage)
 44 |         return req.blogPostRepository.getAllPostsSortedByPublishDate(includeDrafts: false, count: postsPerPage, offset: paginationInformation.offset).and(req.blogTagRepository.getAllTags()).flatMap { posts, tags in
    |                                                                                                                                                       `- warning: type 'BlogTag' does not conform to the 'Sendable' protocol; this is an error in the Swift 6 language mode
 45 |             req.blogUserRepository.getAllUsers().and(req.blogPostRepository.getAllPostsCount(includeDrafts: false)).flatMap { users, totalPostCount in
 46 |                 req.blogTagRepository.getTagsForAllPosts().flatMap { tagsForPosts in
/host/spi-builder-workspace/Sources/SteamPress/Models/BlogTag.swift:5:20: note: class 'BlogTag' does not conform to the 'Sendable' protocol
 3 | // MARK: - Model
 4 |
 5 | public final class BlogTag: Codable {
   |                    `- note: class 'BlogTag' does not conform to the 'Sendable' protocol
 6 |
 7 |     public var tagID: Int?
/host/spi-builder-workspace/Sources/SteamPress/Controllers/BlogController.swift:44:191: warning: type 'View' does not conform to the 'Sendable' protocol; this is an error in the Swift 6 language mode
 42 |     func indexHandler(_ req: Request) throws -> EventLoopFuture<View> {
 43 |         let paginationInformation = req.getPaginationInformation(postsPerPage: postsPerPage)
 44 |         return req.blogPostRepository.getAllPostsSortedByPublishDate(includeDrafts: false, count: postsPerPage, offset: paginationInformation.offset).and(req.blogTagRepository.getAllTags()).flatMap { posts, tags in
    |                                                                                                                                                                                               `- warning: type 'View' does not conform to the 'Sendable' protocol; this is an error in the Swift 6 language mode
 45 |             req.blogUserRepository.getAllUsers().and(req.blogPostRepository.getAllPostsCount(includeDrafts: false)).flatMap { users, totalPostCount in
 46 |                 req.blogTagRepository.getTagsForAllPosts().flatMap { tagsForPosts in
/host/spi-builder-workspace/.build/checkouts/vapor/Sources/Vapor/View/View.swift:3:15: note: struct 'View' does not conform to the 'Sendable' protocol
 1 | import NIOCore
 2 |
 3 | public struct View: ResponseEncodable {
   |               `- note: struct 'View' does not conform to the 'Sendable' protocol
 4 |     public var data: ByteBuffer
 5 |
/host/spi-builder-workspace/Sources/SteamPress/Controllers/BlogController.swift:1:1: warning: add '@preconcurrency' to suppress 'Sendable'-related warnings from module 'Vapor'
  1 | import Vapor
    | `- warning: add '@preconcurrency' to suppress 'Sendable'-related warnings from module 'Vapor'
  2 |
  3 | struct BlogController: RouteCollection {
/host/spi-builder-workspace/Sources/SteamPress/Controllers/BlogController.swift:45:117: warning: type 'View' does not conform to the 'Sendable' protocol; this is an error in the Swift 6 language mode
 43 |         let paginationInformation = req.getPaginationInformation(postsPerPage: postsPerPage)
 44 |         return req.blogPostRepository.getAllPostsSortedByPublishDate(includeDrafts: false, count: postsPerPage, offset: paginationInformation.offset).and(req.blogTagRepository.getAllTags()).flatMap { posts, tags in
 45 |             req.blogUserRepository.getAllUsers().and(req.blogPostRepository.getAllPostsCount(includeDrafts: false)).flatMap { users, totalPostCount in
    |                                                                                                                     `- warning: type 'View' does not conform to the 'Sendable' protocol; this is an error in the Swift 6 language mode
 46 |                 req.blogTagRepository.getTagsForAllPosts().flatMap { tagsForPosts in
 47 |                     do {
/host/spi-builder-workspace/.build/checkouts/vapor/Sources/Vapor/View/View.swift:3:15: note: struct 'View' does not conform to the 'Sendable' protocol
 1 | import NIOCore
 2 |
 3 | public struct View: ResponseEncodable {
   |               `- note: struct 'View' does not conform to the 'Sendable' protocol
 4 |     public var data: ByteBuffer
 5 |
/host/spi-builder-workspace/Sources/SteamPress/Controllers/BlogController.swift:46:60: warning: type 'View' does not conform to the 'Sendable' protocol; this is an error in the Swift 6 language mode
 44 |         return req.blogPostRepository.getAllPostsSortedByPublishDate(includeDrafts: false, count: postsPerPage, offset: paginationInformation.offset).and(req.blogTagRepository.getAllTags()).flatMap { posts, tags in
 45 |             req.blogUserRepository.getAllUsers().and(req.blogPostRepository.getAllPostsCount(includeDrafts: false)).flatMap { users, totalPostCount in
 46 |                 req.blogTagRepository.getTagsForAllPosts().flatMap { tagsForPosts in
    |                                                            `- warning: type 'View' does not conform to the 'Sendable' protocol; this is an error in the Swift 6 language mode
 47 |                     do {
 48 |                         return req.blogPresenter.indexView(posts: posts, tags: tags, authors: users, tagsForPosts: tagsForPosts, pageInformation: try req.pageInformation(), paginationTagInfo: self.getPaginationInformation(currentPage: paginationInformation.page, totalPosts: totalPostCount, currentQuery: req.url.query))
/host/spi-builder-workspace/.build/checkouts/vapor/Sources/Vapor/View/View.swift:3:15: note: struct 'View' does not conform to the 'Sendable' protocol
 1 | import NIOCore
 2 |
 3 | public struct View: ResponseEncodable {
   |               `- note: struct 'View' does not conform to the 'Sendable' protocol
 4 |     public var data: ByteBuffer
 5 |
/host/spi-builder-workspace/Sources/SteamPress/Controllers/BlogController.swift:48:67: warning: capture of 'posts' with non-sendable type '[BlogPost]' in a `@Sendable` closure; this is an error in the Swift 6 language mode
 46 |                 req.blogTagRepository.getTagsForAllPosts().flatMap { tagsForPosts in
 47 |                     do {
 48 |                         return req.blogPresenter.indexView(posts: posts, tags: tags, authors: users, tagsForPosts: tagsForPosts, pageInformation: try req.pageInformation(), paginationTagInfo: self.getPaginationInformation(currentPage: paginationInformation.page, totalPosts: totalPostCount, currentQuery: req.url.query))
    |                                                                   `- warning: capture of 'posts' with non-sendable type '[BlogPost]' in a `@Sendable` closure; this is an error in the Swift 6 language mode
 49 |                     } catch {
 50 |                         return req.eventLoop.makeFailedFuture(error)
/host/spi-builder-workspace/Sources/SteamPress/Models/BlogPost.swift:8:20: note: class 'BlogPost' does not conform to the 'Sendable' protocol
 6 | // MARK: - Model
 7 |
 8 | public final class BlogPost: Codable {
   |                    `- note: class 'BlogPost' does not conform to the 'Sendable' protocol
 9 |
10 |     public var blogID: Int?
/host/spi-builder-workspace/Sources/SteamPress/Controllers/BlogController.swift:48:80: warning: capture of 'tags' with non-sendable type '[BlogTag]' in a `@Sendable` closure; this is an error in the Swift 6 language mode
 46 |                 req.blogTagRepository.getTagsForAllPosts().flatMap { tagsForPosts in
 47 |                     do {
 48 |                         return req.blogPresenter.indexView(posts: posts, tags: tags, authors: users, tagsForPosts: tagsForPosts, pageInformation: try req.pageInformation(), paginationTagInfo: self.getPaginationInformation(currentPage: paginationInformation.page, totalPosts: totalPostCount, currentQuery: req.url.query))
    |                                                                                `- warning: capture of 'tags' with non-sendable type '[BlogTag]' in a `@Sendable` closure; this is an error in the Swift 6 language mode
 49 |                     } catch {
 50 |                         return req.eventLoop.makeFailedFuture(error)
/host/spi-builder-workspace/Sources/SteamPress/Models/BlogTag.swift:5:20: note: class 'BlogTag' does not conform to the 'Sendable' protocol
 3 | // MARK: - Model
 4 |
 5 | public final class BlogTag: Codable {
   |                    `- note: class 'BlogTag' does not conform to the 'Sendable' protocol
 6 |
 7 |     public var tagID: Int?
/host/spi-builder-workspace/Sources/SteamPress/Controllers/BlogController.swift:48:67: warning: capture of 'posts' with non-sendable type '[BlogPost]' in a `@Sendable` closure; this is an error in the Swift 6 language mode
 46 |                 req.blogTagRepository.getTagsForAllPosts().flatMap { tagsForPosts in
 47 |                     do {
 48 |                         return req.blogPresenter.indexView(posts: posts, tags: tags, authors: users, tagsForPosts: tagsForPosts, pageInformation: try req.pageInformation(), paginationTagInfo: self.getPaginationInformation(currentPage: paginationInformation.page, totalPosts: totalPostCount, currentQuery: req.url.query))
    |                                                                   `- warning: capture of 'posts' with non-sendable type '[BlogPost]' in a `@Sendable` closure; this is an error in the Swift 6 language mode
 49 |                     } catch {
 50 |                         return req.eventLoop.makeFailedFuture(error)
/host/spi-builder-workspace/Sources/SteamPress/Models/BlogPost.swift:8:20: note: class 'BlogPost' does not conform to the 'Sendable' protocol
 6 | // MARK: - Model
 7 |
 8 | public final class BlogPost: Codable {
   |                    `- note: class 'BlogPost' does not conform to the 'Sendable' protocol
 9 |
10 |     public var blogID: Int?
/host/spi-builder-workspace/Sources/SteamPress/Controllers/BlogController.swift:48:80: warning: capture of 'tags' with non-sendable type '[BlogTag]' in a `@Sendable` closure; this is an error in the Swift 6 language mode
 46 |                 req.blogTagRepository.getTagsForAllPosts().flatMap { tagsForPosts in
 47 |                     do {
 48 |                         return req.blogPresenter.indexView(posts: posts, tags: tags, authors: users, tagsForPosts: tagsForPosts, pageInformation: try req.pageInformation(), paginationTagInfo: self.getPaginationInformation(currentPage: paginationInformation.page, totalPosts: totalPostCount, currentQuery: req.url.query))
    |                                                                                `- warning: capture of 'tags' with non-sendable type '[BlogTag]' in a `@Sendable` closure; this is an error in the Swift 6 language mode
 49 |                     } catch {
 50 |                         return req.eventLoop.makeFailedFuture(error)
/host/spi-builder-workspace/Sources/SteamPress/Models/BlogTag.swift:5:20: note: class 'BlogTag' does not conform to the 'Sendable' protocol
 3 | // MARK: - Model
 4 |
 5 | public final class BlogTag: Codable {
   |                    `- note: class 'BlogTag' does not conform to the 'Sendable' protocol
 6 |
 7 |     public var tagID: Int?
/host/spi-builder-workspace/Sources/SteamPress/Controllers/BlogController.swift:48:95: warning: capture of 'users' with non-sendable type '[BlogUser]' in a `@Sendable` closure; this is an error in the Swift 6 language mode
 46 |                 req.blogTagRepository.getTagsForAllPosts().flatMap { tagsForPosts in
 47 |                     do {
 48 |                         return req.blogPresenter.indexView(posts: posts, tags: tags, authors: users, tagsForPosts: tagsForPosts, pageInformation: try req.pageInformation(), paginationTagInfo: self.getPaginationInformation(currentPage: paginationInformation.page, totalPosts: totalPostCount, currentQuery: req.url.query))
    |                                                                                               `- warning: capture of 'users' with non-sendable type '[BlogUser]' in a `@Sendable` closure; this is an error in the Swift 6 language mode
 49 |                     } catch {
 50 |                         return req.eventLoop.makeFailedFuture(error)
/host/spi-builder-workspace/Sources/SteamPress/Models/BlogUser.swift:5:20: note: class 'BlogUser' does not conform to the 'Sendable' protocol
 3 | // MARK: - Model
 4 |
 5 | public final class BlogUser: Codable {
   |                    `- note: class 'BlogUser' does not conform to the 'Sendable' protocol
 6 |
 7 |     public var userID: Int?
/host/spi-builder-workspace/Sources/SteamPress/Controllers/BlogController.swift:58:20: warning: 'redirect(to:type:)' is deprecated: renamed to 'redirect(to:redirectType:)'
 56 |
 57 |     func blogPostIndexRedirectHandler(_ req: Request) throws -> Response {
 58 |         return req.redirect(to: pathCreator.createPath(for: pathCreator.blogPath), type: .permanent)
    |                    |- warning: 'redirect(to:type:)' is deprecated: renamed to 'redirect(to:redirectType:)'
    |                    `- note: use 'redirect(to:redirectType:)' instead
 59 |     }
 60 |
/host/spi-builder-workspace/Sources/SteamPress/Controllers/BlogController.swift:65:92: warning: type 'View' does not conform to the 'Sendable' protocol; this is an error in the Swift 6 language mode
 63 |             throw Abort(.badRequest)
 64 |         }
 65 |         return req.blogPostRepository.getPost(slug: blogSlug).unwrap(or: Abort(.notFound)).flatMap { (post: BlogPost) -> EventLoopFuture<View> in
    |                                                                                            `- warning: type 'View' does not conform to the 'Sendable' protocol; this is an error in the Swift 6 language mode
 66 |             let tagsQuery: EventLoopFuture<[BlogTag]> = req.blogTagRepository.getTags(for: post)
 67 |             let userQuery: EventLoopFuture<BlogUser> = req.blogUserRepository.getUser(id: post.author).unwrap(or: Abort(.internalServerError))
/host/spi-builder-workspace/.build/checkouts/vapor/Sources/Vapor/View/View.swift:3:15: note: struct 'View' does not conform to the 'Sendable' protocol
 1 | import NIOCore
 2 |
 3 | public struct View: ResponseEncodable {
   |               `- note: struct 'View' does not conform to the 'Sendable' protocol
 4 |     public var data: ByteBuffer
 5 |
/host/spi-builder-workspace/Sources/SteamPress/Controllers/BlogController.swift:68:30: warning: type 'BlogTag' does not conform to the 'Sendable' protocol; this is an error in the Swift 6 language mode
 66 |             let tagsQuery: EventLoopFuture<[BlogTag]> = req.blogTagRepository.getTags(for: post)
 67 |             let userQuery: EventLoopFuture<BlogUser> = req.blogUserRepository.getUser(id: post.author).unwrap(or: Abort(.internalServerError))
 68 |             return userQuery.and(tagsQuery).flatMap { (user: BlogUser, tags: [BlogTag]) -> EventLoopFuture<View> in
    |                              `- warning: type 'BlogTag' does not conform to the 'Sendable' protocol; this is an error in the Swift 6 language mode
 69 |                 do {
 70 |                     let pageInformation: BlogGlobalPageInformation = try req.pageInformation()
/host/spi-builder-workspace/Sources/SteamPress/Models/BlogTag.swift:5:20: note: class 'BlogTag' does not conform to the 'Sendable' protocol
 3 | // MARK: - Model
 4 |
 5 | public final class BlogTag: Codable {
   |                    `- note: class 'BlogTag' does not conform to the 'Sendable' protocol
 6 |
 7 |     public var tagID: Int?
/host/spi-builder-workspace/Sources/SteamPress/Controllers/BlogController.swift:68:45: warning: type 'View' does not conform to the 'Sendable' protocol; this is an error in the Swift 6 language mode
 66 |             let tagsQuery: EventLoopFuture<[BlogTag]> = req.blogTagRepository.getTags(for: post)
 67 |             let userQuery: EventLoopFuture<BlogUser> = req.blogUserRepository.getUser(id: post.author).unwrap(or: Abort(.internalServerError))
 68 |             return userQuery.and(tagsQuery).flatMap { (user: BlogUser, tags: [BlogTag]) -> EventLoopFuture<View> in
    |                                             `- warning: type 'View' does not conform to the 'Sendable' protocol; this is an error in the Swift 6 language mode
 69 |                 do {
 70 |                     let pageInformation: BlogGlobalPageInformation = try req.pageInformation()
/host/spi-builder-workspace/.build/checkouts/vapor/Sources/Vapor/View/View.swift:3:15: note: struct 'View' does not conform to the 'Sendable' protocol
 1 | import NIOCore
 2 |
 3 | public struct View: ResponseEncodable {
   |               `- note: struct 'View' does not conform to the 'Sendable' protocol
 4 |     public var data: ByteBuffer
 5 |
/host/spi-builder-workspace/Sources/SteamPress/Controllers/BlogController.swift:71:61: warning: capture of 'post' with non-sendable type 'BlogPost' in a `@Sendable` closure; this is an error in the Swift 6 language mode
 69 |                 do {
 70 |                     let pageInformation: BlogGlobalPageInformation = try req.pageInformation()
 71 |                     return req.blogPresenter.postView(post: post, author: user, tags: tags, pageInformation: pageInformation)
    |                                                             `- warning: capture of 'post' with non-sendable type 'BlogPost' in a `@Sendable` closure; this is an error in the Swift 6 language mode
 72 |                 } catch {
 73 |                     return req.eventLoop.makeFailedFuture(error)
/host/spi-builder-workspace/Sources/SteamPress/Models/BlogPost.swift:8:20: note: class 'BlogPost' does not conform to the 'Sendable' protocol
 6 | // MARK: - Model
 7 |
 8 | public final class BlogPost: Codable {
   |                    `- note: class 'BlogPost' does not conform to the 'Sendable' protocol
 9 |
10 |     public var blogID: Int?
/host/spi-builder-workspace/Sources/SteamPress/Controllers/BlogController.swift:80:48: warning: type 'View' does not conform to the 'Sendable' protocol; this is an error in the Swift 6 language mode
 78 |
 79 |     func tagViewHandler(_ req: Request) throws -> EventLoopFuture<View> {
 80 |         return req.parameters.findTag(on: req).flatMap { tag in
    |                                                `- warning: type 'View' does not conform to the 'Sendable' protocol; this is an error in the Swift 6 language mode
 81 |             let paginationInformation = req.getPaginationInformation(postsPerPage: self.postsPerPage)
 82 |             let postsQuery = req.blogPostRepository.getSortedPublishedPosts(for: tag, count: self.postsPerPage, offset: paginationInformation.offset)
/host/spi-builder-workspace/.build/checkouts/vapor/Sources/Vapor/View/View.swift:3:15: note: struct 'View' does not conform to the 'Sendable' protocol
 1 | import NIOCore
 2 |
 3 | public struct View: ResponseEncodable {
   |               `- note: struct 'View' does not conform to the 'Sendable' protocol
 4 |     public var data: ByteBuffer
 5 |
/host/spi-builder-workspace/Sources/SteamPress/Controllers/BlogController.swift:85:51: warning: type 'View' does not conform to the 'Sendable' protocol; this is an error in the Swift 6 language mode
 83 |             let postCountQuery = req.blogPostRepository.getPublishedPostCount(for: tag)
 84 |             let usersQuery = req.blogUserRepository.getAllUsers()
 85 |             return postsQuery.and(postCountQuery).flatMap { posts, totalPosts in
    |                                                   `- warning: type 'View' does not conform to the 'Sendable' protocol; this is an error in the Swift 6 language mode
 86 |                 usersQuery.flatMap { authors in
 87 |                     let paginationTagInfo = self.getPaginationInformation(currentPage: paginationInformation.page, totalPosts: totalPosts, currentQuery: req.url.query)
/host/spi-builder-workspace/.build/checkouts/vapor/Sources/Vapor/View/View.swift:3:15: note: struct 'View' does not conform to the 'Sendable' protocol
 1 | import NIOCore
 2 |
 3 | public struct View: ResponseEncodable {
   |               `- note: struct 'View' does not conform to the 'Sendable' protocol
 4 |     public var data: ByteBuffer
 5 |
/host/spi-builder-workspace/Sources/SteamPress/Controllers/BlogController.swift:86:28: warning: type 'View' does not conform to the 'Sendable' protocol; this is an error in the Swift 6 language mode
 84 |             let usersQuery = req.blogUserRepository.getAllUsers()
 85 |             return postsQuery.and(postCountQuery).flatMap { posts, totalPosts in
 86 |                 usersQuery.flatMap { authors in
    |                            `- warning: type 'View' does not conform to the 'Sendable' protocol; this is an error in the Swift 6 language mode
 87 |                     let paginationTagInfo = self.getPaginationInformation(currentPage: paginationInformation.page, totalPosts: totalPosts, currentQuery: req.url.query)
 88 |                     do {
/host/spi-builder-workspace/.build/checkouts/vapor/Sources/Vapor/View/View.swift:3:15: note: struct 'View' does not conform to the 'Sendable' protocol
 1 | import NIOCore
 2 |
 3 | public struct View: ResponseEncodable {
   |               `- note: struct 'View' does not conform to the 'Sendable' protocol
 4 |     public var data: ByteBuffer
 5 |
/host/spi-builder-workspace/Sources/SteamPress/Controllers/BlogController.swift:89:63: warning: capture of 'tag' with non-sendable type 'BlogTag' in a `@Sendable` closure; this is an error in the Swift 6 language mode
 87 |                     let paginationTagInfo = self.getPaginationInformation(currentPage: paginationInformation.page, totalPosts: totalPosts, currentQuery: req.url.query)
 88 |                     do {
 89 |                         return req.blogPresenter.tagView(tag: tag, posts: posts, authors: authors, totalPosts: totalPosts, pageInformation: try req.pageInformation(), paginationTagInfo: paginationTagInfo)
    |                                                               `- warning: capture of 'tag' with non-sendable type 'BlogTag' in a `@Sendable` closure; this is an error in the Swift 6 language mode
 90 |                     } catch {
 91 |                         return req.eventLoop.makeFailedFuture(error)
/host/spi-builder-workspace/Sources/SteamPress/Models/BlogTag.swift:5:20: note: class 'BlogTag' does not conform to the 'Sendable' protocol
 3 | // MARK: - Model
 4 |
 5 | public final class BlogTag: Codable {
   |                    `- note: class 'BlogTag' does not conform to the 'Sendable' protocol
 6 |
 7 |     public var tagID: Int?
/host/spi-builder-workspace/Sources/SteamPress/Controllers/BlogController.swift:89:63: warning: capture of 'tag' with non-sendable type 'BlogTag' in a `@Sendable` closure; this is an error in the Swift 6 language mode
 87 |                     let paginationTagInfo = self.getPaginationInformation(currentPage: paginationInformation.page, totalPosts: totalPosts, currentQuery: req.url.query)
 88 |                     do {
 89 |                         return req.blogPresenter.tagView(tag: tag, posts: posts, authors: authors, totalPosts: totalPosts, pageInformation: try req.pageInformation(), paginationTagInfo: paginationTagInfo)
    |                                                               `- warning: capture of 'tag' with non-sendable type 'BlogTag' in a `@Sendable` closure; this is an error in the Swift 6 language mode
 90 |                     } catch {
 91 |                         return req.eventLoop.makeFailedFuture(error)
/host/spi-builder-workspace/Sources/SteamPress/Models/BlogTag.swift:5:20: note: class 'BlogTag' does not conform to the 'Sendable' protocol
 3 | // MARK: - Model
 4 |
 5 | public final class BlogTag: Codable {
   |                    `- note: class 'BlogTag' does not conform to the 'Sendable' protocol
 6 |
 7 |     public var tagID: Int?
/host/spi-builder-workspace/Sources/SteamPress/Controllers/BlogController.swift:89:75: warning: capture of 'posts' with non-sendable type '[BlogPost]' in a `@Sendable` closure; this is an error in the Swift 6 language mode
 87 |                     let paginationTagInfo = self.getPaginationInformation(currentPage: paginationInformation.page, totalPosts: totalPosts, currentQuery: req.url.query)
 88 |                     do {
 89 |                         return req.blogPresenter.tagView(tag: tag, posts: posts, authors: authors, totalPosts: totalPosts, pageInformation: try req.pageInformation(), paginationTagInfo: paginationTagInfo)
    |                                                                           `- warning: capture of 'posts' with non-sendable type '[BlogPost]' in a `@Sendable` closure; this is an error in the Swift 6 language mode
 90 |                     } catch {
 91 |                         return req.eventLoop.makeFailedFuture(error)
/host/spi-builder-workspace/Sources/SteamPress/Models/BlogPost.swift:8:20: note: class 'BlogPost' does not conform to the 'Sendable' protocol
 6 | // MARK: - Model
 7 |
 8 | public final class BlogPost: Codable {
   |                    `- note: class 'BlogPost' does not conform to the 'Sendable' protocol
 9 |
10 |     public var blogID: Int?
/host/spi-builder-workspace/Sources/SteamPress/Controllers/BlogController.swift:103:73: warning: type 'View' does not conform to the 'Sendable' protocol; this is an error in the Swift 6 language mode
101 |         }
102 |         let paginationInformation = req.getPaginationInformation(postsPerPage: postsPerPage)
103 |         return req.blogUserRepository.getUser(username: authorUsername).flatMap { user in
    |                                                                         `- warning: type 'View' does not conform to the 'Sendable' protocol; this is an error in the Swift 6 language mode
104 |             guard let author = user else {
105 |                 return req.eventLoop.makeFailedFuture(Abort(.notFound))
/host/spi-builder-workspace/.build/checkouts/vapor/Sources/Vapor/View/View.swift:3:15: note: struct 'View' does not conform to the 'Sendable' protocol
 1 | import NIOCore
 2 |
 3 | public struct View: ResponseEncodable {
   |               `- note: struct 'View' does not conform to the 'Sendable' protocol
 4 |     public var data: ByteBuffer
 5 |
/host/spi-builder-workspace/Sources/SteamPress/Controllers/BlogController.swift:110:62: warning: type 'View' does not conform to the 'Sendable' protocol; this is an error in the Swift 6 language mode
108 |             let tagQuery = req.blogTagRepository.getTagsForAllPosts()
109 |             let authorPostCountQuery = req.blogPostRepository.getPostCount(for: author)
110 |             return authorPostQuery.and(authorPostCountQuery).flatMap { posts, postCount in
    |                                                              `- warning: type 'View' does not conform to the 'Sendable' protocol; this is an error in the Swift 6 language mode
111 |                 tagQuery.flatMap { tagsForPosts in
112 |                     let paginationTagInfo = self.getPaginationInformation(currentPage: paginationInformation.page, totalPosts: postCount, currentQuery: req.url.query)
/host/spi-builder-workspace/.build/checkouts/vapor/Sources/Vapor/View/View.swift:3:15: note: struct 'View' does not conform to the 'Sendable' protocol
 1 | import NIOCore
 2 |
 3 | public struct View: ResponseEncodable {
   |               `- note: struct 'View' does not conform to the 'Sendable' protocol
 4 |     public var data: ByteBuffer
 5 |
/host/spi-builder-workspace/Sources/SteamPress/Controllers/BlogController.swift:111:26: warning: type 'View' does not conform to the 'Sendable' protocol; this is an error in the Swift 6 language mode
109 |             let authorPostCountQuery = req.blogPostRepository.getPostCount(for: author)
110 |             return authorPostQuery.and(authorPostCountQuery).flatMap { posts, postCount in
111 |                 tagQuery.flatMap { tagsForPosts in
    |                          `- warning: type 'View' does not conform to the 'Sendable' protocol; this is an error in the Swift 6 language mode
112 |                     let paginationTagInfo = self.getPaginationInformation(currentPage: paginationInformation.page, totalPosts: postCount, currentQuery: req.url.query)
113 |                     do {
/host/spi-builder-workspace/.build/checkouts/vapor/Sources/Vapor/View/View.swift:3:15: note: struct 'View' does not conform to the 'Sendable' protocol
 1 | import NIOCore
 2 |
 3 | public struct View: ResponseEncodable {
   |               `- note: struct 'View' does not conform to the 'Sendable' protocol
 4 |     public var data: ByteBuffer
 5 |
/host/spi-builder-workspace/Sources/SteamPress/Controllers/BlogController.swift:114:69: warning: capture of 'author' with non-sendable type 'BlogUser' in a `@Sendable` closure; this is an error in the Swift 6 language mode
112 |                     let paginationTagInfo = self.getPaginationInformation(currentPage: paginationInformation.page, totalPosts: postCount, currentQuery: req.url.query)
113 |                     do {
114 |                         return req.blogPresenter.authorView(author: author, posts: posts, postCount: postCount, tagsForPosts: tagsForPosts, pageInformation: try req.pageInformation(), paginationTagInfo: paginationTagInfo)
    |                                                                     `- warning: capture of 'author' with non-sendable type 'BlogUser' in a `@Sendable` closure; this is an error in the Swift 6 language mode
115 |                     } catch {
116 |                         return req.eventLoop.makeFailedFuture(error)
/host/spi-builder-workspace/Sources/SteamPress/Models/BlogUser.swift:5:20: note: class 'BlogUser' does not conform to the 'Sendable' protocol
 3 | // MARK: - Model
 4 |
 5 | public final class BlogUser: Codable {
   |                    `- note: class 'BlogUser' does not conform to the 'Sendable' protocol
 6 |
 7 |     public var userID: Int?
/host/spi-builder-workspace/Sources/SteamPress/Controllers/BlogController.swift:114:69: warning: capture of 'author' with non-sendable type 'BlogUser' in a `@Sendable` closure; this is an error in the Swift 6 language mode
112 |                     let paginationTagInfo = self.getPaginationInformation(currentPage: paginationInformation.page, totalPosts: postCount, currentQuery: req.url.query)
113 |                     do {
114 |                         return req.blogPresenter.authorView(author: author, posts: posts, postCount: postCount, tagsForPosts: tagsForPosts, pageInformation: try req.pageInformation(), paginationTagInfo: paginationTagInfo)
    |                                                                     `- warning: capture of 'author' with non-sendable type 'BlogUser' in a `@Sendable` closure; this is an error in the Swift 6 language mode
115 |                     } catch {
116 |                         return req.eventLoop.makeFailedFuture(error)
/host/spi-builder-workspace/Sources/SteamPress/Models/BlogUser.swift:5:20: note: class 'BlogUser' does not conform to the 'Sendable' protocol
 3 | // MARK: - Model
 4 |
 5 | public final class BlogUser: Codable {
   |                    `- note: class 'BlogUser' does not conform to the 'Sendable' protocol
 6 |
 7 |     public var userID: Int?
/host/spi-builder-workspace/Sources/SteamPress/Controllers/BlogController.swift:114:84: warning: capture of 'posts' with non-sendable type '[BlogPost]' in a `@Sendable` closure; this is an error in the Swift 6 language mode
112 |                     let paginationTagInfo = self.getPaginationInformation(currentPage: paginationInformation.page, totalPosts: postCount, currentQuery: req.url.query)
113 |                     do {
114 |                         return req.blogPresenter.authorView(author: author, posts: posts, postCount: postCount, tagsForPosts: tagsForPosts, pageInformation: try req.pageInformation(), paginationTagInfo: paginationTagInfo)
    |                                                                                    `- warning: capture of 'posts' with non-sendable type '[BlogPost]' in a `@Sendable` closure; this is an error in the Swift 6 language mode
115 |                     } catch {
116 |                         return req.eventLoop.makeFailedFuture(error)
/host/spi-builder-workspace/Sources/SteamPress/Models/BlogPost.swift:8:20: note: class 'BlogPost' does not conform to the 'Sendable' protocol
 6 | // MARK: - Model
 7 |
 8 | public final class BlogPost: Codable {
   |                    `- note: class 'BlogPost' does not conform to the 'Sendable' protocol
 9 |
10 |     public var blogID: Int?
/host/spi-builder-workspace/Sources/SteamPress/Controllers/BlogController.swift:124:64: warning: type 'View' does not conform to the 'Sendable' protocol; this is an error in the Swift 6 language mode
122 |
123 |     func allTagsViewHandler(_ req: Request) throws -> EventLoopFuture<View> {
124 |         return req.blogTagRepository.getAllTagsWithPostCount().flatMap { tagswithCount in
    |                                                                `- warning: type 'View' does not conform to the 'Sendable' protocol; this is an error in the Swift 6 language mode
125 |             let allTags = tagswithCount.map { $0.0 }
126 |             do {
/host/spi-builder-workspace/.build/checkouts/vapor/Sources/Vapor/View/View.swift:3:15: note: struct 'View' does not conform to the 'Sendable' protocol
 1 | import NIOCore
 2 |
 3 | public struct View: ResponseEncodable {
   |               `- note: struct 'View' does not conform to the 'Sendable' protocol
 4 |     public var data: ByteBuffer
 5 |
/host/spi-builder-workspace/Sources/SteamPress/Controllers/BlogController.swift:141:66: warning: type 'View' does not conform to the 'Sendable' protocol; this is an error in the Swift 6 language mode
139 |
140 |     func allAuthorsViewHandler(_ req: Request) throws -> EventLoopFuture<View> {
141 |         return req.blogUserRepository.getAllUsersWithPostCount().flatMap { allUsersWithCount in
    |                                                                  `- warning: type 'View' does not conform to the 'Sendable' protocol; this is an error in the Swift 6 language mode
142 |             let allUsers = allUsersWithCount.map { $0.0 }
143 |             do {
/host/spi-builder-workspace/.build/checkouts/vapor/Sources/Vapor/View/View.swift:3:15: note: struct 'View' does not conform to the 'Sendable' protocol
 1 | import NIOCore
 2 |
 3 | public struct View: ResponseEncodable {
   |               `- note: struct 'View' does not conform to the 'Sendable' protocol
 4 |     public var data: ByteBuffer
 5 |
/host/spi-builder-workspace/Sources/SteamPress/Controllers/BlogController.swift:168:48: warning: type 'View' does not conform to the 'Sendable' protocol; this is an error in the Swift 6 language mode
166 |         let tagsQuery = req.blogTagRepository.getTagsForAllPosts()
167 |         let userQuery = req.blogUserRepository.getAllUsers()
168 |         return postsQuery.and(postsCountQuery).flatMap { posts, totalPosts in
    |                                                `- warning: type 'View' does not conform to the 'Sendable' protocol; this is an error in the Swift 6 language mode
169 |             userQuery.and(tagsQuery).flatMap { users, tagsForPosts in
170 |                 let paginationTagInfo = self.getPaginationInformation(currentPage: paginationInformation.page, totalPosts: totalPosts, currentQuery: req.url.query)
/host/spi-builder-workspace/.build/checkouts/vapor/Sources/Vapor/View/View.swift:3:15: note: struct 'View' does not conform to the 'Sendable' protocol
 1 | import NIOCore
 2 |
 3 | public struct View: ResponseEncodable {
   |               `- note: struct 'View' does not conform to the 'Sendable' protocol
 4 |     public var data: ByteBuffer
 5 |
/host/spi-builder-workspace/Sources/SteamPress/Controllers/BlogController.swift:169:23: warning: type 'BlogTag' does not conform to the 'Sendable' protocol; this is an error in the Swift 6 language mode
167 |         let userQuery = req.blogUserRepository.getAllUsers()
168 |         return postsQuery.and(postsCountQuery).flatMap { posts, totalPosts in
169 |             userQuery.and(tagsQuery).flatMap { users, tagsForPosts in
    |                       `- warning: type 'BlogTag' does not conform to the 'Sendable' protocol; this is an error in the Swift 6 language mode
170 |                 let paginationTagInfo = self.getPaginationInformation(currentPage: paginationInformation.page, totalPosts: totalPosts, currentQuery: req.url.query)
171 |                 do {
/host/spi-builder-workspace/Sources/SteamPress/Models/BlogTag.swift:5:20: note: class 'BlogTag' does not conform to the 'Sendable' protocol
 3 | // MARK: - Model
 4 |
 5 | public final class BlogTag: Codable {
   |                    `- note: class 'BlogTag' does not conform to the 'Sendable' protocol
 6 |
 7 |     public var tagID: Int?
/host/spi-builder-workspace/Sources/SteamPress/Controllers/BlogController.swift:169:38: warning: type 'View' does not conform to the 'Sendable' protocol; this is an error in the Swift 6 language mode
167 |         let userQuery = req.blogUserRepository.getAllUsers()
168 |         return postsQuery.and(postsCountQuery).flatMap { posts, totalPosts in
169 |             userQuery.and(tagsQuery).flatMap { users, tagsForPosts in
    |                                      `- warning: type 'View' does not conform to the 'Sendable' protocol; this is an error in the Swift 6 language mode
170 |                 let paginationTagInfo = self.getPaginationInformation(currentPage: paginationInformation.page, totalPosts: totalPosts, currentQuery: req.url.query)
171 |                 do {
/host/spi-builder-workspace/.build/checkouts/vapor/Sources/Vapor/View/View.swift:3:15: note: struct 'View' does not conform to the 'Sendable' protocol
 1 | import NIOCore
 2 |
 3 | public struct View: ResponseEncodable {
   |               `- note: struct 'View' does not conform to the 'Sendable' protocol
 4 |     public var data: ByteBuffer
 5 |
/host/spi-builder-workspace/Sources/SteamPress/Controllers/BlogController.swift:172:90: warning: capture of 'posts' with non-sendable type '[BlogPost]' in a `@Sendable` closure; this is an error in the Swift 6 language mode
170 |                 let paginationTagInfo = self.getPaginationInformation(currentPage: paginationInformation.page, totalPosts: totalPosts, currentQuery: req.url.query)
171 |                 do {
172 |                     return req.blogPresenter.searchView(totalResults: totalPosts, posts: posts, authors: users, searchTerm: searchTerm, tagsForPosts: tagsForPosts, pageInformation: try req.pageInformation(), paginationTagInfo: paginationTagInfo)
    |                                                                                          `- warning: capture of 'posts' with non-sendable type '[BlogPost]' in a `@Sendable` closure; this is an error in the Swift 6 language mode
173 |                 } catch {
174 |                     return req.eventLoop.makeFailedFuture(error)
/host/spi-builder-workspace/Sources/SteamPress/Models/BlogPost.swift:8:20: note: class 'BlogPost' does not conform to the 'Sendable' protocol
 6 | // MARK: - Model
 7 |
 8 | public final class BlogPost: Codable {
   |                    `- note: class 'BlogPost' does not conform to the 'Sendable' protocol
 9 |
10 |     public var blogID: Int?
[2379/2387] Compiling SteamPress String+Optional+Whitespace.swift
/host/spi-builder-workspace/Sources/SteamPress/Controllers/Admin/UserAdminController.swift:61:42: warning: type 'View' does not conform to the 'Sendable' protocol; this is an error in the Swift 6 language mode
 59 |
 60 |     func editUserHandler(_ req: Request) throws -> EventLoopFuture<View> {
 61 |         req.parameters.findUser(on: req).flatMap { user in
    |                                          `- warning: type 'View' does not conform to the 'Sendable' protocol; this is an error in the Swift 6 language mode
 62 |             do {
 63 |                 return try req.adminPresenter.createUserView(editing: true, errors: nil, name: user.name, nameError: false, username: user.username, usernameErorr: false, passwordError: false, confirmPasswordError: false, resetPasswordOnLogin: user.resetPasswordRequired, userID: user.userID, profilePicture: user.profilePicture, twitterHandle: user.twitterHandle, biography: user.biography, tagline: user.tagline, pageInformation: req.adminPageInfomation())
/host/spi-builder-workspace/.build/checkouts/vapor/Sources/Vapor/View/View.swift:3:15: note: struct 'View' does not conform to the 'Sendable' protocol
 1 | import NIOCore
 2 |
 3 | public struct View: ResponseEncodable {
   |               `- note: struct 'View' does not conform to the 'Sendable' protocol
 4 |     public var data: ByteBuffer
 5 |
/host/spi-builder-workspace/Sources/SteamPress/Controllers/Admin/UserAdminController.swift:1:1: warning: add '@preconcurrency' to suppress 'Sendable'-related warnings from module 'Vapor'
  1 | import Vapor
    | `- warning: add '@preconcurrency' to suppress 'Sendable'-related warnings from module 'Vapor'
  2 |
  3 | struct UserAdminController: RouteCollection {
/host/spi-builder-workspace/Sources/SteamPress/Controllers/Admin/UserAdminController.swift:82:422: warning: capture of 'user' with non-sendable type 'BlogUser' in a `@Sendable` closure; this is an error in the Swift 6 language mode
 80 |                     if let editUserErrors = errors {
 81 |                         do {
 82 |                             let view = try req.adminPresenter.createUserView(editing: true, errors: editUserErrors.errors, name: data.name, nameError: errors?.nameError ?? false, username: data.username, usernameErorr: errors?.usernameError ?? false, passwordError: editUserErrors.passwordError, confirmPasswordError: editUserErrors.confirmPasswordError, resetPasswordOnLogin: data.resetPasswordOnLogin ?? false, userID: user.userID, profilePicture: data.profilePicture, twitterHandle: data.twitterHandle, biography: data.biography, tagline: data.tagline, pageInformation: req.adminPageInfomation())
    |                                                                                                                                                                                                                                                                                                                                                                                                                                      `- warning: capture of 'user' with non-sendable type 'BlogUser' in a `@Sendable` closure; this is an error in the Swift 6 language mode
 83 |                             return view.encodeResponse(for: req)
 84 |                         } catch {
/host/spi-builder-workspace/Sources/SteamPress/Models/BlogUser.swift:5:20: note: class 'BlogUser' does not conform to the 'Sendable' protocol
 3 | // MARK: - Model
 4 |
 5 | public final class BlogUser: Codable {
   |                    `- note: class 'BlogUser' does not conform to the 'Sendable' protocol
 6 |
 7 |     public var userID: Int?
/host/spi-builder-workspace/Sources/SteamPress/Controllers/Admin/UserAdminController.swift:109:29: warning: capture of 'user' with non-sendable type 'BlogUser' in a `@Sendable` closure; this is an error in the Swift 6 language mode
107 |                     if let password = data.password, password != "" {
108 |                         updatePassword = req.password.async.hash(password).map { hashedPassword in
109 |                             user.password = hashedPassword
    |                             `- warning: capture of 'user' with non-sendable type 'BlogUser' in a `@Sendable` closure; this is an error in the Swift 6 language mode
110 |                         }
111 |                     } else {
/host/spi-builder-workspace/Sources/SteamPress/Models/BlogUser.swift:5:20: note: class 'BlogUser' does not conform to the 'Sendable' protocol
 3 | // MARK: - Model
 4 |
 5 | public final class BlogUser: Codable {
   |                    `- note: class 'BlogUser' does not conform to the 'Sendable' protocol
 6 |
 7 |     public var userID: Int?
/host/spi-builder-workspace/Sources/SteamPress/Controllers/Admin/UserAdminController.swift:116:60: warning: capture of 'user' with non-sendable type 'BlogUser' in a `@Sendable` closure; this is an error in the Swift 6 language mode
114 |                     return updatePassword.flatMap {
115 |                         let redirect = req.redirect(to: self.pathCreator.createPath(for: "admin"))
116 |                         return req.blogUserRepository.save(user).transform(to: redirect)
    |                                                            `- warning: capture of 'user' with non-sendable type 'BlogUser' in a `@Sendable` closure; this is an error in the Swift 6 language mode
117 |                     }
118 |                 }
/host/spi-builder-workspace/Sources/SteamPress/Models/BlogUser.swift:5:20: note: class 'BlogUser' does not conform to the 'Sendable' protocol
 3 | // MARK: - Model
 4 |
 5 | public final class BlogUser: Codable {
   |                    `- note: class 'BlogUser' does not conform to the 'Sendable' protocol
 6 |
 7 |     public var userID: Int?
/host/spi-builder-workspace/Sources/SteamPress/Controllers/Admin/UserAdminController.swift:128:99: warning: type 'BlogUser' does not conform to the 'Sendable' protocol; this is an error in the Swift 6 language mode
126 |         req.parameters.findUser(on: req).and(req.blogUserRepository.getUsersCount()).flatMap { user, userCount in
127 |             guard userCount > 1 else {
128 |                 return req.blogPostRepository.getAllPostsSortedByPublishDate(includeDrafts: true).and(req.blogUserRepository.getAllUsers()).flatMap { posts, users in
    |                                                                                                   `- warning: type 'BlogUser' does not conform to the 'Sendable' protocol; this is an error in the Swift 6 language mode
129 |                     do {
130 |                         let view = try req.adminPresenter.createIndexView(posts: posts, users: users, errors: ["You cannot delete the last user"], pageInformation: req.adminPageInfomation())
/host/spi-builder-workspace/Sources/SteamPress/Models/BlogUser.swift:5:20: note: class 'BlogUser' does not conform to the 'Sendable' protocol
 3 | // MARK: - Model
 4 |
 5 | public final class BlogUser: Codable {
   |                    `- note: class 'BlogUser' does not conform to the 'Sendable' protocol
 6 |
 7 |     public var userID: Int?
/host/spi-builder-workspace/Sources/SteamPress/Controllers/Admin/UserAdminController.swift:145:99: warning: type 'BlogUser' does not conform to the 'Sendable' protocol; this is an error in the Swift 6 language mode
143 |             }
144 |             guard loggedInUser.userID != user.userID else {
145 |                 return req.blogPostRepository.getAllPostsSortedByPublishDate(includeDrafts: true).and(req.blogUserRepository.getAllUsers()).flatMap { posts, users in
    |                                                                                                   `- warning: type 'BlogUser' does not conform to the 'Sendable' protocol; this is an error in the Swift 6 language mode
146 |                     do {
147 |                         let view = try req.adminPresenter.createIndexView(posts: posts, users: users, errors: ["You cannot delete yourself whilst logged in"], pageInformation: req.adminPageInfomation())
/host/spi-builder-workspace/Sources/SteamPress/Models/BlogUser.swift:5:20: note: class 'BlogUser' does not conform to the 'Sendable' protocol
 3 | // MARK: - Model
 4 |
 5 | public final class BlogUser: Codable {
   |                    `- note: class 'BlogUser' does not conform to the 'Sendable' protocol
 6 |
 7 |     public var userID: Int?
/host/spi-builder-workspace/Sources/SteamPress/Controllers/Admin/UserAdminController.swift:204:32: warning: 'validate' is deprecated: renamed to 'validate(content:)'
202 |
203 |         do {
204 |             try CreateUserData.validate(req)
    |                                |- warning: 'validate' is deprecated: renamed to 'validate(content:)'
    |                                `- note: use 'validate(content:)' instead
205 |         } catch {
206 |             createUserErrors.append("The username provided is not valid")
/host/spi-builder-workspace/Sources/SteamPress/Controllers/Admin/UserAdminController.swift:229:17: warning: mutation of captured var 'createUserErrors' in concurrently-executing code; this is an error in the Swift 6 language mode
227 |         return usernameUniqueError.map { usernameErrorOccurred in
228 |             if let uniqueError = usernameErrorOccurred {
229 |                 createUserErrors.append(uniqueError)
    |                 `- warning: mutation of captured var 'createUserErrors' in concurrently-executing code; this is an error in the Swift 6 language mode
230 |                 usernameError = true
231 |             }
/host/spi-builder-workspace/Sources/SteamPress/Controllers/Admin/UserAdminController.swift:230:17: warning: mutation of captured var 'usernameError' in concurrently-executing code; this is an error in the Swift 6 language mode
228 |             if let uniqueError = usernameErrorOccurred {
229 |                 createUserErrors.append(uniqueError)
230 |                 usernameError = true
    |                 `- warning: mutation of captured var 'usernameError' in concurrently-executing code; this is an error in the Swift 6 language mode
231 |             }
232 |             if createUserErrors.count == 0 {
/host/spi-builder-workspace/Sources/SteamPress/Controllers/Admin/UserAdminController.swift:232:16: warning: reference to captured var 'createUserErrors' in concurrently-executing code; this is an error in the Swift 6 language mode
230 |                 usernameError = true
231 |             }
232 |             if createUserErrors.count == 0 {
    |                `- warning: reference to captured var 'createUserErrors' in concurrently-executing code; this is an error in the Swift 6 language mode
233 |                 return nil
234 |             }
/host/spi-builder-workspace/Sources/SteamPress/Controllers/Admin/UserAdminController.swift:236:51: warning: reference to captured var 'createUserErrors' in concurrently-executing code; this is an error in the Swift 6 language mode
234 |             }
235 |
236 |             let errors = CreateUserErrors(errors: createUserErrors, passwordError: passwordError, confirmPasswordError: confirmPasswordError, nameError: nameErorr, usernameError: usernameError)
    |                                                   `- warning: reference to captured var 'createUserErrors' in concurrently-executing code; this is an error in the Swift 6 language mode
237 |
238 |             return errors
/host/spi-builder-workspace/Sources/SteamPress/Controllers/Admin/UserAdminController.swift:236:84: warning: reference to captured var 'passwordError' in concurrently-executing code; this is an error in the Swift 6 language mode
234 |             }
235 |
236 |             let errors = CreateUserErrors(errors: createUserErrors, passwordError: passwordError, confirmPasswordError: confirmPasswordError, nameError: nameErorr, usernameError: usernameError)
    |                                                                                    `- warning: reference to captured var 'passwordError' in concurrently-executing code; this is an error in the Swift 6 language mode
237 |
238 |             return errors
/host/spi-builder-workspace/Sources/SteamPress/Controllers/Admin/UserAdminController.swift:236:121: warning: reference to captured var 'confirmPasswordError' in concurrently-executing code; this is an error in the Swift 6 language mode
234 |             }
235 |
236 |             let errors = CreateUserErrors(errors: createUserErrors, passwordError: passwordError, confirmPasswordError: confirmPasswordError, nameError: nameErorr, usernameError: usernameError)
    |                                                                                                                         `- warning: reference to captured var 'confirmPasswordError' in concurrently-executing code; this is an error in the Swift 6 language mode
237 |
238 |             return errors
/host/spi-builder-workspace/Sources/SteamPress/Controllers/Admin/UserAdminController.swift:236:154: warning: reference to captured var 'nameErorr' in concurrently-executing code; this is an error in the Swift 6 language mode
234 |             }
235 |
236 |             let errors = CreateUserErrors(errors: createUserErrors, passwordError: passwordError, confirmPasswordError: confirmPasswordError, nameError: nameErorr, usernameError: usernameError)
    |                                                                                                                                                          `- warning: reference to captured var 'nameErorr' in concurrently-executing code; this is an error in the Swift 6 language mode
237 |
238 |             return errors
/host/spi-builder-workspace/Sources/SteamPress/Controllers/Admin/UserAdminController.swift:236:180: warning: reference to captured var 'usernameError' in concurrently-executing code; this is an error in the Swift 6 language mode
234 |             }
235 |
236 |             let errors = CreateUserErrors(errors: createUserErrors, passwordError: passwordError, confirmPasswordError: confirmPasswordError, nameError: nameErorr, usernameError: usernameError)
    |                                                                                                                                                                                    `- warning: reference to captured var 'usernameError' in concurrently-executing code; this is an error in the Swift 6 language mode
237 |
238 |             return errors
/host/spi-builder-workspace/Sources/SteamPress/Controllers/BlogAdminController.swift:31:91: warning: type 'BlogUser' does not conform to the 'Sendable' protocol; this is an error in the Swift 6 language mode
29 |     // MARK: Admin Handler
30 |     func adminHandler(_ req: Request) throws -> EventLoopFuture<View> {
31 |         return req.blogPostRepository.getAllPostsSortedByPublishDate(includeDrafts: true).and(req.blogUserRepository.getAllUsers()).flatMap { posts, users in
   |                                                                                           `- warning: type 'BlogUser' does not conform to the 'Sendable' protocol; this is an error in the Swift 6 language mode
32 |             do {
33 |                 return try req.adminPresenter.createIndexView(posts: posts, users: users, errors: nil, pageInformation: req.adminPageInfomation())
/host/spi-builder-workspace/Sources/SteamPress/Models/BlogUser.swift:5:20: note: class 'BlogUser' does not conform to the 'Sendable' protocol
 3 | // MARK: - Model
 4 |
 5 | public final class BlogUser: Codable {
   |                    `- note: class 'BlogUser' does not conform to the 'Sendable' protocol
 6 |
 7 |     public var userID: Int?
/host/spi-builder-workspace/Sources/SteamPress/Controllers/BlogAdminController.swift:31:133: warning: type 'View' does not conform to the 'Sendable' protocol; this is an error in the Swift 6 language mode
29 |     // MARK: Admin Handler
30 |     func adminHandler(_ req: Request) throws -> EventLoopFuture<View> {
31 |         return req.blogPostRepository.getAllPostsSortedByPublishDate(includeDrafts: true).and(req.blogUserRepository.getAllUsers()).flatMap { posts, users in
   |                                                                                                                                     `- warning: type 'View' does not conform to the 'Sendable' protocol; this is an error in the Swift 6 language mode
32 |             do {
33 |                 return try req.adminPresenter.createIndexView(posts: posts, users: users, errors: nil, pageInformation: req.adminPageInfomation())
/host/spi-builder-workspace/.build/checkouts/vapor/Sources/Vapor/View/View.swift:3:15: note: struct 'View' does not conform to the 'Sendable' protocol
 1 | import NIOCore
 2 |
 3 | public struct View: ResponseEncodable {
   |               `- note: struct 'View' does not conform to the 'Sendable' protocol
 4 |     public var data: ByteBuffer
 5 |
/host/spi-builder-workspace/Sources/SteamPress/Controllers/BlogAdminController.swift:1:1: warning: add '@preconcurrency' to suppress 'Sendable'-related warnings from module 'Vapor'
 1 | import Vapor
   | `- warning: add '@preconcurrency' to suppress 'Sendable'-related warnings from module 'Vapor'
 2 |
 3 | struct BlogAdminController: RouteCollection {
/host/spi-builder-workspace/Sources/SteamPress/Controllers/BlogController.swift:44:151: warning: type 'BlogTag' does not conform to the 'Sendable' protocol; this is an error in the Swift 6 language mode
 42 |     func indexHandler(_ req: Request) throws -> EventLoopFuture<View> {
 43 |         let paginationInformation = req.getPaginationInformation(postsPerPage: postsPerPage)
 44 |         return req.blogPostRepository.getAllPostsSortedByPublishDate(includeDrafts: false, count: postsPerPage, offset: paginationInformation.offset).and(req.blogTagRepository.getAllTags()).flatMap { posts, tags in
    |                                                                                                                                                       `- warning: type 'BlogTag' does not conform to the 'Sendable' protocol; this is an error in the Swift 6 language mode
 45 |             req.blogUserRepository.getAllUsers().and(req.blogPostRepository.getAllPostsCount(includeDrafts: false)).flatMap { users, totalPostCount in
 46 |                 req.blogTagRepository.getTagsForAllPosts().flatMap { tagsForPosts in
/host/spi-builder-workspace/Sources/SteamPress/Models/BlogTag.swift:5:20: note: class 'BlogTag' does not conform to the 'Sendable' protocol
 3 | // MARK: - Model
 4 |
 5 | public final class BlogTag: Codable {
   |                    `- note: class 'BlogTag' does not conform to the 'Sendable' protocol
 6 |
 7 |     public var tagID: Int?
/host/spi-builder-workspace/Sources/SteamPress/Controllers/BlogController.swift:44:191: warning: type 'View' does not conform to the 'Sendable' protocol; this is an error in the Swift 6 language mode
 42 |     func indexHandler(_ req: Request) throws -> EventLoopFuture<View> {
 43 |         let paginationInformation = req.getPaginationInformation(postsPerPage: postsPerPage)
 44 |         return req.blogPostRepository.getAllPostsSortedByPublishDate(includeDrafts: false, count: postsPerPage, offset: paginationInformation.offset).and(req.blogTagRepository.getAllTags()).flatMap { posts, tags in
    |                                                                                                                                                                                               `- warning: type 'View' does not conform to the 'Sendable' protocol; this is an error in the Swift 6 language mode
 45 |             req.blogUserRepository.getAllUsers().and(req.blogPostRepository.getAllPostsCount(includeDrafts: false)).flatMap { users, totalPostCount in
 46 |                 req.blogTagRepository.getTagsForAllPosts().flatMap { tagsForPosts in
/host/spi-builder-workspace/.build/checkouts/vapor/Sources/Vapor/View/View.swift:3:15: note: struct 'View' does not conform to the 'Sendable' protocol
 1 | import NIOCore
 2 |
 3 | public struct View: ResponseEncodable {
   |               `- note: struct 'View' does not conform to the 'Sendable' protocol
 4 |     public var data: ByteBuffer
 5 |
/host/spi-builder-workspace/Sources/SteamPress/Controllers/BlogController.swift:1:1: warning: add '@preconcurrency' to suppress 'Sendable'-related warnings from module 'Vapor'
  1 | import Vapor
    | `- warning: add '@preconcurrency' to suppress 'Sendable'-related warnings from module 'Vapor'
  2 |
  3 | struct BlogController: RouteCollection {
/host/spi-builder-workspace/Sources/SteamPress/Controllers/BlogController.swift:45:117: warning: type 'View' does not conform to the 'Sendable' protocol; this is an error in the Swift 6 language mode
 43 |         let paginationInformation = req.getPaginationInformation(postsPerPage: postsPerPage)
 44 |         return req.blogPostRepository.getAllPostsSortedByPublishDate(includeDrafts: false, count: postsPerPage, offset: paginationInformation.offset).and(req.blogTagRepository.getAllTags()).flatMap { posts, tags in
 45 |             req.blogUserRepository.getAllUsers().and(req.blogPostRepository.getAllPostsCount(includeDrafts: false)).flatMap { users, totalPostCount in
    |                                                                                                                     `- warning: type 'View' does not conform to the 'Sendable' protocol; this is an error in the Swift 6 language mode
 46 |                 req.blogTagRepository.getTagsForAllPosts().flatMap { tagsForPosts in
 47 |                     do {
/host/spi-builder-workspace/.build/checkouts/vapor/Sources/Vapor/View/View.swift:3:15: note: struct 'View' does not conform to the 'Sendable' protocol
 1 | import NIOCore
 2 |
 3 | public struct View: ResponseEncodable {
   |               `- note: struct 'View' does not conform to the 'Sendable' protocol
 4 |     public var data: ByteBuffer
 5 |
/host/spi-builder-workspace/Sources/SteamPress/Controllers/BlogController.swift:46:60: warning: type 'View' does not conform to the 'Sendable' protocol; this is an error in the Swift 6 language mode
 44 |         return req.blogPostRepository.getAllPostsSortedByPublishDate(includeDrafts: false, count: postsPerPage, offset: paginationInformation.offset).and(req.blogTagRepository.getAllTags()).flatMap { posts, tags in
 45 |             req.blogUserRepository.getAllUsers().and(req.blogPostRepository.getAllPostsCount(includeDrafts: false)).flatMap { users, totalPostCount in
 46 |                 req.blogTagRepository.getTagsForAllPosts().flatMap { tagsForPosts in
    |                                                            `- warning: type 'View' does not conform to the 'Sendable' protocol; this is an error in the Swift 6 language mode
 47 |                     do {
 48 |                         return req.blogPresenter.indexView(posts: posts, tags: tags, authors: users, tagsForPosts: tagsForPosts, pageInformation: try req.pageInformation(), paginationTagInfo: self.getPaginationInformation(currentPage: paginationInformation.page, totalPosts: totalPostCount, currentQuery: req.url.query))
/host/spi-builder-workspace/.build/checkouts/vapor/Sources/Vapor/View/View.swift:3:15: note: struct 'View' does not conform to the 'Sendable' protocol
 1 | import NIOCore
 2 |
 3 | public struct View: ResponseEncodable {
   |               `- note: struct 'View' does not conform to the 'Sendable' protocol
 4 |     public var data: ByteBuffer
 5 |
/host/spi-builder-workspace/Sources/SteamPress/Controllers/BlogController.swift:48:67: warning: capture of 'posts' with non-sendable type '[BlogPost]' in a `@Sendable` closure; this is an error in the Swift 6 language mode
 46 |                 req.blogTagRepository.getTagsForAllPosts().flatMap { tagsForPosts in
 47 |                     do {
 48 |                         return req.blogPresenter.indexView(posts: posts, tags: tags, authors: users, tagsForPosts: tagsForPosts, pageInformation: try req.pageInformation(), paginationTagInfo: self.getPaginationInformation(currentPage: paginationInformation.page, totalPosts: totalPostCount, currentQuery: req.url.query))
    |                                                                   `- warning: capture of 'posts' with non-sendable type '[BlogPost]' in a `@Sendable` closure; this is an error in the Swift 6 language mode
 49 |                     } catch {
 50 |                         return req.eventLoop.makeFailedFuture(error)
/host/spi-builder-workspace/Sources/SteamPress/Models/BlogPost.swift:8:20: note: class 'BlogPost' does not conform to the 'Sendable' protocol
 6 | // MARK: - Model
 7 |
 8 | public final class BlogPost: Codable {
   |                    `- note: class 'BlogPost' does not conform to the 'Sendable' protocol
 9 |
10 |     public var blogID: Int?
/host/spi-builder-workspace/Sources/SteamPress/Controllers/BlogController.swift:48:80: warning: capture of 'tags' with non-sendable type '[BlogTag]' in a `@Sendable` closure; this is an error in the Swift 6 language mode
 46 |                 req.blogTagRepository.getTagsForAllPosts().flatMap { tagsForPosts in
 47 |                     do {
 48 |                         return req.blogPresenter.indexView(posts: posts, tags: tags, authors: users, tagsForPosts: tagsForPosts, pageInformation: try req.pageInformation(), paginationTagInfo: self.getPaginationInformation(currentPage: paginationInformation.page, totalPosts: totalPostCount, currentQuery: req.url.query))
    |                                                                                `- warning: capture of 'tags' with non-sendable type '[BlogTag]' in a `@Sendable` closure; this is an error in the Swift 6 language mode
 49 |                     } catch {
 50 |                         return req.eventLoop.makeFailedFuture(error)
/host/spi-builder-workspace/Sources/SteamPress/Models/BlogTag.swift:5:20: note: class 'BlogTag' does not conform to the 'Sendable' protocol
 3 | // MARK: - Model
 4 |
 5 | public final class BlogTag: Codable {
   |                    `- note: class 'BlogTag' does not conform to the 'Sendable' protocol
 6 |
 7 |     public var tagID: Int?
/host/spi-builder-workspace/Sources/SteamPress/Controllers/BlogController.swift:48:67: warning: capture of 'posts' with non-sendable type '[BlogPost]' in a `@Sendable` closure; this is an error in the Swift 6 language mode
 46 |                 req.blogTagRepository.getTagsForAllPosts().flatMap { tagsForPosts in
 47 |                     do {
 48 |                         return req.blogPresenter.indexView(posts: posts, tags: tags, authors: users, tagsForPosts: tagsForPosts, pageInformation: try req.pageInformation(), paginationTagInfo: self.getPaginationInformation(currentPage: paginationInformation.page, totalPosts: totalPostCount, currentQuery: req.url.query))
    |                                                                   `- warning: capture of 'posts' with non-sendable type '[BlogPost]' in a `@Sendable` closure; this is an error in the Swift 6 language mode
 49 |                     } catch {
 50 |                         return req.eventLoop.makeFailedFuture(error)
/host/spi-builder-workspace/Sources/SteamPress/Models/BlogPost.swift:8:20: note: class 'BlogPost' does not conform to the 'Sendable' protocol
 6 | // MARK: - Model
 7 |
 8 | public final class BlogPost: Codable {
   |                    `- note: class 'BlogPost' does not conform to the 'Sendable' protocol
 9 |
10 |     public var blogID: Int?
/host/spi-builder-workspace/Sources/SteamPress/Controllers/BlogController.swift:48:80: warning: capture of 'tags' with non-sendable type '[BlogTag]' in a `@Sendable` closure; this is an error in the Swift 6 language mode
 46 |                 req.blogTagRepository.getTagsForAllPosts().flatMap { tagsForPosts in
 47 |                     do {
 48 |                         return req.blogPresenter.indexView(posts: posts, tags: tags, authors: users, tagsForPosts: tagsForPosts, pageInformation: try req.pageInformation(), paginationTagInfo: self.getPaginationInformation(currentPage: paginationInformation.page, totalPosts: totalPostCount, currentQuery: req.url.query))
    |                                                                                `- warning: capture of 'tags' with non-sendable type '[BlogTag]' in a `@Sendable` closure; this is an error in the Swift 6 language mode
 49 |                     } catch {
 50 |                         return req.eventLoop.makeFailedFuture(error)
/host/spi-builder-workspace/Sources/SteamPress/Models/BlogTag.swift:5:20: note: class 'BlogTag' does not conform to the 'Sendable' protocol
 3 | // MARK: - Model
 4 |
 5 | public final class BlogTag: Codable {
   |                    `- note: class 'BlogTag' does not conform to the 'Sendable' protocol
 6 |
 7 |     public var tagID: Int?
/host/spi-builder-workspace/Sources/SteamPress/Controllers/BlogController.swift:48:95: warning: capture of 'users' with non-sendable type '[BlogUser]' in a `@Sendable` closure; this is an error in the Swift 6 language mode
 46 |                 req.blogTagRepository.getTagsForAllPosts().flatMap { tagsForPosts in
 47 |                     do {
 48 |                         return req.blogPresenter.indexView(posts: posts, tags: tags, authors: users, tagsForPosts: tagsForPosts, pageInformation: try req.pageInformation(), paginationTagInfo: self.getPaginationInformation(currentPage: paginationInformation.page, totalPosts: totalPostCount, currentQuery: req.url.query))
    |                                                                                               `- warning: capture of 'users' with non-sendable type '[BlogUser]' in a `@Sendable` closure; this is an error in the Swift 6 language mode
 49 |                     } catch {
 50 |                         return req.eventLoop.makeFailedFuture(error)
/host/spi-builder-workspace/Sources/SteamPress/Models/BlogUser.swift:5:20: note: class 'BlogUser' does not conform to the 'Sendable' protocol
 3 | // MARK: - Model
 4 |
 5 | public final class BlogUser: Codable {
   |                    `- note: class 'BlogUser' does not conform to the 'Sendable' protocol
 6 |
 7 |     public var userID: Int?
/host/spi-builder-workspace/Sources/SteamPress/Controllers/BlogController.swift:58:20: warning: 'redirect(to:type:)' is deprecated: renamed to 'redirect(to:redirectType:)'
 56 |
 57 |     func blogPostIndexRedirectHandler(_ req: Request) throws -> Response {
 58 |         return req.redirect(to: pathCreator.createPath(for: pathCreator.blogPath), type: .permanent)
    |                    |- warning: 'redirect(to:type:)' is deprecated: renamed to 'redirect(to:redirectType:)'
    |                    `- note: use 'redirect(to:redirectType:)' instead
 59 |     }
 60 |
/host/spi-builder-workspace/Sources/SteamPress/Controllers/BlogController.swift:65:92: warning: type 'View' does not conform to the 'Sendable' protocol; this is an error in the Swift 6 language mode
 63 |             throw Abort(.badRequest)
 64 |         }
 65 |         return req.blogPostRepository.getPost(slug: blogSlug).unwrap(or: Abort(.notFound)).flatMap { (post: BlogPost) -> EventLoopFuture<View> in
    |                                                                                            `- warning: type 'View' does not conform to the 'Sendable' protocol; this is an error in the Swift 6 language mode
 66 |             let tagsQuery: EventLoopFuture<[BlogTag]> = req.blogTagRepository.getTags(for: post)
 67 |             let userQuery: EventLoopFuture<BlogUser> = req.blogUserRepository.getUser(id: post.author).unwrap(or: Abort(.internalServerError))
/host/spi-builder-workspace/.build/checkouts/vapor/Sources/Vapor/View/View.swift:3:15: note: struct 'View' does not conform to the 'Sendable' protocol
 1 | import NIOCore
 2 |
 3 | public struct View: ResponseEncodable {
   |               `- note: struct 'View' does not conform to the 'Sendable' protocol
 4 |     public var data: ByteBuffer
 5 |
/host/spi-builder-workspace/Sources/SteamPress/Controllers/BlogController.swift:68:30: warning: type 'BlogTag' does not conform to the 'Sendable' protocol; this is an error in the Swift 6 language mode
 66 |             let tagsQuery: EventLoopFuture<[BlogTag]> = req.blogTagRepository.getTags(for: post)
 67 |             let userQuery: EventLoopFuture<BlogUser> = req.blogUserRepository.getUser(id: post.author).unwrap(or: Abort(.internalServerError))
 68 |             return userQuery.and(tagsQuery).flatMap { (user: BlogUser, tags: [BlogTag]) -> EventLoopFuture<View> in
    |                              `- warning: type 'BlogTag' does not conform to the 'Sendable' protocol; this is an error in the Swift 6 language mode
 69 |                 do {
 70 |                     let pageInformation: BlogGlobalPageInformation = try req.pageInformation()
/host/spi-builder-workspace/Sources/SteamPress/Models/BlogTag.swift:5:20: note: class 'BlogTag' does not conform to the 'Sendable' protocol
 3 | // MARK: - Model
 4 |
 5 | public final class BlogTag: Codable {
   |                    `- note: class 'BlogTag' does not conform to the 'Sendable' protocol
 6 |
 7 |     public var tagID: Int?
/host/spi-builder-workspace/Sources/SteamPress/Controllers/BlogController.swift:68:45: warning: type 'View' does not conform to the 'Sendable' protocol; this is an error in the Swift 6 language mode
 66 |             let tagsQuery: EventLoopFuture<[BlogTag]> = req.blogTagRepository.getTags(for: post)
 67 |             let userQuery: EventLoopFuture<BlogUser> = req.blogUserRepository.getUser(id: post.author).unwrap(or: Abort(.internalServerError))
 68 |             return userQuery.and(tagsQuery).flatMap { (user: BlogUser, tags: [BlogTag]) -> EventLoopFuture<View> in
    |                                             `- warning: type 'View' does not conform to the 'Sendable' protocol; this is an error in the Swift 6 language mode
 69 |                 do {
 70 |                     let pageInformation: BlogGlobalPageInformation = try req.pageInformation()
/host/spi-builder-workspace/.build/checkouts/vapor/Sources/Vapor/View/View.swift:3:15: note: struct 'View' does not conform to the 'Sendable' protocol
 1 | import NIOCore
 2 |
 3 | public struct View: ResponseEncodable {
   |               `- note: struct 'View' does not conform to the 'Sendable' protocol
 4 |     public var data: ByteBuffer
 5 |
/host/spi-builder-workspace/Sources/SteamPress/Controllers/BlogController.swift:71:61: warning: capture of 'post' with non-sendable type 'BlogPost' in a `@Sendable` closure; this is an error in the Swift 6 language mode
 69 |                 do {
 70 |                     let pageInformation: BlogGlobalPageInformation = try req.pageInformation()
 71 |                     return req.blogPresenter.postView(post: post, author: user, tags: tags, pageInformation: pageInformation)
    |                                                             `- warning: capture of 'post' with non-sendable type 'BlogPost' in a `@Sendable` closure; this is an error in the Swift 6 language mode
 72 |                 } catch {
 73 |                     return req.eventLoop.makeFailedFuture(error)
/host/spi-builder-workspace/Sources/SteamPress/Models/BlogPost.swift:8:20: note: class 'BlogPost' does not conform to the 'Sendable' protocol
 6 | // MARK: - Model
 7 |
 8 | public final class BlogPost: Codable {
   |                    `- note: class 'BlogPost' does not conform to the 'Sendable' protocol
 9 |
10 |     public var blogID: Int?
/host/spi-builder-workspace/Sources/SteamPress/Controllers/BlogController.swift:80:48: warning: type 'View' does not conform to the 'Sendable' protocol; this is an error in the Swift 6 language mode
 78 |
 79 |     func tagViewHandler(_ req: Request) throws -> EventLoopFuture<View> {
 80 |         return req.parameters.findTag(on: req).flatMap { tag in
    |                                                `- warning: type 'View' does not conform to the 'Sendable' protocol; this is an error in the Swift 6 language mode
 81 |             let paginationInformation = req.getPaginationInformation(postsPerPage: self.postsPerPage)
 82 |             let postsQuery = req.blogPostRepository.getSortedPublishedPosts(for: tag, count: self.postsPerPage, offset: paginationInformation.offset)
/host/spi-builder-workspace/.build/checkouts/vapor/Sources/Vapor/View/View.swift:3:15: note: struct 'View' does not conform to the 'Sendable' protocol
 1 | import NIOCore
 2 |
 3 | public struct View: ResponseEncodable {
   |               `- note: struct 'View' does not conform to the 'Sendable' protocol
 4 |     public var data: ByteBuffer
 5 |
/host/spi-builder-workspace/Sources/SteamPress/Controllers/BlogController.swift:85:51: warning: type 'View' does not conform to the 'Sendable' protocol; this is an error in the Swift 6 language mode
 83 |             let postCountQuery = req.blogPostRepository.getPublishedPostCount(for: tag)
 84 |             let usersQuery = req.blogUserRepository.getAllUsers()
 85 |             return postsQuery.and(postCountQuery).flatMap { posts, totalPosts in
    |                                                   `- warning: type 'View' does not conform to the 'Sendable' protocol; this is an error in the Swift 6 language mode
 86 |                 usersQuery.flatMap { authors in
 87 |                     let paginationTagInfo = self.getPaginationInformation(currentPage: paginationInformation.page, totalPosts: totalPosts, currentQuery: req.url.query)
/host/spi-builder-workspace/.build/checkouts/vapor/Sources/Vapor/View/View.swift:3:15: note: struct 'View' does not conform to the 'Sendable' protocol
 1 | import NIOCore
 2 |
 3 | public struct View: ResponseEncodable {
   |               `- note: struct 'View' does not conform to the 'Sendable' protocol
 4 |     public var data: ByteBuffer
 5 |
/host/spi-builder-workspace/Sources/SteamPress/Controllers/BlogController.swift:86:28: warning: type 'View' does not conform to the 'Sendable' protocol; this is an error in the Swift 6 language mode
 84 |             let usersQuery = req.blogUserRepository.getAllUsers()
 85 |             return postsQuery.and(postCountQuery).flatMap { posts, totalPosts in
 86 |                 usersQuery.flatMap { authors in
    |                            `- warning: type 'View' does not conform to the 'Sendable' protocol; this is an error in the Swift 6 language mode
 87 |                     let paginationTagInfo = self.getPaginationInformation(currentPage: paginationInformation.page, totalPosts: totalPosts, currentQuery: req.url.query)
 88 |                     do {
/host/spi-builder-workspace/.build/checkouts/vapor/Sources/Vapor/View/View.swift:3:15: note: struct 'View' does not conform to the 'Sendable' protocol
 1 | import NIOCore
 2 |
 3 | public struct View: ResponseEncodable {
   |               `- note: struct 'View' does not conform to the 'Sendable' protocol
 4 |     public var data: ByteBuffer
 5 |
/host/spi-builder-workspace/Sources/SteamPress/Controllers/BlogController.swift:89:63: warning: capture of 'tag' with non-sendable type 'BlogTag' in a `@Sendable` closure; this is an error in the Swift 6 language mode
 87 |                     let paginationTagInfo = self.getPaginationInformation(currentPage: paginationInformation.page, totalPosts: totalPosts, currentQuery: req.url.query)
 88 |                     do {
 89 |                         return req.blogPresenter.tagView(tag: tag, posts: posts, authors: authors, totalPosts: totalPosts, pageInformation: try req.pageInformation(), paginationTagInfo: paginationTagInfo)
    |                                                               `- warning: capture of 'tag' with non-sendable type 'BlogTag' in a `@Sendable` closure; this is an error in the Swift 6 language mode
 90 |                     } catch {
 91 |                         return req.eventLoop.makeFailedFuture(error)
/host/spi-builder-workspace/Sources/SteamPress/Models/BlogTag.swift:5:20: note: class 'BlogTag' does not conform to the 'Sendable' protocol
 3 | // MARK: - Model
 4 |
 5 | public final class BlogTag: Codable {
   |                    `- note: class 'BlogTag' does not conform to the 'Sendable' protocol
 6 |
 7 |     public var tagID: Int?
/host/spi-builder-workspace/Sources/SteamPress/Controllers/BlogController.swift:89:63: warning: capture of 'tag' with non-sendable type 'BlogTag' in a `@Sendable` closure; this is an error in the Swift 6 language mode
 87 |                     let paginationTagInfo = self.getPaginationInformation(currentPage: paginationInformation.page, totalPosts: totalPosts, currentQuery: req.url.query)
 88 |                     do {
 89 |                         return req.blogPresenter.tagView(tag: tag, posts: posts, authors: authors, totalPosts: totalPosts, pageInformation: try req.pageInformation(), paginationTagInfo: paginationTagInfo)
    |                                                               `- warning: capture of 'tag' with non-sendable type 'BlogTag' in a `@Sendable` closure; this is an error in the Swift 6 language mode
 90 |                     } catch {
 91 |                         return req.eventLoop.makeFailedFuture(error)
/host/spi-builder-workspace/Sources/SteamPress/Models/BlogTag.swift:5:20: note: class 'BlogTag' does not conform to the 'Sendable' protocol
 3 | // MARK: - Model
 4 |
 5 | public final class BlogTag: Codable {
   |                    `- note: class 'BlogTag' does not conform to the 'Sendable' protocol
 6 |
 7 |     public var tagID: Int?
/host/spi-builder-workspace/Sources/SteamPress/Controllers/BlogController.swift:89:75: warning: capture of 'posts' with non-sendable type '[BlogPost]' in a `@Sendable` closure; this is an error in the Swift 6 language mode
 87 |                     let paginationTagInfo = self.getPaginationInformation(currentPage: paginationInformation.page, totalPosts: totalPosts, currentQuery: req.url.query)
 88 |                     do {
 89 |                         return req.blogPresenter.tagView(tag: tag, posts: posts, authors: authors, totalPosts: totalPosts, pageInformation: try req.pageInformation(), paginationTagInfo: paginationTagInfo)
    |                                                                           `- warning: capture of 'posts' with non-sendable type '[BlogPost]' in a `@Sendable` closure; this is an error in the Swift 6 language mode
 90 |                     } catch {
 91 |                         return req.eventLoop.makeFailedFuture(error)
/host/spi-builder-workspace/Sources/SteamPress/Models/BlogPost.swift:8:20: note: class 'BlogPost' does not conform to the 'Sendable' protocol
 6 | // MARK: - Model
 7 |
 8 | public final class BlogPost: Codable {
   |                    `- note: class 'BlogPost' does not conform to the 'Sendable' protocol
 9 |
10 |     public var blogID: Int?
/host/spi-builder-workspace/Sources/SteamPress/Controllers/BlogController.swift:103:73: warning: type 'View' does not conform to the 'Sendable' protocol; this is an error in the Swift 6 language mode
101 |         }
102 |         let paginationInformation = req.getPaginationInformation(postsPerPage: postsPerPage)
103 |         return req.blogUserRepository.getUser(username: authorUsername).flatMap { user in
    |                                                                         `- warning: type 'View' does not conform to the 'Sendable' protocol; this is an error in the Swift 6 language mode
104 |             guard let author = user else {
105 |                 return req.eventLoop.makeFailedFuture(Abort(.notFound))
/host/spi-builder-workspace/.build/checkouts/vapor/Sources/Vapor/View/View.swift:3:15: note: struct 'View' does not conform to the 'Sendable' protocol
 1 | import NIOCore
 2 |
 3 | public struct View: ResponseEncodable {
   |               `- note: struct 'View' does not conform to the 'Sendable' protocol
 4 |     public var data: ByteBuffer
 5 |
/host/spi-builder-workspace/Sources/SteamPress/Controllers/BlogController.swift:110:62: warning: type 'View' does not conform to the 'Sendable' protocol; this is an error in the Swift 6 language mode
108 |             let tagQuery = req.blogTagRepository.getTagsForAllPosts()
109 |             let authorPostCountQuery = req.blogPostRepository.getPostCount(for: author)
110 |             return authorPostQuery.and(authorPostCountQuery).flatMap { posts, postCount in
    |                                                              `- warning: type 'View' does not conform to the 'Sendable' protocol; this is an error in the Swift 6 language mode
111 |                 tagQuery.flatMap { tagsForPosts in
112 |                     let paginationTagInfo = self.getPaginationInformation(currentPage: paginationInformation.page, totalPosts: postCount, currentQuery: req.url.query)
/host/spi-builder-workspace/.build/checkouts/vapor/Sources/Vapor/View/View.swift:3:15: note: struct 'View' does not conform to the 'Sendable' protocol
 1 | import NIOCore
 2 |
 3 | public struct View: ResponseEncodable {
   |               `- note: struct 'View' does not conform to the 'Sendable' protocol
 4 |     public var data: ByteBuffer
 5 |
/host/spi-builder-workspace/Sources/SteamPress/Controllers/BlogController.swift:111:26: warning: type 'View' does not conform to the 'Sendable' protocol; this is an error in the Swift 6 language mode
109 |             let authorPostCountQuery = req.blogPostRepository.getPostCount(for: author)
110 |             return authorPostQuery.and(authorPostCountQuery).flatMap { posts, postCount in
111 |                 tagQuery.flatMap { tagsForPosts in
    |                          `- warning: type 'View' does not conform to the 'Sendable' protocol; this is an error in the Swift 6 language mode
112 |                     let paginationTagInfo = self.getPaginationInformation(currentPage: paginationInformation.page, totalPosts: postCount, currentQuery: req.url.query)
113 |                     do {
/host/spi-builder-workspace/.build/checkouts/vapor/Sources/Vapor/View/View.swift:3:15: note: struct 'View' does not conform to the 'Sendable' protocol
 1 | import NIOCore
 2 |
 3 | public struct View: ResponseEncodable {
   |               `- note: struct 'View' does not conform to the 'Sendable' protocol
 4 |     public var data: ByteBuffer
 5 |
/host/spi-builder-workspace/Sources/SteamPress/Controllers/BlogController.swift:114:69: warning: capture of 'author' with non-sendable type 'BlogUser' in a `@Sendable` closure; this is an error in the Swift 6 language mode
112 |                     let paginationTagInfo = self.getPaginationInformation(currentPage: paginationInformation.page, totalPosts: postCount, currentQuery: req.url.query)
113 |                     do {
114 |                         return req.blogPresenter.authorView(author: author, posts: posts, postCount: postCount, tagsForPosts: tagsForPosts, pageInformation: try req.pageInformation(), paginationTagInfo: paginationTagInfo)
    |                                                                     `- warning: capture of 'author' with non-sendable type 'BlogUser' in a `@Sendable` closure; this is an error in the Swift 6 language mode
115 |                     } catch {
116 |                         return req.eventLoop.makeFailedFuture(error)
/host/spi-builder-workspace/Sources/SteamPress/Models/BlogUser.swift:5:20: note: class 'BlogUser' does not conform to the 'Sendable' protocol
 3 | // MARK: - Model
 4 |
 5 | public final class BlogUser: Codable {
   |                    `- note: class 'BlogUser' does not conform to the 'Sendable' protocol
 6 |
 7 |     public var userID: Int?
/host/spi-builder-workspace/Sources/SteamPress/Controllers/BlogController.swift:114:69: warning: capture of 'author' with non-sendable type 'BlogUser' in a `@Sendable` closure; this is an error in the Swift 6 language mode
112 |                     let paginationTagInfo = self.getPaginationInformation(currentPage: paginationInformation.page, totalPosts: postCount, currentQuery: req.url.query)
113 |                     do {
114 |                         return req.blogPresenter.authorView(author: author, posts: posts, postCount: postCount, tagsForPosts: tagsForPosts, pageInformation: try req.pageInformation(), paginationTagInfo: paginationTagInfo)
    |                                                                     `- warning: capture of 'author' with non-sendable type 'BlogUser' in a `@Sendable` closure; this is an error in the Swift 6 language mode
115 |                     } catch {
116 |                         return req.eventLoop.makeFailedFuture(error)
/host/spi-builder-workspace/Sources/SteamPress/Models/BlogUser.swift:5:20: note: class 'BlogUser' does not conform to the 'Sendable' protocol
 3 | // MARK: - Model
 4 |
 5 | public final class BlogUser: Codable {
   |                    `- note: class 'BlogUser' does not conform to the 'Sendable' protocol
 6 |
 7 |     public var userID: Int?
/host/spi-builder-workspace/Sources/SteamPress/Controllers/BlogController.swift:114:84: warning: capture of 'posts' with non-sendable type '[BlogPost]' in a `@Sendable` closure; this is an error in the Swift 6 language mode
112 |                     let paginationTagInfo = self.getPaginationInformation(currentPage: paginationInformation.page, totalPosts: postCount, currentQuery: req.url.query)
113 |                     do {
114 |                         return req.blogPresenter.authorView(author: author, posts: posts, postCount: postCount, tagsForPosts: tagsForPosts, pageInformation: try req.pageInformation(), paginationTagInfo: paginationTagInfo)
    |                                                                                    `- warning: capture of 'posts' with non-sendable type '[BlogPost]' in a `@Sendable` closure; this is an error in the Swift 6 language mode
115 |                     } catch {
116 |                         return req.eventLoop.makeFailedFuture(error)
/host/spi-builder-workspace/Sources/SteamPress/Models/BlogPost.swift:8:20: note: class 'BlogPost' does not conform to the 'Sendable' protocol
 6 | // MARK: - Model
 7 |
 8 | public final class BlogPost: Codable {
   |                    `- note: class 'BlogPost' does not conform to the 'Sendable' protocol
 9 |
10 |     public var blogID: Int?
/host/spi-builder-workspace/Sources/SteamPress/Controllers/BlogController.swift:124:64: warning: type 'View' does not conform to the 'Sendable' protocol; this is an error in the Swift 6 language mode
122 |
123 |     func allTagsViewHandler(_ req: Request) throws -> EventLoopFuture<View> {
124 |         return req.blogTagRepository.getAllTagsWithPostCount().flatMap { tagswithCount in
    |                                                                `- warning: type 'View' does not conform to the 'Sendable' protocol; this is an error in the Swift 6 language mode
125 |             let allTags = tagswithCount.map { $0.0 }
126 |             do {
/host/spi-builder-workspace/.build/checkouts/vapor/Sources/Vapor/View/View.swift:3:15: note: struct 'View' does not conform to the 'Sendable' protocol
 1 | import NIOCore
 2 |
 3 | public struct View: ResponseEncodable {
   |               `- note: struct 'View' does not conform to the 'Sendable' protocol
 4 |     public var data: ByteBuffer
 5 |
/host/spi-builder-workspace/Sources/SteamPress/Controllers/BlogController.swift:141:66: warning: type 'View' does not conform to the 'Sendable' protocol; this is an error in the Swift 6 language mode
139 |
140 |     func allAuthorsViewHandler(_ req: Request) throws -> EventLoopFuture<View> {
141 |         return req.blogUserRepository.getAllUsersWithPostCount().flatMap { allUsersWithCount in
    |                                                                  `- warning: type 'View' does not conform to the 'Sendable' protocol; this is an error in the Swift 6 language mode
142 |             let allUsers = allUsersWithCount.map { $0.0 }
143 |             do {
/host/spi-builder-workspace/.build/checkouts/vapor/Sources/Vapor/View/View.swift:3:15: note: struct 'View' does not conform to the 'Sendable' protocol
 1 | import NIOCore
 2 |
 3 | public struct View: ResponseEncodable {
   |               `- note: struct 'View' does not conform to the 'Sendable' protocol
 4 |     public var data: ByteBuffer
 5 |
/host/spi-builder-workspace/Sources/SteamPress/Controllers/BlogController.swift:168:48: warning: type 'View' does not conform to the 'Sendable' protocol; this is an error in the Swift 6 language mode
166 |         let tagsQuery = req.blogTagRepository.getTagsForAllPosts()
167 |         let userQuery = req.blogUserRepository.getAllUsers()
168 |         return postsQuery.and(postsCountQuery).flatMap { posts, totalPosts in
    |                                                `- warning: type 'View' does not conform to the 'Sendable' protocol; this is an error in the Swift 6 language mode
169 |             userQuery.and(tagsQuery).flatMap { users, tagsForPosts in
170 |                 let paginationTagInfo = self.getPaginationInformation(currentPage: paginationInformation.page, totalPosts: totalPosts, currentQuery: req.url.query)
/host/spi-builder-workspace/.build/checkouts/vapor/Sources/Vapor/View/View.swift:3:15: note: struct 'View' does not conform to the 'Sendable' protocol
 1 | import NIOCore
 2 |
 3 | public struct View: ResponseEncodable {
   |               `- note: struct 'View' does not conform to the 'Sendable' protocol
 4 |     public var data: ByteBuffer
 5 |
/host/spi-builder-workspace/Sources/SteamPress/Controllers/BlogController.swift:169:23: warning: type 'BlogTag' does not conform to the 'Sendable' protocol; this is an error in the Swift 6 language mode
167 |         let userQuery = req.blogUserRepository.getAllUsers()
168 |         return postsQuery.and(postsCountQuery).flatMap { posts, totalPosts in
169 |             userQuery.and(tagsQuery).flatMap { users, tagsForPosts in
    |                       `- warning: type 'BlogTag' does not conform to the 'Sendable' protocol; this is an error in the Swift 6 language mode
170 |                 let paginationTagInfo = self.getPaginationInformation(currentPage: paginationInformation.page, totalPosts: totalPosts, currentQuery: req.url.query)
171 |                 do {
/host/spi-builder-workspace/Sources/SteamPress/Models/BlogTag.swift:5:20: note: class 'BlogTag' does not conform to the 'Sendable' protocol
 3 | // MARK: - Model
 4 |
 5 | public final class BlogTag: Codable {
   |                    `- note: class 'BlogTag' does not conform to the 'Sendable' protocol
 6 |
 7 |     public var tagID: Int?
/host/spi-builder-workspace/Sources/SteamPress/Controllers/BlogController.swift:169:38: warning: type 'View' does not conform to the 'Sendable' protocol; this is an error in the Swift 6 language mode
167 |         let userQuery = req.blogUserRepository.getAllUsers()
168 |         return postsQuery.and(postsCountQuery).flatMap { posts, totalPosts in
169 |             userQuery.and(tagsQuery).flatMap { users, tagsForPosts in
    |                                      `- warning: type 'View' does not conform to the 'Sendable' protocol; this is an error in the Swift 6 language mode
170 |                 let paginationTagInfo = self.getPaginationInformation(currentPage: paginationInformation.page, totalPosts: totalPosts, currentQuery: req.url.query)
171 |                 do {
/host/spi-builder-workspace/.build/checkouts/vapor/Sources/Vapor/View/View.swift:3:15: note: struct 'View' does not conform to the 'Sendable' protocol
 1 | import NIOCore
 2 |
 3 | public struct View: ResponseEncodable {
   |               `- note: struct 'View' does not conform to the 'Sendable' protocol
 4 |     public var data: ByteBuffer
 5 |
/host/spi-builder-workspace/Sources/SteamPress/Controllers/BlogController.swift:172:90: warning: capture of 'posts' with non-sendable type '[BlogPost]' in a `@Sendable` closure; this is an error in the Swift 6 language mode
170 |                 let paginationTagInfo = self.getPaginationInformation(currentPage: paginationInformation.page, totalPosts: totalPosts, currentQuery: req.url.query)
171 |                 do {
172 |                     return req.blogPresenter.searchView(totalResults: totalPosts, posts: posts, authors: users, searchTerm: searchTerm, tagsForPosts: tagsForPosts, pageInformation: try req.pageInformation(), paginationTagInfo: paginationTagInfo)
    |                                                                                          `- warning: capture of 'posts' with non-sendable type '[BlogPost]' in a `@Sendable` closure; this is an error in the Swift 6 language mode
173 |                 } catch {
174 |                     return req.eventLoop.makeFailedFuture(error)
/host/spi-builder-workspace/Sources/SteamPress/Models/BlogPost.swift:8:20: note: class 'BlogPost' does not conform to the 'Sendable' protocol
 6 | // MARK: - Model
 7 |
 8 | public final class BlogPost: Codable {
   |                    `- note: class 'BlogPost' does not conform to the 'Sendable' protocol
 9 |
10 |     public var blogID: Int?
[2380/2387] Compiling SteamPress LongPostDateFormatter.swift
/host/spi-builder-workspace/Sources/SteamPress/Services/SteamPressRandomNumberGenerator.swift:41:16: warning: type 'Application.SteamPress.RandomNumberGenerators.Key.Value' (aka 'Application.SteamPress.RandomNumberGenerators.Storage') does not conform to the 'Sendable' protocol; this is an error in the Swift 6 language mode
34 |         }
35 |
36 |         final class Storage {
   |                     `- note: class 'Storage' does not conform to the 'Sendable' protocol
37 |             var makeGenerator: ((Application) -> SteamPressRandomNumberGenerator)?
38 |             init() { }
39 |         }
40 |
41 |         struct Key: StorageKey {
   |                `- warning: type 'Application.SteamPress.RandomNumberGenerators.Key.Value' (aka 'Application.SteamPress.RandomNumberGenerators.Storage') does not conform to the 'Sendable' protocol; this is an error in the Swift 6 language mode
42 |             typealias Value = Storage
43 |         }
/host/spi-builder-workspace/Sources/SteamPress/SteamPress+Application.swift:21:16: warning: type 'Application.SteamPress.Key.Value' (aka 'Application.SteamPress.Storage') does not conform to the 'Sendable' protocol; this is an error in the Swift 6 language mode
11 |         }
12 |
13 |         final class Storage {
   |                     `- note: class 'Storage' does not conform to the 'Sendable' protocol
14 |             var configuration: SteamPressConfiguration
15 |
   :
19 |         }
20 |
21 |         struct Key: StorageKey {
   |                `- warning: type 'Application.SteamPress.Key.Value' (aka 'Application.SteamPress.Storage') does not conform to the 'Sendable' protocol; this is an error in the Swift 6 language mode
22 |             typealias Value = Storage
23 |         }
/host/spi-builder-workspace/Sources/SteamPress/SteamPressRoutesLifecycleHandler.swift:3:14: warning: non-final class 'SteamPressRoutesLifecycleHandler' cannot conform to 'Sendable'; use '@unchecked Sendable'; this is an error in the Swift 6 language mode
 1 | import Vapor
 2 |
 3 | public class SteamPressRoutesLifecycleHandler: LifecycleHandler {
   |              `- warning: non-final class 'SteamPressRoutesLifecycleHandler' cannot conform to 'Sendable'; use '@unchecked Sendable'; this is an error in the Swift 6 language mode
 4 |
 5 |     var configuration: SteamPressConfiguration
/host/spi-builder-workspace/Sources/SteamPress/SteamPressRoutesLifecycleHandler.swift:5:9: warning: stored property 'configuration' of 'Sendable'-conforming class 'SteamPressRoutesLifecycleHandler' is mutable; this is an error in the Swift 6 language mode
 3 | public class SteamPressRoutesLifecycleHandler: LifecycleHandler {
 4 |
 5 |     var configuration: SteamPressConfiguration
   |         `- warning: stored property 'configuration' of 'Sendable'-conforming class 'SteamPressRoutesLifecycleHandler' is mutable; this is an error in the Swift 6 language mode
 6 |
 7 |     public init(configuration: SteamPressConfiguration = SteamPressConfiguration()) {
[2381/2387] Compiling SteamPress NumericPostFormatter.swift
/host/spi-builder-workspace/Sources/SteamPress/Services/SteamPressRandomNumberGenerator.swift:41:16: warning: type 'Application.SteamPress.RandomNumberGenerators.Key.Value' (aka 'Application.SteamPress.RandomNumberGenerators.Storage') does not conform to the 'Sendable' protocol; this is an error in the Swift 6 language mode
34 |         }
35 |
36 |         final class Storage {
   |                     `- note: class 'Storage' does not conform to the 'Sendable' protocol
37 |             var makeGenerator: ((Application) -> SteamPressRandomNumberGenerator)?
38 |             init() { }
39 |         }
40 |
41 |         struct Key: StorageKey {
   |                `- warning: type 'Application.SteamPress.RandomNumberGenerators.Key.Value' (aka 'Application.SteamPress.RandomNumberGenerators.Storage') does not conform to the 'Sendable' protocol; this is an error in the Swift 6 language mode
42 |             typealias Value = Storage
43 |         }
/host/spi-builder-workspace/Sources/SteamPress/SteamPress+Application.swift:21:16: warning: type 'Application.SteamPress.Key.Value' (aka 'Application.SteamPress.Storage') does not conform to the 'Sendable' protocol; this is an error in the Swift 6 language mode
11 |         }
12 |
13 |         final class Storage {
   |                     `- note: class 'Storage' does not conform to the 'Sendable' protocol
14 |             var configuration: SteamPressConfiguration
15 |
   :
19 |         }
20 |
21 |         struct Key: StorageKey {
   |                `- warning: type 'Application.SteamPress.Key.Value' (aka 'Application.SteamPress.Storage') does not conform to the 'Sendable' protocol; this is an error in the Swift 6 language mode
22 |             typealias Value = Storage
23 |         }
/host/spi-builder-workspace/Sources/SteamPress/SteamPressRoutesLifecycleHandler.swift:3:14: warning: non-final class 'SteamPressRoutesLifecycleHandler' cannot conform to 'Sendable'; use '@unchecked Sendable'; this is an error in the Swift 6 language mode
 1 | import Vapor
 2 |
 3 | public class SteamPressRoutesLifecycleHandler: LifecycleHandler {
   |              `- warning: non-final class 'SteamPressRoutesLifecycleHandler' cannot conform to 'Sendable'; use '@unchecked Sendable'; this is an error in the Swift 6 language mode
 4 |
 5 |     var configuration: SteamPressConfiguration
/host/spi-builder-workspace/Sources/SteamPress/SteamPressRoutesLifecycleHandler.swift:5:9: warning: stored property 'configuration' of 'Sendable'-conforming class 'SteamPressRoutesLifecycleHandler' is mutable; this is an error in the Swift 6 language mode
 3 | public class SteamPressRoutesLifecycleHandler: LifecycleHandler {
 4 |
 5 |     var configuration: SteamPressConfiguration
   |         `- warning: stored property 'configuration' of 'Sendable'-conforming class 'SteamPressRoutesLifecycleHandler' is mutable; this is an error in the Swift 6 language mode
 6 |
 7 |     public init(configuration: SteamPressConfiguration = SteamPressConfiguration()) {
[2382/2387] Compiling SteamPress RealRandomNumberGenerator.swift
/host/spi-builder-workspace/Sources/SteamPress/Services/SteamPressRandomNumberGenerator.swift:41:16: warning: type 'Application.SteamPress.RandomNumberGenerators.Key.Value' (aka 'Application.SteamPress.RandomNumberGenerators.Storage') does not conform to the 'Sendable' protocol; this is an error in the Swift 6 language mode
34 |         }
35 |
36 |         final class Storage {
   |                     `- note: class 'Storage' does not conform to the 'Sendable' protocol
37 |             var makeGenerator: ((Application) -> SteamPressRandomNumberGenerator)?
38 |             init() { }
39 |         }
40 |
41 |         struct Key: StorageKey {
   |                `- warning: type 'Application.SteamPress.RandomNumberGenerators.Key.Value' (aka 'Application.SteamPress.RandomNumberGenerators.Storage') does not conform to the 'Sendable' protocol; this is an error in the Swift 6 language mode
42 |             typealias Value = Storage
43 |         }
/host/spi-builder-workspace/Sources/SteamPress/SteamPress+Application.swift:21:16: warning: type 'Application.SteamPress.Key.Value' (aka 'Application.SteamPress.Storage') does not conform to the 'Sendable' protocol; this is an error in the Swift 6 language mode
11 |         }
12 |
13 |         final class Storage {
   |                     `- note: class 'Storage' does not conform to the 'Sendable' protocol
14 |             var configuration: SteamPressConfiguration
15 |
   :
19 |         }
20 |
21 |         struct Key: StorageKey {
   |                `- warning: type 'Application.SteamPress.Key.Value' (aka 'Application.SteamPress.Storage') does not conform to the 'Sendable' protocol; this is an error in the Swift 6 language mode
22 |             typealias Value = Storage
23 |         }
/host/spi-builder-workspace/Sources/SteamPress/SteamPressRoutesLifecycleHandler.swift:3:14: warning: non-final class 'SteamPressRoutesLifecycleHandler' cannot conform to 'Sendable'; use '@unchecked Sendable'; this is an error in the Swift 6 language mode
 1 | import Vapor
 2 |
 3 | public class SteamPressRoutesLifecycleHandler: LifecycleHandler {
   |              `- warning: non-final class 'SteamPressRoutesLifecycleHandler' cannot conform to 'Sendable'; use '@unchecked Sendable'; this is an error in the Swift 6 language mode
 4 |
 5 |     var configuration: SteamPressConfiguration
/host/spi-builder-workspace/Sources/SteamPress/SteamPressRoutesLifecycleHandler.swift:5:9: warning: stored property 'configuration' of 'Sendable'-conforming class 'SteamPressRoutesLifecycleHandler' is mutable; this is an error in the Swift 6 language mode
 3 | public class SteamPressRoutesLifecycleHandler: LifecycleHandler {
 4 |
 5 |     var configuration: SteamPressConfiguration
   |         `- warning: stored property 'configuration' of 'Sendable'-conforming class 'SteamPressRoutesLifecycleHandler' is mutable; this is an error in the Swift 6 language mode
 6 |
 7 |     public init(configuration: SteamPressConfiguration = SteamPressConfiguration()) {
[2383/2387] Compiling SteamPress SteamPressRandomNumberGenerator.swift
/host/spi-builder-workspace/Sources/SteamPress/Services/SteamPressRandomNumberGenerator.swift:41:16: warning: type 'Application.SteamPress.RandomNumberGenerators.Key.Value' (aka 'Application.SteamPress.RandomNumberGenerators.Storage') does not conform to the 'Sendable' protocol; this is an error in the Swift 6 language mode
34 |         }
35 |
36 |         final class Storage {
   |                     `- note: class 'Storage' does not conform to the 'Sendable' protocol
37 |             var makeGenerator: ((Application) -> SteamPressRandomNumberGenerator)?
38 |             init() { }
39 |         }
40 |
41 |         struct Key: StorageKey {
   |                `- warning: type 'Application.SteamPress.RandomNumberGenerators.Key.Value' (aka 'Application.SteamPress.RandomNumberGenerators.Storage') does not conform to the 'Sendable' protocol; this is an error in the Swift 6 language mode
42 |             typealias Value = Storage
43 |         }
/host/spi-builder-workspace/Sources/SteamPress/SteamPress+Application.swift:21:16: warning: type 'Application.SteamPress.Key.Value' (aka 'Application.SteamPress.Storage') does not conform to the 'Sendable' protocol; this is an error in the Swift 6 language mode
11 |         }
12 |
13 |         final class Storage {
   |                     `- note: class 'Storage' does not conform to the 'Sendable' protocol
14 |             var configuration: SteamPressConfiguration
15 |
   :
19 |         }
20 |
21 |         struct Key: StorageKey {
   |                `- warning: type 'Application.SteamPress.Key.Value' (aka 'Application.SteamPress.Storage') does not conform to the 'Sendable' protocol; this is an error in the Swift 6 language mode
22 |             typealias Value = Storage
23 |         }
/host/spi-builder-workspace/Sources/SteamPress/SteamPressRoutesLifecycleHandler.swift:3:14: warning: non-final class 'SteamPressRoutesLifecycleHandler' cannot conform to 'Sendable'; use '@unchecked Sendable'; this is an error in the Swift 6 language mode
 1 | import Vapor
 2 |
 3 | public class SteamPressRoutesLifecycleHandler: LifecycleHandler {
   |              `- warning: non-final class 'SteamPressRoutesLifecycleHandler' cannot conform to 'Sendable'; use '@unchecked Sendable'; this is an error in the Swift 6 language mode
 4 |
 5 |     var configuration: SteamPressConfiguration
/host/spi-builder-workspace/Sources/SteamPress/SteamPressRoutesLifecycleHandler.swift:5:9: warning: stored property 'configuration' of 'Sendable'-conforming class 'SteamPressRoutesLifecycleHandler' is mutable; this is an error in the Swift 6 language mode
 3 | public class SteamPressRoutesLifecycleHandler: LifecycleHandler {
 4 |
 5 |     var configuration: SteamPressConfiguration
   |         `- warning: stored property 'configuration' of 'Sendable'-conforming class 'SteamPressRoutesLifecycleHandler' is mutable; this is an error in the Swift 6 language mode
 6 |
 7 |     public init(configuration: SteamPressConfiguration = SteamPressConfiguration()) {
[2384/2387] Compiling SteamPress SteamPress+Application.swift
/host/spi-builder-workspace/Sources/SteamPress/Services/SteamPressRandomNumberGenerator.swift:41:16: warning: type 'Application.SteamPress.RandomNumberGenerators.Key.Value' (aka 'Application.SteamPress.RandomNumberGenerators.Storage') does not conform to the 'Sendable' protocol; this is an error in the Swift 6 language mode
34 |         }
35 |
36 |         final class Storage {
   |                     `- note: class 'Storage' does not conform to the 'Sendable' protocol
37 |             var makeGenerator: ((Application) -> SteamPressRandomNumberGenerator)?
38 |             init() { }
39 |         }
40 |
41 |         struct Key: StorageKey {
   |                `- warning: type 'Application.SteamPress.RandomNumberGenerators.Key.Value' (aka 'Application.SteamPress.RandomNumberGenerators.Storage') does not conform to the 'Sendable' protocol; this is an error in the Swift 6 language mode
42 |             typealias Value = Storage
43 |         }
/host/spi-builder-workspace/Sources/SteamPress/SteamPress+Application.swift:21:16: warning: type 'Application.SteamPress.Key.Value' (aka 'Application.SteamPress.Storage') does not conform to the 'Sendable' protocol; this is an error in the Swift 6 language mode
11 |         }
12 |
13 |         final class Storage {
   |                     `- note: class 'Storage' does not conform to the 'Sendable' protocol
14 |             var configuration: SteamPressConfiguration
15 |
   :
19 |         }
20 |
21 |         struct Key: StorageKey {
   |                `- warning: type 'Application.SteamPress.Key.Value' (aka 'Application.SteamPress.Storage') does not conform to the 'Sendable' protocol; this is an error in the Swift 6 language mode
22 |             typealias Value = Storage
23 |         }
/host/spi-builder-workspace/Sources/SteamPress/SteamPressRoutesLifecycleHandler.swift:3:14: warning: non-final class 'SteamPressRoutesLifecycleHandler' cannot conform to 'Sendable'; use '@unchecked Sendable'; this is an error in the Swift 6 language mode
 1 | import Vapor
 2 |
 3 | public class SteamPressRoutesLifecycleHandler: LifecycleHandler {
   |              `- warning: non-final class 'SteamPressRoutesLifecycleHandler' cannot conform to 'Sendable'; use '@unchecked Sendable'; this is an error in the Swift 6 language mode
 4 |
 5 |     var configuration: SteamPressConfiguration
/host/spi-builder-workspace/Sources/SteamPress/SteamPressRoutesLifecycleHandler.swift:5:9: warning: stored property 'configuration' of 'Sendable'-conforming class 'SteamPressRoutesLifecycleHandler' is mutable; this is an error in the Swift 6 language mode
 3 | public class SteamPressRoutesLifecycleHandler: LifecycleHandler {
 4 |
 5 |     var configuration: SteamPressConfiguration
   |         `- warning: stored property 'configuration' of 'Sendable'-conforming class 'SteamPressRoutesLifecycleHandler' is mutable; this is an error in the Swift 6 language mode
 6 |
 7 |     public init(configuration: SteamPressConfiguration = SteamPressConfiguration()) {
[2385/2387] Compiling SteamPress SteamPressError.swift
/host/spi-builder-workspace/Sources/SteamPress/Services/SteamPressRandomNumberGenerator.swift:41:16: warning: type 'Application.SteamPress.RandomNumberGenerators.Key.Value' (aka 'Application.SteamPress.RandomNumberGenerators.Storage') does not conform to the 'Sendable' protocol; this is an error in the Swift 6 language mode
34 |         }
35 |
36 |         final class Storage {
   |                     `- note: class 'Storage' does not conform to the 'Sendable' protocol
37 |             var makeGenerator: ((Application) -> SteamPressRandomNumberGenerator)?
38 |             init() { }
39 |         }
40 |
41 |         struct Key: StorageKey {
   |                `- warning: type 'Application.SteamPress.RandomNumberGenerators.Key.Value' (aka 'Application.SteamPress.RandomNumberGenerators.Storage') does not conform to the 'Sendable' protocol; this is an error in the Swift 6 language mode
42 |             typealias Value = Storage
43 |         }
/host/spi-builder-workspace/Sources/SteamPress/SteamPress+Application.swift:21:16: warning: type 'Application.SteamPress.Key.Value' (aka 'Application.SteamPress.Storage') does not conform to the 'Sendable' protocol; this is an error in the Swift 6 language mode
11 |         }
12 |
13 |         final class Storage {
   |                     `- note: class 'Storage' does not conform to the 'Sendable' protocol
14 |             var configuration: SteamPressConfiguration
15 |
   :
19 |         }
20 |
21 |         struct Key: StorageKey {
   |                `- warning: type 'Application.SteamPress.Key.Value' (aka 'Application.SteamPress.Storage') does not conform to the 'Sendable' protocol; this is an error in the Swift 6 language mode
22 |             typealias Value = Storage
23 |         }
/host/spi-builder-workspace/Sources/SteamPress/SteamPressRoutesLifecycleHandler.swift:3:14: warning: non-final class 'SteamPressRoutesLifecycleHandler' cannot conform to 'Sendable'; use '@unchecked Sendable'; this is an error in the Swift 6 language mode
 1 | import Vapor
 2 |
 3 | public class SteamPressRoutesLifecycleHandler: LifecycleHandler {
   |              `- warning: non-final class 'SteamPressRoutesLifecycleHandler' cannot conform to 'Sendable'; use '@unchecked Sendable'; this is an error in the Swift 6 language mode
 4 |
 5 |     var configuration: SteamPressConfiguration
/host/spi-builder-workspace/Sources/SteamPress/SteamPressRoutesLifecycleHandler.swift:5:9: warning: stored property 'configuration' of 'Sendable'-conforming class 'SteamPressRoutesLifecycleHandler' is mutable; this is an error in the Swift 6 language mode
 3 | public class SteamPressRoutesLifecycleHandler: LifecycleHandler {
 4 |
 5 |     var configuration: SteamPressConfiguration
   |         `- warning: stored property 'configuration' of 'Sendable'-conforming class 'SteamPressRoutesLifecycleHandler' is mutable; this is an error in the Swift 6 language mode
 6 |
 7 |     public init(configuration: SteamPressConfiguration = SteamPressConfiguration()) {
[2386/2387] Compiling SteamPress SteamPressRoutesLifecycleHandler.swift
/host/spi-builder-workspace/Sources/SteamPress/Services/SteamPressRandomNumberGenerator.swift:41:16: warning: type 'Application.SteamPress.RandomNumberGenerators.Key.Value' (aka 'Application.SteamPress.RandomNumberGenerators.Storage') does not conform to the 'Sendable' protocol; this is an error in the Swift 6 language mode
34 |         }
35 |
36 |         final class Storage {
   |                     `- note: class 'Storage' does not conform to the 'Sendable' protocol
37 |             var makeGenerator: ((Application) -> SteamPressRandomNumberGenerator)?
38 |             init() { }
39 |         }
40 |
41 |         struct Key: StorageKey {
   |                `- warning: type 'Application.SteamPress.RandomNumberGenerators.Key.Value' (aka 'Application.SteamPress.RandomNumberGenerators.Storage') does not conform to the 'Sendable' protocol; this is an error in the Swift 6 language mode
42 |             typealias Value = Storage
43 |         }
/host/spi-builder-workspace/Sources/SteamPress/SteamPress+Application.swift:21:16: warning: type 'Application.SteamPress.Key.Value' (aka 'Application.SteamPress.Storage') does not conform to the 'Sendable' protocol; this is an error in the Swift 6 language mode
11 |         }
12 |
13 |         final class Storage {
   |                     `- note: class 'Storage' does not conform to the 'Sendable' protocol
14 |             var configuration: SteamPressConfiguration
15 |
   :
19 |         }
20 |
21 |         struct Key: StorageKey {
   |                `- warning: type 'Application.SteamPress.Key.Value' (aka 'Application.SteamPress.Storage') does not conform to the 'Sendable' protocol; this is an error in the Swift 6 language mode
22 |             typealias Value = Storage
23 |         }
/host/spi-builder-workspace/Sources/SteamPress/SteamPressRoutesLifecycleHandler.swift:3:14: warning: non-final class 'SteamPressRoutesLifecycleHandler' cannot conform to 'Sendable'; use '@unchecked Sendable'; this is an error in the Swift 6 language mode
 1 | import Vapor
 2 |
 3 | public class SteamPressRoutesLifecycleHandler: LifecycleHandler {
   |              `- warning: non-final class 'SteamPressRoutesLifecycleHandler' cannot conform to 'Sendable'; use '@unchecked Sendable'; this is an error in the Swift 6 language mode
 4 |
 5 |     var configuration: SteamPressConfiguration
/host/spi-builder-workspace/Sources/SteamPress/SteamPressRoutesLifecycleHandler.swift:5:9: warning: stored property 'configuration' of 'Sendable'-conforming class 'SteamPressRoutesLifecycleHandler' is mutable; this is an error in the Swift 6 language mode
 3 | public class SteamPressRoutesLifecycleHandler: LifecycleHandler {
 4 |
 5 |     var configuration: SteamPressConfiguration
   |         `- warning: stored property 'configuration' of 'Sendable'-conforming class 'SteamPressRoutesLifecycleHandler' is mutable; this is an error in the Swift 6 language mode
 6 |
 7 |     public init(configuration: SteamPressConfiguration = SteamPressConfiguration()) {
[2387/2387] Compiling SteamPress PaginatorTag.swift
/host/spi-builder-workspace/Sources/SteamPress/Services/SteamPressRandomNumberGenerator.swift:41:16: warning: type 'Application.SteamPress.RandomNumberGenerators.Key.Value' (aka 'Application.SteamPress.RandomNumberGenerators.Storage') does not conform to the 'Sendable' protocol; this is an error in the Swift 6 language mode
34 |         }
35 |
36 |         final class Storage {
   |                     `- note: class 'Storage' does not conform to the 'Sendable' protocol
37 |             var makeGenerator: ((Application) -> SteamPressRandomNumberGenerator)?
38 |             init() { }
39 |         }
40 |
41 |         struct Key: StorageKey {
   |                `- warning: type 'Application.SteamPress.RandomNumberGenerators.Key.Value' (aka 'Application.SteamPress.RandomNumberGenerators.Storage') does not conform to the 'Sendable' protocol; this is an error in the Swift 6 language mode
42 |             typealias Value = Storage
43 |         }
/host/spi-builder-workspace/Sources/SteamPress/SteamPress+Application.swift:21:16: warning: type 'Application.SteamPress.Key.Value' (aka 'Application.SteamPress.Storage') does not conform to the 'Sendable' protocol; this is an error in the Swift 6 language mode
11 |         }
12 |
13 |         final class Storage {
   |                     `- note: class 'Storage' does not conform to the 'Sendable' protocol
14 |             var configuration: SteamPressConfiguration
15 |
   :
19 |         }
20 |
21 |         struct Key: StorageKey {
   |                `- warning: type 'Application.SteamPress.Key.Value' (aka 'Application.SteamPress.Storage') does not conform to the 'Sendable' protocol; this is an error in the Swift 6 language mode
22 |             typealias Value = Storage
23 |         }
/host/spi-builder-workspace/Sources/SteamPress/SteamPressRoutesLifecycleHandler.swift:3:14: warning: non-final class 'SteamPressRoutesLifecycleHandler' cannot conform to 'Sendable'; use '@unchecked Sendable'; this is an error in the Swift 6 language mode
 1 | import Vapor
 2 |
 3 | public class SteamPressRoutesLifecycleHandler: LifecycleHandler {
   |              `- warning: non-final class 'SteamPressRoutesLifecycleHandler' cannot conform to 'Sendable'; use '@unchecked Sendable'; this is an error in the Swift 6 language mode
 4 |
 5 |     var configuration: SteamPressConfiguration
/host/spi-builder-workspace/Sources/SteamPress/SteamPressRoutesLifecycleHandler.swift:5:9: warning: stored property 'configuration' of 'Sendable'-conforming class 'SteamPressRoutesLifecycleHandler' is mutable; this is an error in the Swift 6 language mode
 3 | public class SteamPressRoutesLifecycleHandler: LifecycleHandler {
 4 |
 5 |     var configuration: SteamPressConfiguration
   |         `- warning: stored property 'configuration' of 'Sendable'-conforming class 'SteamPressRoutesLifecycleHandler' is mutable; this is an error in the Swift 6 language mode
 6 |
 7 |     public init(configuration: SteamPressConfiguration = SteamPressConfiguration()) {
Build complete! (162.27s)
Build complete.
{
  "dependencies" : [
    {
      "identity" : "vapor",
      "requirement" : {
        "range" : [
          {
            "lower_bound" : "4.0.0-rc",
            "upper_bound" : "5.0.0"
          }
        ]
      },
      "type" : "sourceControl",
      "url" : "https://github.com/vapor/vapor.git"
    },
    {
      "identity" : "swiftsoup",
      "requirement" : {
        "range" : [
          {
            "lower_bound" : "2.0.0",
            "upper_bound" : "3.0.0"
          }
        ]
      },
      "type" : "sourceControl",
      "url" : "https://github.com/scinfu/SwiftSoup.git"
    },
    {
      "identity" : "leaf-kit",
      "requirement" : {
        "range" : [
          {
            "lower_bound" : "1.0.0-rc.1",
            "upper_bound" : "2.0.0"
          }
        ]
      },
      "type" : "sourceControl",
      "url" : "https://github.com/vapor/leaf-kit.git"
    },
    {
      "identity" : "markdown",
      "requirement" : {
        "range" : [
          {
            "lower_bound" : "0.6.1",
            "upper_bound" : "1.0.0"
          }
        ]
      },
      "type" : "sourceControl",
      "url" : "https://github.com/vapor-community/markdown.git"
    }
  ],
  "manifest_display_name" : "SteamPress",
  "name" : "SteamPress",
  "path" : "/host/spi-builder-workspace",
  "platforms" : [
    {
      "name" : "macos",
      "version" : "10.15"
    }
  ],
  "products" : [
    {
      "name" : "SteamPress",
      "targets" : [
        "SteamPress"
      ],
      "type" : {
        "library" : [
          "automatic"
        ]
      }
    }
  ],
  "targets" : [
    {
      "c99name" : "SteamPressTests",
      "module_type" : "SwiftTarget",
      "name" : "SteamPressTests",
      "path" : "Tests/SteamPressTests",
      "sources" : [
        "APITests/APITagControllerTests.swift",
        "AdminTests/AccessControlTests.swift",
        "AdminTests/AdminPageTests.swift",
        "AdminTests/AdminPostTests.swift",
        "AdminTests/AdminUserTests.swift",
        "AdminTests/LoginTests.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" : [
        "SteamPress"
      ],
      "type" : "test"
    },
    {
      "c99name" : "SteamPress",
      "module_type" : "SwiftTarget",
      "name" : "SteamPress",
      "path" : "Sources/SteamPress",
      "product_dependencies" : [
        "Vapor",
        "LeafKit",
        "SwiftSoup",
        "SwiftMarkdown"
      ],
      "product_memberships" : [
        "SteamPress"
      ],
      "sources" : [
        "BlogPathCreator.swift",
        "Config/BlogAdminPageInformation.swift",
        "Config/BlogGlobalPageInformation.swift",
        "Config/FeedInformation.swift",
        "Config/PaginationInformation.swift",
        "Controllers/API/APIController.swift",
        "Controllers/API/APITagController.swift",
        "Controllers/Admin/LoginController.swift",
        "Controllers/Admin/PostAdminController.swift",
        "Controllers/Admin/UserAdminController.swift",
        "Controllers/BlogAdminController.swift",
        "Controllers/BlogController.swift",
        "Controllers/FeedController.swift",
        "Extensions/BlogUser+Information.swift",
        "Extensions/Models+Parameters.swift",
        "Extensions/Request+PageInformation.swift",
        "Extensions/Request+PaginationInformation.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",
        "Models/BlogPost.swift",
        "Models/BlogTag.swift",
        "Models/BlogUser.swift",
        "Models/Contexts/Admin/AdminPageContext.swift",
        "Models/Contexts/Admin/CreatePostPageContext.swift",
        "Models/Contexts/Admin/CreateUserPageContext.swift",
        "Models/Contexts/Admin/ResetPasswordPageContext.swift",
        "Models/Contexts/AllAuthorsPageContext.swift",
        "Models/Contexts/AllTagsPageContext.swift",
        "Models/Contexts/AuthorPageContext.swift",
        "Models/Contexts/BlogIndexPageContext.swift",
        "Models/Contexts/BlogPostPageContext.swift",
        "Models/Contexts/ContextViews/BlogTagWithPostCount.swift",
        "Models/Contexts/ContextViews/ViewBlogAuthor.swift",
        "Models/Contexts/ContextViews/ViewBlogPost.swift",
        "Models/Contexts/ContextViews/ViewBlogTag.swift",
        "Models/Contexts/LoginPageContext.swift",
        "Models/Contexts/PaginationTagInformation.swift",
        "Models/Contexts/SearchPageContext.swift",
        "Models/Contexts/TagPageContext.swift",
        "Models/Errors/CreatePostErrors.swift",
        "Models/Errors/CreateUserErrors.swift",
        "Models/FormData/CreatePostData.swift",
        "Models/FormData/CreateUserData.swift",
        "Models/FormData/LoginData.swift",
        "Models/FormData/ResetPasswordData.swift",
        "Presenters/Application+SteamPress+BlogAdminPresenter.swift",
        "Presenters/Application+SteamPress+BlogPresenter.swift",
        "Presenters/BlogAdminPresenter.swift",
        "Presenters/BlogPresenter.swift",
        "Presenters/ViewBlogAdminPresenter.swift",
        "Presenters/ViewBlogPresenter.swift",
        "Repositories/Application+SteamPress+Repositories.swift",
        "Repositories/Request+Repositories.swift",
        "Repositories/SteamPressRepository.swift",
        "Services/LongPostDateFormatter.swift",
        "Services/NumericPostFormatter.swift",
        "Services/RealRandomNumberGenerator.swift",
        "Services/SteamPressRandomNumberGenerator.swift",
        "SteamPress+Application.swift",
        "SteamPressError.swift",
        "SteamPressRoutesLifecycleHandler.swift",
        "Views/PaginatorTag.swift"
      ],
      "type" : "library"
    }
  ],
  "tools_version" : "5.2"
}
basic-6.0-latest: Pulling from finestructure/spi-images
Digest: sha256:47d26c99ca4f1ac0a332c85fd5b13ff4390e72115219984a57a68fe9d1063a05
Status: Image is up to date for registry.gitlab.com/finestructure/spi-images:basic-6.0-latest
Done.