Google is committed to advancing racial equity for Black communities. See how.

TensorFlow koduna katkıda bulunun

Bir kayıp işlevi ekliyor, test kapsamını iyileştiriyor veya büyük bir tasarım değişikliği için bir RFC yazıyor olun, katılımcı kılavuzunun bu bölümü başlamanıza yardımcı olacaktır. TensorFlow'u iyileştirmeye çalıştığınız ve gösterdiğiniz ilgiden dolayı teşekkür ederiz.

Başlamadan önce

Bir TensorFlow projesine kaynak koduna katkıda bulunmadan önce, lütfen projenin GitHub deposundaki CONTRIBUTING.md dosyasını gözden geçirin. (Örneğin , çekirdek TensorFlow deposu için CONTRIBUTING.md dosyasına bakın.) Tüm koda katkıda bulunanların bir Katılımcı Lisans Sözleşmesi (CLA) imzalaması gerekir.

Çalışmayı tekrarlamaktan kaçınmak için, önemsiz olmayan bir özellik üzerinde çalışmaya başlamadan önce lütfen mevcut veya önerilen RFC'leri inceleyin ve TensorFlow forumlarında ( developer@tensorflow.org ) geliştiricilerle iletişime geçin. Yeni işlevler eklemeye karar verirken biraz seçici davranıyoruz ve projeye katkıda bulunmanın ve yardım etmenin en iyi yolu bilinen sorunlar üzerinde çalışmaktır.

Yeni katkıda bulunanlar için sorunlar

Yeni katkıda bulunanlar, TensorFlow kod tabanına ilk katkı ararken aşağıdaki etiketleri aramalıdır. Katkıda bulunanların önce "iyi ilk konu" ile ilgilenmelerini ve projeleri "katkılar hoş karşılamasını" şiddetle tavsiye ediyoruz; bu, katkıda bulunan kişinin katkı iş akışına aşina olmasına ve çekirdek geliştiricilerin katkıda bulunanla tanışmasına yardımcı olur.

Büyük ölçekli bir sorunun veya yeni bir özelliğin üstesinden gelmeye yardımcı olacak bir ekip oluşturmakla ilgileniyorsanız, lütfen developer @ group'a e-posta gönderin ve mevcut RFC listemizi inceleyin.

Kod incelemesi

Yeni özellikler, hata düzeltmeleri ve kod tabanındaki diğer tüm değişiklikler kod incelemesine tabidir.

Çekme istekleri, TensorFlow geliştirmesinin çok önemli bir bileşeni olduğundan projeye katkıda bulunan kodun gözden geçirilmesi. Diğer geliştiriciler tarafından gönderilen kodu, özellikle de bu özelliği kullanma olasılığınız olan bir şeyse, incelemeye başlamak için herkesi öneririz.

Kod inceleme sürecinde aklınızda bulundurmanız gereken bazı sorular şunlardır:

  • Bunu TensorFlow'da istiyor muyuz? Kullanılması muhtemel mi? Bir TensorFlow kullanıcısı olarak, değişikliği seviyor ve onu kullanmayı düşünüyor musunuz? Bu değişiklik TensorFlow kapsamında mı? Yeni bir özelliği sürdürmenin maliyeti faydalarına değer mi?
  • Kod, TensorFlow API ile tutarlı mı? Genel işlevler, sınıflar ve parametreler iyi adlandırılmış ve sezgisel olarak tasarlanmış mı?
  • Dokümantasyon içeriyor mu? Tüm genel işlevler, sınıflar, parametreler, dönüş türleri ve depolanan öznitelikler TensorFlow kurallarına göre adlandırılmış ve açıkça belgelenmiş mi? Yeni işlevler TensorFlow'un belgelerinde açıklanıyor ve mümkün olduğunda örneklerle gösteriliyor mu? Dokümantasyon düzgün işliyor mu?

  • Kod insan tarafından okunabilir mi? Yedeklilik düşük mü? Açıklık veya tutarlılık için değişken isimleri iyileştirilmeli mi? Yorumlar eklenmeli mi? Yararsız veya gereksiz yorumlardan herhangi biri kaldırılmalı mı?

  • Kod verimli mi? Daha verimli çalışması için kolayca yeniden yazılabilir mi?

  • Kod, TensorFlow'un önceki sürümleriyle geriye doğru uyumlu mu?

  • Yeni kod diğer kitaplıklara yeni bağımlılıklar ekleyecek mi?

Test kapsamını test edin ve iyileştirin

Yüksek kaliteli birim testi, TensorFlow geliştirme sürecinin temel taşlarından biridir. Bu amaçla Docker imajlarını kullanıyoruz. Test fonksiyonları uygun şekilde adlandırılır ve algoritmaların geçerliliğinin yanı sıra farklı kod seçeneklerinin kontrolünden sorumludur.

Tüm yeni özellikler ve hata düzeltmeleri yeterli test kapsamı içermelidir . Ayrıca yeni test senaryolarının katkılarını veya mevcut testlere yapılan iyileştirmeleri de memnuniyetle karşılıyoruz. Mevcut testlerimizin tamamlanmadığını fark ederseniz - bu şu anda bir hataya neden olmasa bile - lütfen bir sorun ve mümkünse bir çekme talebinde bulunun.

Her TensorFlow projesindeki test prosedürlerinin belirli ayrıntıları için GitHub'daki proje README.md ve CONTRIBUTING.md dosyalarına bakın.

Yeterli testte özellikle endişeler:

  • Her kamusal işlev ve sınıf test edildi mi?
  • Makul bir parametre seti, değerleri, değer türleri ve kombinasyonları test ediliyor mu?
  • Testler, kodun doğru olduğunu ve belgelerin kodun amaçladığını söylediği şeyi yaptığını onaylıyor mu?
  • Değişiklik bir hata düzeltmesiyse, regresyon dışı bir test dahil mi?
  • Testler sürekli entegrasyon yapısını geçiyor mu?
  • Testler her kod satırını kapsıyor mu? Değilse, istisnalar makul ve açık mı?

Herhangi bir sorun bulursanız, lütfen katkıda bulunan kişinin bu sorunları anlamasına ve çözmesine yardımcı olmayı düşünün.

Hata mesajlarını veya günlükleri iyileştirin

Hata mesajlarını ve günlük kaydını iyileştiren katkıları memnuniyetle karşılıyoruz.

Katkı iş akışı

Kod katkıları - hata düzeltmeleri, yeni geliştirme, test iyileştirme - tümü GitHub merkezli bir iş akışını takip eder. TensorFlow geliştirmeye katılmak için GitHub hesabı oluşturun. Sonra:

  1. Üzerinde çalışmayı planladığınız depoyu çatallayın. Proje deposu sayfasına gidin ve Çatal düğmesini kullanın. Bu, kullanıcı adınız altında deponun bir kopyasını oluşturacaktır. (Bir deponun nasıl çatallanacağıyla ilgili daha fazla ayrıntı için bu kılavuza bakın.)

  2. Depoyu yerel sisteminize kopyalayın.

    $ git clone git@github.com:your-user-name/project-name.git

  3. Çalışmanızı tutmak için yeni bir şube oluşturun.

    $ git checkout -b new-branch-name

  4. Yeni kodunuz üzerinde çalışın. Testleri yazın ve çalıştırın.

  5. Değişikliklerinizi taahhüt edin.

    $ git add -A

    $ git commit -m "commit message here"

  6. Değişikliklerinizi GitHub deponuza aktarın.

    $ git push origin branch-name

  7. Bir Çekme İsteği (PR) açın. GitHub'daki orijinal proje deposuna gidin. Yakın zamanda gönderilen şubeniz hakkında bir çekme isteği açmak isteyip istemediğinizi soran bir mesaj olacaktır. Komut istemlerini izleyin, depolar arasında karşılaştırın ve PR'yi gönderin. Bu, taahhüt edenlere bir e-posta gönderecektir. Daha fazla görünürlük için posta listesine bir e-posta göndermeyi düşünebilirsiniz. (Daha fazla ayrıntı için, PR'larla ilgili GitHub kılavuzuna bakın.

  8. Bakımcılar ve diğer katkıda bulunanlar sizin PR'nuzu gözden geçireceklerdir. Lütfen sohbete katılın ve istenen değişiklikleri yapmaya çalışın. PR onaylandıktan sonra, kod birleştirilecektir.

Bir sonraki katkınız üzerinde çalışmaya başlamadan önce , yerel deponuzun güncel olduğundan emin olun.

  1. Yukarı akışlı uzaktan kumandayı ayarlayın. (Bunu her seferinde değil, proje başına yalnızca bir kez yapmanız gerekir.)

    $ git remote add upstream git@github.com:tensorflow/project-repo-name

  2. Yerel ana şubeye geçin.

    $ git checkout master

  3. Değişiklikleri yukarı akıştan aşağı çekin.

    $ git pull upstream master

  4. Değişiklikleri GitHub hesabınıza aktarın. (İsteğe bağlı, ancak iyi bir uygulama.)

    $ git push origin master

  5. Yeni işe başlıyorsanız yeni bir şube oluşturun.

    $ git checkout -b branch-name

Ek git ve GitHub kaynakları:

Katkıda bulunan kontrol listesi