[Accepted] Vision: Swift Platform Support: A Vision for Evolution

Hi folks,

I'm pleased to announce that the Platform Steering Group has today published its work on platform support, titled Swift Platform Support: A Vision for Evolution.

The Swift programming language has evolved into a versatile and powerful tool
for developers across a wide range of platforms. As the ecosystem continues to
grow, it is essential to establish a clear and forward-looking vision for
platform support. This vision has two main goals:

  1. To establish common terminology and definitions for platform support.

  2. To document a process for platforms to become officially supported in Swift.

The document, co-authored by members of the Platform Steering Group (notably @compnerd, who wrote the original draft), sets out the four different platform support tiers and defines the mechanism by which platform owners can request that their platform be included in a specific support tier.

Please feel free to continue discussing this vision document in this thread.

Alastair Houghton
Platform Steering Group

16 Likes

There might be some mis-editing, the vision document currently has two "Tier 1" sections.

That is intentional. The first one is Tier 1 (general), and the second is Tier 1 (for toolchain hosts). Perhaps we should have labelled it Tier 1a or something instead.

The point is that you don't need to be a toolchain host to be in Tier 1, but if you are, then some additional requirements apply.

2 Likes

Document is looking good, thanks for the well-reasoned guidance from @compnerd, @al45tair, and the PSG. :smiley:

Some thoughts:

  • This doesn't seem like a vision document, more about process, does it belong instead here on github or on swift.org?
  • Will each of the linux distros now get an owner? Seems like that would be worthwhile.
  • It would be nice if an explanation or link were added for what a SBOM or "provenance information to validate the software supply chain" consists of, so this doesn't have to be explained informally through other channels each time.
  • "Ensure that dependencies beyond the platform SDK can build from source" is a bit vague: these are general Swift packages, like the thousands found in the SPI, or specific dependencies of the SDK, like libcurl->FoundationNetworking for linux?
  • It is good that the grandfathering of current official platforms is explicitly stated, to forestall complaints that new platforms are unfairly being held to a higher standard otherwise.

The Android workgroup obviously plans to submit it through this process- we are unofficially somewhere between tiers 1 and 2 now- looking forward to other platforms like the BSDs being added too. :wink:

Tier 1 toolchain is interesting. OpenBSD has some diverging features between the platform LLVM and the upstream LLVM such that the clang/lld requirements might be potentially problematic depending on how you read the document, but I don't anticipate OpenBSD getting to Tier 1 any time soon. Tier 2 (with swiftc+swiftpm) seems reasonable, however.

3 Likes

I feel like ā€œif applicableā€ is doing a lot of heavy lifting in the case of Embedded-only platforms. Is it worth making the requirements for Embedded platforms an explicit subset of the requirements for non-Embedded? (easy for me to say, who will not be maintaining this policy)