The Usage docs have a section on Handling version-specific logic, but reading that and looking at SE-209, I have to admit, I'm sorta unsure what the path going forward is going to be to try to continue to support multiple toolchain versions with releases.
// swift-tools-version block doesn't really seem like it helps because it would need to be for the lowest version one intends to support (Say 3). But then how do you use the V4 additions (or the changes in SE-209)? Do we use
#if swift(>=4.2) &
swift(>=4.0) checks in
Package.swift to gate off the differences? There also is the
Package@swift-4.swift support, but the docs imply that shouldn't be needed.
Can the docs maybe get some specific examples of how a package would support things through these changes?