Meet YOLO26: next-gen vision AI.

Link to this sectionKontinuierliche Integration (CI)#

Kontinuierliche Integration (CI) ist ein wesentlicher Aspekt der Softwareentwicklung, bei dem Änderungen automatisch integriert und getestet werden. CI ermöglicht es uns, eine hohe Codequalität aufrechtzuerhalten, indem Probleme frühzeitig und regelmäßig im Entwicklungsprozess erkannt werden. Bei Ultralytics nutzen wir verschiedene CI-Tests, um die Qualität und Integrität unserer Codebasis sicherzustellen.

Link to this sectionCI-Aktionen#

Hier ist eine kurze Beschreibung unserer CI-Aktionen:

  • CI: Dies ist unser primärer CI-Test, der die Ausführung von Unit-Tests, Linting-Prüfungen und je nach Repository teilweise auch umfassendere Tests umfasst.
  • Docker-Bereitstellung: Dieser Test überprüft die Bereitstellung des Projekts mittels Docker, um sicherzustellen, dass das Dockerfile und die zugehörigen Skripte korrekt funktionieren.
  • Defekte Links: Dieser Test durchsucht die Codebasis nach defekten oder toten Links in unseren Markdown- oder HTML-Dateien.
  • CodeQL: CodeQL ist ein Tool von GitHub, das eine semantische Analyse unseres Codes durchführt und dabei hilft, potenzielle Sicherheitslücken zu finden und eine hohe Codequalität zu wahren.
  • PyPI-Veröffentlichung: Dieser Test prüft, ob das Projekt fehlerfrei verpackt und auf PyPI veröffentlicht werden kann.

Link to this sectionCI-Ergebnisse#

Unten findest du eine Tabelle mit dem Status dieser CI-Tests für unsere Haupt-Repositories:

RepositoryCIDocker-BereitstellungDefekte LinksCodeQLPyPI- und Dokumentations-Veröffentlichung
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

Jedes Abzeichen zeigt den Status des letzten Laufs des entsprechenden CI-Tests auf dem main-Branch des jeweiligen Repositorys. Wenn ein Test fehlschlägt, zeigt das Abzeichen einen "failing"-Status an, und wenn er erfolgreich ist, zeigt es einen "passing"-Status.

Wenn du bemerkst, dass ein Test fehlschlägt, wäre es eine große Hilfe, wenn du dies über ein GitHub-Issue im entsprechenden Repository melden könntest.

Denk daran: Ein erfolgreicher CI-Test bedeutet nicht, dass alles perfekt ist. Es wird immer empfohlen, den Code manuell zu überprüfen, bevor er bereitgestellt oder Änderungen zusammengeführt werden.

Link to this sectionCode-Abdeckung#

Die Code-Abdeckung ist eine Metrik, die den Prozentsatz deiner Codebasis darstellt, der bei der Ausführung deiner Tests durchlaufen wird. Sie bietet Einblicke darüber, wie gut deine Tests deinen Code abdecken, und kann entscheidend bei der Identifizierung ungetesteter Teile deiner Anwendung sein. Ein hoher Prozentsatz der Code-Abdeckung geht oft mit einer geringeren Wahrscheinlichkeit für Fehler einher. Es ist jedoch wichtig zu verstehen, dass die Code-Abdeckung keine Garantie für die Abwesenheit von Defekten ist. Sie gibt lediglich an, welche Teile des Codes durch die Tests ausgeführt wurden.

Link to this sectionIntegration mit codecov.io#

Bei Ultralytics haben wir unsere Repositories mit codecov.io integriert, einer beliebten Online-Plattform zur Messung und Visualisierung der Code-Abdeckung. Codecov bietet detaillierte Einblicke, Abdeckungsvergleiche zwischen Commits und visuelle Overlays direkt auf deinem Code, die anzeigen, welche Zeilen abgedeckt wurden.

Durch die Integration mit Codecov zielen wir darauf ab, die Qualität unseres Codes zu erhalten und zu verbessern, indem wir uns auf Bereiche konzentrieren, die fehleranfällig sein könnten oder weitere Tests erfordern.

Link to this sectionAbdeckungsergebnisse#

Um schnell einen Überblick über den Status der Code-Abdeckung des ultralytics Python-Pakets zu erhalten, haben wir ein Abzeichen und eine Sunburst-Grafik der ultralytics-Abdeckungsergebnisse eingebunden. Diese Bilder zeigen den Prozentsatz des Codes, der von unseren Tests abgedeckt wird, und bieten eine sofortige Metrik unserer Testbemühungen. Für alle Details besuche den Ultralytics Codecov-Bericht.

RepositoryCode-Abdeckung
ultralyticscodecov

In der untenstehenden Sunburst-Grafik repräsentiert der innerste Kreis das gesamte Projekt, nach außen hin folgen die Ordner und schließlich die einzelne Datei. Größe und Farbe jedes Slices repräsentieren die Anzahl der Statements beziehungsweise die Abdeckung.

Ultralytics Codecov Image

Link to this sectionFAQ#

Link to this sectionWas ist Kontinuierliche Integration (CI) bei Ultralytics?#

Die Kontinuierliche Integration (CI) bei Ultralytics umfasst das automatische Integrieren und Testen von Codeänderungen, um hohe Qualitätsstandards sicherzustellen. Unser CI-Setup beinhaltet die Ausführung von Unit-Tests, Linting-Prüfungen und umfassenden Tests. Zusätzlich führen wir Docker-Bereitstellungen, Prüfungen auf defekte Links, CodeQL-Analysen auf Sicherheitslücken sowie PyPI-Veröffentlichungen durch, um unsere Software zu verpacken und zu verteilen.

Ultralytics verwendet eine spezifische CI-Aktion, um auf defekte Links zu prüfen innerhalb unserer Markdown- und HTML-Dateien. Dies hilft dabei, die Integrität unserer Dokumentation zu wahren, indem tote oder defekte Links gescannt und identifiziert werden, um sicherzustellen, dass Benutzer jederzeit Zugriff auf genaue und aktuelle Ressourcen haben.

Link to this sectionWarum ist die CodeQL-Analyse für die Codebasis von Ultralytics wichtig?#

CodeQL-Analyse ist entscheidend für Ultralytics, da sie eine semantische Codeanalyse durchführt, um potenzielle Sicherheitslücken zu finden und hohe Qualitätsstandards zu wahren. Mit CodeQL können wir Risiken in unserem Code proaktiv identifizieren und mindern, was uns hilft, robuste und sichere Softwarelösungen bereitzustellen.

Link to this sectionWie nutzt Ultralytics Docker für die Bereitstellung?#

Ultralytics setzt Docker ein, um die Bereitstellung unserer Projekte durch eine dedizierte CI-Aktion zu validieren. Dieser Prozess stellt sicher, dass unser Dockerfile und die zugehörigen Skripte korrekt funktionieren, was konsistente und reproduzierbare Bereitstellungsumgebungen ermöglicht, die für skalierbare und zuverlässige KI-Lösungen kritisch sind.

Link to this sectionWelche Rolle spielt die automatisierte PyPI-Veröffentlichung bei Ultralytics?#

Die automatisierte PyPI-Veröffentlichung stellt sicher, dass unsere Projekte ohne Fehler verpackt und veröffentlicht werden können. Dieser Schritt ist essenziell für die Verteilung der Python-Pakete von Ultralytics und ermöglicht es Benutzern, unsere Tools einfach über den Python Package Index (PyPI) zu installieren und zu verwenden.

Link to this sectionWie misst Ultralytics die Code-Abdeckung und warum ist sie wichtig?#

Ultralytics misst die Code-Abdeckung durch die Integration mit Codecov, was Einblicke darüber bietet, wie viel von der Codebasis während der Tests ausgeführt wird. Eine hohe Code-Abdeckung kann auf gut getesteten Code hinweisen und dabei helfen, ungetestete Bereiche aufzudecken, die fehleranfällig sein könnten. Detaillierte Metriken zur Code-Abdeckung können über Abzeichen auf unseren Haupt-Repositories oder direkt auf Codecov eingesehen werden.

Kommentare