GitHub Stacked Pull Requests Public Preview’da
GitHub, büyük değişiklikleri küçük ve incelenebilir parçalara bölmeyi hedefleyen stacked pull requests özelliğini public preview aşamasına aldı. Yeni yaklaşım, tek bir devasa pull request’i baştan sona incelemenin getirdiği yükü ve birden fazla dalı elle rebase etme zorunluluğunu ortadan kaldırmayı amaçlıyor. Bu yazı özelliğin ne sunduğunu, nasıl kullanıldığını ve mevcut GitHub akışlarına nasıl oturduğunu kaynak duyuruya sadık kalarak özetliyor.
Stacked pull request nedir?
Stacked pull requests, tek bir büyük değişikliği sıralı bir pull request dizisine bölüyor; her katman odaklı bir değişikliği temsil ediyor. Her pull request altındaki katmanı hedefliyor, değişiklikler böylece bağımlılık sırasına göre üst üste yığılıyor. Ortaya bir “stack” çıkıyor: katmanlar bağımsız incelenebiliyor, kontrol edilebiliyor ve son adımda tamamı tek tıkla birleştirilebiliyor.
Model aylardır Next.js ekibinde denendi. Vercel’de Next.js liderliğini yürüten Tim Neutkens, stacked PR’ların büyük özellikleri sevk ederken daha küçük bireysel değişiklikler ortaya koymayı ve inceleme sürecini kolaylaştırmayı sağladığını söylüyor. jQuery’nin yaratıcısı John Resig ise beş stacked PR’ı doğrudan bir merge queue’ya aynı anda gönderebilmenin sürtünmeyi ciddi biçimde azalttığını, gh CLI araçlarının ve agent skill’in bu deneyimde belirleyici olduğunu ifade ediyor.
Ekiplere sağladığı faydalar
GitHub, stacked pull requests’in ekipler için üç temel değeri hedeflediğini vurguluyor:
- Büyük değişiklikleri akışta tutmak: Kısa ve dar kapsamlı pull request’ler paralel olarak incelenebiliyor. Bir katmanın incelenmesini beklerken bir sonraki katman üzerinde çalışmak engellenmiyor.
- Her katmanda kalite: Odaklı pull request incelemeleri, mevcut branch protection kurallarıyla birlikte çalışıyor.
maindalı için tanımlı korumalar geçerliliğini koruyor. - Esnek merge stratejisi: Stack’in tamamını birlikte veya katmanları tek tek merge etme seçeneği var. Ekipler hazır olan parçayı ilerletirken üstteki katmanları açık tutmaya devam edebiliyor.
Özellik GitHub’a yerleşik geldiği için mevcut incelemeler, statü kontrolleri ve merge gereksinimleri kutudan çıktığı gibi çalışıyor; ek bir entegrasyon yapılandırması gerekmiyor.
CLI uzantısıyla başlangıç
Stacked pull requests kullanmaya başlamanın en hızlı yollarından biri resmi CLI uzantısını kurmak. Duyuruda paylaşılan komut şu:
gh extension install github/gh-stack
Uzantı kurulduktan sonra terminalden veya doğrudan github.com üzerinden stack oluşturulabiliyor. İlk değişiklik için standart bir dal ve pull request açılıyor, ardından bunun üzerine yeni dallar ve pull request’ler ekleniyor. Her yeni pull request, altındaki katmanı hedef alacak şekilde konumlanıyor. Bağımlılık sırası bu yolla korunuyor ve stack’in yapısı net biçimde ortaya çıkıyor.
Nerelerde çalışıyor?
Stacked pull requests ile çalışılabilecek ortamlar duyuruda şöyle sıralanıyor:
- github.com arayüzü
- GitHub CLI
- GitHub mobil uygulaması
gh-stackskill’i üzerinden GitHub Copilot gibi bir coding agent
Bu çoklu yüzey desteği, stack’leri geliştiricinin çalıştığı ortamda yönetebilmesini hedefliyor; ayrı bir araca geçme ihtiyacı kalmıyor.
Katmanları bağımsız incelemek
Stack içindeki herhangi bir pull request açıldığında yalnızca o katmana ait diff görüntüleniyor. Pull request’in üst kısmındaki stack map, incelenen değişikliğin daha büyük çalışmanın neresine denk düştüğünü gösteriyor. Yapı, bir takım üyesinin alt katmanı incelerken diğerinin üst katmanı gözden geçirmesine imkan veriyor; incelemeler birbirini bloklamıyor.
TED CTO’su Andy Merryman, AI’ın TED geliştiricilerini belirgin biçimde daha üretken hale getirdiğini, ancak pull request’lerin büyümesinin inceleyenler için darboğaza dönüştüğünü aktarıyor. Merryman’a göre stacked pull requests, büyük değişiklikleri bağımlılık sıralı küçük parçalara bölerek incelemeyi hem daha hızlı hem daha isabetli hale getiriyor ve geri bildirim döngüsünü sıkılaştırıyor.
Merge deneyimi
Merge tarafında iki temel senaryo var:
- Tümünü tek tıkla merge: Stack’teki en son hazır pull request merge edildiğinde, o katman ve altındaki merge edilmemiş tüm katmanlar tek işlemde birleşiyor.
- Kısmi merge: Yalnızca bir veya birkaç alt katmanı merge etmek mümkün. Üstte kalan pull request’ler açık kalmaya devam ediyor ve otomatik olarak rebase edilip yeniden hedefleniyor.
Her iki durumda da mevcut branch protection kuralları ve zorunlu kontroller main‘e ulaşan değişiklikleri denetlemeye devam ediyor. WHOOP’ta connectivity engineer olarak çalışan Mayank Saini, önceden büyük bir değişikliğin kimsenin incelemek istemediği dev bir PR anlamına geldiğini, artık aynı işin inceleyenlerin gerçekten takip edebildiği küçük PR’lardan oluşan bir stack’e dönüştüğünü ve tüm stack’in tek seferde merge edilebildiğini belirtiyor.
Kullanılabilirlik ve merge queue desteği
Duyuruya göre stacked pull requests, önümüzdeki günlerde tüm depolara public preview olarak açılıyor. Merge queue desteği ise stacked pull requests için önümüzdeki haftalarda kademeli devreye alınacak. Yani özelliğe erişim ve merge queue entegrasyonu, farklı zamanlarda tamamlanan iki ayrı yaygınlaşma sürecini takip ediyor.
Değerlendirme
Stacked pull requests, büyük değişiklikleri parçalara bölerken bağımlılık sırasını, incelemeleri ve merge kurallarını platformun kendi içinde tutuyor. Uzun süredir üçüncü taraf araçlarla çözülmeye çalışılan bir problem, doğrudan GitHub deneyiminin parçası oluyor. Preview aşamasında olduğu için akışa katmadan önce iki şeye bakmak yerinde olur: merge queue desteğinin depolarınıza ulaşıp ulaşmadığı ve mevcut branch protection kurallarınızla nasıl etkileştiği.
Kaynaklar ve İleri Okuma
- Stacked pull requests are now in public preview – GitHub Changelog
- Stacked pull requests dokümantasyonu
- Merge queue yönetimi dokümantasyonu
- Stacks discussion – Geri bildirim
- GitHub Pull Requests Dashboard: Herkes İçin Açılan Yeni Deneyim







Yorum gönder