Please, can we make toolchain download URLs make sense?

today, downloading the Swift toolchain is needlessly weird, and adds some complexity to CI workflow specifications. it is not a lot per-repo, but it really adds up when summed across dozens of repos and hundreds of YAML files, even with automation in place.

there are two really, really simple changes that could be made that would make the Swift installation story a lot smoother:

  1. download.swift.org could ignore the dot in ubuntuXX.XX. thus, it would be possible to download the Ubuntu toolchain from a URL like
https://download.swift.org/swift-6.3-release/ubuntu24.04-aarch64/swift-6.3-RELEASE/swift-6.3-RELEASE-ubuntu24.04-aarch64.tar.gz

instead of having to do string processing to obtain

https://download.swift.org/swift-6.3-release/ubuntu2404-aarch64/swift-6.3-RELEASE/swift-6.3-RELEASE-ubuntu24.04-aarch64.tar.gz

this would allow users to pass just one platform specifier string, instead of two variants of the same string, as is currently required.

  1. download.swift.org could allow the x86_64 toolchain to be downloaded from PLATFORM-x86_64 instead of just PLATFORM, which would make matrix interpolations much more logical.

thus, you could download the x86_64 toolchain from

https://download.swift.org/swift-6.3-release/ubuntu2404-x86_64/swift-6.3-RELEASE/swift-6.3-RELEASE-ubuntu24.04-x86_64.tar.gz

instead of

https://download.swift.org/swift-6.3-release/ubuntu2404/swift-6.3-RELEASE/swift-6.3-RELEASE-ubuntu24.04.tar.gz

please, can we make toolchain download URLs make sense?

2 Likes

Literally unusable; the only acceptable url is:

https://download.swift.org/swift-6.3-RELEASE/ubuntu2404-x86_64.tar.gz
https://download.swift.org/toolchain/swift-6.3-RELEASE/ubuntu2404-x86_64.tar.gz

/s

For me, whatever URLs are usable, but please don't change URLs that are already published.

no, it makes a lot of sense to emit the “redundant” components of the URL, if you are also publishing other artifacts, which i assume the Swift team is doing. it makes infrastructure more predictable.

it is not motivating for me to obtain the shortest possible toolchain download URL, i just want something that can be interpolated from a sane matrix.

1 Like

well, of course not. the dot (.) and the arch specifier should be ignorable, not mandatory.