The Swift Package Index logo.Swift Package Index

Has it really been five years since Swift Package Index launched? Read our anniversary blog post!

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.