界面已本地化;技能介绍与说明文档按所选语言由 AI 自动翻译,代码、命令、路径和专业术语保留原文,以原作者文档为准。
探索技能
开发与工程 · SKILL.md

development-and-testing

development-and-testing

【开发与工程】Guides safe openpilot checkout setup, uv/SCons builds, native-extension prep, linting, tests, docs, and development validation.

独立 GitHub 快照 · 自动分类 · 以原作者文档为准

技能说明

GitHub

name: development-and-testing description: "Guides safe openpilot checkout setup, uv/SCons builds, native-extension prep, linting, tests, docs, and development validation." disable-model-invocation: true metadata: disco-role: operating license: MIT

development-and-testing

Use this sub-skill for openpilot setup, dependency sync, submodules, SCons/native build products, targeted tests, linting, docs builds, and CI-style validation. Use it before running broad test suites or when imports fail because the checkout is not fully prepared.

Read first

Common routes

User asksDo
"Set up openpilot" or "imports fail after install"Inspect Python version, submodules, uv sync state, and SCons outputs with the checker, then follow setup/build guidance.
"Run tests for a change"Choose focused targets from testing-reference.md; avoid hardware/network/GUI tests unless prerequisites are available.
"Run lint/CI locally"Use the lint and test runner sections; explain --fast, target narrowing, and tool dependency failures.
"Build docs"Use docs build notes in setup-build-test; do not start a long-running docs server unless requested.
"Switch branch/update/start device"Treat as state-mutating; require explicit user intent and read troubleshooting warnings first.

Minimal safe workflow

  1. Confirm the task really needs repo setup or tests, not just static source reading.
  2. Run the bundled read-only checker:
python skills/disco/openpilot/sub-skills/development-and-testing/scripts/openpilot_dev_check.py --repo-root /path/to/openpilot
  1. If submodules are empty, initialize them in the target checkout before retrying package sync.
  2. If msgq.ipc_pyx or libparams_c.so imports fail, build only the needed SCons targets before launching broad tests.
  3. Select one or a few test targets; prefer CPU-safe unit tests before route/network/hardware cases.
  4. Record skipped optional hardware/network/GUI cases with reasons rather than treating them as failed CPU validation.

Boundaries

我的收藏