Zum Inhalt springen

Mitwirkung an Ultralytics Open-Source-Projekten

Herzlich willkommen! Wir freuen uns, dass Sie einen Beitrag zu unseren Ultralytics Open-Source-Projekten beizutragen. Ihre Beteiligung trägt nicht nur zur Verbesserung der Qualität unserer Repositories bei, sondern kommt auch der gesamten Gemeinschaft zugute. Dieser Leitfaden enthält klare Richtlinien und bewährte Verfahren, die Ihnen den Einstieg erleichtern.

Ultralytics Open-Source-Mitwirkende



Beobachten: Wie man zum Ultralytics Repository beiträgt | Ultralytics Modelle, Datensätze und Dokumentation 🚀

Verhaltenskodex

Um ein einladendes und integratives Umfeld für alle zu schaffen, müssen sich alle Mitwirkenden an unseren Verhaltenskodex halten. Respekt, Freundlichkeit und Professionalität sind das Herzstück unserer Gemeinschaft.

Beitragen über Pull Requests

Wir freuen uns sehr über Beiträge in Form von Pull Requests. Um den Überprüfungsprozess so reibungslos wie möglich zu gestalten, folgen Sie bitte diesen Schritten:

  1. Forken Sie das Repository: Beginnen Sie damit, das Repository Ultralytics YOLO in Ihr GitHub-Konto zu forken.

  2. Erstellen Sie einen Zweig: Erstellen Sie einen neuen Zweig in Ihrem geforkten Repository mit einem klaren, beschreibenden Namen, der Ihre Änderungen widerspiegelt.

  3. Nehmen Sie Ihre Änderungen vor: Stellen Sie sicher, dass Ihr Code den Stilrichtlinien des Projekts entspricht und keine neuen Fehler oder Warnungen enthält.

  4. Testen Sie Ihre Änderungen: Testen Sie Ihre Änderungen vor dem Absenden lokal, um sicherzustellen, dass sie wie erwartet funktionieren und keine neuen Probleme verursachen.

  5. Übertragen Sie Ihre Änderungen: Übertragen Sie Ihre Änderungen mit einer prägnanten und aussagekräftigen Commit-Nachricht. Wenn sich Ihre Änderungen auf ein bestimmtes Problem beziehen, geben Sie die Nummer des Problems in Ihrer Commit-Nachricht an.

  6. Erstellen Sie einen Pull-Request: Schicken Sie einen Pull-Request von Ihrem Forked Repository an das Haupt-Repository Ultralytics YOLO . Geben Sie eine klare und detaillierte Erklärung Ihrer Änderungen und wie sie das Projekt verbessern.

CLA Unterzeichnung

Bevor wir Ihre Anfrage zusammenführen können, müssen Sie unser Contributor License Agreement (CLA) unterschreiben. Diese rechtliche Vereinbarung stellt sicher, dass Ihre Beiträge ordnungsgemäß lizenziert sind, so dass das Projekt weiterhin unter der AGPL-3.0 Lizenz verbreitet werden kann.

Nachdem Sie Ihre Anfrage eingereicht haben, wird der CLA-Bot Sie durch den Signierungsprozess leiten. Um die GAV zu unterzeichnen, fügen Sie einfach einen Kommentar in Ihren PR ein, in dem Sie angeben:

I have read the CLA Document and I sign the CLA

Google-Stil Docstrings

Wenn Sie neue Funktionen oder Klassen hinzufügen, fügen Sie bitte Google-style docstrings ein. Diese docstrings bieten eine klare, standardisierte Dokumentation, die anderen Entwicklern hilft, Ihren Code zu verstehen und zu pflegen.

Beispiel Docstrings

Dieses Beispiel veranschaulicht einen Google-style docstring. Stellen Sie sicher, dass sowohl Eingabe als auch Ausgabe types werden immer in Klammern gesetzt, z.B., (bool).

def example_function(arg1, arg2=4):
    """
    Example function demonstrating Google-style docstrings.

    Args:
        arg1 (int): The first argument.
        arg2 (int): The second argument, with a default value of 4.

    Returns:
        (bool): True if successful, False otherwise.

    Examples:
        >>> result = example_function(1, 2)  # returns False
    """
    if arg1 == arg2:
        return True
    return False

Dieses Beispiel enthält sowohl einen Google-style docstring als auch Typ-Hinweise für Argumente und Rückgaben, obwohl die Verwendung von beiden unabhängig voneinander auch akzeptabel ist.

def example_function(arg1: int, arg2: int = 4) -> bool:
    """
    Example function demonstrating Google-style docstrings.

    Args:
        arg1: The first argument.
        arg2: The second argument, with a default value of 4.

    Returns:
        True if successful, False otherwise.

    Examples:
        >>> result = example_function(1, 2)  # returns False
    """
    if arg1 == arg2:
        return True
    return False

Für kleinere oder einfachere Funktionen kann ein einzeiliger Docstring ausreichend sein. Der docstring muss drei doppelte Anführungszeichen verwenden, ein vollständiger Satz sein, mit einem Großbuchstaben beginnen und mit einem Punkt enden.

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

GitHub-Aktionen CI-Tests

Alle Pull-Anfragen müssen die GitHub Actions Continuous Integration (CI) Tests bestehen, bevor sie zusammengeführt werden können. Diese Tests umfassen Linting, Unit-Tests und andere Prüfungen, um sicherzustellen, dass Ihre Änderungen den Qualitätsstandards des Projekts entsprechen. Überprüfen Sie die CI-Ausgabe und beheben Sie alle auftretenden Probleme.

Bewährte Praktiken für Codebeiträge

Wenn Sie Code zu Ultralytics beisteuern, sollten Sie diese bewährten Verfahren beachten:

  • Vermeiden Sie doppelten Code: Verwenden Sie vorhandenen Code wieder, wo immer dies möglich ist, und minimieren Sie unnötige Argumente.
  • Nehmen Sie kleinere, gezielte Änderungen vor: Konzentrieren Sie sich auf gezielte Änderungen und nicht auf groß angelegte Veränderungen.
  • Vereinfachen Sie, wenn möglich: Suchen Sie nach Möglichkeiten, den Code zu vereinfachen oder unnötige Teile zu entfernen.
  • Beachten Sie die Kompatibilität: Bevor Sie Änderungen vornehmen, sollten Sie überlegen, ob diese den vorhandenen Code, der Ultralytics verwendet, beeinträchtigen könnten.
  • Verwenden Sie eine einheitliche Formatierung: Tools wie Ruff Formatter können helfen, stilistische Konsistenz zu wahren.
  • Fügen Sie geeignete Tests hinzu: Fügen Sie Tests für neue Funktionen ein, um sicherzustellen, dass sie wie erwartet funktionieren.

Überprüfung von Pull Requests

Die Überprüfung von Pull Requests ist eine weitere wertvolle Möglichkeit, einen Beitrag zu leisten. Bei der Überprüfung von PRs:

  • Prüfen Sie auf Unit-Tests: Überprüfen Sie, ob der PR Tests für neue Funktionen oder Änderungen enthält.
  • Überprüfen Sie die Aktualisierungen der Dokumentation: Stellen Sie sicher, dass die Dokumentation aktualisiert wird, um Änderungen zu berücksichtigen.
  • Bewerten Sie die Auswirkungen auf die Leistung: Überlegen Sie, wie sich Änderungen auf die Leistung auswirken könnten.
  • Überprüfen Sie die CI-Tests: Bestätigen Sie, dass alle Tests der kontinuierlichen Integration erfolgreich sind.
  • Geben Sie konstruktives Feedback: Bieten Sie spezifisches, klares Feedback zu allen Problemen oder Bedenken.
  • Erkennen Sie Bemühungen an: Erkennen Sie die Arbeit des Autors an, um eine positive Atmosphäre der Zusammenarbeit zu schaffen.

Melden von Fehlern

Wir schätzen Fehlerberichte sehr, da sie uns helfen, die Qualität unserer Projekte zu erhalten. Wenn Sie einen Fehler melden, geben Sie bitte ein minimal reproduzierbares Beispielan - eineinfaches, klares Codebeispiel, das das Problem konsistent reproduziert. So können wir das Problem schnell identifizieren und beheben.

Lizenz

Ultralytics verwendet für seine Repositories die GNU Affero General Public License v3.0 (AGPL-3.0 ). Diese Lizenz fördert Offenheit, Transparenz und gemeinschaftliche Verbesserungen bei der Softwareentwicklung. Sie gewährleistet, dass alle Nutzer die Freiheit haben, die Software zu nutzen, zu verändern und weiterzugeben, und fördert so eine starke Gemeinschaft der Zusammenarbeit und Innovation.

Wir ermutigen alle Mitwirkenden, sich mit den Bedingungen der AGPL-3.0 Lizenz vertraut zu machen, um einen effektiven und ethischen Beitrag zur Ultralytics Open-Source-Gemeinschaft zu leisten.

Open-Sourcing Ihrer Projekte mit YOLO und AGPL-3.0 Compliance

Wenn Sie planen, Ihr eigenes Projekt unter Verwendung von YOLO Modellen zu entwickeln und zu veröffentlichen, stellt die GNU Affero General Public License v3.0 (AGPL-3.0 ) sicher, dass alle abgeleiteten Werke offen und zugänglich bleiben. Dieser Abschnitt enthält Anleitungen, einschließlich Schritte, bewährte Verfahren und Anforderungen, die Ihnen dabei helfen, Ihr Projekt unter Einhaltung der AGPL-3.0 als Open-Source zu veröffentlichen.

Optionen für den Start Ihres Projekts

Sie können Ihr Projekt mit einem dieser Ansätze in Gang bringen:

  1. Forken des Ultralytics YOLO
    Forken Sie das offizielle Ultralytics YOLO Repository direkt von ultralytics

    • Verwenden Sie diese Option, wenn Sie vorhaben, direkt auf der neuesten Implementierung von YOLO aufzubauen.
    • Ändern Sie den Forked Code nach Bedarf und stellen Sie dabei die Übereinstimmung mit AGPL-3.0 sicher.
  2. Start aus dem Ultralytics
    Verwenden Sie das Ultralytics , das unter ultralytics verfügbar ist ultralytics

    • Ideal für den Start eines sauberen, modularen Projekts mit vorkonfigurierten Best Practices.
    • Diese Option bietet einen einfachen Ausgangspunkt für Projekte, die YOLO Modelle integrieren oder erweitern.

Was Sie für Open-Source benötigen

Um die Anforderungen von AGPL-3.0 zu erfüllen, müssen Sie die folgenden Komponenten Ihres Projekts öffentlich zugänglich machen:

  1. Ihr gesamter Projekt-Quellcode:

    • Fügen Sie den gesamten Code für das größere Projekt ein, das Ihre YOLO Modelle, Skripte und Dienstprogramme enthält.
  2. Modellgewichte (falls geändert):

    • Geben Sie alle fein abgestimmten oder geänderten Modellgewichte als Teil des Open-Source-Projekts weiter.
  3. Konfigurationsdateien:

    • Bereitstellung von Konfigurationsdateien wie .yaml oder .json die den Trainingsaufbau, die Hyperparameter oder die Einsatzkonfigurationen festlegen.
  4. Trainingsdaten (falls weiterverteilbar):

    • Wenn Sie vorverarbeitete oder generierte Daten einbeziehen, die weiterverteilt werden können, stellen Sie sicher, dass sie Teil des Repositorys sind oder eindeutig verlinkt sind.
  5. Komponenten für Webanwendungen:

    • Fügen Sie den gesamten Backend- und Frontend-Quellcode ein, wenn es sich bei Ihrem Projekt um eine Webanwendung handelt, insbesondere die serverseitigen Komponenten.
  6. Dokumentation:

    • Fügen Sie eine klare Dokumentation über die Verwendung, Erstellung und Erweiterung Ihres Projekts bei.
  7. Skripte zur Erstellung und Bereitstellung:

    • Gemeinsame Nutzung von Skripten für die Einrichtung der Umgebung, die Erstellung der Anwendung und ihre Bereitstellung, wie z. B. Dockerfiles, requirements.txt, oder Makefiles.
  8. Testrahmen:

    • Öffnen Sie Ihre Testfälle, wie Unit- und Integrationstests, um Reproduzierbarkeit und Zuverlässigkeit zu gewährleisten.
  9. Änderungen durch Dritte:

    • Geben Sie den Quellcode für alle Bibliotheken von Drittanbietern an, die Sie geändert haben.

Schritte zu Open-Source für Ihr Projekt

  1. Wählen Sie Ihren Startpunkt:

    • Forken Sie das Ultralytics YOLO Repository oder beginnen Sie mit dem Ultralytics Template Repository.
  2. Legen Sie Ihre Lizenz fest:

    • Hinzufügen einer LICENSE Datei, die den Text AGPL-3.0 enthält.
  3. Kredit Vorgelagerte Beiträge:

    • Geben Sie in Ihrer README die Adresse Ultralytics YOLO an. Zum Beispiel:
      This project builds on [Ultralytics YOLO](https://github.com/ultralytics/ultralytics), licensed under AGPL-3.0.
      
  4. Veröffentlichen Sie Ihren Code:

    • Verschieben Sie Ihr gesamtes Projekt (einschließlich der oben aufgeführten Komponenten) in ein öffentliches GitHub-Repository.
  5. Dokumentieren Sie Ihr Projekt:

    • Schreiben Sie eine klare README.md mit Anleitungen für die Einrichtung, Verwendung und Beiträge.
  6. Beiträge freigeben:

    • Richten Sie einen Issue Tracker und Richtlinien für Beiträge ein, um die Zusammenarbeit zu fördern.

Wenn Sie diese Schritte befolgen und sicherstellen, dass Sie alle erforderlichen Komponenten einbeziehen, erfüllen Sie die Anforderungen von AGPL-3.0 und leisten einen sinnvollen Beitrag zur Open-Source-Gemeinschaft. Lassen Sie uns gemeinsam die Zusammenarbeit und die Innovation im Bereich der Computer Vision weiter vorantreiben! 🚀

Beispiel einer Repository-Struktur

Nachstehend finden Sie eine Beispielstruktur für ein AGPL-3.0 Projekt. Siehe https://github.com/ultralytics /template für Details.

my-yolo-project/
├── LICENSE               # AGPL-3.0 license text
├── README.md             # Project overview and license information
├── src/                  # Source code for the project
│   ├── model.py          # YOLO-based model implementation
│   ├── utils.py          # Utility scripts
│   └── ...
├── pyproject.toml        # Python dependencies
├── tests/                # Unit and integration tests
├── .github/              # GitHub Actions for CI
│   └── workflows/
│       └── ci.yml        # Continuous integration configuration
└── docs/                 # Project documentation
    └── index.md

Wenn Sie diesen Leitfaden befolgen, können Sie sicherstellen, dass Ihr Projekt mit AGPL-3.0 konform bleibt und gleichzeitig einen Beitrag zur Open-Source-Gemeinschaft leistet. Ihre Einhaltung stärkt das Ethos der Zusammenarbeit, Transparenz und Zugänglichkeit, das den Erfolg von Projekten wie YOLO fördert.

Schlussfolgerung

Vielen Dank für Ihr Interesse an der Mitwirkung an Ultralytics Open-Source-Projekten YOLO . Ihre Mitwirkung ist wichtig, um die Zukunft unserer Software zu gestalten und eine lebendige Gemeinschaft für Innovation und Zusammenarbeit aufzubauen. Ob Sie den Code verbessern, Fehler melden oder neue Funktionen vorschlagen, Ihre Beiträge sind von unschätzbarem Wert.

Wir freuen uns darauf, Ihre Ideen zu verwirklichen und schätzen Ihr Engagement für die Weiterentwicklung der Objekterkennungstechnologie. Lassen Sie uns gemeinsam auf dieser spannenden Open-Source-Reise weiter wachsen und innovativ sein. Viel Spaß beim Kodieren! 🚀🌟

FAQ

Warum sollte ich zu den Open-Source-Repositories Ultralytics YOLO beitragen?

Beiträge zu den Open-Source-Repositories Ultralytics YOLO verbessern die Software und machen sie für die gesamte Gemeinschaft robuster und funktionsreicher. Beiträge können Codeverbesserungen, Fehlerkorrekturen, Verbesserungen der Dokumentation und die Implementierung neuer Funktionen umfassen. Außerdem können Sie durch Ihre Beiträge mit anderen erfahrenen Entwicklern und Experten auf dem Gebiet zusammenarbeiten und so Ihre eigenen Fähigkeiten und Ihren Ruf verbessern. Einzelheiten zu den ersten Schritten finden Sie im Abschnitt Beiträge über Pull Requests.

Wie unterschreibe ich den Contributor License Agreement (CLA) für Ultralytics YOLO ?

Um die Lizenzvereinbarung für Mitwirkende (CLA) zu unterzeichnen, folgen Sie den Anweisungen des CLA-Bots, nachdem Sie Ihren Pull-Antrag eingereicht haben. Dieser Vorgang stellt sicher, dass Ihre Beiträge ordnungsgemäß unter der AGPL-3.0 Lizenz lizenziert werden und die rechtliche Integrität des Open-Source-Projekts gewahrt bleibt. Fügen Sie Ihrer Anfrage einen Kommentar hinzu, der angibt:

I have read the CLA Document and I sign the CLA

Weitere Informationen finden Sie im Abschnitt über die CLA-Signatur.

Was sind Google-style docstrings, und warum sind sie für Ultralytics YOLO Beiträge erforderlich?

Google-Stil bieten eine klare, prägnante Dokumentation für Funktionen und Klassen und verbessern die Lesbarkeit und Wartbarkeit des Codes. Diese docstrings umreißen den Zweck der Funktion, die Argumente und die Rückgabewerte mit spezifischen Formatierungsregeln. Wenn Sie einen Beitrag zu Ultralytics YOLO leisten, stellen Sie durch die Einhaltung von Google-style docstrings sicher, dass Ihre Ergänzungen gut dokumentiert und leicht verständlich sind. Beispiele und Richtlinien finden Sie im Abschnitt Google-Style Docstrings.

Wie kann ich sicherstellen, dass meine Änderungen die GitHub Actions CI-Tests bestehen?

Bevor Ihre Pull-Anfrage zusammengeführt werden kann, muss sie alle Tests von GitHub Actions Continuous Integration (CI) bestehen. Diese Tests umfassen Linting, Unit-Tests und andere Prüfungen, um sicherzustellen, dass der Code den Qualitätsstandards des Projekts entspricht. Überprüfen Sie die CI-Ausgabe und beheben Sie alle Probleme. Ausführliche Informationen über den CI-Prozess und Tipps zur Fehlerbehebung finden Sie im Abschnitt GitHub Actions CI-Tests.

Wie melde ich einen Fehler in den Repositories Ultralytics YOLO ?

Um einen Fehler zu melden, sollten Sie Ihrem Fehlerbericht ein klares und präzises , mindestens reproduzierbares Beispiel beifügen. Dies hilft den Entwicklern, das Problem schnell zu identifizieren und zu beheben. Stellen Sie sicher, dass Ihr Beispiel minimal, aber ausreichend ist, um das Problem zu reproduzieren. Ausführlichere Schritte zum Melden von Fehlern finden Sie im Abschnitt Fehler melden.

📅 Erstellt vor 1 Jahr ✏️ Aktualisiert vor 8 Tagen

Kommentare