[Gelistirici] Gparted'in Kdebase bağımlılığı var =)

Gürer Özen gurer at pardus.org.tr
20 Oca 2009 Sal 18:12:27 EET


On Tuesday 20 January 2009 17:23:43 Erkan Tekman wrote:

> Eğer doğru anladıysam sorun işi ÇOMAR yerine doğrudan bir yol (örneğin bir
> dosyayı değiştirme) yolu ile yapmaktan çok genelde *-manager ailesini
> Pardus'a özgü olmaktan çıkaracak şekilde tasarım değişikliği yapmak.

Bu başka bir tartışma, ama madem konu açıldı aşağıda bir öneride bulunacağım.

Ama önce ana thread'e cevap olarak, runCommand yada writeToFile metoduyla 
yapılan bir çözümü hiç bir dağıtım hiç bir şekilde kullanmayacaktır ondan 
emin olun :)

> sağlamak olacak. Temel yükü ise gerekecek ek bir katman ile performans
> düşüşü ve hata noktaları sayısının artması gibi görünüyor. Daha karmaşık
> bir sistem olacağından tasarım ve gerçeklemesinin daha uzun süreceği de bir
> olasılık.

Yeni bir katman, büyük iş gücü vb niye gereksin?

Şimdi elimizdeki Çomar dbus üzerinden çalışıyor, herkesin kullandığı policykit 
ile entegre, göreli olarak çok az bağımlılığı var. Başka bir dağıtımda 
çalıştırmak için ufak bir binary'yi ve ilgili python betiklerini kurmak 
yeterli.

Diğer dağıtımlarda kullanılan sistemlerden benim gördüğüm tek farkımız şu: 
Ayrı ayrı package-kit, disk-kit, hede-kit gibi çözümler yerine tek ve ufak 
bir Çomar C arayüzü arkasında işleri yapan Python betiklerimiz var.

Önereceğim strateji şu:

1. Yapılandırma betiklerini Python ile yazmak çok robust, kolay ve 
maintainable bir çözüm, bunu koruyalım. O şikayet ettiğiniz network 
betiklerini C ile yazsaydık ne halde olacaklarını bir düşünün, yada 
düşünmeyin NetworkManager koduna bir bakın :)

2. Managerları UI olmaktan çıkarmakla başka yerlerde kullanılmasını 
sağlayamazsınız. UI istemcileri ile asıl low-level sistem yapılandırma 
kısımları mutlaka ayrı olmalı.

3. Sorun üstte yada altta değil ortada. Şu anda Çomar, UI ile betikler 
arasında bir mapping yapıyor. Bunu genişletelim. Mesela Çomar Package-kit 
arayüzünü de sunsun aynı metotlarla, ama arkada bizim Python betikleri 
işlesin. Böylece package-kit'e bişiler eklemeye uğraşmadan, onun için 
yazılmış arayüzleri import pisi; pisi.install(name) şeklinde betiklerimizle 
kullanabilelim. Bizim package-manager'ımız da diğer dağıtımlardaki 
package-kit altyapısı ile çalışsın rahatça.

Henüz standartlaşmamış şeyler için oturup modeller oluşturalım. Burada önemli 
olan "interface", onun altta nasıl implemente edildiği değil. Interface ise 
iyi düşünülür ve hızlı prototiplenirse çok kolay diğer dağıtımlara 
satılabilecek bir şey. Şu anda standartlaşmış olanları da elimizdeki 
araçlarla orjinalinden çok daha kolay sunabiliriz.

Bu maddeyi gerçekleştirebilmek için fazla bir emeğe ihtiyaç yok. Çomar'ın 
model sistemini bir elden geçirmek, daha sonra da standartlaşan konularda 
(network, hal, vb) ortak modeller kullanmaya yönelmek yeterli.

Bu stratejiden en önemli kazancımız, bir yandan diğer dağıtımlarla 
interoperability'yi arttırırken, diğer yandan kendi Python ile geliştirme 
avantajımızı koruyarak kullanıcılara daha hızlı ve kaliteli çözüm 
ulaştırabilmek.



Gelistirici mesaj listesiyle ilgili daha fazla bilgi