贡献指南#

欢迎来到 SGLang!我们非常感谢您有兴趣做出贡献。本指南简要介绍了如何设置环境、运行测试、构建文档以及发起 Pull Request (PR)。无论您是修复一个小错误还是开发一个主要功能,我们都鼓励遵循这些步骤,以确保流畅的贡献流程。

从源码设置和构建#

Fork 并克隆仓库#

注意:新贡献者没有向官方 SGLang 仓库推送的写入权限。请先在您的 GitHub 账户下 Fork 该仓库,然后将您的 Fork 克隆到本地。

git clone https://github.com/<your_user_name>/sglang.git

安装依赖和构建#

请参考 从源码安装 SGLang 文档,了解更多关于设置必要依赖的详情。

使用 Pre-Commit 格式化代码#

我们使用 pre-commit 来维护一致的代码风格检查。在推送您的更改之前,请运行

pip3 install pre-commit
pre-commit install
pre-commit run --all-files
  • pre-commit run --all-files 手动运行所有配置的检查,并在可能的情况下应用修复。如果第一次运行失败,请再次运行以确保 lint 错误完全解决。在创建 Pull Request 之前,请确保您的代码通过了所有检查。

  • 请勿直接提交到 main 分支。请始终创建一个新分支(例如,feature/my-new-feature),推送您的更改,并从该分支发起 PR。

运行单元测试并添加到 CI#

SGLang 使用 Python 内置的 unittest 框架。关于运行测试并将其添加到 CI 的详细说明,请参考 test/README.md

编写文档并运行文档 CI#

我们建议新贡献者从编写文档开始,这有助于您快速理解 SGLang 代码库。更多详情,请参考 docs/README.md

新手提示#

如果您想做贡献但还没有具体的想法,可以选择标记为 “good first issue”(适合新手)或“help wanted”(需要帮助) 的议题。这些任务通常复杂度较低,是了解代码库的绝佳切入点。您还可以查看此 代码走读,以更深入地了解 SGLang 的工作流程。

如果您有任何问题或想发起讨论,请随时在我们的 Slack 频道 中提问。

感谢您对 SGLang 的关注。祝您编码愉快!