[Gelistirici] paketler arayüzü kararları
A. Murat Eren
meren at pardus.org.tr
10 Mayıs 2007 Per 00:28:23 EEST
On 09 May 2007 Wed 20:50:14 Oğuz Yarımtepe wrote:
> Bir diğeri ArchieveAddress kısmı var pspeclerde, kaynak adresini veren.
> Bunu da alsam ve sayfada bunu da göstersem diyorum. pisi api ile bu bilgiyi
> de alamadım.
pspec'ten:
In [1]: from pisi.specfile import SpecFile
In [2]: spec = SpecFile()
In [3]: spec.read("applications/admin/acct/pspec.xml")
In [4]: spec.source.archive.uri
Out[4]: 'http://www.physik3.uni-rostock.de/tim/kernel/utils/acct/acct-6.3.5-ts02-12.tar.gz'
index'ten:
In [6]: from pisi.index import Index
In [7]: index = Index()
In [8]: index.read("pisi-index.xml")
In [9]: [p.source.archive.uri for p in index.specs if p.source.name == "acct"]
Out[9]:
['http://www.physik3.uni-rostock.de/tim/kernel/utils/acct/acct-6.3.5-ts02-12.tar.gz']
> * Yenilenen paketler: Bunlar da hata düzeltmelerini ve iyileştirmeleri
> kapsayacak ama bunları nasıl tespit edip ayrırım konusunda genel bir
> çözümüm yok.
History altındaki Update'lerin attribute'lerine bakmaktan başka yol yok..
> Yeni eklenen paketleri bulmak için düzenli çalışan bir programa
> gereksinimim olacak (yapacağı DepoUpdate tablosunu güncellemek olacak,
> Django uygulaması çalışırken yeni eklenen paket bilgisini veya son yapılan
> düzenlemeyi buradaki tarihe göre bulabilir). Uygulamanın bir kısmı düzenli
> çalışıp tabloları güncellerken django kısmı da oradan veriler alıp
> gösterecek.
Bir Cron uygulaması olur, belirli aralıklarla bir betik çağırır, betik pspec
repository'sini günceller, svn'deki değişikliklere göre etkilenen paketleri
veritabanında günceller (ya da index üzerinden gitmeyi düşünürsen tüm index
ile tüm veritabanını günceller, ki pek efektif olmaz). Günceller derken, tüm
paket verilerini spec'ten okuyup eskisinin üzerine yazar basitçe. Paketler
ile ilgili veriler güncel olduğu sürece yeni eklenen paketleri bulmak ekstra
bir iş değil sanki: Veritabanındaki paketleri son Update imi altındaki tarihe
göre sırala, release'i 1 olanlar ile yeni paketlerdir, release'i 1'den büyük
olanlar ile son güncellenen paketlerdir. Tabi bunları statik olarak tutmak,
her istek için yeniden generate etmemek mantıklı (yoksa DepoUpdate tablosu
derken bunu mu kast ediyordun :)).
> Paketlerle ilgili mümkün olduğunca çok bilgi göstermek istiyorum. Meren'in
> söylediği gibi installedsize, packagesize bilgilerini de pisi api ile
> göstermeyi planlıyorum.
Devel deposu için bu bilgiyi alamayacaksın. Ahmet index demiş ama source
repoların index'lerinde de bu bilgiler yer almıyor sonuçta. Fakat kalan bir
çok şey için index'in kullanılabileceği doğru. Öte yandan devel deposundaki
her güncelleme için index yeniden oluşturulmadığı için güncel bilgiyi
index'ten almak mümkün değil, bununla beraber değişiklikleri incremental
olarak veritabanına uyarlamak mümkün olmayacak index ile çalışırken,
pspec'ler ile çalışmanın avantajı o olacak. Buradaki performans farkı ne
kadar olur şu anda bilemiyorum.
> Yorumlar, öneriler?
Bence kodlamaya giriştiğinde çeşitli detaylar için tasarımdaki eksikler
kendiliğinden belirecektir.
Eline sağlık + kolay gelsin.
Selamlar.
--
- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -
A. Murat Eren
http://cekirdek.pardus.org.tr/~meren/blog
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).
-
Gelistirici mesaj listesiyle ilgili
daha fazla bilgi