GitHub Stacked Pull Requests Public Preview’da

GitHub, büyük değişiklikleri bağımlılık sırasına göre katmanlara bölerek incelemeyi kolaylaştıran stacked pull requests özelliğini public preview’a aldı. Stack’i tek tıkla ya da kısmi merge ile birleştirebilirsiniz.

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. main dalı 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-stack skill’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

Bu yazı yapay zeka (büyük dil modelleri) ile hazırlanmış, insan editör tarafından incelenmiştir. İçerik üretim sürecimiz.
Aşkın KILIÇ

20+ yıl deneyimli Azure Solutions Architect. Microsoft sertifikalı bulut mimari ve DevOps danışmanı. Azure, yapay zekâ ve bulut teknolojileri üzerine Türkçe teknik içerikler üretiyor.

AZ-305AZ-104AZ-500AZ-400DP-203AI-102

Bu içerik işinize yaradı mı?

Benzer içerikleri kaçırmamak için YouTube ve GitHub hesaplarımı takip edin.

Haftalık Bülten

Her pazar özenle seçilmiş teknoloji yazıları doğrudan e-postanıza gelsin.

3 Yorum

  1. Sonunda GitHub da bu özelliği getirdi, uzun zamandır Graphite gibi araçlara gerek duyuyorduk bunun için. Büyük feature’ları küçük parçalara bölmek code review kalitesini ciddi artırıyor, reviewerlar artık 50 dosyalık PR’a bakmak zorunda kalmayacak. Public preview’dan çıkıp stable’a ne zaman geçer acaba?

  2. Sonunda GitHub da bunu getirdi, GitLab’da benzer bir şey kullanıyordum ama native destek çok daha temiz oluyor. Özellikle büyük feature geliştirmelerinde reviewer’ların “bu PR çok büyük” demesini engelleyecek güzel bir çözüm.

Yoruma kapalı.

✉

Haftalık Bülten

Azure, DevOps ve Yapay Zeka dünyasındaki en güncel içerikleri her hafta doğrudan e-postanıza alın.

Spam yok. İstediğiniz zaman iptal edebilirsiniz.
📱
Uygulamayı Yükle Ana ekrana ekle, çevrimdışı oku
Kategoriler
Ara
Paylaş
WhatsApp
İçindekiler
← GitHub Copilot App’te St...
az webapp deploy’da Zeng... →
📩

Gitmeden önce!

Her pazar özenle seçilmiş teknoloji yazıları ve AI haberleri doğrudan e-postanıza gelsin. Ücretsiz, spam yok.

🔒 Bilgileriniz güvende. İstediğiniz zaman ayrılabilirsiniz.

📬 Haftalık bülten: Teknoloji + AI haberleri
Beni Takip Et Yeni Azure / AI / DevOps yazılarını GitHub ve RSS üzerinden takip edin.