2 ポイント 投稿者 GN⁺ 2025-03-31 | 1件のコメント | WhatsAppで共有
  • Swift バージョンのインストール、管理、更新プロセスを簡素化する公式バージョン管理ツール swiftly の最初の安定版がリリース
  • これまでは Xcode を通じてのみ Swift の最新バージョンを利用できたが、 теперь macOS およびさまざまな Linux ディストリビューションで独立してインストールできるようになった
  • Swift コミュニティツールとして始まった swiftly は、現在 Swift 公式 GitHub 組織に統合され、公式サポートを受けている
  • Xcode なしでも Swift をインストール可能で、開発ツールやサーバー環境などさまざまな用途で手軽にバージョン管理できる

swiftly の主な機能まとめ

  • 複数バージョンの Swift ツールチェーンをインストールして切り替え可能
    • swiftly install, swiftly use, swiftly list-available などのコマンドを提供
    • .swift-version ファイルを通じて、チーム内で 一貫したバージョン利用を強制できる
  • スナップショット版や旧バージョンもインストール可能
    • 例: main-snapshot-2025-03-25 のようなバージョンも簡単にインストール可能
    • swiftly run +バージョン名 構文により、特定バージョンで一時的に実行可能
  • 自動更新機能を搭載
    • swiftly self-update コマンドで最新機能を反映可能
  • macOS とさまざまな Linux ディストリビューションをサポート
    • Ubuntu、Debian、Fedora、Red Hat Enterprise Linux、Amazon Linux などをサポート

swiftly は Swift で書かれた自己インストール型 CLI ツール

  • swiftly 自体も Swift 言語で実装されている
    • ファイルシステム操作: Foundation モジュールを使用
    • HTTP リクエスト: Async HTTP Client を使用
    • バージョン情報の取得: Swift OpenAPI Generator を使用
    • 展開処理: libarchive と C 連携
  • シェルスクリプト不要の自己インストール型バイナリとして提供 → プラットフォーム間の安定性が向上
  • --help のような分かりやすい CLI インターフェースを提供

Linux ディストリビューション互換性と簡単なインストール

  • Swift.org は OS は検出できるが、Linux ディストリビューションは検出できない
  • これに対応するため Swift Static Linux SDK を使用し、幅広いディストリビューションで動作するバイナリを提供
  • ユーザーはウェブサイトで コマンドをコピー&ペーストするだけでインストール可能

今後の計画とオープンソース活動

  • Xcode の外で Swift をインストールする標準的な方法として swiftly を採用
  • CI/CD 環境プロキシサーバーカスタムインストールパス設定などもサポート → エンタープライズ環境にも適している
  • オープンソースとして開発中で、GitHub で issue の起票や PR が可能
  • Swift フォーラムで Q&A や議論に参加可能

特に swiftly を作った Patrick Freed に感謝を伝える。Swift コミュニティが Swift をさらに輝かせている

1件のコメント

 
GN⁺ 2025-03-31
Hacker Newsの意見
  • Steve Klabnik は最近の Oxide and Friends のエピソードで、初期の Rust チームとともにこの種のツールの重要性を認識していたことを語っていた。これは、Swift と Apple が Apple エコシステムの外でも汎用言語としての可能性を高めようとしている継続的な取り組みの前向きな兆候だ
    • Swift は Linux でうまく動作し、書いていて楽しく、C、C++、Java との相互運用性にも優れている
    • あまり気に入っていない点: コンパイル時間、バイナリサイズ、ランタイム型チェックのオーバーヘッド(Codable の性能がアプリケーションで問題を引き起こしたことがある)、非同期/await 処理の難しさ
  • Swift に何が起きたのか気になる。以前はよく耳にしていたのに、今はそうでもない。たぶん自分がエコーチェンバーの中にいるだけかもしれない
  • Apple の世界の外でも Swift を使えるようになってほしい
  • これが Swift にとっての UV のようなものなのか、どんな利点があるのか、Xcode を捨てて代わりに使えるのか気になる
  • Swift が最初に出た頃以来見ていないが、ドキュメントが改善されたのか気になる。Stack Overflow でコマンドを読んだものの、ドキュメントでは見つからなかったり、載っていても役に立つ情報がなかったりした
  • Zig が内蔵ツールを備えていることは、人々に好まれている理由の一つだ。言語と一緒に Day 1 から提供されている
  • これは Swift エコシステムにとって大きな助けになるだろう。必要に応じて言語バージョンを追加・削除できる機能は非常に便利で、より多くの言語がこれを追加しているのはうれしい
  • UIKit を import しなければならないコードのユニットテストを、シミュレータの外で実行できるようになるのか気になる
  • Windows サポートがあれば、人々が試してみるだろう