HolochainではNixOSツールキットを使用して、Holochainフレームワークとアプリの一貫した開発、
テスト、デプロイ環境を構築しています。
NixOS開発ツールは様々なOSで稼働することで知られています。
また、NixOS は自動テストやHoloポートのOSとしても使用されています。
ツールの主なコンポーネントは、
- Rust開発言語
- NodeJS及びnpm
- 暗号技術ライブラリ
- 一般的自動化及びスクリプトツール
これらのコンポーネントは、アプリやホロチェーンコアなどで一貫性を保つことが重要です。
ですので、Holonix レポジトリはこれらコンポーネントの依存性を常にトラッキングしています。
ですが、読者がHolonix自体と直接かかわることは通常ありませんので安心してください。
Holochain開発ワークフローで使用される主なNixツールはnix-shell
と呼ばれ、読者の既存の開発環境の上に新しいツールセットと新しい環境を自動的に乗せるBashシェルです。
名の通っているパッケージマネージツールは通常1つのOSしかターゲットにしていませんがNixOSはそれに比べて様々な開発環境に対応できるようになっています。
Nixツールはまだまだ奥深く、ツールのためのOSや関数型言語も存在しています。
これらについてさらに詳しく知るためにはこちらのウィキか “pills” チュートリアルを参照にすると良いでしょう。また、#nixos on freenodeというコミュニティチャットグループも頻繁に活動しており手助けになります。
nix-shell
Holochainでの作業中は、通常nix-shell
コマンドを常に実行しているようになります。ですのでnix-shellを閉じると終了する前に関連する依存関係(dependencies)や環境変数を全てクリーンアップします。
nix-shell
に読者が入るたびにHolochainの最新リリースが提供されます。Nixは複数のdefault.nixファイルでコンフィグされています。これらのファイルは依存性や変数を読者のターミナルにセットアップするためにあります。
マスターのdefault.nix
ファイルを拡張して使用するかhttps://holochain.loveを使ってダイレクトにnix-shellを使用することができます。nix-shellをholochain.loveで開くことによってホロチェーンのツールのアップデートは自動的に ダウンロードされます。
Nixは終了する前に追加したツール全てをクリーンアップします。
ですので、ホロチェーンアプリを再度開発する際にはnix-shellにもう一度入らないとなりません。
注:ファイルなどは読者のマシン上のローカルにキャッシュされるため、次回nix-shellに入ったときに再ダウンロードまたは再ビルドはされません。