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

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.

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 Repository
    Forken Sie das offizielle Ultralytics YOLO Repository direkt von https://github.com/ultralytics/ 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. Starten Sie mit dem Ultralytics Template Repository
    Verwenden Sie das Ultralytics template repository, das unter https://github.com/ultralytics/template verfĂĽgbar ist.

    • 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 die folgenden Anforderungen erfĂĽllt

die Qualitätsstandards des Projekts. Ü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 1 Monat

Kommentare