Ruby Core

Sekarang saatnya untuk mengikuti pengembangan Ruby. Dengan bertambahnya perhatian yang diterima oleh Ruby dalam beberapa tahun terakhir, maka dibutuhkan bakat yang baik untuk meningkatkan Ruby dan mendokumentasikannya. Sehingga, dari mana Anda memulai?

Topik seputar pengembangan Ruby yang dibahas disini adalah:

Menggunakan Subversion untuk Memonitor Pengembangan Ruby

Mendapatkan kode sumber Ruby terbaru dengan melakukan checkout sebagai anonim pada repositori Subversion. Masukan perintah berikut pada console Anda:

$ svn co https://svn.ruby-lang.org/repos/ruby/trunk ruby

Sekarang direktori ruby akan berisi kode sumber terbaru dari versi development Ruby (ruby-trunk). Saat ini patch yang digunakan oleh trunk di-backport ke branch stable 2.5, 2.4, dan 2.3 (lihat bawah).

Jika Anda ingin patching Ruby 2.5, gunakan branch ruby_2_5 ketika sedang checkout:

$ svn co https://svn.ruby-lang.org/repos/ruby/branches/ruby_2_5

Demikian pula untuk Ruby 2.4:

$ svn co https://svn.ruby-lang.org/repos/ruby/branches/ruby_2_4

Perintah di atas akan melakukan checkout masing-masing ke direktori ruby_2_5 or ruby_2_4. Pekerjaan pengembang pada maintenance branch diharapkan untuk migrasi perubahannya ke Ruby trunk, seringkali branch-branch kelihatan sangat mirip, dengan pengecualian ada perbaikan yang dibuat oleh Matz dan Nobu untuk bahasa Ruby sendiri.

Kalau Anda berminat browsing, Anda bisa browse repository Ruby melalui web.

Untuk informasi lebih lanjut tentang Subversion, silakan lihat the Subversion FAQ dan the Subversion book. Sebagai alternatif, Anda bisa juga dapatkan buku Pragmatic Version Control with Subversion sebagai buku yang berguna untuk pengenalan svn.

Bagaimana Menggunakan Git pada Repositori Utama Ruby

Bagi mereka yang lebih memilih menggunakan Git dibanding Subversion dapat mengikuti instruksi di mirror on GitHub, baik untuk comitter maupun bukan commiter.

Menyempurnakan Ruby, dengan Patch

Tim Ruby Core merawat bug tracker untuk memasukkan patch dan laporan bug ke Matz dan rekan-rekannya. Laporan-laporan ini juga dimasukkan ke milis Ruby-Core untuk didiskusikan, jadi Anda bisa mengkonfirmasi terlebih dahulu apakah permintaan Anda akan diperhatikan atau tidak. Anda juga bisa mengirim patch langsung ke milis. Anda diharapkan untuk berpartisipasi aktif dalam diskusi tersebut.

Mohon lihat Patch Writer’s Guide untuk beberapa tips, langsung dari Matz, bagaimana patch Anda dipertimbangkan.

Sebagai ringkasan, langkah-langkah mengirimkan patch adalah sebagai berikut:

  1. Checkout salinan kode sumber Ruby dari Subversion. Biasanya patch untuk bugfix atau fitur baru dimasukkan untuk trunk dari kode sumber Ruby. Bahkan jika Anda ingin menambahkan sebuah fitur ke Ruby 2.4, perubahan harus disetujui terlebih dahulu di trunk.

     $ svn co https://svn.ruby-lang.org/repos/ruby/trunk ruby
    

    Jika Anda sedang memperbaiki sebuah bug yang khusus pada satu branch maintenance, checkout salinan dari masing-masing branch, Misal, ruby_2_4.

     $ svn co https://svn.ruby-lang.org/repos/ruby/branches/ruby_2_4
    
  2. Tambahkan perbaikan Anda ke source code Ruby.

  3. Buat sebuah patch.

    $ svn diff > ruby-changes.patch
    
  4. Buat sebuah tiket di issue tracker atau kirim patch melalui e-mail ke Ruby-Core mailing list dengan entri ChangeLog yang menjelaskan patch.

  5. Jika tidak ada masalah dengan patch tersebut, maka para committer akan memberikan persetujuan untuk menggunakannya.

Perhatian: patch harus dikirimkan dalam format unified diff. Untuk mengetahui lebih lanjut tentang bagaimana patch digabungkan (merge), lihat the diffutils reference.

Diskusi tentang pengembangan Ruby dibicarakan di milis Ruby-Core. Jadi kalau Anda penasaran apakah patch Anda berguna atau tidak atau bila Anda ingin memulai diskusi tentang masa depan Ruby, jangan sungkan untuk datang kemari. Jangan mengirimkan hal-hal di luar topik (OOT) karena milis ini adalah milis serius. Mari kita menjaga sopan santun karena kita berkorespondensi dengan pembuat Ruby.

Ingatlah tim Ruby Core tinggal di Jepang dan walau banyak yang bisa berbicara bahasa Inggris dengan baik tetap ada perbedaan zona waktu yang jauh. Mereka juga punya milis pengembangan yang menggunakan bahasa Jepang selain dengan milis berbahasa Inggris. Jadi sabarlah, jika tidak ada yang membalas kiriman Anda; jangan menyerah dan coba lagi beberapa hari kemudian.

Pedoman untuk Pengembang Inti

Secara umum developer Ruby harus sudah terbiasa dengan kode sumber dan gaya pengembangan yang digunakan oleh tim Ruby Core. Supaya jelas, pedoman berikut harus dipatuhi ketika check-in (commit) ke Subversion:

  • Semua check-ins harus dijelaskan di ChangeLog, yang mengikuti standar GNU. (Banyak Developer Ruby Core menggunakan Emacs add-log mode, yang bisa diakses dengan perintah C-x 4 a.)
  • Tanggal check-in harus diberikan dalam format yang memenuhi standar waktu Jepang (UTC+9).
  • Poin-poin ChangeLog Anda harus ditaruh juga di pesan commit Subversion. Pesan ini secara otomatis di e-mail ke milis Ruby-CVS setelah Anda commit.
  • Function prototype digunakan di seluruh kode sumber Ruby dan packaged extension-nya.
  • Tolong jangan gunakan gaya komentar C++ (//), maintainer Ruby cenderung memakai komentar multibaris standar C (/* .. */).

Lihat juga informasi di Ruby’s issue tracker.