DUICUO

オープンソースプロジェクトへの貢献初心者向け経路のまとめ

翻訳者 | 劉涛

校正者 | Chonglou

最近、オープンソースサミットに出席し、思いがけない発見をしました。コミュニティへの貢献に関するパネルディスカッションで、モデレーターが聴衆に「オープンソースプロジェクトに貢献したことがある人はどれくらいいますか?」と尋ねたところを挙げたのはほんの一握りの人だけでした驚いたことに、オープンソースへの熱意にもかかわらず、多くの参加者はオープンソースプロジェクトへの貢献第一歩をどう踏み出せばいいのか分からず、戸惑っているようでした

目次

  • オープンソースプロジェクトへの貢献の無限の可能性についての洞察
  • 導入
  • オープンソースとは何ですか?
  • オープンソースに貢献するメリット
  • オープンソースへの貢献を始める方法
  • 非技術的なオープンソースへの貢献
  • 結論

オープンソースプロジェクトへの貢献の無限の可能性についての洞察

サミット後の議論の中で、ある共通の意見を発見しました。それは、多くの人がオープンソースプロジェクトへの参加をためらい、技術エリートだけが有意義な貢献ができると誤解しているということです。この広範な懸念が、このガイドを執筆するきっかけとなりました。このガイドを通して、オープンソースプロジェクトの神秘性を解き明かし、技術スキルレベルに関わらず、誰もがこの活気あるエコシステムの中で自分の居場所と価値を見つけることができることを示せることを願っています

導入

オープンソースソフトウェアは、私たちが日々利用する多くのツールやサービスの基盤を形成しています。ウェブブラウザから複雑なオペレーティングシステム、そして様々なアプリケーションを支える基盤ライブラリに至るまで、オープンソースプロジェクトはテクノロジー分野において極めて重要な役割を果たしています

しかし、多くの技術系初心者にとって、オープンソースプロジェクトへの参入はしばしば困難を伴います。オープンソースプロジェクトの規模の大きさと複雑な構造に直面すると、多くの初心者は圧倒され、どこから始めれば良いのか、どのように有意義な貢献をすれば良いのか分からなくなってしまいます。

この記事は、オープンソースプロジェクトへの貢献方法段階的に解説する包括的なガイドですプログラミングのエキスパートでも初心者、この記事のガイダンスに従うことで、オープンソースプロジェクトへの貢献を始めるために必要な知識を習得し、参加への自信を深めることができます

オープンソースとは何ですか?

オープンソースプロジェクトへの貢献方法について詳しく検討する前に、 「オープンソースという用語の具体的な意味を明確にする必要があります。オープンソースソフトウェアとは、特定のライセンス契約に基づいてリリースされ、誰でもソースコードを自由に閲覧、変更、配布できるソフトウェアを指します。このオープンで協調的なモデルは、技術革新と共有を大きく促進し、個人開発者から大企業まで、誰もがオープンソースプロジェクトの開発に貢献することを可能にします。人気のあるオープンソースプロジェクトには、以下のものがあります。

  • Linux: 多くのオペレーティング システムをサポートするカーネル。
  • Python: 広く使用されているプログラミング言語。
  • React: ユーザー インターフェイスを構築するための JavaScript ライブラリ。
  • Mozilla Firefox:人気のウェブブラウザです。これらのプロジェクトは通常、GitHubやGitLabなどのプラットフォームでホストされており、開発者に便利なコラボレーションとコミュニケーションのチャネルを提供しています。開発者は、コードの提出、問題の報告、ディスカッションへの参加、変更のレビューなどを通じて、これらのオープンソースプロジェクトの開発に貢献できます。

オープンソースに貢献するメリット

オープンソース プロジェクトに参加すると、多くのメリットが得られます。

  • スキル向上:実際のプロジェクトに参加することで、最新のプログラミング言語、開発ツール、業界のベストプラクティスを直接学ぶ機会が得られます。この実践的な経験は、技術的な理解を深め、プログラミングスキルを向上させる上で非常に貴重です
  • コミュニティとの交流:オープンソースプロジェクトは、多くの場合、大規模で活気のあるコミュニティによって支えられています。このコミュニティは、世界中の開発者で構成されており、知識を共有し、経験を交換し、プロジェクトの開発を共同で推進することで技術面と個人の両面での成長を支援します
  • ネットワーキング:オープンソースプロジェクトに参加することで、他の開発者、潜在的な雇用主、そしてテクノロジー分野の専門家とつながるプラットフォームが得られます。こうしたつながりは、キャリア開発にとって非常に重要です
  • ポートフォリオの作成:オープンソースプロジェクトへの貢献は、あなたのスキルと才能を披露する素晴らしい方法です。これらの貢献はポートフォリオの重要な部分となり将来雇用主にとって強力な証拠となります。
  • インパクトを与える:あなたの貢献は、世界中の何十万人ものユーザーに直接影響を与え、他の人々が頼りにしているソフトウェアの改善に貢献することができます。これらのユーザーは、あらゆる職業に就き、仕事、勉強、娯楽など、このソフトウェアに依存しています。

オープンソースへの貢献を始める方法

オープンソースプロジェクトへの参加は、整理され、管理しやすいいくつかのステップに分けられます。これらのステップは、適切なオープンソースプロジェクトを見つけ、貢献方法を深く理解することから、最終的に貢献を提出してレビューを受けるまでのプロセス全体をガイドします。

ステップ1: 開発環境をセットアップする

オープンソースプロジェクトに着手する前に、適切なローカル開発環境を構築することが最も重要です。必要なツールは、プロジェクトで使用するプログラミング言語やテクノロジースタックによって異なります。以下は、ほとんどのプロジェクトに適した基本的な環境です。

1. Git :コードのすべての変更を正確に追跡し、複数人での共同開発を容易にする強力なバージョン管理システムです。git -scm.comからダウンロードしてインストールできます。

インストール後、Git のユーザー名とメール アドレスを設定します

git config --global user.name "Your Name" git config --global user.email "[email protected]"

2. GitHub アカウント:ほとんどのオープンソース プロジェクトは GitHub でホストされているため、まず github.com でアカウントを作成してください。

3. テキストエディタ:コードを書くためのテキストエディタやIDE(統合開発環境)を選ぶ際には、さまざまな選択肢があります。中でも、Visual Studio Code、Sublime Text、JetBrains IDEファミリーは最も人気のあるツールです。

4. プログラミング言語:プロジェクトの要件に応じて必要なプログラミング言語をインストールします。例えば、Pythonプロジェクトに取り組んでいる場合は、システムにPythonがインストールされていることを確認してください。

ステップ2: Gitバージョン管理を理解する

バージョン管理はオープンソースプロジェクトにおけるコラボレーションの基盤であり、Gitはこの分野のリーダー的存在です。Gitは、多数の開発者が同じプロジェクトで衝突することなく共同作業することを可能にします。プロジェクトに貢献する前に、以下のGitのコアコンセプトを深く理解することが不可欠です。

  • リポジトリ (repo):プロジェクトのコードとファイルを保存するために使用されるディレクトリ。
  • フォーク:プロジェクトをフォークすると、リポジトリの個人用コピーが作成され、元のプロジェクトに影響を与えずに変更を加えることができます
  • クローン作成:クローン作成操作により、リポジトリ全体がローカル コンピューターにコピーされオフラインで作業できるようになります。
  • ブランチ: ブランチは、メイン コードベース (通常はメインまたはマスターと呼ばれます) から変更を分離するために使用されます。
  • プル リクエスト (PR):プル リクエストは、ブランチで行った変更を元のリポジトリのコードベースにマージすることを目的とした提案です

リポジトリのクローン:

gitクローンhttps://github.com/username/repository.git

変更を加えるには新しいブランチを作成します。

gitクローンhttps://github.com/username/repository.git

ステップ 3: 貢献したいプロジェクトを見つけます。

適切なオープンソースプロジェクトを見つけることは、オープンソースへの貢献への道のりの出発点であり、重要なステップです。ここでは、初心者向けに適切なプロジェクトを見つけるための効果的な方法をいくつかご紹介します。

1. GitHub Explore:これはGitHubプラットフォーム上の貴重なリソースで、オープンソースプロジェクトを探しているユーザー向けに特別に設計されています。このExploreページでは、人気のあるリポジトリを簡単に見つけたり、言語や関心事でプロジェクトを検索したりできます。これらのリポジトリやプロジェクトは、多くのフォロワーや貢献者を抱えていることが多く、最新のテクノロジートレンドを理解し、学ぶための優れた窓口となります

2. グッドファーストイシュー:オープンソースコミュニティでは、新規参加者の積極的な参加を促し、初めて貢献する人の参入障壁を下げるため、多くのプロジェクトメンテナーが初心者が取り組むのに適したイシューを具体的にマークしています。これらは通常「グッドファーストイシュー」と呼ばれます。GitHubなどのプラットフォームで「グッドファーストイシュー」を検索すると、これらのイシューを見つけることができます。

3. オープンソースコミュニティ:オープンソースコミュニティは、初心者が参加しやすい様々な方法を提供しています。中でも、First Timers OnlyとUp For Grabsは代表的なプラットフォームで、どちらも初心者が貢献しやすいオープンソースプロジェクトを多数掲載しています。

4. ドキュメントの確認:オープンソースプロジェクトを選ぶ際には、包括的なドキュメントを提供しているプロジェクトに注目してください。ドキュメントが充実したプロジェクトは、貢献に関する明確なガイドラインを提供してくれるため、よりスムーズにプロジェクトに参加できます。例えば、Python開発者であれば、公式Pythonドキュメントや、Requests、Flask、Djangoなどの人気のPythonライブラリに貢献できます。

ステップ4:プロジェクトを理解する

興味のあるプロジェクトを見つけたら、次の重要なステップはそのプロジェクトについてさらに詳しく知り、慣れることです。

1. READMEを読む:オープンソースプロジェクトに参加する際は、まずREADMEファイルを読むことが重要です。このファイルは通常、プロジェクトのルートディレクトリに配置されており、プロジェクトの概要、設定方法、貢献ガイドラインを理解するための窓口として役立ちます。

2. 問題を確認する: GitHubプロジェクトリポジトリの「問題」セクションをよく確認してください。ここにはバグ、機能リクエスト、ToDo項目が記録されています。「good first issue(最初の問題として最適)」や「beginner-friendly(初心者向け)」のタグが付いた問題には特に注意してください。これらの問題は、初心者からの貢献の出発点として設計されていることが多いためです

3. プロジェクトをローカルでセットアップする:リポジトリをクローンし、ローカルマシンにプロジェクトをセットアップします。READMEに記載されているとおりにすべてが正しく動作することを確認してください。例えば、Pythonプロジェクトの場合は、pipを使って依存関係をインストールする必要があるかもしれません。 pipインストール -r要件.txt

4. コントリビューションガイドラインを読む:多くのプロジェクトにはコントリビューションガイドラインがあります。これらのガイドラインには、コーディングスタイル、テスト要件、コミットメッセージのフォーマット方法などが記載されている場合があります。これらのガイドラインをよく読んで理解してください。

ステップ5:最初の寄付をする

さて、いよいよ一番面白い部分、貢献を始めましょう!やり方は以下のとおりです。

1. リポジトリをフォークする: GitHub で、「フォーク」ボタンをクリックして、プロジェクトの個人用コピーを作成します。

2. 複製とレプリケーション:レプリカをローカル コンピューターに複製します。 gitクローン https://github.com/ユーザー名/リポジトリ.git

3. 新しいブランチを作成する:貢献ごとに新しいブランチを作成することをお勧めします。 git checkout -b私のブランチ

4. 変更を加える:貢献したい変更を加えます。例えば、バグを修正する場合は、該当ファイルのコードを編集します。ドキュメントを更新する場合は README.mdを編集します。例えば、 README のスペルミスを修正するとします

 # Incorrect text This is a sampe of a typo.


次のように変更できます。

# Corrected text This is an example of a typo.

5. 変更を送信:変更を加えたら、明確かつ簡潔な情報を添えて送信します。

git add . git commit -m "Fix typo in README"

6. 変更をプッシュする:変更GitHub のフォークにプッシュします

git push origin my-branch

ステップ6: プルリクエスト(PR)を送信する

変更が GitHub にプッシュされたので、レビューのために送信します。

1. 元の倉庫に移動する:元の倉庫 (再強化した倉庫ではない) に移動します。

2. プルリクエストを作成する:GitHubでは通常、ブランチがプルリクエストの作成準備が整ったことを示すバナーが表示されます「比較してプルリクエストを作成」ボタンをクリックしてください。

3. コンパイル手順:実行した操作とその理由を明確に説明してください。変更によってどのような問題が解決されたかを具体的に説明してください。

プルリクエストを送信すると、プロジェクトのメンテナーが変更内容を確認します。メンテナーは、変更内容の修正を依頼したり、変更内容を承認したりする場合もあります。

ステップ7: フィードバックに応答する

メンテナーはプルリクエストに対してフィードバックを提供する場合があります。速やかに対応してください。変更を要求された場合はローカルで変更を行いコミットしてフォークしたリポジトリにプッシュしください

 git commit --amend git push --force

変更が承認されると、プルリクエストはメイン プロジェクトにマージされます。

非技術的なオープンソースへの貢献

オープンソースプロジェクトでは、コーディングなどの技術的な貢献が中核となることが多いですが、プログラミングスキルを必要としない貢献も歓迎し、高く評価しています。こうした貢献も同様に価値があり、プロジェクトの成功と発展に大きく貢献する可能性があります。

1. 文書

明確で包括的なドキュメントは、あらゆるオープンソースプロジェクトにとって不可欠ですが、見落とされがちです。技術系ではない貢献者として、プロジェクトを改善したり、ドキュメントを作成したりすることで、新規ユーザーや他の貢献者がソフトウェアを理解しやすく、使いやすくすることができます

  • README を改善する:セットアップ手順、使用例、インストールプロセスを明確に説明します。
  • チュートリアルを作成する:初心者がプロジェクトを開始できるように、ステップバイステップのガイドまたはビデオチュートリアルを作成します
  • スペルエラーを修正:既存のドキュメント内のスペル、文法、書式設定のエラーを修正します。

2. コミュニティの支援と参加

多くのオープンソースプロジェクトの繁栄と発展は、活気に満ちたダイナミックなコミュニティと切り離せないものです。このようなコミュニティへの貢献は、質問に答えたり、議論を導いたり、新規参加者をサポートしたりするなど、様々な形で行うことができます。

  • GitHub の問題追跡システムまたはコミュニティ フォーラムで質問に答えて、プロジェクトの使用中に問題が発生したユーザーを支援します。
  • フォーラム、メーリング リスト、ソーシャル メディアでの議論が建設的でトピックに関連した内容であることを確認します。
  • ユーザーが一般的な問題を解決できるように、よくある質問とその回答をまとめました。

3. デザインとユーザーインターフェース(UI)への貢献

プロジェクトでは、ユーザーインターフェースの見た目の魅力と使いやすさを向上させるための支援が求められることがよくあります。デザインのバックグラウンドをお持ちの、プロトタイプの作成、レイアウトの調整、ユーザーインターフェース/ユーザーエクスペリエンス(UI/UX)の改善提案などを通じて貢献できます。

  • プロジェクトのロゴ、アイコン、イラストなどの視覚要素をデザインします
  • プロトタイプを描いたり、インターフェースをより直感的でユーザーフレンドリーにする方法について提案したりします。

4. プロジェクトのローカライズと翻訳

オープンソースプロジェクトを世界中の人々に届けることは非常に重要です。これは、プロジェクトの知名度と影響力を高めるだけでなく、世界的なコラボレーションとイノベーションを促進することにもつながります。これを実現するには、英語を母国語としない人々のニーズにも対応できるよう、プロジェクトのコンテンツを複数の言語に翻訳する必要があります

  • プロジェクトドキュメントを他の言語に変換して、ユーザーベースを拡大します。
  • さまざまな地域や文化的背景に合わせて、ソフトウェア インターフェイス、エラー メッセージ、または Web サイトを調整します。

5. マーケティングと外部広報

オープンソースプロジェクトの継続的な発展は、新たなユーザーと貢献者の獲得にかかっていますそのため、効果的なマーケティング戦略の策定が不可欠です。技術的なバックグラウンドを持たない貢献者に対しては、プロジェクトの知名度と影響力を高めるために、様々なチャネルを活用することができます。

  • Twitter、LinkedIn、Facebook などのプラットフォームでプロジェクトの最新情報、ハイライト、進捗状況を共有します。
  • プロジェクトについての記事を書き、その使用方法やプロジェクトが解決する特定の問題を紹介します。
  • 新しいユーザーがプロジェクトの使用方法や参加方法を学習できるように、ビデオチュートリアルやブログ投稿を作成します。

6. イベントの企画と資金調達

オープンソースプロジェクトの持続的な発展には、イベントの開催や資金調達が不可欠です。イベント企画や資金援助といった技術面以外の貢献も大きな影響を与える可能性があります。

  • コミュニティ イベント、ハッカソン(プログラマー、開発者、その他の IT プロフェッショナル向けのブレーンストーミング プログラミング アクティビティ。短期間で集中的に実践的な状況下でチームワークを通じて特定の問題を解決したり、新製品を開発したりすることに重点を置く)、またはカンファレンスの開催を支援し、開発者とユーザー間のコミュニケーションを促進します。
  • クラウドファンディング キャンペーンや助成金申請などのさまざまな手段を通じて資金調達の取り組みをサポートし、オープンソース プロジェクトの健全な財務見通しを確保します

7. 品質保証(QA)とテスト

ソフトウェアテストは高度な技術を要する作業と思われがちですが、開発者以外の人でもソフトウェアのユーザビリティをテストし、発生した問題を報告することでプロジェクトに貢献できます。技術的なバックグラウンドを持たないユーザーも、プロジェクトのユーザーエクスペリエンスに関する貴重なフィードバックを提供できる場合があります。

  • ソフトウェアの使用中に発生した欠陥や問題を特定して報告します。
  • ソフトウェアの使いやすさに関するフィードバックを提供し、改善を提案します。

8. 法的およびライセンスに関する貢献

オープンソース プロジェクトは、運用中にライセンスの遵守やサービス条件などの法的課題に直面することが多く、法的枠組み内でプロジェクトを着実に進めることが重要です。

  • プロジェクトが関連する法的許可を取得しており、関連するオープンソース ライセンスの要件に準拠していることを確認します。
  • 貢献者とプロジェクト自体の利益を保護するために、貢献者契約やその他の法的文書の起草を支援します。

こうした非技術的な貢献は、オープンソースプロジェクトの長期的な発展にとって非常に貴重です。しかし残念ながら、技術的な貢献だけが貢献の唯一の方法だと誤解している新規参入者によって、こうした貢献は見過ごされがちです。実際、オープンソースコミュニティの真髄はコラボレーションと共有にあり、非技術的な貢献者はこの精神を育む上で重要な役割を果たしています。

結論

オープンソースプロジェクトへの参加は、間違いなく意義深い旅です。開発者個人の成長を促すだけでなく、志を同じくするパートナー同士が深い絆を築き、協力してソフトウェアの世界に貢献し、価値を創造していくことも可能になります

すべての貢献者はゼロからのスタートであることを忘れないでください。最初の貢献は取るに足らないものに思えるかもしれませんし途中で多くの困難に直面することもあるでしょ。しかし、どうか落胆しないでください。オープンソースコミュニティは、そのオープンさと包括性で知られています。あなたが行うすべての貢献は、学びと成長のための無数の機会へと変わり、この活気に満ちた環境の中で継続的に成長していくこと可能にします。

翻訳者紹介

Liu Tao 氏は 51CTO のコミュニティ エディターであり、大規模な国有企業でシステムのオンライン テストと制御の責任者を務めています。

原題:初心者としてオープンソースプロジェクトに貢献する方法、著者: Fanny Nyayic