Meet YOLO26: next-gen vision AI.

Link to this sectionIntégration continue (CI)#

L'intégration continue (CI) est un aspect essentiel du développement logiciel qui consiste à intégrer les modifications et à les tester automatiquement. La CI nous permet de maintenir un code de haute qualité en détectant les problèmes tôt et souvent dans le processus de développement. Chez Ultralytics, nous utilisons divers tests CI pour garantir la qualité et l'intégrité de notre base de code.

Link to this sectionActions CI#

Voici une brève description de nos actions CI :

  • CI : Il s'agit de notre test CI principal qui consiste à exécuter des tests unitaires, des vérifications de linting et, parfois, des tests plus complets selon le dépôt.
  • Déploiement Docker : Ce test vérifie le déploiement du projet à l'aide de Docker pour s'assurer que le Dockerfile et les scripts associés fonctionnent correctement.
  • Liens rompus : Ce test scanne la base de code pour détecter tout lien rompu ou mort dans nos fichiers markdown ou HTML.
  • CodeQL : CodeQL est un outil de GitHub qui effectue une analyse sémantique de notre code, aidant à trouver des vulnérabilités de sécurité potentielles et à maintenir un code de haute qualité.
  • Publication PyPI : Ce test vérifie si le projet peut être empaqueté et publié sur PyPI sans aucune erreur.

Link to this sectionRésultats CI#

Vous trouverez ci-dessous le tableau présentant l'état de ces tests CI pour nos principaux dépôts :

DépôtCIDéploiement DockerLiens rompusCodeQLPublication PyPI et Docs
yolov3YOLOv3 CIPublish Docker ImagesCheck Broken linksCodeQL
yolov5YOLOv5 CIPublish Docker ImagesCheck Broken linksCodeQL
ultralyticsultralytics CIPublish Docker ImagesCheck Broken linksCodeQLPublish to PyPI and Deploy Docs Conda Builds
yolo-ios-app (App Store)iOS App CICodeQLPublish iOS App
yolo-flutter-appFlutter App CICodeQLPublish to pub.dev
hubHUB CICheck Broken links
hub-sdkHUB-SDK CICheck Broken linksCodeQLPublish to PyPI
thopUltralytics ActionsCodeQLPublish to PyPI
actionsActions CICodeQLPublish to PyPI
mkdocsUltralytics ActionsCodeQLPublish to PyPI
docsUltralytics ActionsCheck Broken linksCheck Domainspages-build-deployment
handbookUltralytics ActionsCheck Broken linkspages-build-deployment
starsUltralytics ActionsUpdate Analytics
CLIPCLIP CI

Chaque badge affiche l'état de la dernière exécution du test CI correspondant sur la branche main du dépôt respectif. Si un test échoue, le badge affichera un statut "failing" (échec), et s'il réussit, il affichera un statut "passing" (succès).

Si tu remarques qu'un test échoue, ce serait une aide précieuse si tu pouvais le signaler via une issue GitHub dans le dépôt concerné.

N'oublie pas qu'un test CI réussi ne signifie pas que tout est parfait. Il est toujours recommandé de réviser manuellement le code avant le déploiement ou la fusion des modifications.

Link to this sectionCouverture de code#

La couverture de code est une mesure qui représente le pourcentage de ta base de code qui est exécuté lorsque tes tests tournent. Elle donne un aperçu de la façon dont tes tests sollicitent ton code et peut être cruciale pour identifier les parties non testées de ton application. Un pourcentage élevé de couverture de code est souvent associé à une probabilité plus faible de bugs. Cependant, il est essentiel de comprendre que la couverture de code ne garantit pas l'absence de défauts. Elle indique simplement quelles parties du code ont été exécutées par les tests.

Link to this sectionIntégration avec codecov.io#

Chez Ultralytics, nous avons intégré nos dépôts avec codecov.io, une plateforme en ligne populaire pour mesurer et visualiser la couverture de code. Codecov fournit des informations détaillées, des comparaisons de couverture entre les commits et des superpositions visuelles directement sur ton code, indiquant quelles lignes ont été couvertes.

En nous intégrant à Codecov, nous visons à maintenir et à améliorer la qualité de notre code en nous concentrant sur les zones susceptibles de contenir des erreurs ou nécessitant des tests supplémentaires.

Link to this sectionRésultats de couverture#

Pour obtenir rapidement un aperçu de l'état de la couverture de code du package Python ultralytics, nous avons inclus un badge et un graphique en rayons de soleil (sunburst) des résultats de couverture de ultralytics. Ces images montrent le pourcentage de code couvert par nos tests, offrant une mesure instantanée de nos efforts de test. Pour plus de détails, consulte le rapport Codecov d'Ultralytics.

DépôtCouverture de code
ultralyticscodecov

Dans le graphique en rayons de soleil ci-dessous, le cercle le plus intérieur représente l'ensemble du projet, puis en s'éloignant du centre, on trouve les dossiers et, enfin, un fichier unique. La taille et la couleur de chaque tranche représentent respectivement le nombre d'instructions et la couverture.

Ultralytics Codecov Image

Link to this sectionFAQ#

Link to this sectionQu'est-ce que l'intégration continue (CI) chez Ultralytics ?#

L'intégration continue (CI) chez Ultralytics implique l'intégration et le test automatiques des modifications de code pour garantir des normes de haute qualité. Notre configuration CI inclut l'exécution de tests unitaires, de vérifications de linting et de tests complets. De plus, nous effectuons un déploiement Docker, des vérifications de liens rompus, une analyse CodeQL pour détecter les vulnérabilités de sécurité, et une publication PyPI pour empaqueter et distribuer notre logiciel.

Link to this sectionComment Ultralytics vérifie-t-il les liens rompus dans la documentation et le code ?#

Ultralytics utilise une action CI spécifique pour vérifier les liens rompus dans nos fichiers markdown et HTML. Cela aide à maintenir l'intégrité de notre documentation en scannant et en identifiant les liens morts ou cassés, garantissant ainsi que les utilisateurs ont toujours accès à des ressources précises et actives.

Link to this sectionPourquoi l'analyse CodeQL est-elle importante pour la base de code d'Ultralytics ?#

L'analyse CodeQL est cruciale pour Ultralytics car elle effectue une analyse sémantique du code pour trouver des vulnérabilités de sécurité potentielles et maintenir des normes de haute qualité. Avec CodeQL, nous pouvons identifier et atténuer de manière proactive les risques dans notre code, ce qui nous aide à fournir des solutions logicielles robustes et sécurisées.

Link to this sectionComment Ultralytics utilise-t-il Docker pour le déploiement ?#

Ultralytics utilise Docker pour valider le déploiement de nos projets via une action CI dédiée. Ce processus garantit que notre Dockerfile et les scripts associés fonctionnent correctement, permettant des environnements de déploiement cohérents et reproductibles, ce qui est essentiel pour des solutions d'IA évolutives et fiables.

Link to this sectionQuel est le rôle de la publication PyPI automatisée chez Ultralytics ?#

La publication PyPI automatisée garantit que nos projets peuvent être empaquetés et publiés sans erreur. Cette étape est essentielle pour distribuer les packages Python d'Ultralytics, permettant aux utilisateurs d'installer et d'utiliser facilement nos outils via le Python Package Index (PyPI).

Link to this sectionComment Ultralytics mesure-t-il la couverture de code et pourquoi est-ce important ?#

Ultralytics mesure la couverture de code en s'intégrant à Codecov, ce qui fournit des informations sur la part de la base de code qui est exécutée pendant les tests. Une couverture de code élevée peut indiquer un code bien testé, aidant à découvrir des zones non testées qui pourraient être sujettes aux bugs. Des mesures détaillées de couverture de code peuvent être explorées via des badges affichés sur nos principaux dépôts ou directement sur Codecov.

Commentaires