在 Hacktoberfest 期间学点 Rust
原文由 Matthias Endler 于 发布,订阅该博客
来源:由 Freepik 设计
十月是参与开源贡献的绝佳时机——至少 GitHub 和 DigitalOcean 是这么认为的。每年这个时候,他们都会举办 Hacktoberfest,这是一场全球性活动,只要提交 pull request,就能获得一件免费 T 恤和满满的声望。请在这里阅读官方公告。
有些人觉得自己无法做出任何有价值的贡献。要么是因为编程能力不足,要么是不知道该从何下手。
这篇指南就是要改变这一点!
接下来我将向你展示,每个人都能如何为Rust这一安全的系统编程语言贡献代码。写这篇文章的灵感来自来自 llogiq 的一条推文。
1. 找一个合适的 Rust 项目
我们都希望自己的付出能得到认可。
因此我建议从中等规模的项目开始,这类项目已经有了一定的热度,但仍由少数维护者在支撑,所以任何帮助都会备受欢迎。相比之下,特别小的项目往往只对原作者有用,而大型项目一开始则会让人望而生畏,而且规范也更严格。
现在,我们先来看看今年内有过更新、且 star 数在 5 到 100 之间的仓库。GitHub 支持基于 Lucene 语法的进阶搜索选项。
language:Rust stars:5..100 pushed:>2017-01-01这里是符合该筛选条件的项目列表。
2. 安装 Rust 工具链
要开始贡献,我们需要一个可用的 Rust 编译器和 cargo 包管理器。好在安装过程应该很简单。我推荐使用 rustup 来完成。
在终端中运行以下命令,然后按屏幕提示操作即可。
curl https://sh.rustup.rs -sSf | sh如果不确定怎么选,直接接受默认选项即可。安装完成后,我们还需要获取编译器的 nightly 版本,以备后用。
rustup install nightly到目前为止有疑问吗?请在这里查看更详细的安装说明。
3. Fork 项目并克隆到本地
首先,点击 GitHub 项目页面右上角小小的 fork 按钮。然后将你 fork 的仓库克隆到本地。
git clone [email protected]:yourusername/project.git更详细的说明请看这里。
4. 能正常构建吗?
在开始修改代码之前,我们应该先确认代码库处于可工作状态。在项目目录下,以下命令应该能直接运行成功。
cargo build
cargo test如果不行,你可以查阅 README 获取进一步的说明。(当然,你也可以直接换个项目。)
5. 秘诀
窍门就在这里:我们使用一个名为 clippy 的 linter 来找出任意 Rust 代码库中可以改进的地方。
按如下方式安装 clippy:
cargo +nightly install clippy之后,你就可以在项目根目录下随时运行它了。
rustup run nightly cargo clippy它会为你提供关于如何改进代码库的可操作建议。
下面是一些示例输出:
warning: useless use of `format!`
--> src/mach/header.rs:420:49
|
420 | let error = error::Error::Malformed(format!("bytes size is smaller than an Mach-o header"));
| ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
|
= note: #[warn(useless_format)] on by default
= help: for further information visit https://rust-lang-nursery.github.io/rust-clippy/v0.0.165/index.html#useless_format
warning: this expression borrows a reference that is immediately dereferenced by the compiler
--> src/mach/header.rs:423:36
|
423 | let magic = mach::peek(&bytes, 0)?;
| ^^^^^^ help: change this to: `bytes`
|
= help: for further information visit https://rust-lang-nursery.github.io/rust-clippy/v0.0.165/index.html#needless_borrow只需尝试其中的一些建议,看看项目是否仍能编译通过、测试是否依然能跑通。查看帮助信息中指向文档的链接以了解更多。从小改动做起,这样你的修改也更容易被审核通过。
6. 创建 Pull Request
如果你对自己的修改感到满意,就是时候发布它们了!最好为你的改动新建一个分支,然后推送到你的 fork 上。
git checkout -b codestyle
git commit -am "Minor codestyle fixes"
git push --set-upstream origin codestyle之后,前往 GitHub 上你 fork 的仓库主页。应该会看到一个名为 Compare & pull request 的按钮。请添加一段有意义的描述,然后提交 pull request。
恭喜!你已经为 Rust 生态做出了贡献。感谢你!🎉
成果展示
彩蛋!
如果觉得手动修复和检查太枯燥,你可以使用 Pascal Hertleif(@killercup)开发的 rustfix 来自动完成第 5 步:
rustfix --yolo && cargo check随机一篇博客
评论
登录后参与讨论