Open Source: Patch PHP CodeSniffer 1.1.0

Menerima saja tidak cukup, ada kalanya kita harus memberi. Sebagai orang yang hidup dari open source (bekerja dengan menggunakan aplikasi/bahasa pemrograman open source) membuat saya terlalu banyak berhutang terhadap dunia open source. Untuk itu, di tahun 2009 ini kontribusi terhadap dunia open source merupakan salah satu resolusi saya.

Sejak Februari lalu saya mulai bermain - main dengan PHP CodeSniffer, aplikasi ini digunakan untuk mengecek standard kode yang digunakan pada kode php yang sudah dibuat. Dan memberikan laporan jika terjadi pelanggaran terhadap aturan dari standard kode tersebut. Untuk menjalankan pengecekan tersebut secara otomatis maka saya menggunakan phing.

Namun saya menemukan sedikit masalah dalam menggunakan PHP CodeSniffer dengan phing. Setelah menjalankan PHP CodeSniffer, phing memberikan pesan error dan tidak lagi melanjutkan tugas selanjutnya.

Execution of target "phpunit" failed for the following reason:
/data1/dolly/ngoprek/php/agile/phing/build.xml:17:38: Directory /data1/php/PHP/CodeSniffer/src/tests not found.
 
BUILD FAILED
/data1/dolly/ngoprek/php/agile/phing/build.xml:17:38: Directory /data1/php/PHP/CodeSniffer/src/tests not found.

Dari pesan error di atas, tugas selanjutnya tidak menemukan targetnya, karena path dari target tersebut sudah berubah. Saya curiga PHP CodeSniffer mengubah path dari interpreter php, sehingga menyebabkan error seperti di atas. Kemudian saya cari fungsi chdir() (fungsi pada php yang digunakan untuk mengubah path interpreter php) di pustaka PHP CodeSniffer dan menemukannya pada file CodeSniffer.php baris 153.

Untuk menyelesaikan masalah ini, maka saya pun membuat patch untuk bug tersebut dan melaporkan kepada Greg Sherwood, developer dari PHP CodeSniffer. Dia menyarankan agar bug dan patch tersebut dilaporkan via bug tracker yang ada di PEAR yang nantinya akan digabungkannya ke dalam CVS, untuk rilis versi berikutnya.

Bagi yang ingin mengupdate PHP CodeSniffer 1.1.0 tanpa harus menunggu versi berikutnya dirilis, bisa menggunakan patch berikut

62a63,68
>     /**
>      * The path that is currently running phpcs command.
>      *
>      * @var string
>      */
>     protected $cwd = null;
142a149,150
>         $this->cwd = getcwd();
> 
1650a1659,1668
>     /**
>      * Destruct PHP_CodeSniffer object.
>      *
>      * @return void
>      */
>     public function __destruct()
>     {
>         // Change back to directory that run phpcs command  
>         chdir($this->cwd);
>     }//end __destruct()

Bug tracker untuk masalah ini bisa dilihat di sini.

Comments

itulah kalau opensource...

itulah kalau opensource... ngak harus nunggu si pengembang langsung. jadi bang doly bisa lakukan patch atas kekurangan/bugs-nya. ngeong!

Kirim Komentar

Tidak akan dipublikasikan
  • Alamat web dan email dirubah menjadi hyperlink secara otomatis
  • Tag HTML yang diizinkan: <a> <em> <strong> <cite> <code> <ul> <ol> <li> <dl> <dt> <dd>
  • Baris baru maupun paragraph dipisahkan secara otomatis

Informasi lebih lanjut tentang format pesan