趁 Hacktoberfest 學點 Rust
來源: 由 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隨機一篇部落格