感谢您对 QPanda3 Runtime MCP Server 的贡献兴趣!
- Python 3.10 或更高版本
- Git
- uv(推荐)或 pip
- 在 GitHub 上 Fork 本仓库
- 在本地克隆您的 Fork:
git clone https://github.com/YOUR_USERNAME/qpanda3-runtime-mcp-server.git
cd qpanda3-runtime-mcp-server- 安装开发依赖:
uv sync --all-extras我们使用以下工具保证代码质量:
- Ruff 用于代码检查和格式化
- mypy 用于类型检查
# 格式化代码
uv run ruff format .
# 代码检查
uv run ruff check .
# 类型检查
uv run mypy src/安装 pre-commit 钩子:
uv run pre-commit installfeature/your-feature用于新功能fix/your-fix用于 Bug 修复docs/your-docs用于文档变更
遵循 Conventional Commits 规范:
feat: add new feature— 新功能fix: resolve bug— Bug 修复docs: update documentation— 文档更新test: add tests— 添加测试refactor: improve code structure— 代码重构
| 类别 | 位置 | 说明 |
|---|---|---|
| 单元测试 | tests/ |
使用 Mock 的函数/类测试 |
| E2E 测试 | tests/e2e/ |
端到端 MCP 协议和工作流测试 |
| 集成测试 | tests/ |
与外部服务的交互测试(需要凭据) |
# 运行所有测试
uv run pytest
# 运行覆盖率测试(目标:80%+)
uv run pytest --cov=src --cov-report=html
# 运行特定测试文件
uv run pytest tests/test_server.py
# 仅运行 E2E 测试
uv run pytest tests/e2e/ -v
# 使用标记运行
uv run pytest -m e2e -v # E2E 测试
uv run pytest -m "not e2e" -v # 仅单元测试- 将单元测试放在
tests/目录 - 将 E2E 测试放在
tests/e2e/目录 - 使用
conftest.py中的 pytest fixtures - 目标为 80%+ 的测试覆盖率
- 遵循 TDD:先写测试,再实现功能
详细的 E2E 测试指南请参阅 E2E 测试。
本项目使用 MkDocs 和 Material 主题构建文档。
# 安装文档依赖
uv sync --extra docs
# 构建文档(英文 + 中文)
./scripts/build-docs.sh
# 本地预览(支持语言切换)
mkdocs servedocs/ # 英文文档(默认)
docs/zh/ # 中文文档
mkdocs.yml # 含 i18n 插件的 MkDocs 配置
- 在
docs/中创建 Markdown 文件(英文) - 在
docs/zh/中创建对应的中文版本 - 在
mkdocs.yml的nav部分添加条目 - 在
mkdocs.yml的nav_translations.zh中添加中文导航标签 - 对于未翻译的中文页面,复制英文版本并添加"尚未翻译"横幅:
!!! warning
此页面尚未翻译。[English version](../../page.md).
(英文内容如下)- 所有文档使用 Markdown (
.md) 格式 - API 参考通过 mkdocstrings 从 docstring 自动生成
- 在有帮助的地方包含代码示例
- 使用 MkDocs Material 的 admonition 语法添加提示和警告
- 从
main创建功能分支 - 进行更改
- 为新功能添加测试
- 更新文档
- 运行所有测试和代码检查
- 提交 Pull Request
- 代码遵循项目风格指南
- 所有测试通过
- 新代码具有适当的测试覆盖率
- 文档已更新
- 提交消息遵循规范
请在所有交流中保持尊重和包容。
通过贡献,您同意您的贡献将以 Apache License 2.0 许可。