コンテンツへスキップ

Ultralytics オープンソースYOLO リポジトリへの貢献

まずはじめに、Ultralytics オープンソースYOLO リポジトリへの貢献に関心をお寄せいただき、ありがとうございます!あなたの貢献はプロジェクトを改善し、コミュニティに利益をもたらします。この文書は、あなたが始めるためのガイドラインとベストプラクティスを提供します。

目次

  1. 行動規範
  2. プルリクエストによる貢献
  3. バグの報告
  4. ライセンス
  5. 結論

行動規範

すべての貢献者は、誰もが歓迎され、包括的な環境を確保するために、行動規範を遵守することが期待されています。

プルリクエストによる貢献

プルリクエストという形での貢献を歓迎します。レビューをスムーズに行うために、以下のガイドラインに従ってください:

  1. リポジトリをフォークする:Ultralytics YOLO リポジトリを自分の GitHub アカウントにフォークする。

  2. ブランチを作る:フォークしたリポジトリに新しいブランチを作成します。

  3. 変更を加える:貢献したい変更を加えます。あなたの変更がプロジェクトのコーディングスタイルに従い、新たなエラーや警告を引き起こさないようにしてください。

  4. 変更をテストする:変更が期待通りに動作し、新たな問題が発生しないことを確認するために、ローカルでテストしてください。

  5. 変更をコミットする:説明的なコミットメッセージを添えて変更をコミットしてください。コミットメッセージには、関連する問題番号を必ず含めてください。

  6. プルリクエストを作成する:フォークしたリポジトリからメインのUltralytics YOLO リポジトリにプルリクエストを作成します。プルリクエストの説明には、あなたの変更点と、それがプロジェクトをどのように改善するのかを明確に説明してください。

CLAサイン会

私たちがあなたのプルリクエストを受け入れる前に、あなたはコントリビューターライセンス契約(CLA)に署名する必要があります。これは、あなたがUltralytics YOLO リポジトリに貢献する条件に同意することを表明する法的文書です。CLAは、あなたの貢献が適切にライセンスされ、プロジェクトがAGPL-3.0 ライセンスの下で配布され続けることを保証します。

CLAに署名するには、PRを提出した後、CLAボットが提供する指示に従って、PRにコメントを追加してください:

I have read the CLA Document and I sign the CLA

Googleスタイルのドキュメントストリング

新しい関数やクラスを追加する際には、他の開発者のために明確で簡潔なドキュメントを提供するために、Googleスタイルのdocstringを含めるようにしてください。そうすることで、あなたの貢献が理解しやすく保守しやすいものになります。

ドクストリングの例

この例では、Googleスタイルの両方の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スタイルの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

小規模または単純な関数は、1行のdocstringを使用することができます。docstringは3つのダブルクォートを使用し、大文字で始まりピリオドで終わる完全な文章でなければならないことに注意してください。

def example_small_function(arg1: int, arg2: int = 4) -> bool:
    """Example function that demonstrates a single-line docstring."""
    return arg1 == arg2

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 プロジェクトへの貢献に関心をお寄せいただき、ありがとうございます。あなたの参加は、私たちのソフトウェアの未来を形成し、革新と協力のコミュニティを育成する上で非常に重要です。コードの改善、バグの報告、機能の提案など、あなたの貢献は大きな影響を与えます。

私たちは、皆さんのアイデアが実際に使われているのを見たいと思っていますし、物体検出技術の進歩に対する皆さんのコミットメントに感謝しています。このエキサイティングなオープンソースの旅で、共に成長し、革新し続けましょう。ハッピーコーディング!🚀🌟



作成日:2023-11-12 更新日:2024-03-08
作成者:glenn-jocher(4)

コメント