Yamaları Drupal çekirdeğine nasıl katıyorsunuz?


10

Drupal çekirdeğe yama eklemek için uygun süreç nedir?

Diyelim ki Drupal çekirdeğinde bir hata buldum, düzeltin ve bir yama oluşturun . Nasıl gönderirim?

Hata Drupal 7'de ise, Drupal 8'de de düzeltmem ve iki yama göndermem gerekir mi? Bu, dokümantasyon hataları / iyileştirmeleri için de geçerli mi?

Tüm yamalar ayrıca bir birim testi gerektiriyor mu?


3
Şimdilik, drupal.org'da zaten bir hesabım olduğunu, git'i nasıl kullanacağımı, çekirdeği nasıl kontrol edeceğimizi ve git yamaları nasıl oluşturacağımı bildiğim varsayımıyla cevaplar arıyorum. İyi yanıtlarımız olduğunda, bu işlemi ana hatlarıyla açıklamak için ek açıklama ekleyebilir veya yanıt ekleyebiliriz.
mpdonadio

Bu, meta.drupal.stackexchange.com/questions/2325'te ortaya çıkan bir çekirdek koruyucusuna verilen bir soruna yanıt olduğundan , yayın bildirimi uygulanacaktır. Sürecin özellikle yukarıdaki sorular hakkında iyi bir özetine ihtiyacımız var. Sadece diğer sayfalara bağlantı veren cevaplar silinir ve / veya silinir. Bu sorunun, DA kullanıcılarına çekirdekle ilgili bir sorun bulduğunda yönlendirebileceğimiz bir kaynak olacağını umuyorum.
mpdonadio

Yanıtlar:


6

Hata Drupal 7'de ise, Drupal 8'de de düzeltmem ve iki yama göndermem gerekir mi?

Hata, geliştirilmekte olan sürümde (bu durumda Drupal 8) ve önceki sürümde (Drupal 7) varsa, hata ilk olarak şu anda geliştirilen sürümde ve ardından önceki sürümlerde düzeltilmelidir.

Hata, en son geliştirilen sürümde yoksa, örneğin, hata kaldırılmış veya zaten değiştirilmiş bir işlev için olduğu için, yama şu anda geliştirilmiş olandan önceki sürüm için sağlanmalıdır.

İzlenen iş akışı:

  • Öncelikle yama oluşturulmakta ve en son sürüm için hala geliştirilme aşamasında olsa bile (Drupal 8 örneğinde olduğu gibi) incelemeye gönderilmektedir.
  • Bu düzeltme eki Drupal'a uygulandıktan sonra, önceki sürüm için geçerli olan bir düzeltme eki oluşturulur ve inceleme için gönderilir

Aynı anda iki Drupal sürümü için yamalar oluşturabilirsiniz, ancak en son Drupal sürümü için düzeltme eki değişiklik gerektirebileceğinden, şu anda geliştirilmiş sürüm için düzeltme eki üzerinde çalışmak, her ikisinin de gerektirdiği iki farklı düzeltme eki üzerinde çalışmaktan daha iyidir değiştirilebilir.

Ayrıca bkz: Backport İlkesi .

Bu, dokümantasyon hataları / iyileştirmeleri için de geçerli mi?

Evet öyle. Ayrıca bu durumda, şu anda geliştirilen sürüm, belgelerin başvurduğu işlevi / yöntemi kaldırırsa, düzeltme ekinin önceki sürüm için sağlanması gerekir.

Tüm yamalar ayrıca bir birim testi gerektiriyor mu?

Yama dokümantasyon içinse, test gerektirmez. Http://qa.drupal.org üzerinde çalışan test botu , yama uygulandıktan sonra Drupal kodunu kontrol eder; yama sözdizimi hataları verirse (örneğin, yorum gerekli olandan önce kapatıldığı için), test botu testler gerçekleştirilmeden önce yama hakkında bir hata rapor edecektir.

Yama yeni bir özellik içinse, testler gereklidir.

Düzeltme eki bir hatayı düzeltmek istiyorsa, belirli bir özelliği kontrol eden bir test yoksa, bakım görevlilerinden testler gerekebilir. Test, gelecekte aynı kodu değiştirirken aynı hatayı tekrar eklemekten kaçınmak için genellikle gereklidir. Hata sadece başlatılmış bir değişkendir, ancak hiçbir zaman bir işlevden / yöntemden kullanılmazsa, o zaman testlere gerek yoktur.


Aynı sorun birden fazla çekirdek sürüm için yamalar içerebilir mi?
mpdonadio

1
Sorun birden fazla sürüm için geçerliyse, ilgili her sürüm için düzeltme ekleri içerebilir.
kiamlaluno

Her zaman önce D8 yamasının sonra D7 sürümü gönderildiği durumda mıdır? Veya her ikisini aynı anda göndermenin uygun olduğu durumlar var mı?
mpdonadio

İki farklı sürüm için düzeltme ekleri gönderebilirsiniz, ancak ilk uygulanan düzeltme eki en son sürüm içindir. Düzeltme eki değişiklik gerektirebileceğinden, önce en son sürüm için düzeltme eki oluşturmak daha iyidir.
kiamlaluno

3

Drupal.org'daki her proje sayfasının üstünde bir "Sürüm kontrolü" sekmesi bulunur. Belirli bir proje için tüm kod veri havuzu seçeneklerine büyük bir genel bakış sağlamakla kalmaz, aynı zamanda tüm git komut örnekleri de proje için uyarlanmıştır. Hatta etkileşimli olarak belirli bir sürüme değiştirebilirsiniz.

Drupal çekirdeği için bu sayfayı http://drupal.org/project/drupal/git-instructions adresinde bulabilirsiniz.

Daha sonra düzeltme ekinizi oluşturduğunuzda, düzeltme eki dosyasını düzeltme ekinin ne yaptığını açıklayan bir soruna eklemeniz yeterlidir.

Dikkat edilmesi gereken iki önemli nokta, yamanın ".patch" ile bitmesini sağlamak ve durumu "İncelenmesi gerekiyor" olarak ayarlamaktır. Bu sayede testbot bunu fark edecek ve testini otomatik olarak çalıştıracaktır.

Yeni koda her zaman testler eşlik etmelidir .

Bunun projeler tarafından kapatılabileceğini ve bazılarının bunu yapabileceğini unutmayın. Drupal çekirdek için tüm yamalar test edilecek olsa da açıktır.

Daha fazlasını http://drupal.org/contribute/development adresinde bulabilirsiniz .


Bu iyi bir başlangıç.
mpdonadio
Sitemizi kullandığınızda şunları okuyup anladığınızı kabul etmiş olursunuz: Çerez Politikası ve Gizlilik Politikası.
Licensed under cc by-sa 3.0 with attribution required.