英文版本请查看 CONTRIBUTING.md。
感谢你为 py-xiaozhi 做出贡献。我们欢迎 Bug 反馈、文档修复、测试补充、工具链改进,以及范围清晰的新功能。
- 提交前先搜索现有的 Issue 和 Pull Request,避免重复。
- 对于较大的新功能、架构调整或行为变更,建议先开 Issue 讨论。
- 文档修复、小型 Bug 修复和聚焦明确的改进,一般可以直接提交 Pull Request。
- Python
>=3.10 - Git
- 如果需要验证音频能力,请准备可用的麦克风和扬声器
git clone https://github.com/huangjunsen0406/py-xiaozhi.git
cd py-xiaozhi
# 基础安装
uv sync
# GUI + 开发工具
uv sync --extra gui --group dev如果你不使用 uv,可以使用以下兼容方案:
pip install -e .
pip install -e '.[gui]'
pip install pytest pytest-asyncio ruff pyinstaller- Fork 仓库,并从
main创建功能分支。 - 尽量让每次修改只聚焦一个问题、一个功能或一类文档更新。
- 提交信息遵循 Conventional Commits,例如
fix(audio): handle empty frame。 - 如果修改影响行为、配置或公共接口,请同步更新文档。
- 如果修改涉及正确性或回归风险,请补充或更新测试。
推荐分支命名:
feature/xxxfix/xxxdocs/xxxrefactor/xxxtest/xxx
提交 Pull Request 前,请根据改动类型运行相应检查:
ruff check .
ruff format .
pytest如有必要,也请验证对应运行路径,例如:
- GUI 改动:运行
python main.py - CLI 改动:运行
python main.py --mode cli - 协议改动:验证
websocket或mqtt - 文档改动:在
documents/下本地预览
每个 Pull Request 都应尽量满足以下要求:
- 清楚说明问题背景和解决方案。
- 如有相关 Issue,请附上关联链接。
- 提供必要的验证步骤、截图或日志,方便审核。
- 保持改动范围合理,避免混入无关重构。
- 遵循现有代码风格和项目结构。
维护者通常会按以下流程审核贡献:
- 先将改动归类为
bug、feature、docs、refactor或maintenance。 - 确认改动范围是否清晰、问题是否可复现、方向是否符合项目规划。
- 检查测试、文档和验证证据,再决定是否提出修改意见或批准。
- 在 CI 通过且反馈处理完成后合并。
- 合并后按正常发布流程进入后续版本,合并不等于立即发布。
- 项目文档:https://huangjunsen0406.github.io/py-xiaozhi/
- 详细贡献指南(英文):https://huangjunsen0406.github.io/py-xiaozhi/en/contributing
- 详细贡献指南(中文):https://huangjunsen0406.github.io/py-xiaozhi/contributing
再次感谢你的贡献。