Sürekli Entegrasyon (CI)
Sürekli Entegrasyon (CI), değişikliklerin entegre edilmesini ve otomatik olarak test edilmesini içeren yazılım geliştirmenin önemli bir yönüdür. CI, geliştirme sürecinde sorunları erken ve sıklıkla yakalayarak yüksek kaliteli kodu korumamızı sağlar. Ultralytics adresinde, kod tabanımızın kalitesini ve bütünlüğünü sağlamak için çeşitli CI testleri kullanıyoruz.
CI Eylemleri
İşte CI faaliyetlerimizin kısa bir açıklaması:
- CI: Bu, birim testlerini, linting kontrollerini ve bazen depoya bağlı olarak daha kapsamlı testleri çalıştırmayı içeren birincil CI testimizdir.
- Docker Dağıtımı: Bu test, Docker dosyasının ve ilgili komut dosyalarının doğru çalıştığından emin olmak için Docker kullanarak projenin dağıtımını kontrol eder.
- Bozuk Bağlantılar: Bu test, kod tabanını markdown veya HTML dosyalarımızdaki herhangi bir kırık veya ölü bağlantı için tarar.
- CodeQL: CodeQL, kodumuz üzerinde semantik analiz gerçekleştiren, potansiyel güvenlik açıklarını bulmaya ve yüksek kaliteli kodu korumaya yardımcı olan GitHub'ın bir aracıdır.
- PyPI Publishing: Bu test, projenin paketlenip PyPi'de hatasız bir şekilde yayınlanıp yayınlanamayacağını kontrol eder.
CI Sonuçları
Aşağıda ana depolarımız için bu CI testlerinin durumunu gösteren tablo yer almaktadır:
Depo | CI | Docker Dağıtımı | Bozuk Bağlantılar | CodeQL | PyPI ve Docs Yayıncılığı |
---|---|---|---|---|---|
yolov3 | |||||
yolov5 | |||||
ultralytics | |||||
hub-sdk | |||||
göbek | |||||
mkdocs | |||||
thop | |||||
eylemler | |||||
dokümanlar | |||||
el kitabı |
Her rozet, ilgili CI testinin son çalışmasının durumunu gösterir. main
ilgili deponun dalı. Bir test başarısız olursa, rozet "başarısız" durumunu gösterir ve geçerse "geçiyor" durumunu gösterir.
Bir testin başarısız olduğunu fark ederseniz, bunu ilgili depodaki bir GitHub sorunu aracılığıyla bildirebilirseniz çok yardımcı olur.
Başarılı bir CI testinin her şeyin mükemmel olduğu anlamına gelmediğini unutmayın. Dağıtımdan veya değişiklikleri birleştirmeden önce kodun her zaman manuel olarak gözden geçirilmesi önerilir.
Kod Kapsamı
Kod kapsamı, testleriniz çalıştığında kod tabanınızın yüzde kaçının çalıştırıldığını gösteren bir metriktir. Testlerinizin kodunuzu ne kadar iyi çalıştırdığına dair fikir verir ve uygulamanızın test edilmemiş kısımlarını belirlemede çok önemli olabilir. Yüksek bir kod kapsama yüzdesi genellikle daha düşük hata olasılığı ile ilişkilendirilir. Ancak, kod kapsamının hataların olmadığını garanti etmediğini anlamak önemlidir. Yalnızca kodun hangi bölümlerinin testler tarafından yürütüldüğünü gösterir.
codecov.io ile entegrasyon
Ultralytics adresinde, kod kapsamını ölçmek ve görselleştirmek için popüler bir çevrimiçi platform olan codecov.io ile depolarımızı entegre ettik. Codecov, ayrıntılı bilgiler, taahhütler arasında kapsam karşılaştırmaları ve hangi satırların kapsandığını gösteren doğrudan kodunuz üzerinde görsel kaplamalar sağlar.
Codecov ile entegre olarak, hatalara eğilimli olabilecek veya daha fazla test edilmesi gereken alanlara odaklanarak kodumuzun kalitesini korumayı ve iyileştirmeyi amaçlıyoruz.
Kapsam Sonuçları
Kod kapsamı durumuna hızlı bir şekilde göz atmak için ultralytics
python paketine bir rozet ve güneş patlaması görseli ekledik. ultralytics
kapsama sonuçları. Bu görüntüler, testlerimizin kapsadığı kod yüzdesini göstermekte ve test çalışmalarımızın bir bakışta ölçülmesini sağlamaktadır. Tüm ayrıntılar için lütfen bakınız https://codecov.io/github/ultralytics/ultralytics.
Depo | Kod Kapsamı |
---|---|
ultralytics |
Aşağıdaki güneş patlaması grafiğinde, en içteki daire projenin tamamıdır, merkezden uzaklaştıkça klasörler ve son olarak tek bir dosya yer alır. Her bir dilimin boyutu ve rengi sırasıyla ifade sayısını ve kapsamı temsil etmektedir.
SSS
Ultralytics'da Sürekli Entegrasyon (CI) nedir?
Ultralytics 'da Sürekli Entegrasyon (CI), yüksek kalite standartlarını sağlamak için kod değişikliklerini otomatik olarak entegre etmeyi ve test etmeyi içerir. CI kurulumumuz birim testlerini, linting kontrollerini ve kapsamlı testleri çalıştırmayı içerir. Ayrıca, yazılımımızı paketlemek ve dağıtmak için Docker dağıtımı, kırık bağlantı kontrolleri, güvenlik açıkları için CodeQL analizi ve PyPI yayıncılığı gerçekleştiriyoruz.
Ultralytics dokümantasyon ve koddaki kırık bağlantıları nasıl kontrol ediyor?
Ultralytics markdown ve HTML dosyalarımızdaki kırık bağlantıları kontrol etmek için belirli bir CI eylemi kullanır. Bu, ölü veya bozuk bağlantıları tarayıp tanımlayarak belgelerimizin bütünlüğünü korumaya yardımcı olur ve kullanıcıların her zaman doğru ve canlı kaynaklara erişmesini sağlar.
CodeQL analizi Ultralytics'kod tabanı için neden önemlidir?
CodeQL analizi, potansiyel güvenlik açıklarını bulmak ve yüksek kalite standartlarını korumak için semantik kod analizi gerçekleştirdiğinden Ultralytics için çok önemlidir. CodeQL ile kodumuzdaki riskleri proaktif olarak belirleyip azaltabilir, sağlam ve güvenli yazılım çözümleri sunmamıza yardımcı olabiliriz.
Ultralytics dağıtım için Docker'ı nasıl kullanıyor?
Ultralytics özel bir CI eylemi aracılığıyla projelerimizin dağıtımını doğrulamak için Docker'ı kullanır. Bu süreç, Docker dosyamızın ve ilgili komut dosyalarının doğru şekilde çalışmasını sağlayarak ölçeklenebilir ve güvenilir yapay zeka çözümleri için kritik olan tutarlı ve tekrarlanabilir dağıtım ortamlarına olanak tanır.
Otomatik PyPI yayıncılığının Ultralytics adresindeki rolü nedir?
Otomatik PyPI yayınlama, projelerimizin hatasız bir şekilde paketlenmesini ve yayınlanmasını sağlar. Bu adım, Ultralytics' Python paketlerini dağıtmak için gereklidir ve kullanıcıların Python Paket Dizini (PyPI) aracılığıyla araçlarımızı kolayca yüklemelerine ve kullanmalarına olanak tanır.
Ultralytics kod kapsamını nasıl ölçer ve bu neden önemlidir?
Ultralytics Codecov ile entegre olarak kod kapsamını ölçer ve testler sırasında kod tabanının ne kadarının yürütüldüğüne dair içgörü sağlar. Yüksek kod kapsamı, iyi test edilmiş kodu gösterebilir ve hatalara eğilimli olabilecek test edilmemiş alanların ortaya çıkarılmasına yardımcı olabilir. Ayrıntılı kod kapsamı ölçümleri, ana depolarımızda veya doğrudan Codecov'da görüntülenen rozetler aracılığıyla keşfedilebilir.