Shards
Shardsは、Crystalのパッケージマネージャであり、外部のCrystalライブラリや依存関係(これを「Shard」と呼びます)をプロジェクトに簡単に追加・管理するためのツールです。Shardsは、Rubyの「Bundler」やJavaScriptの「npm」と同様の役割を果たし、依存関係の宣言と管理、バージョンの整合性などを自動化します。
Shardsの基本機能
編集Shardsには、以下のような基本機能があります。
- 依存関係の定義
shard.yml
ファイルで依存関係を記述し、プロジェクトで必要なShardをリストアップできます。このファイルには、各ShardのバージョンやGitリポジトリURLを指定します。name: my_project version: 0.1.0 dependencies: kemal: github: kemalcr/kemal version: ~> 1.0
- 依存関係のインストール
shards install
コマンドを実行することで、shard.yml
で指定された依存関係がインストールされ、lib
ディレクトリに格納されます。これにより、プロジェクト内でShardを簡単にインポートできます。
- 依存関係のアップデート
shards update
コマンドを使用すると、依存関係を最新の互換バージョンに更新できます。
- バージョンの固定
shard.lock
ファイルを利用し、プロジェクトの依存関係を特定のバージョンに固定します。これにより、同じ依存関係を再現性高くインストールできるようになります。
Shardsの利用手順
編集shard.yml
ファイルの作成- 新しいCrystalプロジェクトを作成し、依存関係を追加したい場合、まず
shard.yml
をプロジェクトルートに配置します。
- 新しいCrystalプロジェクトを作成し、依存関係を追加したい場合、まず
- 依存関係のインストール
- 依存関係をインストールするために、以下のコマンドを実行します。
shards install
- Shardの追加
- 新しい依存関係を追加する場合、
shard.yml
に新しいShardを記載し、再度shards install
を実行します。
- 新しい依存関係を追加する場合、
Shardsのバージョン管理
編集Shardsは、依存関係のバージョン指定に「Semantic Versioning」(セマンティックバージョニング)を採用しており、例えば ~> 1.0
と指定すると、1.x バージョンであれば互換性のある最新のものがインストールされます。これにより、必要なバージョンの範囲を柔軟に設定しつつ、互換性のないメジャーバージョンの変更を回避できます。
まとめ
編集ShardsはCrystalの依存関係管理を簡単にし、プロジェクトの安定性と再現性を確保するための重要なツールです。