İçeriğe geç

Ultralytics Açık Kaynak YOLO Depolarına Katkıda Bulunma

Öncelikle, Ultralytics açık kaynaklı YOLO depolarına katkıda bulunmaya gösterdiğiniz ilgi için teşekkür ederiz! Katkılarınız projenin geliştirilmesine yardımcı olacak ve topluluğa fayda sağlayacaktır. Bu belge, başlamanız için yönergeler ve en iyi uygulamaları sunmaktadır.

İçindekiler

  1. Davranış Kuralları
  2. Çekme İstekleri ile Katkıda Bulunma
  3. Hataların Raporlanması
  4. Lisans
  5. Sonuç

Davranış Kuralları

Herkes için sıcak ve kapsayıcı bir ortam sağlamak için tüm katılımcıların Davranış Kurallarına uyması beklenmektedir.

Çekme İstekleri ile Katkıda Bulunma

Çekme istekleri şeklinde katkıları memnuniyetle karşılıyoruz. İnceleme sürecini daha sorunsuz hale getirmek için lütfen bu yönergeleri izleyin:

  1. Depoyu çatallayın: Ultralytics YOLO deposunu kendi GitHub hesabınıza çatallayın.

  2. Bir şube oluşturun: Çatallanmış deponuzda değişiklikleriniz için açıklayıcı bir adla yeni bir dal oluşturun.

  3. Değişikliklerinizi yapın: Katkıda bulunmak istediğiniz değişiklikleri yapın. Değişikliklerinizin projenin kodlama stiline uygun olduğundan ve yeni hatalar veya uyarılar getirmediğinden emin olun.

  4. Değişikliklerinizi test edin: Beklendiği gibi çalıştıklarından ve yeni sorunlara yol açmadıklarından emin olmak için değişikliklerinizi yerel olarak test edin.

  5. Değişikliklerinizi işleyin: Değişikliklerinizi açıklayıcı bir commit mesajı ile commit edin. İlgili sorun numaralarını commit mesajınıza eklediğinizden emin olun.

  6. Bir çekme isteği oluşturun: Çatallanmış deponuzdan ana Ultralytics YOLO deposuna bir çekme isteği oluşturun. Çekme isteği açıklamasında, değişikliklerinizi ve projeyi nasıl geliştirdiklerini net bir şekilde açıklayın.

CLA İmzalama

Çekme isteğinizi kabul etmeden önce, bir Katılımcı Lisans Sözleşmesi (CLA) imzalamanız gerekir. Bu, Ultralytics YOLO depolarına katkıda bulunma koşullarını kabul ettiğinizi belirten yasal bir belgedir. CLA, katkılarınızın uygun şekilde lisanslanmasını ve projenin AGPL-3.0 lisansı altında dağıtılmaya devam etmesini sağlar.

CLA'yı imzalamak için, PR'nizi gönderdikten sonra CLA botu tarafından sağlanan talimatları izleyin ve PR'nize şöyle bir yorum ekleyin:

I have read the CLA Document and I sign the CLA

Google Tarzı Doküman Dizileri

Yeni işlevler veya sınıflar eklerken, diğer geliştiricilere açık ve özlü belgeler sağlamak için lütfen Google tarzı bir doküman dizisi ekleyin. Bu, katkılarınızın anlaşılması ve sürdürülmesinin kolay olmasını sağlamaya yardımcı olacaktır.

Örnek Doküman Dizeleri

Bu örnekte her iki Google tarzı doküman dizisi de gösterilmektedir. Hem girdi hem de çıktının types her zaman parantez içine alınmalıdır, yani (bool).

def example_function(arg1, arg2=4):
    """
    Example function that demonstrates Google-style docstrings.

    Args:
        arg1 (int): The first argument.
        arg2 (int): The second argument. Default value is 4.

    Returns:
        (bool): True if successful, False otherwise.

    Examples:
        >>> result = example_function(1, 2)  # returns False
    """
    if arg1 == arg2:
        return True
    return False

Bu örnekte hem Google tarzı dokümanlar hem de bağımsız değişken ve dönüş türü ipuçları gösterilmektedir, ancak her ikisi de gerekli değildir, biri diğeri olmadan da kullanılabilir.

def example_function(arg1: int, arg2: int = 4) -> bool:
    """
    Example function that demonstrates Google-style docstrings.

    Args:
        arg1: The first argument.
        arg2: The second argument. Default value is 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 fonksiyonlar tek satırlık bir docstring kullanabilir. Doküman dizisinin 3 çift tırnak kullanması ve büyük harfle başlayıp noktayla biten tam bir cümle olması gerektiğini unutmayın.

def example_small_function(arg1: int, arg2: int = 4) -> bool:
    """Example function that demonstrates a single-line docstring."""
    return arg1 == arg2

GitHub Eylemleri CI Testleri

Çekme isteğiniz birleştirilmeden önce, tüm GitHub Actions Sürekli Entegrasyon (CI) testleri 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. GitHub Eylemlerinin çıktısını gözden geçirdiğinizden ve sorunları düzelttiğinizden emin olun

Hataların Raporlanması

Projenin kalitesinin korunmasında çok önemli bir rol oynadıkları için hata raporlarını takdir ediyoruz. Hataları bildirirken, Minimum Yeniden Üretilebilir Örnek sağlamak önemlidir: sorunu tekrarlayan açık, özlü bir kod örneği. Bu, hatanın hızlı bir şekilde tanımlanmasına ve çözülmesine yardımcı olur.

Lisans

Ultralytics depoları için GNU Affero Genel Kamu Lisansı v3.0'ı (AGPL-3.0 ) benimser ve yazılım geliştirmede açıklığı, şeffaflığı ve işbirliğine dayalı iyileştirmeyi teşvik eder. Bu güçlü copyleft lisansı, tüm kullanıcıların ve geliştiricilerin yazılımı kullanma, değiştirme ve paylaşma özgürlüğünü korumasını sağlar. Herhangi bir iyileştirmenin herkes tarafından erişilebilir kalmasını sağlayarak topluluk işbirliğini teşvik eder.

Kullanıcıların ve geliştiricilerin Ultralytics açık kaynak topluluğuna etkin ve etik bir şekilde katkıda bulunabilmeleri için AGPL-3.0 şartlarını öğrenmeleri teşvik edilmektedir.

Sonuç

Ultralytics açık kaynaklı YOLO projelerine katkıda bulunmaya gösterdiğiniz ilgi için teşekkür ederiz. Katılımınız, yazılımımızın geleceğini şekillendirmek ve bir yenilik ve işbirliği topluluğunu teşvik etmek için çok önemlidir. İster kodu geliştiriyor, ister hataları bildiriyor veya özellikler öneriyor olun, katkılarınız önemli bir etki yaratır.

Fikirlerinizi iş başında görmek için sabırsızlanıyoruz ve nesne algılama teknolojisini ilerletme konusundaki kararlılığınızı takdir ediyoruz. Bu heyecan verici açık kaynak yolculuğunda birlikte büyümeye ve yenilikler yapmaya devam edelim. Mutlu kodlamalar! 🚀🌟



Oluşturma 2023-11-12, Güncelleme 2024-03-08
Yazarlar: glenn-jocher (4)

Yorumlar