[Gelistirici] 2011/devel/system/base/pciutils - Version bump, refactor package, update PCI ID data...

Gürer Özen gurer at pardus.org.tr
11 Haz 2010 Cum 22:42:46 EEST


11 Haziran 2010 Cuma günü (saat 14:12:50) Gökmen Görgen şunları yazmıştı:

> Bir şey soracağım: Neden pspec, translations dosyalarımız XML formatında?

Validate etmesi ve çeşitli araçlarla işlemesi kolay diye. Okunaklılık, 
genişletilebilirlik, standartlık, otomatize edilebilirlik gibi kriterlere göre 
düşünülmüştü. Pisi dökümanında baya anlatılmış olması lazım nedenlerin.

Translations ve geri kalan bilgiler farklı kişiler (packager ve translators) 
tarafından ve farklı araçlarca update edildiği için ayrılmıştı.

> Zamanında neden bu dosyaların XML olması gerektiğine karar verildiğini
> hatırlayan bir arkadaş varsa merakımı giderebilir mi? Hem json'a göre daha
> okunaklı, hem XML'i json kadar hızlı parse edebilecek piksemel uygulamamız
> olduğu için mi XML tercih edildi?

Epey süre Python'ın kendi parser'ını kullandık, bir o kadar da 4suite parser 
ile devam ettik. Ciddi hız farkı olmasa piksemele geçmezdik tahminen.

> 2011 için böyle köklü bir değişikliğin yapılması söz konusu olabilir mi
> bilmiyorum (pisi kodu karışık :P) ama şuradaki gibi bir pspec dosyası
> düşünmemiz mümkün mü (md5sum satırına kadar kısma bakınız, gerisi için
> actions.py hallediyor):
> http://repos.archlinux.org/wsvn/packages/xz/trunk/PKGBUILD

Zaman içinde yeni ihtiyaçlar eklenmesine oldukça iyi dayandı pspec.xml formatı 
diye düşünüyorum.

Örnek verdiğin dosya basit görünüyor ama bu çok aldatıcı. Aslında epey bir 
sentaks var orada ve yeni şeyler eklemek gerektiğinde bu sentaksı sürekli 
genişletmek gerekecek.

> xml'den bash dosyasına geçelim de demiyorum ama .txt bile olabilirdi.
> Tamam, bir .txt dosyası parse etmek daha fazla zaman alır ama paketin
> içinde yine xml şeklinde durabilir bu bilgiler.

Asıl sorun .txt işleyen araçları yazmanın daha karışık olmasında. Çünkü her 
seferinde hazır araçları kullanmak yerine oradaki kafamıza göre koyduğumuz ve 
başka yerde kullanılmayan sentaksı işleyecek kodlar yazmak gerekecek yada 
oldukça kırılgan regexpler ile işleyeceğiz.

JSON gibi yaygın bir format olabilir belki, ama bir sürü aracı değiştirmek 
gerekecek ve gerçek bir getirisi var mı diye düşünmek lazım.



Gelistirici mesaj listesiyle ilgili daha fazla bilgi