· kaynak Hacker News – Front Page (native)
Topluluk fork'u Maiao'yu yeniden canlandırıyor: birden fazla git forge için Gerrit tarzı stacked pull request aracı
Adevinta'daki orijinal geliştiricilerin projeden ayrılmasının ardından bir topluluk fork'u Maiao'yu ayakta tutuyor. git review komutu, her commit'i GitHub, GitLab, Gitea ve diğer forge'larda kendi stacked pull request'ine dönüştürüyor.
Upstream sessizleşince devri fork üstleniyor
Modern git barındırma platformlarına Gerrit tarzı bir review modeli uygulayan açık kaynak araç Maiao'nun geliştirilmesi bir topluluk fork'una taşındı. Projenin README'sine göre, orijinal adevinta/maiao deposunun arkasındaki geliştiriciler Adevinta'dan ayrılmış durumda ve upstream projeyi artık sürdürmüyorlar; bu nedenle çalışmayı şu anda runetes kuruluşu altında yayımlanan bir fork sürdürüyor. Proje kısa süre önce Hacker News'in ana sayfasına ulaştı ve yeniden ilgi gördü.
README'de belirtildiğine göre isim, küçük bir adadan geliyor; araç geliştiricileri daha küçük ve düzenli commit'lere yönlendirdiği için bu isim seçilmiş.
Tek komut, her commit için bir review
Maiao'nun çekirdek arayüzü tek bir git review komutu. Birkaç commit içeren bir branch üzerinde çalıştırdığınızda, araç her commit için bir pull request (forge'a bağlı olarak merge request) açıyor ve bunları birbirine zincirliyor: ilk değişiklik main branch'ini hedefliyor, ikincisi ilkini, üçüncüsü ikincisini hedefliyor. README; kimlik doğrulama, middleware ve admin-endpoint commit'lerinden oluşan bir branch örneği üzerinden, sırayla bağlanan üç stacked PR üretildiğini adım adım anlatıyor.
Bu, stacked diffs metodolojisini hayata geçiriyor; README, okuyucuları Jackson Gabbard'ın temel makalesine, Graphite'ın iş akışı rehberine ve The Pragmatic Engineer'ın sektör analizine yönlendiriyor. Tek bir devasa PR yerine review yapanlar küçük ve odaklı değişiklikler görüyor, nihai geçmişte ise her commit'te tek bir mantıksal değişiklik bulunuyor.
Birkaç destekleyici davranış da belgelenmiş durumda:
Review geri bildirimi
git commit --fixupile ele alınıyor ve Maiao bunu doğru değişikliğin içine katıyor.Commit'ler, commit-msg hook'unun ürettiği Gerrit tarzı Change-ID'ler üzerinden izleniyor; böylece sonraki yamalar yeni bir PR açmak yerine aynı review'ye düşüyor.
Bir stack'teki PR'lardan biri merge edildiğinde, kalan PR'lar otomatik olarak rebase ediliyor.
Sağlayıcı, github.com ve codeberg.org gibi bilinen host'lar için remote URL'sinden çıkarılıyor; self-hosted örneklerde bir kez soruluyor ve yanıt
maiao.providerolarak git config içinde saklanıyor.
Eşitsiz derinlikte çoklu forge desteği
Fork altı desteklenen sağlayıcı listeliyor: GitHub, GitLab, Gitea, Forgejo/Codeberg, Bitbucket Cloud ve hâlâ beta aşamasında olan Cursor Origin. Entegrasyon derinliği değişiyor. GitHub ve GitLab native stack'leri kaydedebiliyor — GitHub'da açıkça, GitLab'da hedef branch'ten otomatik algılanarak ve en fazla 20 merge request sınırıyla — Cursor Origin ise parentPullNumber alanına dayanıyor. Gitea, Forgejo ve Bitbucket Cloud native stacking sunmuyor; bu durumda işi Maiao'nun kendi branch tabanlı mekanizması yapıyor. Draft (taslak) davranışı da farklılık gösteriyor: GitHub ve Cursor Origin bir API alanı sunarken, GitLab ve Gitea ailesi WIP tarzı başlık öneklerine güveniyor, Bitbucket Cloud ise hiç draft desteği sunmuyor.
GitHub'ın daha yeni Stacks özelliği zorunlu değil, isteğe bağlı. Maiao, Stacks API'sini yokluyor, sonucu 24 saat boyunca önbelleğe alıyor ve yetenek mevcutsa push edilen PR'ları bir stack olarak kaydediyor. Daha eski GitHub Enterprise örneklerinde bu adım sessizce atlanıyor ve branch tabanlı stacking çalışmaya devam ediyor. maiao.useNativeStack yapılandırma ayarı auto, her zaman açık ve devre dışı modlarını sunuyor.
Proje ücretsiz ve MIT lisanslı.
Neden önemli
Stacked review'lar büyük ölçüde Gerrit gibi özel platformlarda ya da Graphite gibi ticari araçlarda yaşadı. Maiao, bu iş akışını ekiplerin zaten kullandığı forge'lara — self-hosted Gitea ve Forgejo örnekleri dahil — taşıyor ve ayrı bir review servisine geçişi zorunlu kılmıyor. Bu, review yapanların devasa PR'lerde boğulduğu ve temiz, commit düzeyinde bir geçmişin değer gördüğü kod tabanları için önemli.
Hikaye, açık kaynak sürekliliğinin küçük bir vaka çalışması aynı zamanda: yazarları yollarını ayıran kurumsal destekli bir araç, çürümeye terk edilmeden topluluk tarafından sahiplenildi — bu, günlük review döngüsü git review etrafında kurulu herhangi bir ekip için önemli. Ödün ise şu: yeni sahiplenmenin henüz bir sicili yok ve fork'u standart haline getirmek isteyenler, runetes geliştiricilerinin geliştirmeyi orijinal projeden daha iyi sürdürebilip sürdüremeyeceğini izlemeli.
- #open-source
- #git
- #code-review
- #developer-tools
- #pull-requests
İlgili yazılar
- BrowserSkill, yapay zeka ajanlarınıza zaten oturum açtığınız tarayıcıyı kullanma imkanı veriyor
- Pushin.eu, ücretsiz private repo'lar ve GitHub uyumlu API ile yalnızca AB içinde barındırılan Git hizmetini başlattı
- GPT-6 Astra, CodeRabbit'ın erken incelemesinde dosyalar arası hataları %20'ye kadar daha fazla yakalıyor