上游贡献与开发环境
准备 Node 环境,区分构建、集成测试、调试与贡献要求。
This page has not been translated into English yet. The original Chinese version is shown below.
本页描述向 Qwen Code 上游贡献的流程。它不要求使用者为了阅读或运行 SDK 就克隆、安装并构建全部仓库。
建立开发环境
开发和运行 CLI 的 Node.js 要求均为 22+,另需 Git。官方贡献页说明 TUI 使用 Ink 7,对应 React 19.2 系列 peer 约束。
git clone https://github.com/QwenLM/qwen-code.git
cd qwen-code
corepack pnpm install --frozen-lockfile
npm run build当前根 package.json 固定 pnpm 11.24.0;贡献页中的旧 npm install 示例应结合现有锁文件流程使用。
构建后从仓库根运行 npm start。需要同时构建 sandbox 容器和 VS Code 扩展时使用 npm run build:all,并先准备相应 provider;贡献页的 Sandboxing 专节仍为 TBD,实际设置应看沙箱文档,不从占位小节推断完整平台支持。
需要在其他目录使用源码构建时,官方提供 npm link path/to/qwen-code/packages/cli。它会影响本机命令解析,操作前确认需要切换到该本地版本。
检查与测试
| 命令 | 用途 |
|---|---|
| npm run test | 单元测试;不包含默认独立的 integration test 流程 |
| npm run test:e2e | 当前运行无沙箱集成测试,并保留、显示输出 |
| npm run lint | ESLint 等 lint 检查 |
| npm run format | 按 Prettier 规则改写格式 |
| npm run preflight | 包含 clean、按锁文件安装、format、lint、build、typecheck、测试和 bundle 检查;会改变本地文件 |
跨包导入受到 lint 约束,使用公开入口。需要验证 CLI bundle、SDK 或真实模型时,还应运行相应专题的测试,不因普通单元测试通过就认定所有运行模式可用。
调试
可在 VS Code 用 F5 或 Attach 配置;npm run debug 会以 inspector 启动 CLI 并暂停等待连接,供 chrome://inspect 或 IDE 调试器接入。
sandbox 内断点可使用 DEBUG=1 qwen。普通项目 .env 的 DEBUG 默认被排除,qwen 专用设置应使用 .qwen/.env,不要把变量未生效误诊为调试器失效。
Ink 调试按官方说明使用兼容的 React DevTools 4.x,例如先 DEV=true npm start,再运行 npx react-devtools@4.28.5。这里是官方提供的特定兼容示例,不应无条件升级到任意最新主版本。
文档站预览
在上游 docs-site 中依次运行 npm install、npm run link、npm run dev。link 把主仓库 docs 连接为站点 content,官方预览地址为 localhost:3000;这与本网站的构建命令、目录和端口无关。
提交要求
上游要求所有 PR 经审查并关联已有 issue;新功能先有维护者认可的提案,尚无 issue 时先讨论。每个 PR 聚焦一个问题或独立功能,约 1200 changed lines 后考虑拆分,超过约 2000 行应拆成可独立审查的系列,或说明必须一起合入的原因。
进行中的变更可用 Draft PR。用户可见行为变化要同步 docs;设计文档同时提交英文与简体中文并互链。标题和提交消息遵循 Conventional Commits,PR 说明为什么改、关联哪个 issue、如何验证。
贡献页还列出手动发布命令,但发布涉及 registry 身份和版本流程;普通构建验证不应顺手执行 npm publish --workspaces。没有修改本机 hooks、安装依赖或实际提交的必要时,不把文档示例当自动操作要求。