Meet YOLO26: next-gen vision AI.

Link to this sectionIntegração Contínua (CI)#

A Integração Contínua (CI) é um aspecto essencial do desenvolvimento de software que envolve a integração de alterações e o teste automático das mesmas. A CI permite-nos manter código de alta qualidade ao detectar problemas cedo e frequentemente no processo de desenvolvimento. Na Ultralytics, utilizamos vários testes de CI para garantir a qualidade e a integridade da nossa base de código.

Link to this sectionAções de CI#

Aqui tens uma breve descrição das nossas ações de CI:

  • CI: Este é o nosso principal teste de CI, que envolve a execução de testes unitários, verificações de linting e, por vezes, testes mais abrangentes, dependendo do repositório.
  • Implantação Docker: Este teste verifica a implantação do projeto utilizando Docker para garantir que o Dockerfile e os scripts relacionados estão a funcionar corretamente.
  • Links Quebrados: Este teste analisa a base de código à procura de quaisquer links quebrados ou inativos nos nossos ficheiros markdown ou HTML.
  • CodeQL: CodeQL é uma ferramenta do GitHub que realiza análise semântica no nosso código, ajudando a encontrar potenciais vulnerabilidades de segurança e a manter um código de alta qualidade.
  • Publicação PyPI: Este teste verifica se o projeto pode ser empacotado e publicado no PyPI sem erros.

Link to this sectionResultados de CI#

Abaixo apresentamos a tabela que mostra o estado destes testes de CI para os nossos principais repositórios:

RepositórioCIImplantação DockerLinks QuebradosCodeQLPublicação PyPI e Docs
yolov3YOLOv3 CIPublicar Imagens DockerVerificar Links QuebradosCodeQL
yolov5YOLOv5 CIPublicar Imagens DockerVerificar Links QuebradosCodeQL
ultralyticsultralytics CIPublicar Imagens DockerVerificar Links QuebradosCodeQLPublicar no PyPI e Implantar Docs Construções Conda
yolo-ios-app (App Store)CI da App iOSCodeQLPublicar App iOS
yolo-flutter-appCI da App FlutterCodeQLPublicar no pub.dev
hubCI do HUBVerificar Links Quebrados
hub-sdkCI do HUB-SDKVerificar Links QuebradosCodeQLPublicar no PyPI
thopAções da UltralyticsCodeQLPublicar no PyPI
actionsCI das AçõesCodeQLPublicar no PyPI
mkdocsAções da UltralyticsCodeQLPublicar no PyPI
docsAções da UltralyticsVerificar Links QuebradosVerificar Domíniospages-build-deployment
handbookAções da UltralyticsVerificar Links Quebradospages-build-deployment
starsAções da UltralyticsAtualizar Analytics
CLIPCI do CLIP

Cada emblema mostra o estado da última execução do teste de CI correspondente na ramificação main do respetivo repositório. Se um teste falhar, o emblema exibirá um estado de "falha" e, se for aprovado, exibirá um estado de "sucesso".

Se notares um teste a falhar, seria uma grande ajuda se o pudesses reportar através de uma issue no GitHub do respetivo repositório.

Lembra-te, um teste de CI bem-sucedido não significa que tudo esteja perfeito. É sempre recomendável rever manualmente o código antes da implementação ou da fusão de alterações.

Link to this sectionCobertura de Código#

A cobertura de código é uma métrica que representa a percentagem da tua base de código que é executada quando os teus testes são executados. Fornece uma visão sobre quão bem os teus testes exercitam o teu código e pode ser crucial na identificação de partes não testadas da tua aplicação. Uma elevada percentagem de cobertura de código está frequentemente associada a uma menor probabilidade de bugs. No entanto, é essencial compreender que a cobertura de código não garante a ausência de defeitos. Apenas indica que partes do código foram executadas pelos testes.

Link to this sectionIntegração com codecov.io#

Na Ultralytics, integramos os nossos repositórios com o codecov.io, uma plataforma online popular para medir e visualizar a cobertura de código. O Codecov fornece informações detalhadas, comparações de cobertura entre commits e sobreposições visuais diretamente no teu código, indicando quais as linhas que foram cobertas.

Ao integrar com o Codecov, pretendemos manter e melhorar a qualidade do nosso código, concentrando-nos em áreas que podem estar propensas a erros ou que necessitam de mais testes.

Link to this sectionResultados da Cobertura#

Para teres uma visão rápida do estado da cobertura de código do pacote Python ultralytics, incluímos um emblema e um gráfico sunburst dos resultados da cobertura do ultralytics. Estas imagens mostram a percentagem de código coberto pelos nossos testes, oferecendo uma métrica imediata dos nossos esforços de teste. Para detalhes completos, visita o relatório do Codecov da Ultralytics.

RepositórioCobertura de Código
ultralyticscodecov

No gráfico sunburst abaixo, o círculo mais interno é o projeto inteiro, afastando-se do centro estão as pastas e, finalmente, um único ficheiro. O tamanho e a cor de cada fatia representam o número de declarações e a cobertura, respetivamente.

Ultralytics Codecov Image

Link to this sectionFAQ#

Link to this sectionO que é a Integração Contínua (CI) na Ultralytics?#

A Integração Contínua (CI) na Ultralytics envolve a integração e o teste automático de alterações de código para garantir padrões de alta qualidade. A nossa configuração de CI inclui a execução de testes unitários, verificações de linting e testes abrangentes. Adicionalmente, realizamos implantação Docker, verificações de links quebrados, análise CodeQL para vulnerabilidades de segurança e publicação PyPI para empacotar e distribuir o nosso software.

A Ultralytics utiliza uma ação de CI específica para verificar links quebrados nos nossos ficheiros markdown e HTML. Isto ajuda a manter a integridade da nossa documentação ao analisar e identificar links inativos ou quebrados, garantindo que os utilizadores tenham sempre acesso a recursos precisos e atuais.

Link to this sectionPorque é que a análise CodeQL é importante para a base de código da Ultralytics?#

A análise CodeQL é crucial para a Ultralytics, uma vez que realiza uma análise semântica de código para encontrar potenciais vulnerabilidades de segurança e manter padrões de alta qualidade. Com o CodeQL, podemos identificar e mitigar proativamente riscos no nosso código, ajudando-nos a fornecer soluções de software robustas e seguras.

Link to this sectionComo é que a Ultralytics utiliza o Docker para implantação?#

A Ultralytics emprega o Docker para validar a implantação dos nossos projetos através de uma ação de CI dedicada. Este processo garante que o nosso Dockerfile e scripts associados estão a funcionar corretamente, permitindo ambientes de implantação consistentes e reproduzíveis que são críticos para soluções de IA escaláveis e fiáveis.

Link to this sectionQual é o papel da publicação automática no PyPI na Ultralytics?#

A publicação PyPI automática garante que os nossos projetos possam ser empacotados e publicados sem erros. Este passo é essencial para a distribuição dos pacotes Python da Ultralytics, permitindo aos utilizadores instalar e utilizar facilmente as nossas ferramentas através do Python Package Index (PyPI).

Link to this sectionComo é que a Ultralytics mede a cobertura de código e porque é que é importante?#

A Ultralytics mede a cobertura de código integrando com o Codecov, fornecendo informações sobre quanto da base de código é executado durante os testes. Uma elevada cobertura de código pode indicar um código bem testado, ajudando a descobrir áreas não testadas que podem estar propensas a bugs. As métricas detalhadas de cobertura de código podem ser exploradas através de emblemas exibidos nos nossos principais repositórios ou diretamente no Codecov.

Comentários