|
オープンソースは、分散型モデルとコミュニティの貢献を使用して開発されたソフトウェアを通じて、コミュニティと業界の問題にオープンに取り組む、活気のある有益なエコシステムです。 このエコシステムの爆発的な成長に伴い、多くの開発者が参加して新しいオープンソースプロジェクトを構築したいと考えています。問題は、どうすればこれを成功させることができるかということです。 この記事では、オープンソースプロジェクトのライフサイクルと構造を明らかにします。オープンソースプロジェクトの内部的な仕組みを概観し、私の個人的な経験に基づいて、成功し持続可能なプロジェクトを構築する方法を紹介します。 オープンソースの概要Open Source Initiative (OSI) は「オープンソース」の正式かつ詳細な定義を提供していますが、Wikipedia では次のようにわかりやすく要約されています。 オープンソース ソフトウェアとは、著作権者がユーザーにソフトウェアとそのソース コードをあらゆる目的で使用、調査、変更、配布する権利を付与するライセンスに基づいてリリースされるコンピュータ ソフトウェアを指します。
オープンソースソフトウェアは通常、インターネット上で公開されているコードを持ち、複数のチームまたは個人によって開発されます。そのため、地域、文化、技術的背景が異なる人々とのコラボレーションが求められ、多くの場合、遠隔地でのコラボレーションが必要になります。 オープンソースプロジェクトの構成オープンソースプロジェクトは、人体のように、システム全体を構成する複数の構造から構成されています。それらは、人(ミクロ)とドキュメント(マクロ)の2つの分野に分かれていると思います。 部門1:人事通常、オープンソース プロジェクトには次のグループの人々が含まれます。 - 作成者: プロジェクトを作成した人
- メンテナー: プロジェクト全体を積極的に管理する人物。
- 貢献者: プロジェクトに貢献する人々 (あなたのような)。
- ユーザー: 開発者や非技術者のクライアントなど、このプロジェクトを使用する人々。
- ワーキング グループ: これらのグループは、ドキュメント、ガイドライン、テスト、DevOps、コード レビュー、パフォーマンス、調査などの一連のトピックに焦点を当てて、貢献者を特定のドメインに分割します。
- スポンサー: プロジェクトに資金援助を提供する人。
新しいプロジェクトを構築する準備をする際には、上記のリストにある各グループを考慮する必要があります。それぞれについて、どのような計画を立てていますか? - メンテナーについては、任命基準を定めてください。一般的に、積極的な貢献者が最も適したメンテナーです。
- ユーザーと貢献者のために、信頼できるドキュメント、オンボーディング プロセス、およびプロジェクトを成功させるために必要なすべてのものを準備する必要があります。
- ワーキング グループについては、それらが必要かどうか、また将来プロジェクトを論理的にどのように細分化できるかを判断します。
- 最後に、スポンサーに対しては、スポンサーになることを選択してもらえるよう、プロジェクトに関する十分なデータと情報を提供する必要があります。
プロジェクト開始時にこれらの問題をすべて解決する必要はありません。しかし、適切な基盤を築き、将来の拡張プロジェクトが確実に成功するように、早い段階で検討しておくことは賢明です。 ブランチ2: ドキュメントオープンソース プロジェクトには通常、プレーン テキストまたはマークダウン形式の次のドキュメントが含まれます。 -
License :この法的文書は、このプロジェクトを自由に使用、改変、共有する方法と範囲を規定しています。OSI承認のライセンス一覧はOSIのウェブサイトでご覧いただけます。明確なライセンスがなければ、プロジェクトは法的にオープンソースとは言えません。 - 行動規範:この文書は、プロジェクトに何らかの形で参加するすべての人に対して、ルール、規範、許容される慣行、そして責任(ルール違反があった場合の対応を含む)を概説しています。貢献者会議は良い例であり、オープンソース(クリエイティブ・コモンズ・ライセンス)です。
-
READMEファイル:このファイルは、新規ユーザーにプロジェクトを紹介するものです。GitLab、GitHub、Codebergなどの多くのGitホスティングサイトでは、リポジトリの初期ファイルリストの下にREADMEファイルが表示されます。通常、READMEファイルには、必要なドキュメントと、その他のドキュメントへのリンクが含まれています。 -
Documentation : ガイド、API リファレンス、チュートリアルなど、このプロジェクトのすべてのリソースが含まれるファイルまたはディレクトリです。 -
Contributingガイドライン: このセクションには、インストール ガイド、構成手順など、プロジェクトに貢献する方法を説明するドキュメントが含まれています。 -
Security : 脆弱性レポートやセキュリティ問題の提出方法を説明するドキュメントが含まれています。
さらに、プロジェクトには通常、トピック、サポート、コラボレーションに関する Web ページがあります。 一般的には次のようなものが含まれます。 - 問題またはバグの報告: ユーザーはバグを報告できます。このページでは、開発者が1つ以上のバグを修正するためのタスクを割り当てることもできます。
- プルリクエストまたはマージリクエスト:機能強化の提案やバグ修正を提供する場所です。これらのパッチは誰でも作成でき、メンテナーによるレビューを経て、プロジェクトコードにマージされます。
- ディスカッション:メンテナー、貢献者、ユーザーがオープンソースプロジェクトについて議論する場。専用のウェブサイト、または共同コーディングウェブサイト内のフォーラムとして利用できます。
ほとんどのプロジェクトでは、オンライン チャットを通じてコミュニティ メンバー間の対話や交流のためのコミュニケーション チャネルも提供しています。 ライセンスライセンスは、オープンソースプロジェクトを立ち上げる前に考慮すべき、おそらく最もシンプルでありながら最も重要な基準です。ライセンスは、プロジェクトのソースコードやその他のコンポーネントの使用、変更、共有を許可する条件を定義します。 ライセンスには多くの法的用語が含まれており、多くの人が十分に理解していないことがあります。私はchoosealicense.comを利用しています。このサイトは、対象コミュニティ、コードを使用している人からパッチを受け取りたいかどうか、あるいは他の人がコードを使用したとしても改良点を共有しないかどうかなどに基づいて、ライセンスを選択するのに役立ちます。 画像提供: (Bolaji Ayodeji、CC BY-SA 4.0) これは、MITライセンスとGNU GPLv3ライセンスのどちらを使用するべきかについてのガイダンスです。また、コミュニティに貢献する人々には、コミュニティが推奨するライセンスを使用することを推奨しています。この表には、他のライセンスも利用可能であることも記載されています。テキスト版はchoosealicense.comで入手可能で、より詳細な情報へのリンクも含まれています。 オープンソースプロジェクトを作成する13の段階ここで重要な質問は、オープンソース ソフトウェア プロジェクトをどのように開始するかということです。 オープンソース プロジェクトのさまざまな段階についての私の理解は次のとおりです。 - アイデアをブレインストーミングし、アウトラインを作成し、注意深く記録します。
- 自分のアイデアに基づいて開発を始めましょう。これには通常、適切なツールとテクノロジースタックの決定、コードの記述、コードのバージョン管理、デバッグ、コーヒーを飲むこと、Stack Overflowを閲覧すること、他のオープンソースプロジェクトを利用すること、睡眠、特定の問題を解決するために何かを構築すること、あるいは単に楽しみのために何かを構築することが含まれます。
- ローカル テスト プロジェクトでは、必要に応じて単体テストと統合テストを記述し、必要に応じて CI/CD パイプラインを設定し、ステージング ブランチ (メイン ブランチにマージする前にコードをテストするためのテスト ブランチ) を作成し、プロジェクトのデプロイに必要なその他のタスクを完了します。
- 効果的で質の高いドキュメントを作成してください。ドキュメントには、プロジェクトの目的、プロジェクトの有用性、プロジェクトの使い始め方(使用、インストール、設定、貢献)、そしてサポートを受けられる場所などが記載されている必要があります。
- 使用する予定のコーディング規約をすべて文書化してください。Linter(コード検査ツール)、コードフォーマッタ、Gitフック、Commitizen(コメント標準化ツール)などのツールを活用しましょう。
- 適切なライセンスを選択し、Readme ファイルを作成します。
- プロジェクトをインターネット上で公開します (プライベート リポジトリとして開始されていた可能性がありますが、この手順で公開されます)。
- 更新を公開および記録するためのプロセスを確立します (Changesets などのツールを使用できます)。
- プロジェクトを世界に宣伝しましょう!ソーシャルメディアへの投稿、ニュースレターの作成、友達とのプライベートな共有、製品のリリース、ライブ配信など、おなじみのマーケティング戦略を自由に活用できます。
- Open Collective、GitHub Sponsors、Patreon、Buy Me a Coffee、LiberaPay などの利用可能な資金調達プラットフォームを通じて資金を調達してください。これらのプラットフォームでアカウントを作成するときは、プロジェクトのドキュメントと Web サイトに関連リンクを追加してください。
- プロジェクトを中心にコミュニティを構築します。
- 必要に応じて、プロジェクト管理を適切な部分に分割するためのワーキング グループの導入を検討してください。
- プロジェクトの背後にあるリソースと人員を維持するために、新しいコンセプトを継続的に実装します。
プロジェクトの進行に伴い、様々なコンポーネントを評価することが重要になります。これにより、評価と将来の開発戦略に活用できるデータが得られます。 今すぐプロジェクトを始めましょう!この記事が、あなたが検討しているプロジェクトを前進させる一助となれば幸いです。 これをガイドとして使用し、一流のオープンソース ソフトウェア プロジェクトを構築する際に私が見逃したギャップを埋めることができます。 |