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ığı
- GitHub'da, düzenlemeyi planladığınız paketin deposunun bir forkunu oluşturun
- Bu depoyu bilgisayarınıza klonlayın
composer install
komutunu kullanarak Nette Tester dahil olmak üzere bağımlılıkları yükleyincomposer tester
komutunu çalıştırarak testlerin çalıştığını kontrol edin- Son yayınlanan sürüme dayalı yeni bir dal oluşturun
Kendi değişikliklerinizi uygulama
Şimdi kendi kod değişikliklerinizi yapabilirsiniz:
- Gerekli değişiklikleri programlayın ve testleri unutmayın
composer tester
kullanarak testlerin başarıyla geçtiğinden emin olun- Kodun kodlama standardına uygun olup olmadığını kontrol edin
- 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:
- Değişiklikleri GitHub'daki fork'unuza gönderin (push)
- Oradan, bir pull request (PR) oluşturarak Nette deposuna gönderin
- 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:
- Önerilen değişiklikleri takip edin
- Bunları yeni commit'ler olarak dahil edin veya öncekilerle birleştirin
- 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 -->