Commit
This commit does not belong to any branch on this repository, and may belong to a fork outside of the repository.
Add Sendable Conformances to undelying types (#3054)
* Fix exports * Bump Swift version * Turn on Sendable checking * Update routes file * Make StackTrace Sendable * Middleware and passwords should be sendable * More Sendable warnings * More easy wins * Routes should be sendable * Don't need to make everything Sendable yet * Validations are now Sendable * Websocket APIs should be Sendable * Fix up more warnings * Fix warnings internally in RFC1123 * Fix a few more warnings * Enable concurrency checking in CI * Migrate to new CI * Manually overwrite security events * Update test.yml * Fix warning in XCTVapor * PR review changes * More PR reviews * Thread safe implementation for caching the date * Add new manifest to make testing strict concurrency easy * Try and fix manifests * Update CI as we don't need a flag * Functions should not be Sendable * Remove redundant CI job --------- Co-authored-by: Gwynne Raskind <gwynne@vapor.codes>
- Loading branch information
Showing
46 changed files
with
466 additions
and
209 deletions.
There are no files selected for viewing
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Original file line number | Diff line number | Diff line change |
---|---|---|
@@ -0,0 +1,144 @@ | ||
// swift-tools-version:5.9 | ||
import PackageDescription | ||
import Foundation | ||
|
||
let package = Package( | ||
name: "vapor", | ||
platforms: [ | ||
.macOS(.v10_15), | ||
.iOS(.v13), | ||
.tvOS(.v13), | ||
.watchOS(.v6) | ||
], | ||
products: [ | ||
.library(name: "Vapor", targets: ["Vapor"]), | ||
.library(name: "XCTVapor", targets: ["XCTVapor"]), | ||
], | ||
dependencies: [ | ||
// HTTP client library built on SwiftNIO | ||
.package(url: "https://github.com/swift-server/async-http-client.git", from: "1.18.0"), | ||
|
||
// Sugary extensions for the SwiftNIO library | ||
.package(url: "https://github.com/vapor/async-kit.git", from: "1.15.0"), | ||
|
||
// 💻 APIs for creating interactive CLI tools. | ||
.package(url: "https://github.com/vapor/console-kit.git", from: "4.0.0"), | ||
|
||
// 🔑 Hashing (SHA2, HMAC), encryption (AES), public-key (RSA), and random data generation. | ||
.package(url: "https://github.com/apple/swift-crypto.git", "1.0.0" ..< "3.0.0"), | ||
|
||
// 🚍 High-performance trie-node router. | ||
.package(url: "https://github.com/vapor/routing-kit.git", from: "4.5.0"), | ||
|
||
// 💥 Backtraces for Swift on Linux | ||
.package(url: "https://github.com/swift-server/swift-backtrace.git", from: "1.1.1"), | ||
|
||
// Event-driven network application framework for high performance protocol servers & clients, non-blocking. | ||
.package(url: "https://github.com/apple/swift-nio.git", from: "2.56.0"), | ||
|
||
// Bindings to OpenSSL-compatible libraries for TLS support in SwiftNIO | ||
.package(url: "https://github.com/apple/swift-nio-ssl.git", from: "2.8.0"), | ||
|
||
// HTTP/2 support for SwiftNIO | ||
.package(url: "https://github.com/apple/swift-nio-http2.git", from: "1.20.0"), | ||
|
||
// Useful code around SwiftNIO. | ||
.package(url: "https://github.com/apple/swift-nio-extras.git", from: "1.19.0"), | ||
|
||
// Swift logging API | ||
.package(url: "https://github.com/apple/swift-log.git", from: "1.0.0"), | ||
|
||
// Swift metrics API | ||
.package(url: "https://github.com/apple/swift-metrics.git", from: "2.0.0"), | ||
|
||
// Swift collection algorithms | ||
.package(url: "https://github.com/apple/swift-algorithms.git", from: "1.0.0"), | ||
|
||
// WebSocket client library built on SwiftNIO | ||
.package(url: "https://github.com/vapor/websocket-kit.git", from: "2.13.0"), | ||
|
||
// MultipartKit, Multipart encoding and decoding | ||
.package(url: "https://github.com/vapor/multipart-kit.git", from: "4.2.1"), | ||
], | ||
targets: [ | ||
// C helpers | ||
.target(name: "CVaporBcrypt"), | ||
.target(name: "CVaporURLParser"), | ||
|
||
// Vapor | ||
.target( | ||
name: "Vapor", | ||
dependencies: [ | ||
.product(name: "AsyncHTTPClient", package: "async-http-client"), | ||
.product(name: "AsyncKit", package: "async-kit"), | ||
.product(name: "Backtrace", package: "swift-backtrace"), | ||
.target(name: "CVaporBcrypt"), | ||
.target(name: "CVaporURLParser"), | ||
.product(name: "ConsoleKit", package: "console-kit"), | ||
.product(name: "Logging", package: "swift-log"), | ||
.product(name: "Metrics", package: "swift-metrics"), | ||
.product(name: "NIO", package: "swift-nio"), | ||
.product(name: "NIOConcurrencyHelpers", package: "swift-nio"), | ||
.product(name: "NIOCore", package: "swift-nio"), | ||
.product(name: "NIOExtras", package: "swift-nio-extras"), | ||
.product(name: "NIOFoundationCompat", package: "swift-nio"), | ||
.product(name: "NIOHTTPCompression", package: "swift-nio-extras"), | ||
.product(name: "NIOHTTP1", package: "swift-nio"), | ||
.product(name: "NIOHTTP2", package: "swift-nio-http2"), | ||
.product(name: "NIOSSL", package: "swift-nio-ssl"), | ||
.product(name: "NIOWebSocket", package: "swift-nio"), | ||
.product(name: "Crypto", package: "swift-crypto"), | ||
.product(name: "Algorithms", package: "swift-algorithms"), | ||
.product(name: "RoutingKit", package: "routing-kit"), | ||
.product(name: "WebSocketKit", package: "websocket-kit"), | ||
.product(name: "MultipartKit", package: "multipart-kit"), | ||
], | ||
swiftSettings: [.enableExperimentalFeature("StrictConcurrency")] | ||
), | ||
|
||
// Development | ||
.executableTarget( | ||
name: "Development", | ||
dependencies: [ | ||
.target(name: "Vapor"), | ||
], | ||
resources: [.copy("Resources")], | ||
swiftSettings: [.enableExperimentalFeature("StrictConcurrency")] | ||
), | ||
|
||
// Testing | ||
.target( | ||
name: "XCTVapor", | ||
dependencies: [ | ||
.target(name: "Vapor"), | ||
], | ||
swiftSettings: [.enableExperimentalFeature("StrictConcurrency")] | ||
), | ||
.testTarget( | ||
name: "VaporTests", | ||
dependencies: [ | ||
.product(name: "NIOTestUtils", package: "swift-nio"), | ||
.target(name: "XCTVapor"), | ||
], | ||
resources: [ | ||
.copy("Utilities/foo.txt"), | ||
.copy("Utilities/index.html"), | ||
.copy("Utilities/SubUtilities/"), | ||
.copy("Utilities/foo bar.html"), | ||
.copy("Utilities/test.env"), | ||
.copy("Utilities/my-secret-env-content"), | ||
.copy("Utilities/expired.crt"), | ||
.copy("Utilities/expired.key"), | ||
], | ||
swiftSettings: [.enableExperimentalFeature("StrictConcurrency")] | ||
), | ||
.testTarget( | ||
name: "AsyncTests", | ||
dependencies: [ | ||
.product(name: "NIOTestUtils", package: "swift-nio"), | ||
.target(name: "XCTVapor"), | ||
], | ||
swiftSettings: [.enableExperimentalFeature("StrictConcurrency")] | ||
), | ||
] | ||
) |
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Oops, something went wrong.