Contribuir para Ultralytics Projectos de código aberto
Bem-vindo! Estamos muito contentes por estar a considerar contribuir para os nossos Ultralytics projectos de código aberto. O seu envolvimento não só ajuda a melhorar a qualidade dos nossos repositórios, como também beneficia toda a comunidade. Este guia fornece diretrizes claras e melhores práticas para o ajudar a começar.
Código de Conduta
Para garantir um ambiente acolhedor e inclusivo para todos, todos os colaboradores devem aderir ao nosso Código de Conduta. O respeito, a gentileza e o profissionalismo estão no centro da nossa comunidade.
Contribuir através de Pull Requests
Apreciamos muito as contribuições na forma de pull requests. Para tornar o processo de revisão o mais simples possível, siga estes passos:
-
Bifurcar o repositório: Comece por bifurcar o repositório Ultralytics YOLO para a sua conta GitHub.
-
Criar um ramo: Crie um novo ramo no seu repositório bifurcado com um nome claro e descritivo que reflicta as suas alterações.
-
Faça as suas alterações: Certifique-se de que o seu código cumpre as diretrizes de estilo do projeto e não introduz quaisquer novos erros ou avisos.
-
Teste as suas alterações: Antes de enviar, teste as alterações localmente para confirmar que funcionam como esperado e não causam novos problemas.
-
Confirmar as suas alterações: Confirme as suas alterações com uma mensagem de confirmação concisa e descritiva. Se as suas alterações se referem a um problema específico, inclua o número do problema na sua mensagem de confirmação.
-
Criar um pull request: Envie um pull request do seu repositório bifurcado para o repositório principal Ultralytics YOLO . Forneça uma explicação clara e detalhada das suas alterações e como elas melhoram o projeto.
Assinatura do CLA
Antes de podermos juntar o seu pull request, tem de assinar o nosso Contrato de Licença de Contribuidor (CLA). Este acordo legal assegura que as suas contribuições estão devidamente licenciadas, permitindo que o projeto continue a ser distribuído sob a licença AGPL-3.0 .
Depois de submeter o seu pull request, o bot CLA irá guiá-lo através do processo de assinatura. Para assinar o CLA, basta adicionar um comentário no seu PR declarando:
Google-Estilo Docstrings
Ao adicionar novas funções ou classes, inclua docstrings no estilo Google. Essas docstrings fornecem documentação clara e padronizada que ajuda outros desenvolvedores a entender e manter seu código.
Exemplos de cadeias de documentos
Este exemplo ilustra uma docstring de estilo Google. Certifique-se de que tanto a entrada como a saída types
estão sempre entre parênteses, por exemplo, (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
Este exemplo inclui uma docstring ao estilo de Google e dicas de tipo para argumentos e retornos, embora a utilização de qualquer uma delas de forma independente também seja aceitável.
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
Para funções mais pequenas ou mais simples, uma docstring de uma linha pode ser suficiente. A docstring deve utilizar três aspas duplas, ser uma frase completa, começar com uma letra maiúscula e terminar com um ponto final.
GitHub Actions Testes de CI
Todos os pull requests devem passar nos testes de Integração Contínua (CI) do GitHub Actions antes de serem mesclados. Estes testes incluem linting, testes unitários e outras verificações para garantir que as suas alterações cumprem os padrões de qualidade do projeto. Revise a saída de CI e resolva quaisquer problemas que surjam.
Comunicar erros
Valorizamos muito os relatórios de erros, pois eles nos ajudam a manter a qualidade dos nossos projetos. Ao relatar um bug, forneça um Exemplo Mínimo Reprodutível - umexemplo de código simples e claro que reproduz consistentemente o problema. Isto permite-nos identificar e resolver rapidamente o problema.
Licença
Ultralytics usa a GNU Affero General Public License v3.0 (AGPL-3.0 ) para seus repositórios. Esta licença promove a abertura, transparência e melhoria colaborativa no desenvolvimento de software. Assegura que todos os utilizadores têm a liberdade de utilizar, modificar e partilhar o software, promovendo uma forte comunidade de colaboração e inovação.
Encorajamos todos os colaboradores a familiarizarem-se com os termos da licença AGPL-3.0 para contribuírem eficaz e eticamente para a comunidade de código aberto Ultralytics .
Open-Sourcing dos seus projectos com YOLO e AGPL-3.0 Compliance
Se está a planear desenvolver e lançar o seu próprio projeto utilizando os modelos YOLO , a Licença Pública Geral GNU Affero v3.0 (AGPL-3.0 ) assegura que todos os trabalhos derivados permanecem abertos e acessíveis. Esta secção fornece orientações, incluindo passos, melhores práticas e requisitos, para o ajudar a abrir o seu projeto em conformidade com AGPL-3.0.
Opções para iniciar o seu projeto
Pode dar o pontapé de saída do seu projeto utilizando uma destas abordagens:
-
Bifurcar o repositório Ultralytics YOLO
Faça o fork do repositório oficial Ultralytics YOLO diretamente a partir de https://github.com/ultralytics/ ultralytics.- Utilize esta opção se pretender construir diretamente sobre a implementação mais recente de YOLO .
- Modificar o código bifurcado conforme necessário, garantindo a conformidade com AGPL-3.0.
-
Iniciar a partir do repositório de modelos Ultralytics
Utilize o repositório de modelos Ultralytics disponível em https://github.com/ultralytics/template.- Ideal para iniciar um projeto limpo e modular com as melhores práticas pré-configuradas.
- Esta opção proporciona um ponto de partida leve para projectos que integram ou alargam os modelos YOLO .
O que é necessário para o código aberto
Para estar em conformidade com AGPL-3.0, deve disponibilizar abertamente os seguintes componentes do seu projeto:
-
Todo o código fonte do seu projeto:
- Inclua todo o código do projeto maior que contém os modelos, scripts e utilitários do YOLO .
-
Pesos do modelo (se modificados):
- Partilhar todos os pesos de modelos aperfeiçoados ou modificados como parte do projeto de código aberto.
-
Ficheiros de configuração:
- Fornecer ficheiros de configuração, tais como
.yaml
ou.json
que definem a configuração do treino, os hiperparâmetros ou as configurações de implementação.
- Fornecer ficheiros de configuração, tais como
-
Dados de treino (se redistribuíveis):
- Se incluir dados pré-processados ou gerados que sejam redistribuíveis, certifique-se de que fazem parte do repositório ou estão claramente ligados.
-
Componentes de aplicações Web:
- Inclua todo o código-fonte backend e frontend se o seu projeto for uma aplicação Web, especialmente os componentes do lado do servidor.
-
Documentação:
- Inclua documentação clara sobre como utilizar, construir e alargar o seu projeto.
-
Scripts de compilação e implantação:
- Partilhe scripts para configurar o ambiente, criar a aplicação e implementá-la, tais como
Dockerfiles
,requirements.txt
, ouMakefiles
.
- Partilhe scripts para configurar o ambiente, criar a aplicação e implementá-la, tais como
-
Estrutura de teste:
- Abra o código-fonte dos seus casos de teste, como os testes unitários e de integração, para garantir a reprodutibilidade e a fiabilidade.
-
Modificações de terceiros:
- Forneça o código fonte de quaisquer bibliotecas de terceiros que tenha modificado.
Passos para tornar o seu projeto de código aberto
-
Escolha o seu ponto de partida:
- Bifurque o repositório Ultralytics YOLO ou inicie a partir do repositório de modelos Ultralytics .
-
Defina a sua licença:
- Adicionar um
LICENSE
ficheiro que contém o texto AGPL-3.0 .
- Adicionar um
-
Crédito Contribuições a montante:
- Inclua a atribuição a Ultralytics YOLO no seu README. Por exemplo:
-
Torne o seu código público:
- Envie todo o seu projeto (incluindo os componentes listados acima) para um repositório público do GitHub.
-
Documentar o seu projeto:
- Escrever um texto claro
README.md
com instruções de configuração, utilização e contribuições.
- Escrever um texto claro
-
Permitir contribuições:
- Criar um rastreador de problemas e diretrizes de contribuição para promover a colaboração.
Seguindo estes passos e assegurando que inclui todos os componentes necessários, estará em conformidade com AGPL-3.0 e contribuirá de forma significativa para a comunidade de código aberto. Vamos continuar a promover a colaboração e a inovação na visão computacional juntos! 🚀
Exemplo de estrutura de repositório
Segue-se um exemplo de estrutura para um projeto AGPL-3.0 . Ver https://github.com/ultralytics /template para mais pormenores.
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
Ao seguir este guia, pode garantir que o seu projeto permanece em conformidade com AGPL-3.0 enquanto contribui para a comunidade de código aberto. A sua adesão reforça o espírito de colaboração, transparência e acessibilidade que impulsiona o sucesso de projectos como YOLO.
Conclusão
Obrigado pelo seu interesse em contribuir para os projectos Ultralytics projectos de código aberto YOLO . A sua participação é essencial para moldar o futuro do nosso software e construir uma comunidade vibrante de inovação e colaboração. Quer esteja a melhorar o código, a comunicar erros ou a sugerir novas funcionalidades, as suas contribuições são inestimáveis.
Estamos entusiasmados por ver as suas ideias ganharem vida e apreciamos o seu empenho no avanço da tecnologia de deteção de objectos. Juntos, vamos continuar a crescer e a inovar nesta excitante viagem de código aberto. Boa programação! 🚀🌟
FAQ
Por que razão devo contribuir para os repositórios de código aberto Ultralytics YOLO ?
A contribuição para os repositórios de código aberto Ultralytics YOLO melhora o software, tornando-o mais robusto e rico em funcionalidades para toda a comunidade. As contribuições podem incluir melhorias no código, correcções de erros, melhorias na documentação e implementações de novas funcionalidades. Além disso, a contribuição permite-lhe colaborar com outros programadores qualificados e especialistas na área, melhorando as suas próprias competências e reputação. Para obter detalhes sobre como começar, consulte a secção Contribuir através de Pull Requests.
Como é que assino o Contrato de Licença do Contribuinte (CLA) para Ultralytics YOLO ?
Para assinar o Contrato de Licença do Contribuinte (CLA), siga as instruções fornecidas pelo bot do CLA depois de submeter o seu pull request. Este processo garante que as suas contribuições são devidamente licenciadas ao abrigo da licença AGPL-3.0 , mantendo a integridade legal do projeto de código aberto. Adicione um comentário no seu pull request declarando:
Para mais informações, consulte a secção Assinatura CLA.
O que são docstrings ao estilo de Google e porque é que são necessárias para as contribuições Ultralytics YOLO ?
GoogleAs docstrings de estilo -style fornecem documentação clara e concisa para funções e classes, melhorando a legibilidade e a manutenção do código. Estas docstrings descrevem o objetivo da função, os argumentos e os valores de retorno com regras de formatação específicas. Ao contribuir para Ultralytics YOLO , seguir Google-style docstrings garante que suas adições sejam bem documentadas e facilmente compreendidas. Para exemplos e orientações, visite a secção Google-Style Docstrings.
Como posso garantir que as minhas alterações passam nos testes de CI de GitHub Actions?
Antes que seu pull request possa ser mesclado, ele deve passar em todos os testes de Integração Contínua (CI) do GitHub Actions. Esses testes incluem linting, testes de unidade e outras verificações para garantir que o código atenda a
as normas de qualidade do projeto. Revise a saída de CI e corrija quaisquer problemas. Para obter informações detalhadas sobre o processo de CI e dicas de solução de problemas, consulte a seção Testes de CI do GitHub Actions.
Como é que comunico um erro nos repositórios Ultralytics YOLO ?
Para comunicar um erro, forneça um Exemplo Mínimo Reprodutível claro e conciso juntamente com o seu relatório de erro. Isto ajuda os programadores a identificar e corrigir rapidamente o problema. Certifique-se de que o seu exemplo é mínimo, mas suficiente para reproduzir o problema. Para obter passos mais detalhados sobre como comunicar erros, consulte a secção Comunicar erros.