wendy-contributing について
wendy-contributingは、WendyOSの開発に参加する人向けのスキルです。Yoctoによるイメージ構築、エージェント構成、エンドツーエンドテストを扱います。
主な機能
- 01YoctoでWendyOSイメージを構築
- 02wendy-agentの構成を把握
- 03エンドツーエンドテストの実行と調査
- 04システムとデバイスの資料を参照
活用シーン
- 01Jetson、Raspberry Pi、ARM64 VM向けのイメージ構築
- 02開発VMでのエンドツーエンドテスト
- 03コンテナランタイムやデバイス検出の調査
インストール
コマンドをコピーしてターミナルで実行します。
npx skills add https:/ / github.com/ wendylabsinc/ claude-skills --skill wendy-contributingインストール後、Claude Code で/wendy-contributingを入力して読み込まれたか確認します。
同梱ファイル
SKILL.md と一緒にインストールされる参考資料やスクリプト。
references/raspberry-pi.mdsystem-internals.mdyocto-meta-layers.md詳細
WendyOS への貢献
このスキルでは、OS イメージのビルド、エージェントアーキテクチャの理解、E2E テストの実行など、WendyOS 自体の内部開発と貢献について説明します。
概要
WendyOS は、Yocto で構築されたエッジコンピューティング向けの組み込み Linux オペレーティングシステムです。以下をサポートしています。
- NVIDIA Jetson デバイス(OTA アップデートを利用した本番環境)
- Raspberry Pi 4/5(エッジデバイス)
- ARM64 VM(開発環境)
エージェントアーキテクチャ
wendy-agent はコンテナデーモン(dockerd/containerd に類似)です。
- gRPC を介してポート 50051 でコンテナのライフサイクルを管理します
- イメージは Docker Hub からプルするのではなく、
wendy runでプッシュします docker pullに相当する機能はありません。アプリはソースからデプロイされます
WendyOS のビルド(Yocto)
WendyOS イメージは Yocto でビルドされます。メタレイヤーは 3 つあります。
| レイヤー | 対象 | イメージ |
|---|---|---|
meta-wendyos-jetson | NVIDIA Jetson | edgeos-image |
meta-wendyos-virtual | ARM64 VM | edgeos-vm-image |
meta-wendyos-rpi | Raspberry Pi 4/5 | edgeos-rpi-image |
クイックビルド(すべてのレイヤー):
cd meta-wendyos-<target>
./bootstrap.sh
source ./repos/poky/oe-init-build-env build
bitbake <image-name>
macOS の場合は、Docker ビルド環境を使用します。
cd docker && ./docker-util.sh shell
Yocto の設定について詳しくは、references/yocto-meta-layers.md を参照してください。
E2E テスト
wendy-agent リポジトリには、E2ETests/ に E2E テストスイートがあります。
E2E テストの実行
# Start the VM
cd meta-wendyos-virtual
./scripts/setup-dev-vm.sh create && ./scripts/setup-dev-vm.sh start
# Deploy a test app first (required for container tests)
cd wendy-agent/Examples/HelloWorld
wendy run --json --device localhost:50051 # --json for non-interactive output
# Run E2E tests with fast path (CRITICAL for performance)
cd wendy-agent/E2ETests
E2E_USE_EXISTING_VM=true E2E_VM_PATH=/path/to/meta-wendyos-virtual swift test
重要:VM がすでに実行中の場合は、必ず E2E_USE_EXISTING_VM=true を設定してください。これによりシェルスクリプトのチェックが省略され、テスト時間が約 5 秒/テストから約 0.01 秒/テストに短縮されます。
ヒント:すべての wendy コマンドで --json フラグを使用すると、インタラクティブなポーリングなしで JSON レスポンスをすばやく取得できます。
テストのパフォーマンスに関するヒント
- VM の競合状態を避けるため、テストスイートに
.serializedトレイトを使用します - 冗長な VM ステータスチェックを省略するため、
E2E_USE_EXISTING_VM=trueを設定します - mDNS 検出テストはそれぞれ約 5 秒かかります(プロトコル上避けられません)
- コンテナ状態変更テストは遅くなることがあります。すばやく実行する場合は無効にしてください
- WiFi のような想定内の失敗(VM 内)には
Issue.record()を使用しないでください。失敗としてカウントされます
CI の制限事項
GitHub がホストするランナーは、入れ子になった仮想化をサポートしていません。セルフホストランナーを使用するか、E2E テストをローカルで実行してください。
テストスイート
| スイート | テスト数 | 時間 | 備考 |
|---|---|---|---|
| デバイス接続 | 7 | 約 0.07 秒 | gRPC 接続 |
| コンテナのデプロイ | 6 | 約 0.06 秒 | コンテナのライフサイクル |
| WiFi 操作 | 4 | 約 0.04 秒 | VM 内での正常な失敗 |
| ハードウェア機能 | 4 | 約 0.07 秒 | デバイスの列挙 |
| デバイス検出 | 4 | 約 21 秒 | mDNS(仕様上、低速) |
システム内部
デバッグ、コンテナランタイムの詳細(containerd/nerdctl)、mDNS 検出、デバイス ID、よくある注意点については、references/system-internals.md を参照してください。
Raspberry Pi 固有の設定(シリアルコンソール、フラッシュ、パーティション構成)については、references/raspberry-pi.md を参照してください。
リファレンスファイル
トピックに応じて、必要なファイルを読み込んでください。
references/yocto-meta-layers.md- Yocto レイヤーの構造、ビルド設定、パーティション構成、Docker ビルド環境、よくある問題references/system-internals.md- containerd ランタイム、containerd-registry、デバイス ID、mDNS の設定、Lima VM 開発、オフラインでのイメージバンドルreferences/raspberry-pi.md- RPi マシン設定、シリアルコンソール、イメージのフラッシュ、パーティション構成