[Gelistirici] Paket yöneticisi ve bileşenler

A. Murat Eren meren at pardus.org.tr
4 Ara 2006 Pzt 06:19:20 EET


On Sunday 03 December 2006 06:02, Faik Uygur wrote:
> Paket yöneticisi'nin sol tarafında görünen bileşen isimleri kod içerisinde
> hardcoded. En fazla paket içeren bileşenlerden seçildi. Farklı istekler de
> varsa konuşabiliriz tabi. Hardcoded olmaması için bir çözüm önerisi olan
> varsa onu da konuşabiliriz. :)

 Furkan'ın dediği gibi, ben de bunu çözmenin en doğru yolunun 
component.xml'lere eklenecek bir ek özellik ile mümkün olduğunu düşünüyorum. 
Component'ler değiştiğinde package manager'ı güncellemek gerekmemeli, 
kullanıcının göreceği component'lar package manager'dan bağımsız bir şekilde 
belirleneblilmeli.

 Hazır bu işe girişmişken daha kabiliyetli bir package-manager için 
component.xml'lere seçime bağlı bir im eklesek diye geldi aklıma. Basit bir 
deneme yaptım ve bana anlamlı bir çözümmüş gibi geldi.

 Orjinali tam da böyle olan Programming component'ına:

----------8<----------8<----------8<----------8<----------8<----------8<----------
 <PISI>
    <Name>programming</Name>
    <LocalName xml:lang="tr">Programlama</LocalName>
    <LocalName xml:lang="en">Programming</LocalName>
    <Summary xml:lang="tr">Programlama dilleri ve araçları</Summary>
    <Description xml:lang="tr">Bu bölüm çeşitli (...) içerir.</Description>
    <Icon>bug</Icon>
 </PISI>
---------->8---------->8---------->8---------->8---------->8---------->8----------


 Aşağıdaki gibi bir im ekledim:


----------8<----------8<----------8<----------8<----------8<----------8<----------
 <PISI>
    <Name>programming</Name>
    <LocalName xml:lang="tr">Programlama</LocalName>
    <LocalName xml:lang="en">Programming</LocalName>
    <Summary xml:lang="tr">Programlama dilleri ve araçları</Summary>
    <Description xml:lang="tr">Bu bölüm çeşitli (...) içerir.</Description>
    <Icon>bug</Icon>
    <VisibleTo>user</VisibleTo>
 </PISI>
---------->8---------->8---------->8---------->8---------->8---------->8----------


 Sonra pisi'de şu değişikliği,


----------8<----------8<----------8<----------8<----------8<----------8<----------
--- component.py        (revision 11141)
+++ component.py        (working copy)
@@ -63,6 +63,7 @@
     t_Summary = [autoxml.LocalText, autoxml.mandatory]
     t_Description = [autoxml.LocalText, autoxml.mandatory]
     t_Icon = [ autoxml.String, autoxml.optional]
+    t_VisibleTo = [autoxml.String, autoxml.optional]

     # Dependencies to other components
---------->8---------->8---------->8---------->8---------->8---------->8----------


 Package Manager'da da şu değşikliği yaptım:


----------8<----------8<----------8<----------8<----------8<----------8<----------
--- src/package-manager.py      (revision 11141)
+++ src/package-manager.py      (working copy)
@@ -549,11 +549,8 @@
         self.listView.clear()
         self.componentDict.clear()

-        # Component packages will include the recursive component's packages 
also. So do NOT add sub components here!
-        componentNames = 
["desktop.kde","desktop.gnome","desktop.freedesktop","applications.network",
-                          "applications.multimedia", "applications.games","applications.hardware",
-                          "system.base","system.devel","kernel","applications.science",
-                          "programming", "system.locale", "server", "desktop.kde.i18n"]
+        cdb = pisi.context.componentdb
+        componentNames = [cname for cname in cdb.list_components() if 
cdb.get_component(cname).visibleTo == 'user']
---------->8---------->8---------->8---------->8---------->8---------->8----------


 Sonra index'imi güncelleyip package manager'ı çalıştırdım. Sadece programming 
component'ı görünüyordu haliyle (bir de "others" vardı tabi)..


 Component'ların kimilerini visibleTo user kimilerini de visibleTo expert 
yapabilir, arayüzde "kullanıcı" (user), "uzman" (user + expert) ve "hepsi" 
gösterim kipleri arasında kolayca dolaşabiliriz (others'ı da kaldırmış oluruz 
böylece).

 Ne dersiniz?


 Selamlar.
-- 

PS: Ekteki üç yama ile package manager bileşenleri artık hardcoded tutmadığı 
gibi eski hardcoded listenin aynısını göstermeye devam ediyor. Yağdan eser 
bırakmayan mavi güç küreleri hesabı.

- -- -- -- -- -- -- -- -- -- -- -- -- -
 A. Murat Eren
 http://cekirdek.pardus.org.tr/~meren/
 Pub Key ID: 0x527D7293
 http://meren.org/
- -- -- -- -- -- -- -- -- -- -- -- -- -

--
 Gnome seems to be developed by interface nazis,
 where consistently the excuse for not doing
 something is not "it's too complicated to do",
 but "it would confuse users" (Linus).
-
-------------- sonraki bölüm --------------
A non-text attachment was scrubbed...
Name: package-manager-component.patch
Type: text/x-diff
Size: 1024 bytes
Desc: kullanılamıyor
URL: <http://liste.pardus.org.tr/gelistirici/attachments/20061203/2df080f0/attachment.patch>
-------------- sonraki bölüm --------------
A non-text attachment was scrubbed...
Name: pisi-component.patch
Type: text/x-diff
Size: 520 bytes
Desc: kullanılamıyor
URL: <http://liste.pardus.org.tr/gelistirici/attachments/20061203/2df080f0/attachment-0001.patch>
-------------- sonraki bölüm --------------
A non-text attachment was scrubbed...
Name: devel-repo-component.patch
Type: text/x-diff
Size: 5948 bytes
Desc: kullanılamıyor
URL: <http://liste.pardus.org.tr/gelistirici/attachments/20061203/2df080f0/attachment-0002.patch>


Gelistirici mesaj listesiyle ilgili daha fazla bilgi