https://a.storyblok.com/f/270183/1368x665/310628c905/beginners-guide_opensource.png

オープンソースに貢献するための初心者ガイド

最終更新日 August 20, 2024

所要時間:1 分

「オープンソースに貢献する」というのは、人々がよく耳にするフレーズのひとつであり、やってみたいと思っても、どうすればいいのかわからないことが多い。最初の頃は、利用可能なすべてのリソースに圧倒され、特にすべてのリソースが異なるアプローチを持っていたため、貢献することを躊躇していた。

このブログもまた、オープンソースを始めるための数ある方法のひとつになるだろうが(申し訳ない)、私がどのように貢献するようになったか、そして始めるときに知っておきたかったことについて、私の正直なアプローチを紹介する。

オープンソース・プロジェクトとは何か?

オープンソースとは、オープンにアクセスでき、変更できるように設計されたプロジェクトのことです。多くの場合、オープンソースのプロジェクトは、誰でも見たり、変更したり、共有したりできるようになっています(一般に共有されず、それを作成した個人または組織によってのみ変更可能なクローズド・ソース・ソフトウェア(CSS)とは対照的です)。しかし、たとえ人々が貢献し、プロジェクトの改善に協力することが奨励されているとしても、いくつかの「ハウスキーピング」ルールが必要であり、そこでライセンシングが登場するのです(これについては、ブログでさらに詳しく説明します)。

オープンソースを定義する要素は以下の通りである:

このプロジェクトはソースコードが公開されている。 プロジェクトのライセンスが オープンソース定義 (OSD).

たとえば Vonage Python SDKはオープンソースだ。ここでは、Apache-2.0ライセンスを使用していることがわかります。これは Vonage SDKs.

Vonage Python SDK repo with Apache-2.0 license circledPython Repo

オープンソース・コントリビューターとは?

オープンソースの プロジェクトオープンソースとして定義する基準を持っている一方で、オープンソースの貢献者は 貢献者はそうではありません。人が貢献できる方法には、次のようなさまざまなものがある:

コードの貢献:バグ修正、新機能の実装、コードのリファクタリング。

ドキュメント:ドキュメントの作成または改善(READMEファイル、ユーザーガイド、APIドキュメントを含む)、ドキュメントのローカライズ(他の言語に翻訳する、または他のコーディング言語でコードを記述する)、チュートリアルの作成。

レポート課題:プロジェクトの改善点に気づいたら、問題を提起して変更を提案してください。変更そのものを実施する必要はありませんが、できれば大いに推奨されますし、非常に役に立ちます。しかし、スキルセットと帯域幅を持つ他の誰かが、他の皆のためにプロジェクトを改善するために、その問題を引き受けることになるかもしれません。

テスト:様々なプラットフォームでのテストと問題の報告、ユニットテストの作成、CI/CDパイプラインの設定や改善。

コミュニティ支援:フォーラムでの質問に答えたり、コードレビューをしたり、新しい貢献者を指導したり。例えば、Appwrite Discord サーバーで誰かが Appwrite Cloud での Vonage Video の実装について助けを求めた場合、私はチームメイトである クリス・タンカースリーのブログ.

イベント開催:オープンソースプロジェクトを促進するミートアップやワークショップを主催したり、参加したりする。

貢献できるオープンソースプロジェクトの見つけ方

オープンソースのプロジェクトを見つけるいくつかの方法を見てみよう。

オープンソース・メンタリング・プログラムに応募する

オープンソースへの貢献は、余暇を利用したオン・オフの活動であることもあれば、フルタイムの仕事をするようなものであることもある。もしあなたが、誰かに責任を持たせてもらったり、プロセスを通して指導してもらったり、締め切りのあるプロジェクトを割り当てられたり、自分の作品を採点してもらえるようなプログラムに参加できる幅があるのなら、次のようなプログラムに応募することをお勧めする。 グーグル・サマー・オブ・コードのようなプログラムに応募することをお勧めする。インターンシップのない大学生だった私にとって、これは理想的な選択肢だっただろう。

親友の一人 クナール・クシュワハビデオをアップしているが、ここではその概要を紹介しよう:

このオプションの期限に注意してください。Google Summer of Codeプログラムは、1年中いつでも参加できるわけではありません。参加希望者が希望するプロジェクトに取り組むには、合格する必要があります。

  1. このサイトへ Google サマー・オブ・コード> Organizations> すべての組織をブラウズします。フィルターを使用して、興味のある組織、テクノロジー、トピックを検索します。団体をクリックすると、その団体が貢献者を募集しているプロジェクトが表示されます。

  2. 各プロジェクトに目を通し、そのプロジェクトに応募するための具体的な方法を見つける。そのプロジェクトを試してみる良い機会にもなるだろう。

プロジェクトを選ぶ際に考慮したい点をいくつか挙げてみよう:

  • 何を達成したいのか?

  • なぜこのプロジェクトを選んだのですか?

  • もし、あなた自身のプロジェクトを提案することになった場合、そのアイデアは既存のものとはどのように違うのでしょうか?

  • このプロジェクトに参加する理由は何ですか?

  • プログラム開始前/期間中/終了後、どれくらいの時間をプロジェクトに投資する予定ですか?

3.合格した場合は、優れた貢献者になれるよう指導してくれるメンターとペアを組む!

良い創刊号」を探す

では、それを捧げることができないとしよう。 オープンソースへの貢献にオープンソースへの貢献にそこまで時間を割くことができないとしよう。その代わり、プロジェクトのコードベースに関する深い知識を必要としない、新しい貢献者に適した最初の課題に取り組むことができます。自分のスキルセットと興味に基づいて、一つを選ぶといいだろう。

良い創刊号」を見つける方法を紹介しよう:

例えば、Appwriteには次のようなラベルが付けられたissueがある。 'good-first-issue'.

取り組みたい課題を見つけたら、コメントスレッドを見て、その課題が誰かに割り当てられていないか確認してください。まだ割り当てられていない場合は、あなたに割り当ててくれるようメンテナにお願いするコメントを残してください。

これは私が報告した問題に取り組んでほしいとコメントした人の例です。

課題に取り組んでいる最中に質問がある場合は、人前で学ぶことを恐れないでください。GitHubの課題スレッドや、コミュニティがチャットに使っている公開プラットフォーム(DiscordやSlackなど)に行き、以下のような文脈で公開メッセージを送ってください:

  • どうした

  • 目指すもの

  • エラー

  • ブロックを解除するためのリソースを求める

問題の報告方法

以前は、問題を持ち出すと自分が問題になると思っていた。テイラー・スウィフトが言うように、「私よ。ハイ。問題は私よ。 あなたは問題ではありません!あなたは解決策にさえなるかもしれない。問題を報告することはまだ重要であり、それは私のお気に入りだ。 私のお気に入りのオープンソースに貢献する私のお気に入りの方法だ。

良い最初の課題」を見つけようとしたときに目立った課題がなければ、興味のあるGitHubのレポに行き、そのプロジェクトを使ってみましょう。自分のシステムでプロジェクトをビルドする。もし何か問題に出くわしたら(コードでもドキュメントでも)、 報告する.

オープンソースへの貢献(問題の報告)の例

私が貢献した Appwriteへの私の貢献を見てみよう。 オープンソースBackend-as-a-Service (BaaS)プラットフォームを提供する会社だ。

なぜオープンソースプロジェクトだとわかるのか?彼らのリポジトリ 彼らのリポジトリ!

Appwrite GitHub repo with the license and public repository outlinedAppwrite Checkこれは公開レポだ。

ライセンスを持っている。

ファイル LICENSE.mdファイルファイルには、このプロジェクトで許可されていることの概要が書かれています。

私はVonageとAppwrite Messagingを使ってSMSをスケジュールするアプリケーションを作っていた。 Appwrite メッセージングを使用してSMSをスケジュールするアプリケーションを構築していたとき、ある問題に出くわした。テキストを送信したい日付と時刻(2024年5月30日15時27分10秒)を設定しようとしていたのですが、エラーメッセージが出続けていました。設定しようとした時刻が現在時刻(15時25分)より後であることも確認した。

Screenshot of Create message window on Appwrite Cloud console with an error message to schedule an SMSDiscord Questionそこで私はAppwriteのDiscordサーバーに行き、彼らのチャンネルのひとつにメッセージを送った。そう、他人の前で弱音を吐いたり助けを求めたりすることは大変なことかもしれないが、人前で学ぶことはオープンソース文化の大きな部分なのだ。

その直後、彼らのチームメンバーの一人から、何が問題だったのかを正確に説明する返信が届いた。私がこの問題に出くわしたのなら、他の人たちも出くわすだろうから。

Screenshot of Discord message response on how to fix the issue and suggestion to open a GitHub issue for itDiscord responseまず、彼らのレポを検索してみた。 CONTRIBUTING.mdファイルを見つけた。そこには、彼らがどのような助けを必要としていて、どのように人々が参加できるかが明確に書かれていた。

をクリックした。 問題タブをクリックした。

このページで、問題のタイプを選択しました。SMSスケジューリング機能の変更を提案したいので、「機能強化」を選択しました。

次に、プロポーザルを提出するために必要な項目をすべて入力し、『新しい課題を提出する』をクリックした。参考までに 以前報告されたissue.

私のオープンイシューはこちら こちら.以上、オープンソースで貢献しました!🙌🏻

オープンソースに関するよくある誤解

  1. コーディングの知識が必要多くの人は、オープンソースプロジェクトに貢献するには高度なコーディングスキルが必要だと考えています。コーディングは有用ですが、ドキュメントの改善(リライト、再フォーマットなど)、デザイン、テスト、翻訳、バグ報告、コミュニティ・サポートなど、人々が貢献できる貴重な方法は他にもあります。どれもコーディングを必要としません。

  2. オープンソースは盗みであるオープンソースをコピーすることは知的財産を盗むことだという信念を持っている人がいます。 みんな!オープンソース・プロジェクトにはライセンスが必要だと言ったことを覚えているだろうか?もしプロジェクトのメンテナが ライセンス他者が彼らのソフトウェアを使用し、変更し、配布することを許可しているのであれば、それは完全に 完全に合法です。合法である。 オープンソースは利用されるために作られたものです。あるプロジェクトが、あなた自身のアプリケーションに必要な機能を備えているとしよう。また、そのプロジェクトを使っているうちに問題を見つけた場合は、その問題を報告するか、自分で修正することで貢献することができる。謝意を表しさえすれば、すべてフェアなゲームだ。ただ、すべてのライセンスがこれを禁止しているわけではないことに注意してください。

例えば、Apacheライセンスは制限が少なく、プロジェクト全体をオープンソースにすることなく、コードを商用プロジェクトに組み込むことができます。これは、Vonage Python SDK(ブログの冒頭で述べた)が使用しているライセンスだ。

  1. オープンソースでお金を稼ぐことはできない。というのも、オープンソースの会社がコードを無料で提供しているのに、どうやってお金を稼ぐことができるのか理解できなかったからだ。コードは無料であることに変わりはない。しかし、オープンソースソフトウェアを作成する多くの企業は、有償サポート、カスタム機能、プロジェクト自体の使用に関する顧客のトレーニングなどのサービスを提供することによって収益化することができる。

例えば CAMARAプロジェクトはLinux Foundation内のオープンソースプロジェクトで、次のような通信関連のサブプロジェクトがある。 SIMスワップ番号検証.エリクソンのような大企業でも、合法的に SIMスワップAPI番号検証APIを合法的に使用することができる。

プロジェクトをオープンソースにする方法

  1. オープンソースライセンスの選択:あなたのプロジェクトがオープンソースであることを確認するために承認プロセスを経る必要はありませんが、次のことが必要です。 必要です。Open Source Initiativeのような信頼できるソースから、あなたの目標に沿った承認されたライセンスを選択する必要があります。ライセンスを選択する際には、販売したいソフトウェア製品の構築など、プロジェクトのさまざまな使用ケースを考慮してください。

  2. プロジェクトの公開準備:あなたのコードが十分に文書化され、クリーンであることを確認し、他の人がどのようにプロジェクトに参加し、改良を提出できるかを概説する貢献ガイドラインを作成しましょう。選択したライセンスをプロジェクトに含めることを忘れないでください。

  3. ホスティング・プラットフォームでプロジェクトを公開する:選択したプラットフォームにコードをアップロードし、ライセンスファイルを含めることを忘れないでください!公開コード・リポジトリ GitHubまたは GitLabなどの公開コード・リポジトリは、オープンソース・プロジェクトをホストするための一般的なオプションです。

それで終わりです!あなたのプロジェクトはオープンソースとみなされ、他の人がすぐに利用できるようになります。

オープンソースプロジェクトを共有しましょう!

私たちは、開発者が私たちの オープンソースのVonage APIとSDKを使用した.もしあなたがまだVonage開発者コミュニティの一員でないなら、ぜひ私たちのSlackチャンネルに参加してください。 Slackチャンネルに参加してくださいそして X(以前はTwitterとして知られていました)で私たちのチームをフォローしてください。このブログが面白かったら(あるいは面白くなかったら)、遠慮なく Xで教えてくださいで、あなたのお気に入りのオープンソースプロジェクトを教えてください!

シェア:

https://a.storyblok.com/f/270183/384x384/b68093ec17/diana-pham.png
Diana Phamデベロッパー・アドボケイト

ダイアナはVonageのデベロッパー・アドボケイト。新鮮な牡蠣を食べるのが好き。