swiftlang / swiftly

A Swift toolchain installer and manager, written in Swift.
https://swiftlang.github.io/swiftly/
Apache License 2.0
470 stars 24 forks source link

Enhance the swiftly release build logic #146

Open cmcgee1024 opened 1 month ago

cmcgee1024 commented 1 month ago

The current script for building a release assumes that the only artifacts will be single static binaries, and at the moment it's only making Linux binaries for the supported architectures (x86_64, and aarch64).

This process should be changed to better align with the sorts of artifacts that comes with Swift toolchains at swift.org, such as the tar.gz archives. Also, there should be a macOS pkg installer with a lipo-ed binary that works on both x86_64, and arm64 macOS.

The self-install logic should be reconfigured to work with these types of artifacts moving forward. Also, the self-upgrade will need to be changed.

cmcgee1024 commented 1 month ago

Since shell scripts can be problematic in various ways, an idea could be to make an executable target that performs the release build.

adam-fowler commented 1 month ago

I would prefer we use a GitHub action for automating the generation of releases

cmcgee1024 commented 2 weeks ago

Note that the self upgrade logic needs to be updated to query a swift.org API (to be proposed and discussed on the forums) to discover what the current swiftly version is, and work with the shape of the artifacts of the releases for each respective platform.