Vai al contenuto

Contribuire ai repository open-source Ultralytics YOLO

Prima di tutto, grazie per il tuo interesse a contribuire ai repository open-source Ultralytics di YOLO ! I tuoi contributi contribuiranno a migliorare il progetto e a favorire la comunità. Questo documento fornisce le linee guida e le migliori pratiche per iniziare.

Indice dei contenuti

  1. Codice di condotta
  2. Contribuire con le richieste di pull
  3. Segnalazione di bug
  4. Licenza
  5. Conclusione

Codice di condotta

Tutti i collaboratori sono tenuti a rispettare il Codice di condotta per garantire un ambiente accogliente e inclusivo per tutti.

Contribuire con le richieste di pull

Accogliamo con piacere i contributi sotto forma di richieste di pull. Per rendere più agevole il processo di revisione, ti invitiamo a seguire le seguenti linee guida:

  1. Aprire il repository: Sostituisci il repository Ultralytics YOLO con il tuo account GitHub.

  2. Crea un ramo: Crea un nuovo ramo nel tuo repository con un nome descrittivo per le tue modifiche.

  3. Apporta le tue modifiche: Apporta le modifiche che vuoi apportare. Assicurati che le tue modifiche seguano lo stile di codifica del progetto e non introducano nuovi errori o avvisi.

  4. Prova le tue modifiche: Testa le tue modifiche in locale per assicurarti che funzionino come previsto e che non introducano nuovi problemi.

  5. Impegna le tue modifiche: Applica le modifiche con un messaggio di commit descrittivo. Assicurati di includere nel messaggio di commit i numeri dei problemi rilevanti.

  6. Crea una richiesta di pull: Crea una richiesta di pull dal tuo repository biforcuto al repository principale Ultralytics YOLO . Nella descrizione della richiesta di pull, fornisci una spiegazione chiara delle tue modifiche e del modo in cui migliorano il progetto.

Firma del CLA

Prima di poter accettare la tua richiesta di pull, devi firmare il Contributor License Agreement (CLA). Si tratta di un documento legale che dichiara che accetti i termini di contribuzione ai repository Ultralytics YOLO . Il CLA garantisce che i tuoi contributi siano autorizzati in modo corretto e che il progetto possa continuare a essere distribuito con la licenza AGPL-3.0 .

Per firmare il CLA, segui le istruzioni fornite dal bot CLA dopo aver inviato la tua PR e aggiungi un commento nella tua PR dicendo:

I have read the CLA Document and I sign the CLA

Docstring in stile Google

Quando aggiungi nuove funzioni o classi, ti preghiamo di includere una docstring in stile Google per fornire una documentazione chiara e concisa agli altri sviluppatori. Questo aiuterà a garantire che i tuoi contributi siano facili da capire e da mantenere.

Esempi di documentazione

Questo esempio mostra entrambe le docstring in stile Google. Nota che sia l'input che l'output types deve essere sempre racchiuso tra parentesi, ad es. (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

Questo esempio mostra sia le docstrazioni in stile Google che i suggerimenti sul tipo di argomento e di ritorno, anche se entrambi non sono obbligatori, uno può essere utilizzato senza l'altro.

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

Le funzioni più piccole o più semplici possono utilizzare una docstring di una sola riga. Nota che la docstringa deve utilizzare 3 doppie virgolette e deve essere una frase completa che inizia con una lettera maiuscola e termina con un punto.

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

Azioni GitHub Test CI

Prima che la tua richiesta di pull possa essere unita, tutti i test di GitHub Actions Continuous Integration (CI) devono essere superati. Questi test includono linting, test unitari e altri controlli per garantire che le tue modifiche soddisfino gli standard di qualità del progetto. Assicurati di rivedere l'output delle GitHub Actions e di correggere eventuali problemi.

Segnalazione di bug

Apprezziamo le segnalazioni di bug perché svolgono un ruolo cruciale nel mantenimento della qualità del progetto. Quando si segnalano i bug è importante fornire un Esempio minimo riproducibile: un esempio di codice chiaro e conciso che riproduce il problema. Questo aiuta a identificare e risolvere rapidamente il bug.

Licenza

Ultralytics abbraccia la GNU Affero General Public License v3.0 (AGPL-3.0 ) per i suoi repository, promuovendo l'apertura, la trasparenza e il miglioramento collaborativo nello sviluppo del software. Questa forte licenza copyleft garantisce a tutti gli utenti e agli sviluppatori la libertà di utilizzare, modificare e condividere il software. Favorisce la collaborazione della comunità, assicurando che qualsiasi miglioramento rimanga accessibile a tutti.

Gli utenti e gli sviluppatori sono invitati a familiarizzare con i termini di AGPL-3.0 per contribuire in modo efficace ed etico alla comunità open-source di Ultralytics .

Conclusione

YOLO Grazie per il tuo interesse a contribuire ai progetti open-source diUltralytics . La tua partecipazione è fondamentale per dare forma al futuro del nostro software e per promuovere una comunità di innovazione e collaborazione. Che tu stia migliorando il codice, segnalando bug o suggerendo funzionalità, i tuoi contributi hanno un impatto significativo.

Siamo ansiosi di vedere le tue idee in azione e apprezziamo il tuo impegno nel far progredire la tecnologia di rilevamento degli oggetti. Continuiamo a crescere e a innovare insieme in questo entusiasmante viaggio open-source. Buon coding! 🚀🌟



Creato 2023-11-12, Aggiornato 2024-03-08
Autori: glenn-jocher (4)

Commenti