(GNOME Türkiye telegram kanalındaki kısa notlarımı buraya da alıyorum, ilerde düzenleriz, şimdi yayınlayalım)

Sürüm Takvimi

GNOME sabit sürüm takvimini kullanıyor ve bu konuda öncü bir masaüstü ortamı. Daha öncesinde masaüstleri hiçbir takvim kullanmıyordu. Ne zaman hazırsa o zaman yayınlanır gibi bir mantık vardı. XFCE ve Mate halen bu mantıkla ilerliyor.

Tahmin edilebilir takvim sunmak özellikle dağıtımların ve geliştiricilerin işini kolaylaştırıyor.

Öncelikle elinizde 2 yazılım dalı oluyor. Özellik dondurulmuş Stabil sürüm ve Main veya Master genellikle adıyla anılan ana dal. Geliştirmeler ana dal üstünden yapılıyor. Fakat stabil sürümde de güvenlik açıkları veya çeviri iyileştirmeleri gibi kod değişiklikleri görülebiliyor. Fakat yeni özellik eklenmesi amaçlanmıyor.

Master dalında ürün geliştirirken bu sebeple mevcut donma noktalarına dikkat ederek geliştirme yapıyorsunuz. Mesela özellik donmasından sonra kod donması ve dizge donması gibi sabitleyici aşamalar var ve bunları ihlal edemiyorsunuz.

Mesela büyük bir iş yaptınız ve GTK3’den GTK4’e geçiş yapacaksınız. Bu işlemi genelde ayrı bir dalda yapıp, sonra ana dal ile birleştiriyorsunuz. Elde edilen ürün genelde tatsız tutsuz ve bol hatalı oluyor. Sürüm yayınlama zamanı da gelmişse, bu sürümü yayınlamak yerine ana dal üstündeki sürüme gelen çevirilerden yeni bir stabil sürüm yayınlıyorsunuz veya o sürüm derlemesine (release) eski sürümle katılıyorsunuz. Kullanıcı deneyimi olarak da bariz hatalı ürünü zorla kullanıcılara yollamamış oluyorsunuz.

GNOME Yönetimi

En tepede elbette yönetimsel olarak Board yani yönetim kurulu bulunuyor fakat GNOME yönetim kurulu genelde vakıf işleriyle uğraşıyor, teknik işlere çok burnunu sokmuyor.

Peki işler nasıl işliyor.

Yazılım Geliştirme Yaklaşımı

Öncelikle en tepede şahsen GNOME HIG duruyor. GNOME HIG arayüz için kılavuz görevi görüyor ve arayüzde olması, olmaması gereken noktaları felsefi ve sanatsal anlamda aydınlatıyor. GNOME HIG özellikle GNOME Core yani çekirdek içinde yer alan uygulamalar için önemli. Circle uygulamaları için de yüzde yüz olmasa da önemli. Diğer GTK uygulamaları için de yol gösterici olması dışında bir bağlayıcılığı yok: Bkz: https://developer.gnome.org/hig/

İkinci aşamada GNOME WhiteBoard bulunuyor. Burası fikirlerin tartışıldığı alan. Şu şöyle olmalı, bu tasarım böyle olmalı tartışmaları burada başlıyor veya yapılıyor. Elbette sadece GNOME Core uygulamaları için bağlayıcılığı var. Yoksa Circle geliştiricileri falan bu tartışmanın odağı değil: Bkz: https://gitlab.gnome.org/Teams/Design/whiteboards/-/issues

Üçüncü ve şahsen en önemli aşama tasarım aşaması. GNOME ekibi “Önce Tasarım Vardı” gibi bir yaklaşımla ilerliyor. Önce yazılıma ait tasarımlar yani mockuplar hazırlanıyor. Bkz:
https://gitlab.gnome.org/Teams/Design/app-mockups
https://gitlab.gnome.org/Teams/Design/settings-mockups
https://gitlab.gnome.org/Teams/Design/os-mockups

Tasarım konusunda anlaşıldıktan sonra uygulamaların yazımı başlıyor.

GNOME Uygulamalarının Ayrımı

GNOME Core içindeki uygulamalar her ne kadar core veya Release yani dağıtım içinde olsalar da neredeyse hepsi gönüllü kişiler tarafından ortaya konuyor, veya bakımı yapılıyor veya ilerletiliyor.

https://apps.gnome.org/#core sayfasından GNOME çekirdek uygulamalarına bakabilirsiniz. Burada genelde çekirdek içinde aynı işlevi yerine getiren iki uygulama bulunmuyor. Benzer işler yapan bazen basit bazen de daha gelişmiş uygulamalar bulunuyor. Örneğin resim görüntüleme için EOG ve Resim yönetimi için gthumb uygulaması böyle bir örnek sayılabilir.

Core uygulamaları içinden de bazen emekli edilen uygulamalar olabiliyor. Mesela GTK3 den GTK4 e geçişte geride kalan, geçişi gerçekleştiremeyen uygulamalar var. EOG, FileRoller hatta Gedit gibi bu uygulamalar core içinden çıkarıldı ve extra altına taşındı.

Ayrıca sürüm takvimini takip etmesine rağmen Evolution ve sürüm takvimine uyması imkansız olan GIMP de çekirdek release yayın/dağıtım içinde yer almıyor.

Bazen yeni bir uygulama, çok şey vaat ederek çekirdek içindeki bir uygulamanın yerini alabiliyor fakat sonra Konsol adlı uygulama gibi hiç ilgi görmeyip, sonra bir nevi yarışta geri kalabiliyor.

Uygulamaların Adlandırılması

GNOME uygulamalarında artık GNOME adını kullanmak mümkün değil, eskilerindeki bu kullanımı da bıraktılar. GNOME Sudoku gibi oyunlar da bu sürümle birlikte artık yeni release/yayın/dağıtım içinde yer almayacak. Zaten GTK3 sonrası geçişi yapamadılar hem de gelişimleri durmuş durumda. Kimse yüzlerine bakmıyor.

EOG yerine mesela Loupe isimli bir başka resim görüntüleme uygulaması geldi. Malesef hem performans olarak, hem de özellik olarak eskisinin yerini henüz dolduramıyor. Geliştiricisi de (çekirdek içinde görünmesi dediğim gibi ölçü değil) tasarım aşamasında okeylenmiş konulara şimdi yapmasak mı acaba kıvamında yaklaşıyor. Bazen tasarımda olması uygulamada gerçekleştirilmesini garantilemiyor. Sonuçta bu ürün, her ne kadar GNOME çekirdek içinde yer alsa da yazılımcılarının ve elbette geliştiricilerinin eseri.

GNOME Circle

GNOME Circle içinde yer alan uygulamalar tamamen çekirdek dışında yer alan, basit ve destekleyici bir nevi utulity sayılabilecek uygulamalardan oluşuyor. Elbette GNOME Circle içinde yer alabilmek için çeşitli şartlar var. Bkz: https://gitlab.gnome.org/Teams/Releng/AppOrganization/-/blob/main/AppCriteria.md

Fakat bu şartlar GNOME Core sürüm takvimine uymayı zorlamıyor. Çeviri platformunu kullanmak veya kullanmamak hatta GNOME kodlarının tutulduğu gitlab sunucusunda barındırılmak gibi bir şartı içermiyor. Yine de uzun süreli olması ve olumsuz elleştirilerinin çok olmaması gibi şartlar var.

Buradaki uygulamalar da yine gönüllü kişiler tarafından (çoğunlukla tek kişilik dev kadro) geliştiriliyor. Şahsen buradaki uygulamalara kod göndermeyi, değişiklik yapmayı ve öneri sunmayı daha kolay ve formaliteden uzak buluyorum. Yine de tasarım konusunda GNOME HIG ile olan uyumsuzluklarda ilaç takibi için kullandığım uygulama bir yerlerde takıldı ve onay alamadı. https://apps.gnome.org/tr/#circle sayfasından uygulamaları görebilirsiniz.

Not: Tüm görüşler şahsidir, kurumsal bir şeyi yansıtmaz.

Bir yanıt yazın

E-posta adresiniz yayınlanmayacak. Gerekli alanlar * ile işaretlenmişlerdir