Ultralytics Açık Kaynak Projelerine Katkıda Bulunma
Hoş geldiniz! Bize katkıda bulunmayı düşündüğünüz için çok heyecanlıyız Ultralytics açık kaynak projeleri. Katılımınız sadece depolarımızın kalitesini artırmaya yardımcı olmakla kalmaz, aynı zamanda tüm topluluğa fayda sağlar. Bu kılavuz, başlamanıza yardımcı olacak açık yönergeler ve en iyi uygulamaları sunmaktadır.
Davranış Kuralları
Herkes için sıcak ve kapsayıcı bir ortam sağlamak için, tüm katılımcılar Davranış Kurallarımıza uymalıdır. Saygı, nezaket ve profesyonellik topluluğumuzun merkezinde yer alır.
Çekme İstekleri ile Katkıda Bulunma
Çekme istekleri şeklindeki katkıları çok takdir ediyoruz. İnceleme sürecini mümkün olduğunca sorunsuz hale getirmek için lütfen aşağıdaki adımları izleyin:
-
Depoyu çatallayın: Ultralytics YOLO deposunu GitHub hesabınıza çatallayarak başlayın.
-
Bir dal oluşturun: Çatallanmış deponuzda, değişikliklerinizi yansıtan net ve açıklayıcı bir adla yeni bir dal oluşturun.
-
Değişikliklerinizi yapın: Kodunuzun projenin stil yönergelerine uygun olduğundan ve herhangi bir yeni hata veya uyarı içermediğinden emin olun.
-
Değişikliklerinizi test edin: Göndermeden önce, beklendiği gibi çalıştıklarını ve yeni sorunlara neden olmadıklarını doğrulamak için değişikliklerinizi yerel olarak test edin.
-
Değişikliklerinizi işleyin: Değişikliklerinizi kısa ve açıklayıcı bir commit mesajı ile işleyin. Değişiklikleriniz belirli bir sorunu ele alıyorsa, sorun numarasını commit mesajınıza ekleyin.
-
Bir çekme isteği oluşturun: Çatallanmış deponuzdan ana Ultralytics YOLO deposuna bir çekme isteği gönderin. Değişikliklerinizi ve projeyi nasıl geliştirdiklerini açık ve ayrıntılı bir şekilde açıklayın.
CLA İmzalama
Çekme isteğinizi birleştirmeden önce, Katılımcı Lisans Sözleşmemizi (CLA) imzalamanız gerekir. Bu yasal anlaşma, katkılarınızın uygun şekilde lisanslanmasını sağlayarak projenin AGPL-3.0 lisansı altında dağıtılmaya devam etmesine olanak tanır.
Çekme isteğinizi gönderdikten sonra, CLA botu imzalama işlemi boyunca size rehberlik edecektir. CLA'yı imzalamak için PR'nize şunu belirten bir yorum eklemeniz yeterlidir:
Google-Style Docstrings
Yeni fonksiyonlar veya sınıflar eklerken lütfen Google tarzı dokümantasyon ekleyin. Bu dokümanlar, diğer geliştiricilerin kodunuzu anlamasına ve bakımını yapmasına yardımcı olan açık, standartlaştırılmış dokümantasyon sağlar.
Örnek Doküman Dizeleri
Bu örnekte Google tarzı bir docstring gösterilmektedir. Hem girdi hem de çıktının types
her zaman parantez içine alınır, örn, (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
Bu örnek hem Google tarzı bir doküman dizisi hem de bağımsız değişkenler ve getiriler için tür ipuçları içerir, ancak her ikisinin de bağımsız olarak kullanılması da kabul edilebilir.
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
Daha küçük veya daha basit işlevler için tek satırlık bir doküman dizisi yeterli olabilir. Docstring üç çift tırnak kullanmalı, tam bir cümle olmalı, büyük harfle başlamalı ve nokta ile bitmelidir.
GitHub Eylemleri CI Testleri
Tüm çekme istekleri birleştirilmeden önce GitHub Actions Sürekli Entegrasyon (CI) testlerini geçmelidir. Bu testler, değişikliklerinizin projenin kalite standartlarını karşıladığından emin olmak için linting, birim testleri ve diğer kontrolleri içerir. CI çıktısını inceleyin ve ortaya çıkan sorunları ele alın.
Hataların Raporlanması
Projelerimizin kalitesini korumamıza yardımcı oldukları için hata raporlarına büyük değer veriyoruz. Bir hatayı bildirirken lütfen Minimum Yeniden Üretilebilir Örnek (sorunu tutarlı bir şekilde yeniden üreten basit, net bir kod örneği) sağlayın. Bu, sorunu hızlı bir şekilde tanımlamamızı ve çözmemizi sağlar.
Lisans
Ultralytics depoları için GNU Affero Genel Kamu Lisansı v3.0 (AGPL-3.0 ) kullanır. Bu lisans, yazılım geliştirmede açıklığı, şeffaflığı ve işbirliğine dayalı iyileştirmeyi teşvik eder. Tüm kullanıcıların yazılımı kullanma, değiştirme ve paylaşma özgürlüğüne sahip olmasını sağlayarak güçlü bir işbirliği ve yenilik topluluğunu teşvik eder.
Ultralytics açık kaynak topluluğuna etkin ve etik bir şekilde katkıda bulunmak için tüm katılımcıları AGPL-3.0 lisansının şartlarını öğrenmeye teşvik ediyoruz.
Projelerinizi YOLO ve AGPL-3.0 Uyumluluğu ile Açık Kaynak Kullanımı
YOLO modellerini kullanarak kendi projenizi geliştirmeyi ve yayınlamayı planlıyorsanız, GNU Affero Genel Kamu Lisansı v3.0 (AGPL-3.0 ) tüm türev çalışmaların açık ve erişilebilir kalmasını sağlar. Bu bölüm, AGPL-3.0 ile uyumlu olarak projenize açık kaynak sağlamanıza yardımcı olacak adımlar, en iyi uygulamalar ve gereksinimler dahil olmak üzere rehberlik sağlar.
Projenizi Başlatmak için Seçenekler
Projenize bu yaklaşımlardan birini kullanarak başlayabilirsiniz:
-
Ultralytics YOLO Deposunu Çatalla
Resmi Ultralytics YOLO deposunu doğrudan https://github.com/ultralytics/ ultralytics adresinden çatallayın.- Doğrudan en son YOLO uygulaması üzerine inşa etmeyi planlıyorsanız bu seçeneği kullanın.
- AGPL-3.0 ile uyumluluğu sağlarken çatallanmış kodu gerektiği gibi değiştirin.
-
Ultralytics Şablon Deposundan başlayın
https://github.com/ ultralytics/template adresinde bulunan Ultralytics şablon deposunu kullanın.- Önceden yapılandırılmış en iyi uygulamalarla temiz, modüler bir proje başlatmak için idealdir.
- Bu seçenek, YOLO modellerini entegre eden veya genişleten projeler için hafif bir başlangıç noktası sağlar.
Açık Kaynak için Nelere İhtiyacınız Var
AGPL-3.0 ile uyumlu olmak için projenizin aşağıdaki bileşenlerini açık bir şekilde kullanıma sunmanız gerekir:
-
Tüm Proje Kaynak Kodunuz:
- YOLO modellerinizi, komut dosyalarınızı ve yardımcı programlarınızı içeren daha büyük proje için tüm kodu ekleyin.
-
Model Ağırlıkları (değiştirilmişse):
- Açık kaynak projesinin bir parçası olarak ince ayarlanmış veya değiştirilmiş model ağırlıklarını paylaşın.
-
Yapılandırma Dosyaları:
- Aşağıdaki gibi yapılandırma dosyaları sağlayın
.yaml
veya.json
eğitim kurulumunu, hiperparametreleri veya dağıtım yapılandırmalarını tanımlar.
- Aşağıdaki gibi yapılandırma dosyaları sağlayın
-
Eğitim Verileri (yeniden dağıtılabilirse):
- Yeniden dağıtılabilir olan önceden işlenmiş veya oluşturulmuş verileri dahil ediyorsanız, bunların havuzun bir parçası olduğundan veya açıkça bağlantılı olduğundan emin olun.
-
Web Uygulama Bileşenleri:
- Projeniz bir web uygulamasıysa, özellikle sunucu tarafı bileşenleri olmak üzere tüm arka uç ve ön uç kaynak kodunu ekleyin.
-
Dokümantasyon:
- Projenizin nasıl kullanılacağı, oluşturulacağı ve genişletileceği konusunda açık belgeler ekleyin.
-
Derleme ve Dağıtım Komut Dosyaları:
- Ortamı ayarlamak, uygulamayı oluşturmak ve dağıtmak için aşağıdaki gibi komut dosyalarını paylaşın
Dockerfiles
,requirements.txt
veyaMakefiles
.
- Ortamı ayarlamak, uygulamayı oluşturmak ve dağıtmak için aşağıdaki gibi komut dosyalarını paylaşın
-
Test Çerçevesi:
- Tekrarlanabilirlik ve güvenilirlik sağlamak için birim ve entegrasyon testleri gibi test senaryolarınızı açık kaynaklı hale getirin.
-
Üçüncü Taraf Değişiklikleri:
- Değiştirdiğiniz tüm üçüncü taraf kütüphaneleri için kaynak kodu sağlayın.
Projenizi Açık Kaynak Kodlu Hale Getirmek İçin Adımlar
-
Başlangıç Noktanızı Seçin:
- Ultralytics YOLO deposunu çatallayın veya Ultralytics şablon deposundan başlayın.
-
Lisansınızı Ayarlayın:
- Ekle
LICENSE
AGPL-3.0 metnini içeren dosya.
- Ekle
-
Kredi Yukarı Akış Katkıları:
- README'nizde Ultralytics YOLO adresine atıfta bulunun. Örneğin:
-
Kodunuzu Herkese Açık Hale Getirin:
- Projenizin tamamını (yukarıda listelenen bileşenler dahil) herkese açık bir GitHub deposuna gönderin.
-
Projenizi Belgeleyin:
- Açık bir şekilde yazın
README.md
kurulum, kullanım ve katkılar için talimatlarla birlikte.
- Açık bir şekilde yazın
-
Katkıları Etkinleştirin:
- İşbirliğini teşvik etmek için bir sorun izleyici ve katkı yönergeleri oluşturun.
Bu adımları izleyerek ve gerekli tüm bileşenleri dahil ettiğinizden emin olarak, AGPL-3.0 ile uyumlu olacak ve açık kaynak topluluğuna anlamlı bir şekilde katkıda bulunacaksınız. Bilgisayarla görme alanında işbirliğini ve yenilikçiliği birlikte teşvik etmeye devam edelim! 🚀
Örnek Depo Yapısı
Aşağıda bir AGPL-3.0 projesi için örnek bir yapı verilmiştir. Ayrıntılar için https://github.com/ultralytics /template adresine bakın.
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
Bu kılavuzu takip ederek, açık kaynak topluluğuna katkıda bulunurken projenizin AGPL-3.0 ile uyumlu kalmasını sağlayabilirsiniz. Bağlılığınız, YOLO gibi projelerin başarısını sağlayan işbirliği, şeffaflık ve erişilebilirlik değerlerini güçlendirir.
Sonuç
Katkıda bulunmaya gösterdiğiniz ilgi için teşekkür ederiz Ultralytics açık kaynaklı YOLO projeleri. Katılımınız, yazılımımızın geleceğini şekillendirmek ve canlı bir yenilik ve işbirliği topluluğu oluşturmak için çok önemlidir. İster kodu geliştiriyor, ister hataları bildiriyor veya yeni özellikler öneriyor olun, katkılarınız çok değerlidir.
Fikirlerinizin hayata geçtiğini görmekten heyecan duyuyor ve nesne algılama teknolojisini ilerletme konusundaki kararlılığınızı takdir ediyoruz. Birlikte, bu heyecan verici açık kaynak yolculuğunda büyümeye ve yenilikler yapmaya devam edelim. Mutlu kodlamalar! 🚀🌟
SSS
Neden Ultralytics YOLO açık kaynak depolarına katkıda bulunmalıyım?
Ultralytics YOLO açık kaynak depolarına katkıda bulunmak, yazılımı geliştirerek tüm topluluk için daha sağlam ve zengin özelliklere sahip hale getirir. Katkılar kod geliştirmeleri, hata düzeltmeleri, dokümantasyon iyileştirmeleri ve yeni özellik uygulamalarını içerebilir. Ek olarak, katkıda bulunmak diğer yetenekli geliştiriciler ve alandaki uzmanlarla işbirliği yapmanıza olanak tanıyarak kendi becerilerinizi ve itibarınızı artırır. Nasıl başlayacağınızla ilgili ayrıntılar için Çekme İstekleri ile Katkıda Bulunma bölümüne bakın.
Ultralytics YOLO için Katılımcı Lisans Sözleşmesini (CLA) nasıl imzalarım?
Katılımcı Lisans Sözleşmesini (CLA) imzalamak için, çekme isteğinizi gönderdikten sonra CLA botu tarafından sağlanan talimatları izleyin. Bu işlem, katkılarınızın AGPL-3.0 lisansı altında uygun şekilde lisanslanmasını ve açık kaynaklı projenin yasal bütünlüğünün korunmasını sağlar. Çekme isteğinize şunu belirten bir yorum ekleyin:
Daha fazla bilgi için CLA İmzalama bölümüne bakın.
Google tarzı dokümanlar nedir ve neden Ultralytics YOLO katkıları için gereklidir?
Google-tarzı dokümanlar, fonksiyonlar ve sınıflar için açık, özlü dokümantasyon sağlayarak kodun okunabilirliğini ve sürdürülebilirliğini geliştirir. Bu dokümanlar fonksiyonun amacını, argümanlarını ve geri dönüş değerlerini belirli biçimlendirme kurallarıyla özetler. Ultralytics YOLO adresine katkıda bulunurken Google tarzı dokümantasyonu takip etmek, eklemelerinizin iyi belgelenmesini ve kolayca anlaşılmasını sağlar. Örnekler ve yönergeler için Google-Style Docstrings bölümünü ziyaret edin.
Değişikliklerimin GitHub Actions CI testlerini geçtiğinden nasıl emin olabilirim?
Çekme isteğiniz birleştirilmeden önce tüm GitHub Actions Sürekli Entegrasyon (CI) testlerini geçmelidir. Bu testler, kodun aşağıdakileri karşıladığından emin olmak için linting, birim testleri ve diğer kontrolleri içerir
Projenin kalite standartları. CI çıktısını inceleyin ve varsa sorunları giderin. CI süreci hakkında ayrıntılı bilgi ve sorun giderme ipuçları için GitHub Actions CI Tests bölümüne bakın.
Ultralytics YOLO depolarındaki bir hatayı nasıl bildirebilirim?
Bir hatayı bildirmek için, hata raporunuzla birlikte açık ve özlü bir Minimum Tekrarlanabilir Örnek sağlayın. Bu, geliştiricilerin sorunu hızla tanımlamasına ve düzeltmesine yardımcı olur. Örneğinizin asgari düzeyde ancak sorunu tekrarlamak için yeterli olduğundan emin olun. Hata bildirme ile ilgili daha ayrıntılı adımlar için Hata Bildirme bölümüne bakın.