mcpField
W
wendy-contributing

wendy-contributing

github.com/wendylabsinc开发6271 次安装5 周前更新
代码仓库

关于 wendy-contributing

wendy-contributing 是面向 WendyOS 贡献者的开发技能,涵盖 Yocto 镜像构建、Agent 架构和端到端测试,适用于文档所列的边缘设备目标。

主要功能

  1. 01使用 Yocto 构建 WendyOS 镜像
  2. 02了解 wendy-agent 架构
  3. 03运行并排查端到端测试
  4. 04查阅系统与设备参考资料

适用场景

  1. 01为 Jetson、Raspberry Pi 或 ARM64 VM 构建镜像
  2. 02针对开发 VM 运行端到端测试
  3. 03排查容器运行时或设备发现问题

安装

复制下面的命令,在终端中运行。

$npx skills add https://github.com/wendylabsinc/claude-skills --skill wendy-contributing

安装后在 Claude Code 中输入/wendy-contributing确认已加载。

包含的文件

除 SKILL.md 外,安装时一起下载的参考资料和脚本。

references/
raspberry-pi.md
system-internals.md
yocto-meta-layers.md

详细介绍

WendyOS 贡献指南

本技能涵盖 WendyOS 本身的内部开发与贡献,包括构建 OS 镜像、了解 Agent 架构以及运行 E2E 测试。

概述

WendyOS 是一款基于 Yocto 构建、用于边缘计算的嵌入式 Linux 操作系统。它支持:

  • NVIDIA Jetson 设备(生产环境,支持 OTA 更新)
  • Raspberry Pi 4/5(边缘设备)
  • ARM64 虚拟机(开发)

Agent 架构

wendy-agent 是一个容器守护进程(类似于 dockerd/containerd):

  • 通过端口 50051 上的 gRPC 管理容器生命周期
  • 镜像通过 wendy run 推送,而不是从 Docker Hub 拉取
  • 没有等同于 docker pull 的命令——应用从源代码部署

构建 WendyOS(Yocto)

WendyOS 镜像使用 Yocto 构建。共有三个 meta 层:

层目标平台镜像
meta-wendyos-jetsonNVIDIA Jetsonedgeos-image
meta-wendyos-virtualARM64 虚拟机edgeos-vm-image
meta-wendyos-rpiRaspberry Pi 4/5edgeos-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

重要:如果虚拟机已经运行,务必设置 E2E_USE_EXISTING_VM=true。这样会跳过 shell 脚本检查,并将测试时间从每项约 5 秒缩短至约 0.01 秒。

提示:在所有 wendy 命令中使用 --json 标志,即可快速获取 JSON 响应,无需交互式轮询。

测试性能提示
  • 在测试套件上使用 .serialized trait,以避免虚拟机竞争条件
  • 设置 E2E_USE_EXISTING_VM=true,跳过冗余的虚拟机状态检查
  • mDNS 发现测试每项约需 5 秒(协议本身所致)
  • 容器状态更改测试可能较慢——快速运行时请禁用
  • 对预期失败(例如虚拟机中的 WiFi)不要使用 Issue.record()——它会被计为失败
CI 限制

GitHub 托管的运行器不支持嵌套虚拟化。请使用自托管运行器,或在本地运行 E2E 测试。

测试套件
套件测试数用时备注
设备连接7~0.07sgRPC 连通性
容器部署6~0.06s容器生命周期
WiFi 操作4~0.04s在虚拟机中优雅处理失败
硬件能力4~0.07s设备枚举
设备发现4~21smDNS(设计上较慢)

系统内部

有关调试、容器运行时详情(containerd/nerdctl)、mDNS 发现、设备身份和常见问题,请参阅 references/system-internals.md。

有关 Raspberry Pi 专用配置(串口控制台、刷写、分区布局),请参阅 references/raspberry-pi.md。

参考文件

根据具体主题按需加载以下文件:

  • references/yocto-meta-layers.md - Yocto 层结构、构建配置、分区布局、Docker 构建环境和常见问题
  • references/system-internals.md - containerd 运行时、containerd-registry、设备身份、mDNS 配置、Lima 虚拟机开发、离线镜像打包
  • references/raspberry-pi.md - RPi 机器配置、串口控制台、刷写镜像、分区布局

评论

支持 Markdown