İçeriğe geç

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.

Ultralytics açık kaynak katkıda bulunanlar

İçindekiler

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

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:

  1. Depoyu çatallayın: Ultralytics YOLO deposunu GitHub hesabınıza çatallayarak başlayın.

  2. Bir dal oluşturun: Çatallanmış deponuzda, değişikliklerinizi yansıtan net ve açıklayıcı bir adla yeni bir dal oluşturun.

  3. 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.

  4. 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.

  5. 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.

  6. 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:

I have read the CLA Document and I sign the CLA

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.

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

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.

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.

We're excited to see your ideas come to life and appreciate your commitment to advancing object detection technology. Together, let's continue to grow and innovate in this exciting open-source journey. Happy coding! 🚀🌟

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 süreç, katkılarınızın AGPL-3.0 lisansı altında düzgün bir şekilde lisanslanmasını sağlayarak açık kaynaklı projenin yasal bütünlüğünü korur. Çekme isteğinize şunu belirten bir yorum ekleyin:

I have read the CLA Document and I sign the CLA.

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 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.

📅 Created 11 months ago ✏️ Updated 28 days ago

Yorumlar