趁 Hacktoberfest 學點 Rust
原文由 Matthias Endler 于 發布,訂閱此部落格
來源: Designed by Freepik
十月是貢獻開源專案的最佳時機——至少 GitHub 和 DigitalOcean 是這麼認為的。因為他們會在這個時候舉辦 Hacktoberfest,這是一場全球性的活動,只要建立 pull request,就能獲得一件免費 T 恤和滿滿的聲望。官方公告請見這裡。
有些人認為自己無法做出有價值的貢獻。可能是因為缺乏程式能力,或是不知道該從哪裡開始。
這篇指南就是要改變這種想法!
讓我來告訴你,每個人都能如何為Rust這個安全的系統程式語言貢獻程式碼。會寫這篇文章,是受到來自 llogiq 的一則推文啟發。
1. 找一個很棒的 Rust 專案來參與
我們都希望自己的努力能被看見。
因此我建議從中型專案開始貢獻,因為這類專案已經有了一定的動能,但仍由少數維護者主導,所以隨時都歡迎有人幫忙。相比之下,迷你專案大多只對原作者有用,而大型專案一開始往往讓人望而生畏,規範也更為嚴格。
現在,讓我們來看看今年內有更新、獲得 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. 祕密武器
祕訣在這裡:我們要用一個程式碼檢查工具(linter),也就是clippy,來幫我們找出任何 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隨機一篇部落格
留言
登入後參與討論