vapor / http

🚀 Non-blocking, event-driven HTTP built on Swift NIO.
MIT License
238 stars 65 forks source link

Updating swift-nio-ssl dependency due to incompatibility with other packages #377

Closed SalehAlbuga closed 4 years ago

SalehAlbuga commented 4 years ago

Is it possible to update the swift-nio-ssl dependency to 2.4.0. There are many packages using a version newer than the one used by Http and it's causing incompatibility. I'm using grpc-swift which requires swift-nio-ssl 2.4.0..<3.0.0.

0xTim commented 4 years ago

@SalehAlbuga HTTP should support 2.4.0 by doing swift package update, since the manifest specifies 2.0.0..<3.0.0

SalehAlbuga commented 4 years ago

@0xTim Yes I can see it in the master branch, but I tried using the latest version (3.3.2) and to update the package, however the checked out version shows swift-nio-ssl 1.0.1..<2.0.0

  // Bindings to OpenSSL-compatible libraries for TLS support in SwiftNIO
   .package(url: "https://github.com/apple/swift-nio-ssl.git", from: "1.0.1"),

Is it yet to be released? Am I missing anything?

0xTim commented 4 years ago

Ahhh right, I see what you mean. Unfortunately, we can't simply bump SwiftNIO SSL because of this file - https://github.com/vapor/http/blob/3.3.2/Sources/HTTP/Exports.swift 🤦

That means that all NIOSSL symbols are HTTP's symbols, so updating to NIO SSL 2.0 is a major release and then Vapor would need to be updated etc. However, since Vapor also exports the world, this would require a major release of Vapor 🙃

cc @tanner0101 here's an example of the reasons for not exporting the world in every, single, module

SalehAlbuga commented 4 years ago

Oh :/ In this case, I'll have to use Vapor 4 instead of 3. I wanted to use 3 to avoid changing the OS and Swift versions requirement

0xTim commented 4 years ago

Yeah, it's been raised at the SSWG with best practices of what to do, so hopefully this becomes less of a problem going forward