Koda nasıl katkıda bulunulur

Nette Framework'e katkıda bulunmaya hazırlanıyor ve kurallar ve prosedürler hakkında bilgiye mi ihtiyacınız var? Yeni başlayanlar için bu kılavuz, koda etkili bir şekilde nasıl katkıda bulunacağınızı, depolarla nasıl çalışacağınızı ve değişiklikleri nasıl uygulayacağınızı adım adım gösterecektir.

Prosedür

Koda katkıda bulunmak için GitHub üzerinde bir hesabınızın olması ve Git sürüm kontrol sistemi ile çalışmanın temellerine aşina olmanız gerekir. Git ile çalışmayı bilmiyorsanız, Git – basit kılavuz kılavuzuna bakabilir ve gerekirse birçok grafik istemciden birini kullanabilirsiniz.

Ortam ve depo hazırlığı

  1. GitHub'da, düzenlemeyi planladığınız paketin deposunun bir forkunu oluşturun
  2. Bu depoyu bilgisayarınıza klonlayın
  3. composer install komutunu kullanarak Nette Tester dahil olmak üzere bağımlılıkları yükleyin
  4. composer tester komutunu çalıştırarak testlerin çalıştığını kontrol edin
  5. Son yayınlanan sürüme dayalı yeni bir dal oluşturun

Kendi değişikliklerinizi uygulama

Şimdi kendi kod değişikliklerinizi yapabilirsiniz:

  1. Gerekli değişiklikleri programlayın ve testleri unutmayın
  2. composer tester kullanarak testlerin başarıyla geçtiğinden emin olun
  3. Kodun kodlama standardına uygun olup olmadığını kontrol edin
  4. Değişiklikleri bu formatta bir açıklama ile kaydedin (commit edin)

Her mantıksal adım için bir tane olmak üzere birkaç commit oluşturabilirsiniz. Her commit kendi başına anlamlı olmalıdır.

Değişiklikleri gönderme

Değişikliklerden memnun olduğunuzda, gönderebilirsiniz:

  1. Değişiklikleri GitHub'daki fork'unuza gönderin (push)
  2. Oradan, bir pull request (PR) oluşturarak Nette deposuna gönderin
  3. Açıklamada yeterli bilgi sağlayın

Geri bildirimi dahil etme

Commit'leriniz artık başkaları tarafından görülecektir. Yorumlarla geri bildirim almanız yaygındır:

  1. Önerilen değişiklikleri takip edin
  2. Bunları yeni commit'ler olarak dahil edin veya öncekilerle birleştirin
  3. Commit'leri tekrar GitHub'a gönderin, otomatik olarak pull request'te görüneceklerdir

Mevcut bir pull request'i düzenlemek için asla yeni bir pull request oluşturmayın.

Dokümantasyon

İşlevselliği değiştirdiyseniz veya yeni bir tane eklediyseniz, bunu dokümantasyona eklemeyi de unutmayın.

Yeni dal

Mümkünse, değişiklikleri son yayınlanan sürüme, yani ilgili daldaki son etikete göre yapın. v3.2.1 etiketi için şu komutla bir dal oluşturursunuz:

git checkout -b new_branch_name v3.2.1

Kodlama Standartları

Kodunuz, Nette Framework'te kullanılan kodlama standardına uymalıdır. Kodu kontrol etmek ve düzeltmek için otomatik bir araç mevcuttur. Composer aracılığıyla seçtiğiniz bir klasöre global olarak kurulabilir:

composer create-project nette/coding-standard /path/to/nette-coding-standard

Şimdi aracı terminalde çalıştırabilmelisiniz. İlk komut kontrol eder ve ikinci komut geçerli dizindeki src ve tests klasörlerindeki kodu düzeltir:

/path/to/nette-coding-standard/ecs check
/path/to/nette-coding-standard/ecs check --fix

Commit açıklaması

Nette'de commit konularının formatı şöyledir: Presenter: fixed AJAX detection [Closes #69]

  • İki nokta üst üste ile takip edilen alan
  • Mümkünse geçmiş zamanda commit'in amacı, şu kelimelerle başlayın: added, fixed, refactored, changed, removed
  • Commit geriye dönük uyumluluğu bozarsa, “BC break” ekleyin
  • (#123) veya [Closes #69] gibi isteğe bağlı sorun izleyici bağlantısı
  • Konudan sonra bir boş satır ve ardından forum bağlantıları gibi daha ayrıntılı bir açıklama gelebilir

Pull request açıklaması

Bir pull request oluştururken, GitHub arayüzü bir başlık ve açıklama girmenize izin verir. Açıklayıcı bir başlık girin ve açıklama bölümünde değişikliğinizin nedenleri hakkında mümkün olduğunca fazla bilgi sağlayın.

Ayrıca, bunun yeni bir özellik mi yoksa bir hata düzeltmesi mi olduğunu ve geriye dönük uyumluluğun bozulup bozulmayacağını (BC break) belirttiğiniz bir başlık da görünecektir. İlgili bir sorun (issue) varsa, pull request onaylandıktan sonra kapatılması için ona bağlantı verin.

- bug fix / new feature?  <!-- #issue numbers, if any -->
- BC break? yes/no
- doc PR: nette/docs#?    <!-- highly welcome, see https://nette.org/en/writing -->