Ultralytics オープンソースYOLO リポジトリへの貢献
貢献に関心をお寄せいただきありがとうございます Ultralytics オープンソース YOLO リポジトリ!あなたの貢献はプロジェクトを強化し、コミュニティ全体に利益をもたらします。このドキュメントでは、作業の開始に役立つガイドラインとベスト プラクティスについて説明します。
目次
行動規範
すべての貢献者は、誰もが歓迎され、包括的な環境を確保するための行動規範を遵守しなければなりません。
プルリクエストによる貢献
プルリクエストの形でのコントリビューションを歓迎します。審査プロセスを効率化するには、次のガイドラインに従ってください。
-
リポジトリをフォークする:Ultralytics YOLO リポジトリをあなたのGitHubアカウントにフォークする。
-
ブランチを作る:フォークしたリポジトリに新しいブランチを作成します。
-
変更を加える:あなたの変更がプロジェクトのコーディングスタイルに従い、新たなエラーや警告を引き起こさないことを確認してください。
-
変更をテストする:変更が期待通りに動作し、新たな問題が発生しないことを確認するために、ローカルでテストしてください。
-
変更をコミットする:説明的なコミットメッセージを添えて変更をコミットしてください。コミットメッセージには、関連する問題番号を含めてください。
-
プルリクエストを作成する:フォークしたリポジトリからメインのUltralytics YOLO リポジトリにプルリクエストを作成します。あなたの変更点と、それがプロジェクトをどのように改善するのかを明確に説明してください。
CLAサイン会
私たちがあなたのプルリクエストを受け入れる前に、あなたはコントリビューターライセンス契約(CLA)に署名しなければなりません。この法的文書は、あなたの貢献が適切にライセンスされ、プロジェクトがAGPL-3.0 ライセンスの下で配布され続けることを保証します。
CLAに署名するには、PRを提出した後、CLAボットが提供する指示に従って、PRにコメントを追加してください:
Google-スタイル・ドックストリング
新しい関数やクラスを追加するときは、Google-styledocstringを含めて、他の開発者のために明確で簡潔なドキュメントを提供してください。これにより、あなたの貢献が理解しやすく、保守しやすくなります。
ドクストリングの例
この例では、Google-styleのdocstringを示している。入力と出力の両方が types
常に括弧で囲む必要があります。 (bool)
.
def example_function(arg1, arg2=4):
"""
Example function that demonstrates Google-style docstrings.
Args:
arg1 (int): The first argument.
arg2 (int): The second argument. Default value is 4.
Returns:
(bool): True if successful, False otherwise.
Examples:
>>> result = example_function(1, 2) # returns False
"""
if arg1 == arg2:
return True
return False
この例では、Google-styleのdocstringと、引数と戻り値の型のヒントの両方を示しているが、どちらも必須というわけではない。
def example_function(arg1: int, arg2: int = 4) -> bool:
"""
Example function that demonstrates Google-style docstrings.
Args:
arg1: The first argument.
arg2: The second argument. Default value is 4.
Returns:
True if successful, False otherwise.
Examples:
>>> result = example_function(1, 2) # returns False
"""
if arg1 == arg2:
return True
return False
GitHub アクション CI テスト
プルリクエストをマージする前に、GitHub Actions の継続的インテグレーション(CI) テストに合格する必要があります。これらのテストには、リンティング、ユニットテスト、その他のチェックが含まれ、あなたの変更がプロジェクトの品質基準を満たしていることを確認します。GitHub Actions の出力を確認し、問題があれば修正しましょう。
バグの報告
バグ報告はプロジェクトの品質を維持するために重要な役割を果たすので、私たちはバグ報告を高く評価します。バグを報告する際には、Minimum Reproducible Example (再現可能な最小限の例): 問題を再現する明確で簡潔なコード例を提供することが重要です。これはバグの迅速な特定と解決に役立ちます。
ライセンス
Ultralytics GNU Affero General Public License v3.0 (AGPL-3.0) をリポジトリに採用し、ソフトウェア開発におけるオープン性、透明性、共同作業の強化を促進しています。この強力なコピーレフト・ライセンスは、すべてのユーザと開発者がソフトウェアを使用、変更、共有する自由を保持することを保証します。また、コミュニティのコラボレーションを促進し、あらゆる改良が誰にでもアクセス可能であることを保証します。
ユーザーおよび開発者は、Ultralytics オープンソースコミュニティに効果的かつ倫理的に貢献するために、AGPL-3.0 の条項をよく理解することが推奨されます。
結論
Ultralytics オープンソース YOLO プロジェクトへの貢献に関心をお寄せいただき、ありがとうございます。あなたの参加は、私たちのソフトウェアの未来を形成し、革新と協力のコミュニティを育成する上で非常に重要です。コードの改善、バグの報告、機能の提案など、あなたの貢献は大きな影響を与えます。
皆様のアイデアが実際に発揮されるのを楽しみにしており、物体検出技術の進歩に対する皆様のご尽力に感謝いたします。このエキサイティングなオープンソースの旅で、共に成長し、革新を続けましょう。ハッピーコーディング!🚀🌟
よくあるご質問
Ultralytics YOLO オープンソースのリポジトリに貢献するメリットは?
Ultralytics YOLO オープンソースリポジトリへの貢献は、ソフトウェアの改良に役立ち、コミュニティ全体にとってより堅牢で豊富な機能を実現します。貢献には、コードの拡張、バグ修正、ドキュメントの改善、新機能の実装などが含まれます。さらに、貢献することで、他の熟練した開発者やその分野の専門家と協力する機会が得られ、あなた自身のスキルや評判を高めることができます。貢献の始め方については、プルリクエストによる貢献のセクションを参照してください。
Ultralytics YOLO のコントリビューター・ライセンス契約(CLA)に署名するにはどうすればよいですか?
コントリビューターライセンス契約 (CLA) に署名するには、プルリクエストを送信した後、CLA bot が提供する指示に従ってください。これにより、あなたの貢献がAGPL-3.0 ライセンスの下で適切にライセンスされ、オープンソースプロジェクトの法的整合性が維持されます。プルリクエストにコメントを追加してください:
詳細については、CLA署名のセクションを参照してください。
Google-style docstringsとは何ですか?また、なぜUltralytics YOLO の投稿に必要なのですか?
Google-スタイルのdocstringは、関数やクラスに対して明確で簡潔なドキュメントを提供し、コードの可読性と保守性を向上させます。これらのdocstringは、関数の目的、引数、戻り値の概要を特定の書式規則で記述します。Ultralytics YOLO に貢献する場合、Google-style docstrings に従うことで、あなたの追加が理解しやすく、文書化されたものになります。例とガイドラインについては、Google-StyleDocstringsセクションをご覧ください。
自分の変更が GitHub Actions CI のテストに合格していることを確認するにはどうすればよいですか?
プルリクエストがマージされる前に、GitHub Actions の継続的インテグレーション (CI) テストに合格する必要があります。これらのテストには、リンティング、ユニットテスト、その他のチェックが含まれ、コードがプロジェクトの品質基準を満たしていることを確認します。GitHub Actions の出力を確認し、問題があれば対処しましょう。CI プロセスの詳細とトラブルシューティングのヒントについては、GitHub Actions CI Testsのセクションを参照してください。
Ultralytics YOLO リポジトリのバグを報告するには?
バグを報告するには、バグ報告とともに、明確で簡潔な「再現可能な最小限の例(Minimum Reproducible Example)」を提出してください。これは、開発者が問題を素早く特定し、修正するのに役立ちます。あなたの例は最小限のものでありながら、問題を再現するのに十分なものであることを確認してください。バグ報告の詳細な手順については、バグ報告のセクションを参照してください。