SSWG - April 26th, 2023

Attendees:

@adam-fowler, @davmoser, @FranzBusch, @graskind, @jdmcd, @Joannis_Orlandos, @ktoso, @patrick, @tachyonics, @0xTim, @tomerd

Action Items

  • @graskind finish updating swift evolution for property wrappers in protocols
  • @0xTim to investigate slim containers based on Canonical's work
  • @ktoso / @adam-fowler to file a ticket about updating the tracing docs to provide guidance on how locks should be used with tracing
  • @ktoso to integrate survey into yearly blog post
  • @tomerd to take a look at Amazon Linux 2023 toolchain PR
  • @patrick to get the final swiftly 0.1.0 stuff ready
  • @tomerd to organize core team link up based around the 2023 goals
  • everyone to take a look at year in review post if haven't already
  • everyone to take a look at the transeo blog post draft

Previous Action Items:

  • @graskind finish updating swift evolution for property wrappers in protocols

    • :a: Carry over
  • @0xTim to investigate slim containers based on Canonical's work

    • :a: Carry over
  • @0xTim SwiftPM support in Dependabot

    • GitHub recently announced official support for Swift code scanning, which includes improved support for Dependabot.
    • @0xTim in talks with GitHub to see where his existing dependabot work will land
    • This workgroup will help provide feedback to GitHub about these tools
    • The Vapor project will also be providing a lot of feedback
    • They're looking for community beta testers as well
  • @davmoser Support AL2023:

    • Have Sebastian working on that, working with @compnerd to help unblock a few things.
    • Progress on Graviton and x86_64, now hes working on the docker container part of it
    • Looking for a code review (:a: @tomerd to take a look)
  • Tracing: everyone to review the lib:

    • Received quite a bit of feedback in the latest two beta rounds, seems to be working
    • If everyone's happy, should be in pretty good shape to cut a stable soon
    • @adam-fowler noted that it is pretty easy to use, but one gotcha is that everything as to go through some form of lock
      • :a: @ktoso / @adam-fowler to file a ticket about updating the tracing docs to provide guidance on how locks should be used with tracing
  • Survey: We need to incorporate it into the yearly blog post:

  • @patrick to get the final 0.1.0 stuff ready

    • Made some progress on making the installation path easier, in particular the setting of environment variables
    • :a: Carry over
  • @tomerd to organize core team link up based around the 2023 goals

    • Doing website work group first
    • :a: Will schedule one for this group next

Discussion

swift-foundation is open sourced!

Swift 5.8 + 5.9 toolchains

  • There recently have been some static linking related crashes related to concurrency on 5.8 and linker errors on 5.9
  • 5.8.1 will be released soon with a fix for this

HTTP Middleware/novel server-side Swift features discussion

  • NIO updates
    • Landed NIOAsyncChannel - https://github.com/apple/swift-nio/pull/2397
    • Added NIOAsyncChannel-based ServerBootstrap.bind() methods - https://github.com/apple/swift-nio/pull/2403
      • Allows for easily and safely creating new NIOAsyncChannels from the ServerBootstrap, including when protocol negotiation is required
    • One missing piece is a canonical h1/h2 bootstrap
      • Need to create a new type that is essentially an h2 connection that gives you access to the underlying h2 streams
      • End result is you have a configured HTTP pipeline that just events you a new HTTP channel that you can consume
  • Vapor's thoughts
    • Middleware can be adopted relatively easily
    • Async stuff is harder. Not sure if internals can be done in a non breaking way
      • Vapor will definitely use it, but it might be a little bit behind the curve
    • Another option is to introduce a new async server type, which will allow users to opt in and switch over manually
3 Likes