Kanun Değişikliği Önerisi
Nette Framework, kod tabanını korumak için Git ve GitHub 'ı kullanır. Katkıda bulunmanın en iyi yolu, değişikliklerinizi kendi çatalınıza işlemek ve ardından GitHub'da bir çekme isteği yapmaktır. Bu belge, başarılı bir şekilde katkıda bulunmak için önemli adımları özetlemektedir.
Ortam Hazırlama
GitHub'da Nette'yi çatallamakla başlayın. Yerel Git ortamınızı dikkatlice kurun, kullanıcı adınızı ve e-postanızı yapılandırın, bu kimlik bilgileri Nette Framework geçmişindeki değişikliklerinizi tanımlayacaktır.
Yamanız Üzerinde Çalışmak
Yamanız üzerinde çalışmaya başlamadan önce, değişiklikleriniz için yeni bir dal oluşturun.
git checkout -b new_branch_name
Kod değişikliğiniz üzerinde çalışabilirsiniz.
Mümkünse, son yayınlanan sürümden değişiklikler yapın.
Değişikliklerinizi Test Etme
Nette Tester'ı yüklemeniz gerekir. En kolay yol, depo kökünde composer install
adresini çağırmaktır.
Şimdi terminalde ./vendor/bin/tester
ile testleri çalıştırabilmelisiniz.
Bazı testler eksik php.ini nedeniyle başarısız olabilir. Bu nedenle çalıştırıcıyı -c parametresi ile çağırmalı
ve php.ini yolunu belirtmelisiniz, örneğin ./vendor/bin/tester -c ./tests/php.ini
.
Testleri çalıştırabildikten sonra, kendi testlerinizi uygulayabilir veya yeni davranışa uyması için başarısız olanı değiştirebilirsiniz. Nette Tester ile test etme hakkında daha fazla bilgiyi dokümantasyon sayfasında bulabilirsiniz.
Kodlama Standartları
Kodunuz Nette Framework'te kullanılan kodlama standardına uygun olmalıdır. Otomatik denetleyici ve düzeltici olduğu için kolaydır. Composer aracılığıyla seçtiğiniz global dizine kurulabilir:
composer create-project nette/coding-standard /path/to/nette-coding-standard
Şimdi aracı terminalde çalıştırabilmelisiniz. Örneğin, bu komut geçerli dizindeki src
ve
tests
klasörlerindeki kodu kontrol eder ve düzeltir:
/path/to/nette-coding-standard/ecs check src tests --config /path/to/nette-coding-standard/coding-standard-php71.yml --fix
Değişikliklerin İşlenmesi
Kodu değiştirdikten sonra değişikliklerinizi commit etmeniz gerekir. Her mantıksal adım için bir tane olmak üzere daha fazla commit oluşturun. Her bir commit, diğer commitler olmadan olduğu gibi kullanılabilir olmalıdır. Dolayısıyla, uygun testler de aynı commit'e dahil edilmelidir.
Lütfen kodunuzun kurallara uygunluğunu iki kez kontrol edin:
- Kod herhangi bir hata oluşturmuyor
- Kodunuz herhangi bir testi bozmaz.
- Kod değişikliğiniz test edilmiştir.
- Gereksiz beyaz alan değişiklikleri yapmıyorsunuz.
Taahhüt mesajı aşağıdaki formata uygun olmalıdır
Latte: fixed multi template rendering [Closes # 69]
Yani:
- iki nokta üst üste ile takip edilen bir alan
- commit'in geçmişteki amacı, mümkünse “added.”, “fixed.”, “refactored.”, changed, removed" ile başlayın
- sorun izleyiciye nihai bağlantı
- taahhüt geriye dönük uyumluluğu iptal ederse, “BC break” ekleyin
- konudan sonra bir serbest satır ve forum bağlantıları da dahil olmak üzere daha ayrıntılı bir açıklama olabilir.
Komiteleri Çekme-Talep Etme
Kod değişikliklerinizden ve taahhütlerinizden memnunsanız, taahhütlerinizi GitHub'a göndermeniz gerekir.
git push origin new_branch_name
Değişiklikler herkese açıktır, ancak değişikliklerinizi Nette'nin ana dalına entegre etmek için önermeniz gerekir. Bunu yapmak için bir çekme isteği oluşturun. Her çekme isteğinin bir başlığı ve bir açıklaması vardır. Lütfen açıklayıcı bir başlık girin. Genellikle şube adına benzer, örneğin “CSRF saldırısına karşı sinyalleri güvence altına almak.”
Çekme isteği açıklaması, kod değişiklikleriniz hakkında daha spesifik bilgiler içermelidir:
- bug fix? yes/no <!-- #issue numbers, if any -->
- new feature? yes/no
- BC break? yes/no
- doc PR: nette/docs#??? <!-- highly welcome, see https://nette.org/en/writing -->
Lütfen bilgi tablosunu çekme talebinize uyacak şekilde değiştirin. Her liste öğesine yorumlar:
- Çekme isteğinin özellik mi eklediğini yoksa bir hata düzeltme mi olduğunu belirtir.
- Çekme isteği birleştirildikten sonra kapatılacak olan ilgili soruna atıfta bulunur.
- Çekme isteğinin dokümantasyon değişikliklerine ihtiyacı olup olmadığını söyler, evet ise, uygun çekme isteklerine referanslar sağlar. Dokümantasyon değişikliğini hemen sağlamak zorunda değilsiniz, ancak dokümantasyon değişikliğine ihtiyaç duyulursa çekme isteği birleştirilmeyecektir. Dokümantasyon değişikliği İngilizce dokümantasyon için hazırlanmalıdır, diğer dil mutasyonları isteğe bağlıdır.
- Çekme isteğinin bir BC kırılması yaratıp yaratmadığını söylüyor. Lütfen, genel arayüzü değiştiren her şeyi bir BC kırılması olarak düşünün.
Final masası şöyle görünebilir:
- bug fix? no
- new feature? yes issue #123
- BC break? no
Değişikliklerinizin Yeniden Düzenlenmesi
Kod değişikliğinize yorum almak gerçekten yaygın bir durumdur. Lütfen önerilen değişiklikleri takip etmeye çalışın ve bunu yapmak için taahhütlerinizi yeniden düzenleyin. Önerilen değişiklikleri yeni taahhütler olarak işleyebilir ve ardından bunları öncekilere sıkıştırabilirsiniz. GitHub'da Etkileşimli yeniden düzenleme bölümüne bakın. Değişikliklerinizi yeniden düzenledikten sonra, değişikliklerinizi uzak çatalınıza zorla itin, her şey otomatik olarak çekme isteğine yayılacaktır.