贡献#
感谢您为 production-stack 做出贡献!作为一名潜在的贡献者,您的想法和改进在任何时间,无论是工作日、周末还是节假日,都受到欢迎。请随时提出问题或发送 Pull Request。
提交提案#
对于重大的更改、新功能或重要的架构修改,请在贡献代码之前,使用 指定的模板 在 proposals/ 文件夹下提交提案。这将确保您的工作与项目的目标一致,使维护者和贡献者能够及早提供反馈,并有助于避免不必要的返工。
提案提交后,将由维护者进行审查,并可能在批准前进行讨论。我们鼓励开放协作,因此请随时参与讨论并根据反馈完善您的提案。
对于如错误修复、文档更新、小优化和简单功能等小范围的更改,您可以直接创建 issue 或 PR,无需提交提案。
提交 Pull Request#
在提交您的 Pull Request 之前,请确保它符合以下标准。这将有助于维护代码质量并简化审查流程。
遵循标准的 GitHub 工作流
Fork 仓库。
创建功能分支。
提交带有详细描述的 Pull Request。
PR 标题和分类#
请尝试为 PR 进行分类,以便轻松理解更改的类型。PR 标题会带有适当的前缀来指示更改的类型。请使用以下之一:
[Bugfix]用于错误修复。[CI/Build]用于构建或持续集成改进。[Doc]用于文档修复和改进。[Feat]用于集群中的新功能(例如,自动扩缩容、分布式预填充等)。[Router]用于对vllm_router的更改(例如,路由算法、路由器可观察性等)。[Misc]用于不属于以上类别的 PR。请谨慎使用。
注意:如果 PR 涉及多个类别,请包含所有相关的标签。
代码质量和验证#
Linter 检查#
Linter 检查是我们 github 工作流的一部分。要通过所有 Linter 检查,请使用 pre-commit 来格式化您的代码。安装方法如下:
uv sync --all-extras --all-groups
uv run pre-commit install
它会在每次提交前自动运行。您也可以使用以下命令手动对所有文件运行:
uv run pre-commit run --all-files
有一部分 hook 需要额外的依赖项,您可能尚未在开发环境中安装这些依赖项(例如 Docker 和非 Python 包)。这些 hook 被配置为仅在 manual pre-commit 阶段运行。在 CI 中,它们在 pre-commit-manual 任务中运行,而在本地,您可以使用以下命令运行:
# Runs all hooks including manual stage hooks
uv run pre-commit run --all-files --hook-stage manual
# Runs only the manual stage hook shellcheck
uv run pre-commit run --all-files --hook-stage manual shellcheck
如果这些 hook 中的任何一个在 CI 中失败,但您无法在本地运行它们,您可以通过检查 Pull Request 中的 GitHub Actions 日志来确定需要更改的内容。
注意
您可以在 https://pre-commit.git-scm.cn 上阅读更多关于 pre-commit 的信息。
Github 工作流#
PR 必须通过所有 GitHub 工作流,包括:
Router 端到端测试
helm chart 的功能测试
如果任何测试失败,请检查 GitHub Actions 以获取失败的详细信息。如果您认为错误与您的 PR 无关,请在 PR 评论中解释您的理由。
添加示例和测试#
请在您的 PR 中包含充分的示例。单元测试和集成测试也受欢迎,鼓励您在未来的 PR 中贡献它们。
DCO 和 Signed-off-by#
在为本项目贡献代码时,您必须同意 DCO。提交的 commit 必须包含一个 Signed-off-by: 头部,以证明您同意 DCO 的条款。
使用 git commit 的 -s 参数将自动添加此头部。
审核预期#
我们的目标是及时处理所有 PR。如果在 5 天内没有人审查您的 PR,请 @-mention YuhanLiu11、Shaoting-Feng 或 ApostaC。