Salta para o conteúdo

Contribui para Ultralytics Repositórios de código aberto YOLO

Antes de mais, obrigado pelo teu interesse em contribuir para os repositórios Ultralytics de código aberto YOLO ! As tuas contribuições ajudarão a melhorar o projeto e a beneficiar a comunidade. Este documento fornece orientações e melhores práticas para começares.

Índice

  1. Código de Conduta
  2. Contribuir através de Pull Requests
  3. Comunicar erros
  4. Licença
  5. Conclusão

Código de Conduta

Espera-se que todos os colaboradores cumpram o Código de Conduta para garantir um ambiente acolhedor e inclusivo para todos.

Contribuir através de Pull Requests

Aceitamos contribuições na forma de pull requests. Para tornar o processo de revisão mais fácil, segue estas orientações:

  1. Bifurca o repositório: Bifurca o repositório Ultralytics YOLO para a tua própria conta GitHub.

  2. Cria um ramo: Cria um novo ramo no teu repositório bifurcado com um nome descritivo para as tuas alterações.

  3. Faz as tuas alterações: Faz as alterações para as quais queres contribuir. Certifica-te de que as tuas alterações seguem o estilo de codificação do projeto e não introduzem novos erros ou avisos.

  4. Testa as tuas alterações: Testa as tuas alterações localmente para garantir que funcionam como esperado e não introduzem novos problemas.

  5. Submete as tuas alterações: Submete as tuas alterações com uma mensagem de submissão descritiva. Certifica-te de incluir quaisquer números de problemas relevantes na tua mensagem de confirmação.

  6. Cria um pull request: Cria um pull request do teu repositório bifurcado para o repositório principal Ultralytics YOLO . Na descrição do pull request, fornece uma explicação clara das tuas alterações e de como elas melhoram o projeto.

Assinatura do CLA

Antes de podermos aceitar o teu pull request, tens de assinar um Contrato de Licença de Contribuidor (CLA). Este é um documento legal que declara que concordas com os termos de contribuição para os repositórios Ultralytics YOLO . O CLA assegura que as tuas contribuições estão devidamente licenciadas e que o projeto pode continuar a ser distribuído sob a licença AGPL-3.0 .

Para assinar o CLA, segue as instruções fornecidas pelo bot do CLA depois de submeteres o teu PR e acrescenta um comentário no teu PR a dizer:

I have read the CLA Document and I sign the CLA

Docstrings ao estilo do Google

Quando adicionares novas funções ou classes, por favor inclui uma docstring ao estilo do Google para fornecer documentação clara e concisa a outros programadores. Isto ajudará a garantir que as tuas contribuições são fáceis de compreender e manter.

Exemplo de cadeias de documentos

Este exemplo mostra ambas as docstrings ao estilo Google. Repara que tanto a entrada como a saída types deve estar sempre entre parênteses, ou seja (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

Este exemplo mostra docstrings ao estilo Google e dicas de argumentos e tipos de retorno, embora ambos não sejam necessários, um pode ser utilizado sem o outro.

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

As funções mais pequenas ou mais simples podem utilizar uma docstring de uma linha. Nota que a docstring deve usar 3 aspas duplas e ser uma frase completa, começando com uma letra maiúscula e terminando com um ponto final.

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

GitHub Actions Testes de CI

Antes que seu pull request possa ser mesclado, todos os testes de Integração Contínua (CI) de GitHub Actions devem ser aprovados. Estes testes incluem linting, testes unitários e outras verificações para garantir que as tuas alterações cumprem os padrões de qualidade do projeto. Certifica-te de rever a saída do GitHub Actions e corrigir quaisquer problemas

Comunicar erros

Apreciamos os relatórios de erros, uma vez que desempenham um papel crucial na manutenção da qualidade do projeto. Ao relatar bugs, é importante fornecer um Exemplo Mínimo Reprodutível: um exemplo de código claro e conciso que replica o problema. Isto ajuda na rápida identificação e resolução do bug.

Licença

Ultralytics adopta a GNU Affero General Public License v3.0 (AGPL-3.0 ) para os seus repositórios, promovendo a abertura, transparência e melhoria colaborativa no desenvolvimento de software. Esta forte licença de copyleft assegura que todos os utilizadores e programadores mantêm a liberdade de utilizar, modificar e partilhar o software. Promove a colaboração da comunidade, garantindo que quaisquer melhorias permaneçam acessíveis a todos.

Os utilizadores e programadores são encorajados a familiarizarem-se com os termos de AGPL-3.0 para contribuírem eficaz e eticamente para a comunidade de código aberto Ultralytics .

Conclusão

Obrigado pelo teu interesse em contribuir para os projectos de código abertoUltralytics YOLO . A tua participação é crucial para moldar o futuro do nosso software e promover uma comunidade de inovação e colaboração. Quer estejas a melhorar o código, a comunicar erros ou a sugerir funcionalidades, as tuas contribuições têm um impacto significativo.

Estamos ansiosos por ver as tuas ideias em ação e apreciamos o teu empenho no avanço da tecnologia de deteção de objectos. Vamos continuar a crescer e a inovar juntos nesta excitante viagem de código aberto. Boa programação! 🚀🌟



Criado em 2023-11-12, Atualizado em 2024-03-08
Autores: glenn-jocher (4)

Comentários