[Gelistirici] PiSi: run_batch

S.Çağlar Onur caglar at uludag.org.tr
22 Nis 2006 Cmt 04:35:38 EEST


Selamlar;

Buildfarm'ın arada bir verdiği "argument 2 to map() must support iteration" 
tarzı hataları debug ederken run_batch ile ilgili bir problem farkettim. 

    if p.returncode:
        # Non-zero means failed.
        ctx.ui.error(_('Failed command: %s\n%s') % (cmd, out))

ile çalıştırdığı işlemlerini kendi kontrol ediyor ve dönüş değerine göre hata 
mesajı veriyordu fakat bunun yapılması gereken yerin run_batch'in içi değil 
run_batch'i çağıran kimse olmalı diye düşünüyorum, böylece hem çağrı yapan 
yerlerde dönüş değerini almaya zorlamış (ve doğru bir iş yapmış, yoksa neden 
return ediyoruz) hemde aynı bilgiyi ekrana/log'a v.s'ye 2 kere basmamış 
oluyoruz.

Ekteki yama PiSi genelindeki tüm run_batch çağrılarının geridönüş değerini 
kontrol etmesini aksi halde hata raise etmelerini ve do_patch fonksiyonunun  
stdout/stderr başka bir yere yönlendirilmişken (mesela buildfarm tarafından, 
ki bu durumda None oluyorlar) ekrana "... BUILD işlemi sırasında hata: Yama 
(hede/...../a.patch) başarısız: None" gibi anlamsız bir hata mesajı yazmasını 
engeliyor ve "argument 2 to map() must support iteration" sorunun çözüyor.

Yamanın uygulanmış hali ile buildfarm ve pisi build çıktıları şu şekili 
alıyor;

caglar at zangetsu buildfarm $ sudo python main.py
Work Queue: ['system/base/bc/pspec.xml']
Compiling source bc (1 of 1)
PiSi API init ediliyor
/home/caglar/svn/pardus/devel/system/base/bc/pspec.xml için PiSi Build 
çağırılıyor
....
* Yama uygulanıyor: bc-1.06-info-fix.diff
'system/base/bc/pspec.xml' için BUILD işlemi sırasında hata: ERROR: patch 
(/home/caglar/svn/pardus/devel/system/base/bc/files/bc-1.06-info-fix.diff) 
failed
Herhangi bir SMTP kullanıcı ve parolası çifti tanımlanmadığı için e-posta 
gönderilmiyor.
PiSi API finalize ediliyor
Wait Queue: ['system/base/bc/pspec.xml']

caglar at zangetsu bc $ sudo pisi build pspec.xml
Outputting packages in the working directory.
...
* Yama uygulanıyor: bc-1.06-info-fix.diff
Program sonlandırıldı.
Yama 
(/home/caglar/svn/pardus/devel/system/base/bc/files/bc-1.06-info-fix.diff) 
başarısız: patch: **** malformed patch at line 9: deasd

Genel yardım için lütfen 'pisi help' komutunu kullanınız.
Bir geri iz (traceback) görmek için lütfen --debug seçeneğini kullanın.

Faik uygunsa commit eder misin/edebilir miyim?

Saygılar
-- 
S.Çağlar Onur <caglar at uludag.org.tr>
http://cekirdek.uludag.org.tr/~caglar/

Linux is like living in a teepee. No Windows, no Gates and an Apache in house!
-------------- sonraki bölüm --------------
A non-text attachment was scrubbed...
Name: run_batch.patch
Type: text/x-diff
Size: 3148 bytes
Desc: kullanılamıyor
URL: <http://liste.pardus.org.tr/gelistirici/attachments/20060422/59a1a765/attachment.patch>
-------------- sonraki bölüm --------------
A non-text attachment was scrubbed...
Name: kullanılamıyor
Type: application/pgp-signature
Size: 191 bytes
Desc: kullanılamıyor
URL: <http://liste.pardus.org.tr/gelistirici/attachments/20060422/59a1a765/attachment-0002.pgp>


Gelistirici mesaj listesiyle ilgili daha fazla bilgi