swiftly es una herramienta CLI para instalar, administrar y cambiar entre cadenas de herramientas Swift, escrita en Swift. Swiftly en sí está diseñado para ser extremadamente fácil de instalar y poner en funcionamiento, y su interfaz de comando está pensada para ser flexible y al mismo tiempo fácil de usar. La experiencia general está inspirada y pretende recordar la oxidación del administrador de la cadena de herramientas de Rust.
El mantenimiento y la gestión continuos de este proyecto están a cargo del SSWG.
Para descargar rápidamente e instalar Swift, ejecute lo siguiente en su terminal y luego siga las instrucciones en pantalla.
curl -L https://swiftlang.github.io/swiftly/swiftly-install.sh | bash
Alternativamente, puede descargar el binario rápidamente y podrá instalarlo solo:
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
)En este momento, Swiftly se encuentra en las primeras etapas de desarrollo y es compatible con Linux y macOS. Para obtener información más detallada sobre las funciones previstas y la implementación de Swiftly, consulte el documento de diseño.
$ swiftly install latest
Se puede proporcionar una versión específica de Swift al comando install
.
$ swiftly install 5.6.1
Si no se especifica una versión del parche, Swift buscará e instalará la última versión del parche que coincida con la versión secundaria proporcionada:
$ swiftly install 5.6
$ swiftly install main-snapshot-2022-01-28
Si no se especifica la fecha, Swiftly buscará e instalará la última instantánea disponible:
$ swiftly install main-snapshot
$ swiftly install 5.7-snapshot-2022-08-30
Si no se especifica la fecha, Swift buscará e instalará la última instantánea asociada con la rama de desarrollo proporcionada:
$ swiftly install 5.7-snapshot
$ swiftly uninstall 5.6.3
Para desinstalar todas las cadenas de herramientas asociadas con una versión menor determinada, omita la versión del parche:
$ swiftly uninstall 5.6
$ swiftly uninstall main-snapshot-2022-08-30
$ swiftly uninstall 5.7-snapshot-2022-08-30
Para desinstalar todas las instantáneas asociadas con una rama determinada (ya sea principal o de lanzamiento), omita la fecha:
$ swiftly uninstall main-snapshot
$ swiftly uninstall 5.7-snapshot
El comando list
imprime todas las cadenas de herramientas instaladas rápidamente:
$ swiftly list
"Usar" una cadena de herramientas la establece como la cadena de herramientas activa, lo que significa que será la que se encontrará a través de $PATH y la que se invocará mediante comandos swift
ejecutados en el shell. La cadena de herramientas debe estar instalada antes de poder utilizarla.
Puede proporcionar los mismos selectores de versión que usó con swiftly install
para usar una cadena de herramientas, incluidas versiones exactas de versiones "major.minor.patch" e instantáneas.
$ 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
Después de usar una cadena de herramientas, sus comandos en el shell se ejecutarán con esa cadena de herramientas:
$ 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
Si desea ejecutar solo un comando con una cadena de herramientas en particular sin tener que volver a la que usó anteriormente, puede usar el comando swiftly run
con la versión. Este comando crea su paquete actual con la última cadena de herramientas de instantáneas de la versión actual:
$ swiftly run swift build +main-snapshot
El parámetro con "+" indica que este es el selector de versión de la cadena de herramientas que se utilizará y admite la gama completa de selectores que se muestran arriba y con el comando swiftly install
. La cadena de herramientas debe estar instalada para ejecutar un comando con esa cadena de herramientas.
La actualización reemplaza una cadena de herramientas determinada con una versión posterior de esa cadena de herramientas. Para una versión estable, esto significa actualizar a un parche posterior, a una versión menor o mayor. Para las instantáneas, esto significa actualizar a la instantánea disponible más reciente.
Si no se proporciona ninguna versión, la actualización actualizará la cadena de herramientas seleccionada actualmente a su última versión de parche si es una cadena de herramientas de versión o a la última instantánea disponible si es una instantánea. Se seleccionará la versión recién instalada.
$ swiftly update
Para actualizar la última versión instalada a la última versión disponible, se puede proporcionar la versión "más reciente". Tenga en cuenta que esto puede actualizar la cadena de herramientas a la siguiente versión menor o incluso mayor.
swiftly update latest
Si solo se especifica una versión principal, la última cadena de herramientas instalada con esa versión principal se actualizará a la última versión disponible de esa versión principal:
swiftly update 5
Si se especifican la versión principal y secundaria, la última cadena de herramientas instalada asociada con esa versión principal/menor se actualizará a la última versión de parche disponible para esa versión principal/menor.
swiftly update 5.3
También puede especificar una versión completa para actualizar esa cadena de herramientas al último parche disponible para esa versión principal/menor:
swiftly update 5.3.1
De manera similar, para actualizar la última instantánea asociada a una versión específica, se puede proporcionar la versión “ab-snapshot”:
swiftly update 5.3-snapshot
También puede actualizar la última instantánea principal instalada a la última disponible simplemente proporcionando main-snapshot
:
swiftly update main-snapshot
Una cadena de herramientas de instantáneas específica se puede actualizar a la instantánea más reciente disponible para esa rama incluyendo la fecha:
swiftly update 5.9-snapshot-2023-09-20
El comando list-available
se puede utilizar para enumerar las últimas cadenas de herramientas que Apple ha puesto a disposición para instalar.
Tenga en cuenta que este comando aún no está implementado, pero se incluirá en una versión futura.
swiftly list-available
Opcionalmente, se puede proporcionar un selector para limitar los resultados:
$ swiftly list-available 5.6
$ swiftly list-available main-snapshot
$ swiftly list-available 5.7-snapshot
Este comando verifica si hay nuevas versiones de swiftly
y las actualiza si es así.
Tenga en cuenta que este comando aún no está implementado, pero se incluirá en una versión futura.
swiftly self-update
El nombre canónico de una cadena de herramientas de instantáneas en la interfaz de comandos de Swift es el siguiente:
<branch>-snapshot-YYYY-MM-DD
Sin embargo, Swiftly también acepta los nombres de archivos de la cadena de herramientas de instantáneas de las descargas proporcionadas por swift.org. Por ejemplo:
swift-DEVELOPMENT-SNAPSHOT-2022-09-10-a
swift-5.7-DEVELOPMENT-SNAPSHOT-2022-08-30-a
El formato de nombre canónico se eligió para reducir las pulsaciones de teclas necesarias para hacer referencia a una cadena de herramientas instantánea, pero la forma más larga también es útil al copiar y pegar un nombre de cadena de herramientas proporcionado desde otro lugar.
¡Bienvenido a la comunidad Swift!
¡Las contribuciones a Swiftly son bienvenidas y alentadas! Consulte la guía Contribución a Swift y consulte la estructura de la comunidad.
Para ser una comunidad verdaderamente excelente, Swift necesita dar la bienvenida a desarrolladores de todos los ámbitos de la vida, con diferentes orígenes y con una amplia gama de experiencias. Una comunidad diversa y amigable tendrá más ideas geniales, perspectivas más únicas y producirá más código excelente. Trabajaremos diligentemente para que la comunidad Swift sea acogedora para todos.
Para brindar claridad sobre lo que se espera de nuestros miembros, Swift ha adoptado el código de conducta definido por el Contributor Covenant. Este documento se utiliza en muchas comunidades de código abierto y creemos que articula bien nuestros valores. Para obtener más información, consulte el Código de conducta.
apt
o yum
)? Actualmente, Swift.org proporciona paquetes experimentales .rpm
y .deb
que le permiten instalar Swift a través de su administrador de paquetes. Si bien estas son una forma efectiva de instalar y actualizar una única versión de Swift, no son adecuadas para la tarea de instalar múltiples cadenas de herramientas de Swift entre las que pueda alternar fácilmente. El público objetivo de Swiftly son los desarrolladores de Swift que cambian entre versiones con el fin de probar sus bibliotecas y aplicaciones. Actualmente, .deb
y .rpm
tampoco brindan soporte para cadenas de herramientas de instantáneas.
swiftenv es un administrador de versiones de Swift existente que ya tiene gran parte de la funcionalidad que eventualmente tendrá Swift. Es una herramienta increíble y, si es parte de tu flujo de trabajo, ¡te animamos a que sigas usándola! Dicho esto, Swiftly es/será diferente en algunas formas:
swiftly se está construyendo como un esfuerzo impulsado por la comunidad liderado por el grupo de trabajo del servidor Swift y, a través de esta colaboración, swiftly eventualmente se convertirá en una herramienta de instalación oficial para las cadenas de herramientas Swift. Como primer paso hacia eso, swiftly ayudará a informar la creación de puntos finales API mantenidos por el proyecto Swift que utilizará para recuperar información sobre qué cadenas de herramientas están disponibles para instalar y verificar sus firmas esperadas. Swiftenv actualmente utiliza una capa API de terceros para esto. El uso de una API oficial reduce las posibilidades de vulnerabilidades de seguridad y también reduce el riesgo de tiempo de inactividad que afecta las instalaciones de Swift.
swiftly se escribirá en Swift, que creemos que es importante para la mantenibilidad y fomentar las contribuciones de la comunidad.
Swiftly tiene soporte de primera clase para instalar y administrar cadenas de herramientas de instantáneas.
Swiftly ha incorporado soporte para actualizar cadenas de herramientas.
swiftly está optimizado para facilitar la instalación: se puede hacer con un bash de una sola línea similar a Homebrew y Rustup. Además, Swiftly no requerirá la instalación de ninguna dependencia del sistema en el sistema del usuario. Si bien swiftenv también es relativamente fácil de instalar, implica clonar un repositorio git o usar Homebrew, y requiere algunas dependencias del sistema (por ejemplo, bash, curl, tar).