Yumeville

Holochain デベロッパーパルス No.48

HoloPortOS上のビルドシステムのオーバーホール

概要

HoloPortOSのビルドシステムを全面的に見直し、さまざまな部分を統合して継続的にインテグレーション(一体化)を実現しました。これにより、Holo開発者はソースパッケージ管理のセキュリティとバイナリパッケージ管理の速度を得ることができました。つまり、開発がより速く、より簡単にできるようになり、更にはバグも少なくなります。最終的には、Holoアーキテクチャ全体の堅牢性も高まるということになります。

ホロポート

HoloPortOSの新しいビルドシステム

過去数週間にわたって、私たちのチームは、HoloPortデバイスを動かすNixOSの改造版ビルドであるHoloPortOSのさまざまな可動部分の構築に注力してきました。このチューニングされたNixOSは、ユーザーからのデータリクエストをHolochainエンジンにルーティング(経路選択及び制御)し、現在継続的に開発されているさまざまなサービスからこのデータへのアクセスをセキュアに行うために必要不可欠なものです。そのため、これらのサービスを確実にかつ継続的に統合一体化するシステムを開発することが我々の課題でした。
システム自体は、ワンクリックでのビルドプロセスを可能にする必要がありますが、さらに重要なことで、1つのコンポーネントの変更がシステム全体にどのように影響するかについて瞬時にフィードバックを提供する必要があります。そこで、NixOSアーキテクチャが役立ち、NixOSのパッケージ管理システムを使用すると、テストやデプロイが自動化され、確実性の元に環境を構築でき、緊急時に即座にロールバックを実行することができます。

仕組み

私たちの、インテグレーションが実際に稼働しているところを確認したい場合は、HoloPortOSのdefault.nixコンフィグファイル(NixOSパッケージの改造を可能にする、NixOSのオーバーレイメカニズム内に実装されています)を参照すると良いでしょう。 HoloPortOSの各要素がファイル内に固定されるように設定しています。このファイルが変更されるたびに、自動ビルドプロセスが発動されます。このプロセス中に、システムは更新された要素について固有の一連のテスト及びOS全体の一連のインテグレーションテストを実行します。

自動ビルドプロセス

テストが成功すると、派生版(derivation)と呼ばれる新しいパッケージがソースコードからビルドされ、バイナリーキャッシュにアップロードされます。この派生版には、HoloPortOSにインストールされる準備ができている更新された要素のコンパイル済みバージョンと、その要素の実装方法が含まれています。これにより、このインテグレーションプロセスにより、ソースパッケージ管理のセキュリティとバイナリパッケージ管理の速度を組み合わせることができるということです。

これが読者にとって何を意味するのか

この新しいビルドシステムは、Holoのコア開発者とエンドユーザーの両方にメリットをもたらします。より高速でシームレスな開発プロセスにより、開発者は複数のバージョンに対して迅速に繰り返し利用でき、複数のコンポーネントを並行開発できるようになります。
すべての変更はわずか数回のキーストロークで、テスト及びテストネットに配信できます。エンドユーザーは、実行できるテストの数が増えるにつれて、リリース間の時間短縮、およびバグの減少が期待できます。これにより、全体的に使いやすさが向上します。
これらのすべては、Holoアーキテクチャ全体の強化に役立ち、ユーザーがHoloPortを自ら保守管理する必要のない、自動更新システムを実現します。

Thank You!

この新しいシステムは、異なるデザインパターンに切り替える必要もあったため、その新パターンへのスムーズな移行作業ではSam RoseとYegor Timoshenkoの支援があったことに皆さんに報告し、感謝したいと思います。

開発ステータス

Holochain Coreリリース:0.0.30-alpha6 |変更ログ|次リリース:0.0.31-alpha1

Holonixリリース:v0.0.34

Try-o-rama(エンドツーエンドテストツール)リリース:v0.1.0

 

出典:Build System on HoloPortOS Gets an Overhaul