HacktoberfestでRustを学ぼう
原文は Matthias Endler により に公開されました。 このブログを購読する
出典: Designed by Freepik
10月はオープンソースに貢献するのにぴったりの時期です——少なくともGitHubとDigitalOceanはそう考えています。なぜなら、この時期に2社が共催するHacktoberfestは、プルリクエストを作成することで無料の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. プロジェクトをフォークして自分のコンピュータにクローンする
まず、GitHubのプロジェクトページの右上にある小さな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. プルリクエストを作成する
変更に満足できたら、公開するタイミングです。変更用に新しいブランチを作成し、自分のフォークにプッシュするのがおすすめです。
git checkout -b codestyle
git commit -am "Minor codestyle fixes"
git push --set-upstream origin codestyleその後、GitHub上のフォークのホームページに移動します。Compare & pull requestというボタンがあるはずです。わかりやすい説明を添えて、プルリクエストを送信してください。
おめでとうございます!あなたはRustエコシステムに貢献しました。ありがとうございます! 🎉
トロフィーケース
おまけ!
もし手作業での修正や確認が退屈に感じられるなら、Pascal Hertleif(@killercup)氏によるrustfixを使ってステップ5を自動化できます。
rustfix --yolo && cargo check記事をランダムに読む
コメント
ログインしてコメントする