DUICUO

初心者がオープンソースプロジェクトにすぐに参加する方法

序文

オープンソースは、ソフトウェア開発の分野で常に頻繁に議論されてきたトピックです。私たちが使用するツールであれ、サードパーティのライブラリであれ、オープンソースのサポートなしには何もできません。

最近、仕事の都合でApache Pulsarコミュニティと頻繁にコミュニケーションを取る必要がありバグなど、遭遇した問題をコミュニティに報告しています。また、自分で修正できる問題については、プルリクエストも提出しています。

私はこれまで、さまざまな程度に他のオープンソース コミュニティに参加してきましたが、現在の状況と比較するといくつかの違いがあります。

  • 以前は、主に個人的なオープンソース プロジェクトに取り組んでおり、時折、他の開発者が私のリポジトリにコードを寄稿していました。
  • 私は他の個人著者やコミュニティベースのプロジェクトにも参加したことがありますが、そのプロセスはそれほど正式でも標準化もされていませんでした

簡単に言えば、かつては小規模だった作業が今でははるかに複雑になっています。Pulsar はApacheコミュニティのトップレベルのプロジェクトであり、参加するプロセスはより複雑ですが、学ぶこともはるかに多くなります。

画像.png

この6ヶ月間、私は十数件のプルリクエストを送信し、徐々に始めるための方法や手順を掴んできました。もしあなたがオープンソースに参加したいけれど、どこから始めればいいのか分からずに困っているなら、この記事が少しでもお役に立てれば幸いです。

なぜオープンソースに参加するのですか?

まず、オープンソースに参加するメリットについてお話ししましょう。メリットを理解すれば、あなたもオープンソースのファンになるかもしれません。

最も明白なメリットは、自分が貢献したプロジェクトへの理解が深まることです。面接では、特定のフレームワークへの精通度についてよく質問されます。履歴書でどれだけ雄弁に説明しても、プロジェクトへの貢献者であるという点ほど説得力のあるものはありません

第二に、コミュニケーションスキルも養われます。オープンソースコミュニティは、GitHubのIssue/PRメーリングリストを通じてコミュニケーションをとることが多く、これはWeChatやQQといった私たちが一般的に使用するインスタントメッセージングツールとは根本的に異なります。

自分の意見を発表する前に、冷静に考え、明確に説明することがしばしば必要になります。これは無意識のうちに要約能力を養うものであり、これはコンテンツクリエイターにとって非常に重要です

もう 1 つの明らかな利点は、個人の能力を裏付けることです。「コードを見せてください」という格言があるようにGitHub はそれを実現する最良の方法です。

よく知られているオープンソース プロジェクトの貢献者、あるいはコミッター/PMC になることで、あなたの能力を証明するのに十分です。

参加方法

参加方法は?実はとても簡単で、いくつかの方法があります(簡単なものから難しいものまで)。

  • いくつかのタイプミス関連の修正。
  • コミュニティ内のユーザーからの質問に答えます。
  • 使用中にバグに遭遇した場合は、直接フィードバックをお寄せください。ご興味があれば、ご自身で修正していただければ幸いです。
  • 既存の問題リスト内の未解決のバグを修正します
  • ソフトウェアに必要な機能が不足している場合は、機能提案を提出して実装します。

方法に関係なく、貢献を行う前に公式の貢献ガイドラインを確認することをお勧めします。これらは通常、公式 Web サイトにあります。

簡単なタイプミスの修正でも、事前にプロセスを理解しておけば可能です。より専門的なプロジェクトでは、各プルリクエストのマージが厳密に行われるため、モチベーションに影響を与えるような基本的なミスを防ぐことができます。

ここでは Pulsar を例に挙げます

公式 Web サイトには、環境設定、コード規則、PR/git コミットのセマンティクスなどのさまざまな仕様を含む詳細な貢献ガイドラインが掲載されています

ここでPRのセマンティクスについて強調しておきたいと思います。コミットをマージするにはコミッターの同意が必要となるため、適切なPR仕様はコミュニティメンバーの注目を集める可能性が高くなります

再びPulsar を例に挙げると、PR を送信する前にここで仕様を読む必要があります。そうしないと、最初のステップで困難に遭遇する可能性があります。

起こりうる問題

次のセクションでは、貢献プロセス中に発生する可能性のあるいくつかの問題について説明します。

上記の難易度ランキングでは、個人的な問題の解決が他の問題よりも優先されました。これは、報告されたバグは報告者自身がより深く理解していることが多いのに対し、コミュニティの他のメンバーが報告した問題は経験豊富なユーザーが対応する可能性が高いためです。

また、詳しくないので、調べて再現する過程で諦めてしまう可能性もあります。

クレーム問題

ちょっとしたヒント:自分が提出していない問題を修正しようとしている場合は、コメント欄でコミッターにタスクの割り当てを依頼するのが最善です。こうすることで、コミュニティメンバーが重複して作業を行うことがなくなります。

こんな感じです。

同時に、修正可能な問題を検索する際には、その問題が申し立てられているかどうか、またそれに関連する PR があるかどうかにも注意を払う必要があります。

画像.png

問題が指定されていないにもかかわらず、その問題に対応する関連するプルリクエスト(PR)が存在する場合があります。このような場合は、問題をフィルタリングできます。

助けが欲しい

「ヘルプ」や「欲しい」のタグが付いた問題を探すこともできます。これらのタイプの問題は比較的単純で、簡単に解決できることが多いです。

コミュニティからのフィードバックが遅い

もう 1 つのよくある問題は、送信した問題や PR が長い間処理されないままになることが多いことです。

まず、この問題に対応するコードを最近誰がメンテナンスしていたかを確認します。これは、GitToolBoxプラグインを使用したIDEで簡単に確認できます

PR番号に続くIDは、多くの場合PR番号です。このPRを通じて担当者を見つけ、問題のコメント欄でタグ付けを試みます。

それでも返信がない場合は、開発チームにメールを送信することもできます。

私の場合のように、まだ返信がない場合は...

もう 1 つの選択肢は、ソーシャル メディア (GitHub ホームページ、技術グループ) でコミッターの WeChat アカウントを見つけて、直接メッセージを送信し、物事を前進させるための支援を依頼することです。

もちろん、長期間メンテナンスされていないプロジェクトもあります。そのようなPRに対して相手側が反応しない可能性もあることを覚悟しておきましょう。これは、ある中国企業のオープンソースプロジェクトではよくあることです。

要約

一般的に、オープンソースで成功するには忍耐と長期的な取り組みが必要ですが、そこから得られるメリットは十分に価値があります。Apacheのようなプロフェッショナルコミュニティに参加してまだ半年ですが、今後も継続していきます。そして、いつかコミッターになれるくらいの経験を積み、それを皆さんと共有したいと思っています。