🎯贡献方式
✨ 功能建议
有新功能的想法?我们很乐意听取!
- 首先检查现有的 Issue
- 描述您正在解决的问题
- 解释您提议的解决方案
- 考虑实现的复杂度
📝 文档
帮助改进我们的文档和示例。
- 修复拼写错误和语法错误
- 补充缺失的文档
- 创建教程和指南
- 改进代码示例
💻 代码贡献
为核心功能贡献代码。
- 修复 Bug 和问题
- 实现新功能
- 优化性能
- 添加测试覆盖
📋贡献流程
创建一个 Issue
首先与社区讨论您的想法或错误报告。
Fork 与创建分支
从主分支(main)为您的更改创建一个新分支。
进行更改
遵循我们的编码规范来实现您的更改。
提交 PR
创建一个拉取请求(Pull Request),并对您的更改进行清晰的描述。
⚙️Precommit 钩子
Semantic-router 项目提供了一个 precommit 钩子来规范整个项目,包括 Go、Python、Rust、Markdown 以及拼写错误检查。
虽然这些措施可能会增加贡献的难度,但它们是必要的。我们目前正在构建一个便携的 Docker precommit 环境以降低贡献难度,让您可以专注于功能性 PR。
手动操作
一些建议
1. 如果 precommit 检查失败,请不要担心。您也可以通过执行 "make help" 获取更多信息。
2. 对于 pip 安装工具,我们建议您使用 venv 进行安装。
3. 我们建议通过 Python 的虚拟环境安装 pre-commit。
4. 您也可以直接提交 PR 让 GitHub CI 为您进行测试,但这会耗费大量时间!
安装 precommit
运行 pip install --user pre-commit
安装检查工具
1. Markdown: npm install -g markdownlint-cli
2. Yaml: pip install --user yamllint
3. CodeSpell: pip install --user codespell
4. JavaScript: cd website && npm lint
5. Shell: 以 Mac 为例,执行 brew install shellcheck
安装 precommit 到 git
运行 pre-commit install,然后 pre-commit 将安装在 .git/hooks/pre-commit
运行
运行 make precommit-check进行检查。
Docker/Podman
从上述本地运行方法可以看出,过程非常麻烦且复杂。因此,我们提供了基于 Docker 或 Podman 的运行方式。无需安装各种依赖软件;您只需要一个容器运行时。
一些建议
虽然 Docker 可以帮助避免在本地安装过多的检测工具,但这并不意味着它会在 commit 过程中自动执行。因此,在提交时,您可以使用 git commit -s -m -n来跳过检测。
确保已安装 Docker/Podman
docker --version
通过 Docker/Podman 运行 precommit
make precommit-local
您也可以手动进入容器并执行操作
# Set the container image
export PRECOMMIT_CONTAINER=ghcr.io/vllm-project/semantic-router/precommit:latest
# Run the container interactively
docker run --rm -it \
-v $(pwd):/app \
-w /app \
--name precommit-container ${PRECOMMIT_CONTAINER} \
bash
# Inside the container, run the precommit commands
pre-commit install && pre-commit run --all-files🏷️工作组领域
考虑加入我们的其中一个 工作组 来集中开展您的贡献
📞获取帮助
在贡献过程中需要帮助?联系我们
- GitHub 讨论区 - 用于一般性问题和讨论
- GitHub 问题 - 用于错误报告和功能请求
- 工作组 - 加入特定的工作组