Swiftly ist ein in Swift geschriebenes CLI-Tool zum Installieren, Verwalten und Wechseln zwischen Swift-Toolchains. Swiftly selbst ist so konzipiert, dass es extrem einfach zu installieren und in Betrieb zu nehmen ist, und seine Befehlsschnittstelle soll flexibel und gleichzeitig einfach zu bedienen sein. Das Gesamterlebnis ist vom Rust-Toolchain-Manager rustup inspiriert und soll an ihn erinnern.
Die laufende Wartung und Verwaltung dieses Projekts wird von der SSWG geleitet.
Um Swift schnell herunterzuladen und zu installieren, führen Sie Folgendes in Ihrem Terminal aus und befolgen Sie dann die Anweisungen auf dem Bildschirm.
curl -L https://swiftlang.github.io/swiftly/swiftly-install.sh | bash
Alternativ können Sie die Swiftly-Binärdatei herunterladen und sie kann sich selbst installieren:
swiftly init
$ swiftly install latest
Fetching the latest stable Swift release...
Installing Swift 5.8.1
Downloaded 488.5 MiB of 488.5 MiB
Extracting toolchain...
Swift 5.8.1 installed successfully!
$ swift --version
Swift version 5.8.1 (swift-5.8.1-RELEASE)
Target: x86_64-unknown-linux-gnu
$PATH
erkannt wird)Swiftly befindet sich derzeit in einem frühen Entwicklungsstadium und wird auf Linux und macOS unterstützt. Ausführlichere Informationen zu den beabsichtigten Funktionen und der Implementierung von Swiftly finden Sie im Designdokument.
$ swiftly install latest
Dem install
kann eine bestimmte Version von Swift bereitgestellt werden.
$ swiftly install 5.6.1
Wenn keine Patch-Version angegeben ist, sucht Swiftly nach der neuesten Patch-Version, die mit der bereitgestellten Nebenversion übereinstimmt, und installiert sie:
$ swiftly install 5.6
$ swiftly install main-snapshot-2022-01-28
Wenn das Datum nicht angegeben ist, sucht Swiftly nach dem neuesten verfügbaren Snapshot und installiert ihn:
$ swiftly install main-snapshot
$ swiftly install 5.7-snapshot-2022-08-30
Wenn das Datum nicht angegeben ist, sucht Swiftly nach dem neuesten Snapshot, der dem bereitgestellten Entwicklungszweig zugeordnet ist, und installiert ihn:
$ swiftly install 5.7-snapshot
$ swiftly uninstall 5.6.3
Um alle Toolchains zu deinstallieren, die mit einer bestimmten Nebenversion verknüpft sind, lassen Sie die Patch-Version weg:
$ swiftly uninstall 5.6
$ swiftly uninstall main-snapshot-2022-08-30
$ swiftly uninstall 5.7-snapshot-2022-08-30
Um alle Snapshots zu deinstallieren, die einem bestimmten Zweig (entweder Haupt- oder Release-Zweig) zugeordnet sind, lassen Sie das Datum weg:
$ swiftly uninstall main-snapshot
$ swiftly uninstall 5.7-snapshot
Der Befehl list
gibt alle von Swiftly installierten Toolchains aus:
$ swiftly list
Durch „Verwenden“ wird eine Toolchain als aktive Toolchain festgelegt, was bedeutet, dass sie über $PATH gefunden und über in der Shell ausgeführte swift
-Befehle aufgerufen wird. Die Toolchain muss installiert werden, bevor Sie sie verwenden können.
Sie können dieselben Versionsselektoren bereitstellen, die Sie bei swiftly install
verwendet haben, um eine Toolchain zu verwenden, einschließlich der genauen Release-Versionen „major.minor.patch“ und Snapshots.
$ swiftly use latest
$ swiftly use 5.3.1
$ swiftly use 5.3
$ swiftly use 5.3-snapshot
$ swiftly use 5.3-snapshot-2022-08-16
$ swiftly use main-snapshot
$ swiftly use main-snapshot-2024-06-18
Nachdem Sie eine Toolchain verwendet haben, werden Ihre Befehle in der Shell mit dieser Toolchain ausgeführt:
$ swiftly use x.y.z
$ swift build # Build my package with toolchain version x.y.z
$ clang -c foo.c -o foo.o # Compile this C file using the clang compiler in toolchain version x.y.z
$ lldb # Open the debugger from toolchain version x.y.z
Wenn Sie nur einen Befehl mit einer bestimmten Toolchain ausführen möchten, ohne zu der zuvor verwendeten zurückkehren zu müssen, können Sie den Befehl swiftly run
mit der Version verwenden. Dieser Befehl erstellt Ihr aktuelles Paket mit der neuesten Snapshot-Toolchain der aktuellen Version:
$ swiftly run swift build +main-snapshot
Der Parameter mit dem „+“ gibt an, dass dies der Versionsselektor der zu verwendenden Toolchain ist und den gesamten oben und mit dem Befehl swiftly install
gezeigten Selektoren unterstützt. Die Toolchain muss installiert sein, um einen Befehl mit dieser Toolchain auszuführen.
Das Update ersetzt eine bestimmte Toolchain durch eine neuere Version dieser Toolchain. Für eine stabile Version bedeutet dies ein Update auf einen späteren Patch, eine Neben- oder Hauptversion. Bei Snapshots bedeutet dies, dass auf den zuletzt verfügbaren Snapshot aktualisiert wird.
Wenn keine Version bereitgestellt wird, aktualisiert Update die aktuell ausgewählte Toolchain auf die neueste Patch-Version, wenn es sich um eine Release-Toolchain handelt, oder auf den neuesten verfügbaren Snapshot, wenn es sich um einen Snapshot handelt. Die neu installierte Version wird ausgewählt.
$ swiftly update
Um die zuletzt installierte Release-Version auf die neueste verfügbare Release-Version zu aktualisieren, kann die „neueste“ Version bereitgestellt werden. Beachten Sie, dass dadurch die Toolchain möglicherweise auf die nächste Neben- oder sogar Hauptversion aktualisiert wird.
swiftly update latest
Wenn nur eine Hauptversion angegeben ist, wird die zuletzt installierte Toolchain mit dieser Hauptversion auf die neueste verfügbare Version dieser Hauptversion aktualisiert:
swiftly update 5
Wenn die Haupt- und Nebenversion angegeben sind, wird die zuletzt installierte Toolchain, die dieser Haupt-/Nebenversion zugeordnet ist, auf die neueste verfügbare Patch-Version für diese Haupt-/Nebenversion aktualisiert.
swiftly update 5.3
Sie können auch eine Vollversion angeben, um diese Toolchain auf den neuesten Patch zu aktualisieren, der für diese Haupt-/Nebenversion verfügbar ist:
swiftly update 5.3.1
Um den neuesten Snapshot zu aktualisieren, der einer bestimmten Version zugeordnet ist, kann auf ähnliche Weise die „ab-snapshot“-Version bereitgestellt werden:
swiftly update 5.3-snapshot
Sie können den zuletzt installierten Haupt-Snapshot auch auf den neuesten verfügbaren aktualisieren, indem Sie einfach main-snapshot
bereitstellen:
swiftly update main-snapshot
Eine bestimmte Snapshot-Toolchain kann durch Angabe des Datums auf den neuesten verfügbaren Snapshot für diesen Zweig aktualisiert werden:
swiftly update 5.9-snapshot-2023-09-20
Mit dem Befehl list-available
können die neuesten Toolchains aufgelistet werden, die Apple zur Installation bereitgestellt hat.
Beachten Sie, dass dieser Befehl noch nicht implementiert ist, aber in einer zukünftigen Version enthalten sein wird.
swiftly list-available
Optional kann ein Selektor bereitgestellt werden, um die Ergebnisse einzugrenzen:
$ swiftly list-available 5.6
$ swiftly list-available main-snapshot
$ swiftly list-available 5.7-snapshot
Dieser Befehl prüft, ob es neue Versionen von swiftly
selbst gibt, und führt gegebenenfalls ein Upgrade auf diese durch.
Beachten Sie, dass dieser Befehl noch nicht implementiert ist, aber in einer zukünftigen Version enthalten sein wird.
swiftly self-update
Der kanonische Name für eine Snapshot-Toolchain in der Befehlsschnittstelle von Swiftly lautet wie folgt:
<branch>-snapshot-YYYY-MM-DD
Swiftly akzeptiert jedoch auch die Dateinamen der Snapshot-Toolchain aus den von Swift.org bereitgestellten Downloads. Zum Beispiel:
swift-DEVELOPMENT-SNAPSHOT-2022-09-10-a
swift-5.7-DEVELOPMENT-SNAPSHOT-2022-08-30-a
Das kanonische Namensformat wurde gewählt, um die zum Verweisen auf eine Snapshot-Toolchain erforderlichen Tastenanschläge zu reduzieren. Die längere Form ist jedoch auch beim Kopieren/Einfügen eines von einer anderen Stelle bereitgestellten Toolchain-Namens nützlich.
Willkommen in der Swift-Community!
Beiträge zu Swiftly sind willkommen und erwünscht! Bitte sehen Sie sich den Leitfaden „Beitrag zu Swift beitragen“ an und sehen Sie sich die Struktur der Community an.
Um eine wirklich großartige Community zu sein, muss Swift Entwickler aus allen Lebensbereichen, mit unterschiedlichem Hintergrund und mit einem breiten Erfahrungsspektrum willkommen heißen. Eine vielfältige und freundliche Community wird mehr großartige Ideen, einzigartigere Perspektiven haben und mehr großartigen Code produzieren. Wir werden fleißig daran arbeiten, dass die Swift-Community alle willkommen heißt.
Um Klarheit darüber zu schaffen, was von unseren Mitgliedern erwartet wird, hat Swift den im Contributor Covenant definierten Verhaltenskodex übernommen. Dieses Dokument wird in vielen Open-Source-Communities verwendet und wir glauben, dass es unsere Werte gut zum Ausdruck bringt. Weitere Informationen finden Sie im Verhaltenskodex.
apt
oder yum
)? Swift.org bietet derzeit experimentelle .rpm
und .deb
Pakete an, mit denen Sie Swift über Ihren Paketmanager installieren können. Dies ist zwar eine effektive Möglichkeit, eine einzelne Version von Swift zu installieren und zu aktualisieren, für die Installation mehrerer Swift-Toolchains, zwischen denen Sie problemlos wechseln können, sind sie jedoch nicht gut geeignet. Die Zielgruppe von Swiftly sind Swift-Entwickler, die zum Testen ihrer Bibliotheken und Anwendungen zwischen Versionen wechseln. Die .deb
und .rpm
bieten derzeit auch keine Unterstützung für Snapshot-Toolchains.
Swiftenv ist ein bestehender Swift-Versionsmanager, der bereits über einen Großteil der Funktionalität verfügt, die Swiftly irgendwann haben wird. Es ist ein großartiges Tool, und wenn es Teil Ihres Workflows ist, empfehlen wir Ihnen, es weiterhin zu verwenden! Das heißt, Swiftly ist/wird in einigen Punkten anders sein:
Swiftly wird als Gemeinschaftsprojekt unter der Leitung der Swift-Server-Arbeitsgruppe entwickelt und wird durch diese Zusammenarbeit schließlich zu einem offiziellen Installationstool für Swift-Toolchains. Als ersten Schritt dazu wird Swiftly dabei helfen, die Erstellung von API-Endpunkten zu unterstützen, die vom Swift-Projekt verwaltet werden und die es verwenden wird, um Informationen darüber abzurufen, welche Toolchains zur Installation verfügbar sind, und um ihre erwarteten Signaturen zu überprüfen. Swiftenv verwendet hierfür derzeit eine API-Schicht eines Drittanbieters. Die Verwendung einer offiziellen API reduziert die Möglichkeiten für Sicherheitslücken und verringert auch das Risiko von Ausfallzeiten bei Swift-Installationen.
„swiftly“ wird in Swift geschrieben, was unserer Meinung nach für die Wartbarkeit und die Förderung von Community-Beiträgen wichtig ist.
Swiftly bietet erstklassigen Support für die Installation und Verwaltung von Snapshot-Toolchains.
Swiftly verfügt über eine integrierte Unterstützung für die Aktualisierung von Toolchains.
Swiftly ist für eine einfache Installation optimiert – dies kann mit einem Bash-Einzeiler ähnlich wie Homebrew und Rustup erfolgen. Darüber hinaus erfordert Swiftly keine Installation von Systemabhängigkeiten auf dem System des Benutzers. Während Swiftenv auch relativ einfach zu installieren ist, erfordert es das Klonen eines Git-Repositorys oder die Verwendung von Homebrew und erfordert einige Systemabhängigkeiten (z. B. Bash, Curl, Tar).