Swiftly é uma ferramenta CLI para instalar, gerenciar e alternar entre conjuntos de ferramentas Swift, escrita em Swift. O próprio Swift foi projetado para ser extremamente fácil de instalar e executar, e sua interface de comando foi projetada para ser flexível e ao mesmo tempo simples de usar. A experiência geral é inspirada e deve ser uma reminiscência do ferrugem do gerenciador de conjunto de ferramentas Rust.
A manutenção e administração contínuas deste projeto são lideradas pelo SSWG.
Para baixar e instalar rapidamente o Swift, execute o seguinte em seu terminal e siga as instruções na tela.
curl -L https://swiftlang.github.io/swiftly/swiftly-install.sh | bash
Alternativamente, você pode baixar o binário Swift e ele pode se instalar:
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
)No momento, Swift está em estágios iniciais de desenvolvimento e é compatível com Linux e macOS. Para obter informações mais detalhadas sobre os recursos e implementação pretendidos do Swift, confira o documento de design.
$ swiftly install latest
Uma versão específica do Swift pode ser fornecida ao comando install
.
$ swiftly install 5.6.1
Se uma versão do patch não for especificada, o Swift procurará e instalará a versão mais recente do patch que corresponda à versão secundária fornecida:
$ swiftly install 5.6
$ swiftly install main-snapshot-2022-01-28
Se a data não for especificada, o Swift procurará e instalará o snapshot mais recente disponível:
$ swiftly install main-snapshot
$ swiftly install 5.7-snapshot-2022-08-30
Se a data não for especificada, o Swift procurará e instalará o snapshot mais recente associado ao branch de desenvolvimento fornecido:
$ swiftly install 5.7-snapshot
$ swiftly uninstall 5.6.3
Para desinstalar todas as cadeias de ferramentas associadas a uma determinada versão secundária, deixe de fora a versão do patch:
$ swiftly uninstall 5.6
$ swiftly uninstall main-snapshot-2022-08-30
$ swiftly uninstall 5.7-snapshot-2022-08-30
Para desinstalar todos os snapshots associados a um determinado branch (ramo principal ou de lançamento), omita a data:
$ swiftly uninstall main-snapshot
$ swiftly uninstall 5.7-snapshot
O comando list
imprime todos os conjuntos de ferramentas instalados rapidamente:
$ swiftly list
“Usar” um conjunto de ferramentas o define como o conjunto de ferramentas ativo, o que significa que será aquele encontrado via $PATH e invocado por meio de comandos swift
executados no shell. A cadeia de ferramentas deve ser instalada antes de poder ser usada.
Você pode fornecer os mesmos seletores de versão usados com swiftly install
para usar um conjunto de ferramentas, incluindo versões exatas de releacs "major.minor.patch" e instantâneos.
$ 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
Depois de usar um conjunto de ferramentas, seus comandos no shell serão executados com esse conjunto de ferramentas:
$ 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
Se você deseja executar apenas um comando com um conjunto de ferramentas específico sem ter que voltar para aquele usado anteriormente, você pode usar o comando swiftly run
com a versão. Este comando cria seu pacote atual com o conjunto de ferramentas de snapshot mais recente da versão atual:
$ swiftly run swift build +main-snapshot
O parâmetro com o "+" indica que este é o seletor de versão do conjunto de ferramentas a ser usado e suporta toda a gama de seletores mostrados acima e com o comando swiftly install
. A cadeia de ferramentas deve ser instalada para executar um comando com essa cadeia de ferramentas.
A atualização substitui um determinado conjunto de ferramentas por uma versão posterior desse conjunto de ferramentas. Para uma versão estável, isso significa atualizar para um patch posterior, versão secundária ou principal. Para instantâneos, isso significa atualizar para o instantâneo disponível mais recentemente.
Se nenhuma versão for fornecida, a atualização atualizará o conjunto de ferramentas atualmente selecionado para sua versão de patch mais recente, se for um conjunto de ferramentas de lançamento, ou o instantâneo mais recente disponível, se for um instantâneo. A versão recém-instalada será selecionada.
$ swiftly update
Para atualizar a versão mais recente instalada para a versão mais recente disponível, a versão “mais recente” pode ser fornecida. Observe que isso pode atualizar o conjunto de ferramentas para a próxima versão secundária ou mesmo principal.
swiftly update latest
Se apenas uma versão principal for especificada, a cadeia de ferramentas instalada mais recente com essa versão principal será atualizada para a versão mais recente disponível dessa versão principal:
swiftly update 5
Se a versão principal e secundária forem especificadas, o conjunto de ferramentas instalado mais recente associado a essa versão principal/secundária será atualizado para a versão de patch mais recente disponível para essa versão principal/secundária.
swiftly update 5.3
Você também pode especificar uma versão completa para atualizar esse conjunto de ferramentas para o patch mais recente disponível para essa versão principal/secundária:
swiftly update 5.3.1
Da mesma forma, para atualizar o snapshot mais recente associado a uma versão específica, a versão “ab-snapshot” pode ser fornecida:
swiftly update 5.3-snapshot
Você também pode atualizar o snapshot principal instalado mais recente para o mais recente disponível apenas fornecendo main-snapshot
:
swiftly update main-snapshot
Uma cadeia de ferramentas de snapshot específica pode ser atualizada para o snapshot mais recente disponível para aquela ramificação, incluindo a data:
swiftly update 5.9-snapshot-2023-09-20
O comando list-available
pode ser usado para listar os conjuntos de ferramentas mais recentes que a Apple disponibilizou para instalação.
Observe que este comando ainda não está implementado, mas será incluído em uma versão futura.
swiftly list-available
Opcionalmente, um seletor pode ser fornecido para restringir os resultados:
$ swiftly list-available 5.6
$ swiftly list-available main-snapshot
$ swiftly list-available 5.7-snapshot
Este comando verifica se há novas versões do swiftly
e as atualiza em caso afirmativo.
Observe que este comando ainda não está implementado, mas será incluído em uma versão futura.
swiftly self-update
O nome canônico para um conjunto de ferramentas de snapshot na interface de comando do Swift é o seguinte:
<branch>-snapshot-YYYY-MM-DD
No entanto, rapidamente também aceita os nomes de arquivos do conjunto de ferramentas de instantâneo dos downloads fornecidos por swift.org. Por exemplo:
swift-DEVELOPMENT-SNAPSHOT-2022-09-10-a
swift-5.7-DEVELOPMENT-SNAPSHOT-2022-08-30-a
O formato de nome canônico foi escolhido para reduzir as teclas necessárias para se referir a um conjunto de ferramentas de instantâneo, mas o formato mais longo também é útil ao copiar/colar um nome de conjunto de ferramentas fornecido de outro lugar.
Bem-vindo à comunidade Swift!
Contribuições para Swiftly são bem-vindas e incentivadas! Consulte o guia Contribuindo para Swift e confira a estrutura da comunidade.
Para ser uma comunidade verdadeiramente excelente, Swift precisa receber desenvolvedores de todas as esferas da vida, com diferentes origens e com uma ampla gama de experiências. Uma comunidade diversificada e amigável terá mais ideias excelentes, perspectivas mais exclusivas e produzirá mais códigos excelentes. Trabalharemos diligentemente para tornar a comunidade Swift acolhedora para todos.
Para esclarecer o que se espera de nossos membros, a Swift adotou o código de conduta definido pelo Contributor Covenant. Este documento é usado em muitas comunidades de código aberto e acreditamos que ele articula bem nossos valores. Para mais informações, consulte o Código de Conduta.
apt
ou yum
)? Swift.org atualmente fornece pacotes experimentais .rpm
e .deb
que permitem instalar o Swift por meio de seu gerenciador de pacotes. Embora sejam uma maneira eficaz de instalar e atualizar uma única versão do Swift, elas não são adequadas para a tarefa de instalar vários conjuntos de ferramentas Swift entre os quais você pode alternar facilmente. O público-alvo do Swift são desenvolvedores Swift que alternam entre versões para testar suas bibliotecas e aplicativos. Atualmente, .deb
e .rpm
também não fornecem suporte para conjuntos de ferramentas de snapshot.
swiftenv é um gerenciador de versão Swift existente que já possui muitas das funcionalidades que o Swift eventualmente terá. É uma ferramenta incrível e, se fizer parte do seu fluxo de trabalho, incentivamos você a continuar usando-a! Dito isto, rapidamente é/será diferente de algumas maneiras:
Swiftly está sendo construído como um esforço conduzido pela comunidade liderado pelo grupo de trabalho do servidor Swift e, por meio dessa colaboração, rapidamente se tornará uma ferramenta de instalação oficial para cadeias de ferramentas Swift. Como primeiro passo para isso, rapidamente ajudará a informar a criação de endpoints de API mantidos pelo projeto Swift que serão usados para recuperar informações sobre quais cadeias de ferramentas estão disponíveis para instalação e para verificar suas assinaturas esperadas. swiftenv atualmente usa uma camada API de terceiros para isso. O uso de uma API oficial reduz os caminhos para vulnerabilidades de segurança e também reduz o risco de tempo de inatividade que afeta as instalações do Swift.
rapidamente será escrito em Swift, o que consideramos importante para a manutenção e para incentivar as contribuições da comunidade.
rapidamente tem suporte de primeira classe para instalação e gerenciamento de conjuntos de ferramentas de snapshot.
Swiftly incorporou suporte para atualização de conjuntos de ferramentas.
swiftly é otimizado para facilidade de instalação - isso pode ser feito com um bash one-liner semelhante ao Homebrew e ao Rustup. Além disso, rapidamente não exigirá a instalação de nenhuma dependência do sistema no sistema do usuário. Embora o swiftenv também seja relativamente fácil de instalar, ele envolve a clonagem de um repositório git ou o uso do Homebrew e requer algumas dependências do sistema (por exemplo, bash, curl, tar).