🎯贡献方式
✨ 功能请求
有新功能的想法?我们很乐意听听!
- 先检查现有问题
- 描述你要解决的问题
- 解释你建议的解决 方案
- 考虑实现复杂度
📝 文档
帮助改进我们的文档和示例。
- 修复错别字和语法
- 添加缺失的文档
- 创建教程和指南
- 改进代码示例
💻 代码贡献
为核心功能做出贡献。
- 修复错误和问题
- 实现新功能
- 优化性能
- 添加测试覆盖率
📋贡献流程
创建 Issue
首先与社区讨论你的想法或错误报告。
Fork & 分支
从 main 分支为你的更改创建一个新分支。
进行更改
按照我们的编码标准实施你的更改。
提交 PR
创建一个包含清晰描述的拉取请求。
⚙️预提交钩子
Semantic-router 项目提供了一个预提交钩子来规范整个项目,包括 Go、Python、Rust、Markdown 和拼写错误检查。
虽然这些措施可能会增加贡献的难度,但它们是必要的。我们目前正在构建一个便携式的 Docker 预提交环境,以降低贡献难度,让你专 注于功能性 PR。
手动
一些提示:
1. 如果预提交检查失败,别担心。你也可以通过执行 '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 可以帮助避免在本地安装过多的检测工具,但这并不意味着它会在提交过程中自动执行。因此,提交时,你可以使用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 Discussions - 用于一般性问题和讨论
- GitHub Issues - 用于错误报告和功能请求
- 工作组 - 加入特定的工作组