5.7 贡献

原文链接: https://docs.astral.sh/uv/reference/contributing/

5.7 贡献

寻找可以帮忙的地方

我们给认为是适合后续贡献的 issue 打上 help wanted 标签。它们对 Rust 和 uv 的经验要求各不相同。我们常常希望完成这些任务,但没有足够的资源自己来做。

对于已按上述方式标记为适合社区贡献的 issue,你不需要得到我们的许可就可以开始。不过最好表明你打算处理某个 issue,以避免多人同时尝试解决同一个问题。

在开始处理未被标记为适合社区贡献的 issue 之前,请先与我们沟通。我们乐于接受其他 issue 的贡献,但重要的是先就问题的解决方案达成共识。

除上述标签的 issue 之外,标有 bug 的 issue 最适合贡献。相比之下,标有 needs-decision 或 needs-design 的 issue 不适合贡献。请不要为这些标签的 issue 提交拉取请求。

请不要在未事先讨论的情况下为新功能提交拉取请求。虽然我们欣赏对新功能的探索,但几乎总会立即关闭这些拉取请求。向 uv 添加新功能会带来长期维护负担,并且需要 uv 团队在开始实现之前达成强烈共识。

AI 的使用

我们要求贡献中所有 AI 的使用都遵循我们的 AI 政策。

如果你的贡献不遵循该政策,它将被关闭。

环境准备

构建 uv 需要 Rust(以及一个 C 编译器)。

在 Ubuntu 及其他基于 Debian 的发行版上,可以这样安装 C 编译器:

1
sudo apt install build-essential

在基于 Fedora 的发行版上,可以这样安装 C 编译器:

1
sudo dnf install gcc

在 Windows 上,构建 TLS 后端(aws-lc-sys)需要 NASM。如果不存在,将改用 aws-lc-sys 提供的预构建二进制。可以用 WinGet 安装 NASM:

1
winget install NASM.NASM

安装之后,把 C:\Program Files\NASM 加入你的 PATH。虽然预构建二进制在没有 NASM 时也能工作,但要获得最佳性能还是建议安装它。

从源码构建

要从源码构建 uv:

1
cargo build

要构建优化的发布版本:

1
cargo build --release

运行测试

要运行测试套件:

1
cargo test

关于测试与调试的更多细节,请参阅仓库中的 CONTRIBUTING.md,其中包含完整的开发指南,涵盖项目结构、运行测试、调试、文档构建以及发布流程。

最后修改 September 25, 2026: 更新 (221c74c33)