Skip to content

platform SDK listings and treatment with the installation pages #1122

@heckj

Description

@heckj

Is your feature request related to a problem? Please describe

an SDK is a Swift package manager feature that allows/supports cross compilation to another platform (or platforms), covered by evolution proposal SE-0387.

A notable constraint of the current SDK setup is that an SDK must be chosen to match the toolchain with which is was created. So, for example, a static linux 6.1 release SDK is aligned to only work correctly with the 6.1 release toolchain.

We started with a single SDK - the static linux one, and now have support for WASM through an SDK as well. But the visual treatment in swift.org installation page forces a user to search for the WASM SDK, hunting to the bottom of the page.

We likely have at least two more SDKs coming in the next 6-12 months that could be fully supported and desired for download alongside releases, adding more stress to how and where we present them.

In discussing the topic with the platform steering group, there's also a desire to be able to find relevant SDKs for snapshot releases, as that has become a key way to track down and debug some SDK related, or platform cross compilation related, issues. Today there's a link to the current "main", but nothing is currently presented for older snapshots, so finding an older SDK is significantly more difficult.

Describe the solution you'd like

  • Visually and semantically adjust the installation page to support a broader set of SDKs that could be installed alongside any given toolchain. It doesn't need to accommodate an infinite list, but realistically supporting 2-6 SDKs with each release, easily found and downloadable (copy the installation command kind of thing).

  • Equal treatment for all of the Tier1 released SDKs alongside their release toolchains (as of my opening this issue - that's the static linux SDK and the WASM SDK).

  • An "older installation" page with a list of older snapshots (it's an open question on how old - maybe only a recent set, such as ~30 snapshots) and all associated SDKs to make it easier to find and install the required pieces for older snapshots after the fact. (this may be only really needed for main, but if the pattern is easy to replicate, I think it would behoove us to make it available for release snapshots as well during beta rollout periods)

Describe alternatives you've considered

(... still working on it...)

Additional context

It's worth mentioning that this applies primarily to macOS and Linux, today, as hosting platforms. The windows hosting platform has additional constraints and complications, where SDKs are they're released today, don't easily align and correctly work - primarily due to layout as I understand it - with the windows platform. As such, the Windows toolchain typically includes the relevant SDKs within their download, so there's not a separate thing to find and install to allow this kind of functionality.

Metadata

Metadata

Assignees

Labels

enhancementNew feature or request

Type

No type

Projects

No projects

Milestone

No milestone

Relationships

None yet

Development

No branches or pull requests

Issue actions