GitHub, "stacked pull request" özelliğini genel ön izlemeye (public preview) taşıyarak geliştiricilerin büyük bir değişikliği, bağımsız olarak incelenebilen ve birleştirilebilen bir dizi bağımlı PR'a bölmesine olanak sağlıyor.
Bu özellik neden önemli
Tek bir, monolitik PR genellikle bir aylık bir inceleme sürecine dönüşür ve inceleyenler ilgisiz kodlar arasında boğulmak zorunda kalır. Temel dal (base branch) değiştiğinde, bu devasa değişiklikler sürümleri durduran birleştirme çakışmalarına (merge conflicts) meyillidir. Stacked PR'lar, tek bir büyük farkı (diff), her biri bir öncekinin üzerine inşa edilen bir dizi daha küçük ve odaklanmış farka dönüştürerek her iki sorunu da çözer.
Nasıl çalışır
İlk PR'ı ana dala (main branch) karşı oluşturun, ardından bir sonraki PR'ı ilkinin, üçüncüyü ikincinin üzerine temellendirin ve bu şekilde devam edin. GitHub ilişkileri otomatik olarak takip eder: temel PR'ı düzenlerseniz, bağımlı PR'lar yeni durumu yansıtacak şekilde güncellenir. İnceleyenler tüm yığını tek bir tıklamayla onaylayabilir veya katmanları tek tek onaylayabilir.
- İncelemeler dar bir kapsamda kalır, bu da geri bildirimi hızlandırır.
- Her PR yalnızca kendi katmanında sunulan kodlara dokunduğu için çakışmalar azalır.
- Kullanıcı arayüzü (UI) yığın hiyerarşisini gösterir ve GitHub CLI, bir dizi stacked PR oluşturmak için tek satırlık bir komut sunar.
gh pr create --title Feature A --base main
gh pr create --title Feature B --base feature-a
gh pr create --title Feature C --base feature-b
Komut satırı örneği, her biri bir öncekinden bağımlı olan birbirine bağlı üç PR oluşturur. Aynı iş akışı, diğerlerini bozmadan bir PR'ı yığından yeniden sıralayabileceğiniz veya çıkarabileceğiniz web arayüzü üzerinden de mevcuttur.
Kimler fayda sağlar
Büyük özellik ekipleri ve açık kaynak sürdürücüleri, inceleyenleri ilgisiz karmaşaya maruz bırakmadan kademeli işler sunabilir. Sürüm yöneticileri, her yığın katmanı kendi takvimine göre birleştirilebildiği için neyin gönderilmeye hazır olduğuna dair daha net bir resim elde eder.
Dikkat edilmesi gerekenler
Özellik henüz ön izleme aşamasındadır, bu nedenle tam sürümden önce değişebilir. Ekipler dallanma (branching) konusunda yeni alışkanlıklar edinmek zorunda kalacak ve kısmen birleştirilmiş bir yığını yeniden temellendirirken (rebasing) uç durumlarla karşılaşabilirler. Dokümantasyon hala gelişme aşamasında olduğundan, erken benimseyenler kullanıcı arayüzü ipuçlarını öğrenmek için ekstra zaman harcayabilir.
Sırada ne var
GitHub muhtemelen code-owners ve otomasyon araçlarıyla daha sıkı bir entegrasyon sunacak ve çakışma azaltma üzerine metrikler paylaşacaktır. GA (genel kullanıma sunulma) zamanlamasıyla ilgili güncellemeler için ön izleme duyuru sayfasını takip edin.
Özet: Stacked pull request'ler, geliştiricilere devasa değişiklikleri dizginlemek için pratik bir yol sunarak, tek bir çakışma yoğunluklu PR'ı yönetilebilir ve inceleme dostu bir diziye dönüştürür. İş akışınız uzun incelemeler ve birleştirme baş ağrılarıyla mücadele ediyorsa, ön izleme sürümünü denemeye değer.
