الآن هو وقت مثالي لمتابعة تطوير روبي، مع النسخة الثانية من روبي في الطريق و مع الإهتمام المتزايد الذي تلقاه روبي في الأعوام القليلة الماضية، هناك حاجة متزايدة للمواهب الجيدة لإثراء روبي و توثيقها. من أين يمكنك البدء؟

المواضيع المتعلقة بتطوير روبي المغطاة هنا هي:

استخدام Subversion لتتبع تطوير روبي

يمكنك الحصول على النسخة الأخيرة من الشفرة المصدرية لروبي بكل سهولة، من سطر الأوامر في نظام التشغيل اكتب التالي:

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

سيتم انشاء مجلد باسم ruby و سيحتوى على النسخة الأخيرة من الشفرة المصدرية لروبي 1.9(الجذع) و هي نسخة روبي التي يجري تطويرها ليتم اصدارها برقم 1.9.1 في نهاية ٢٠٠٨.

اذا اردت اكمال ترقيع روبي 1.8، يجب ان تستخدم فرع ruby_1_8 في مستودع الكود:

 $ svn co http://svn.ruby-lang.org/repos/ruby/branches/ruby_1_8

سيتم انشاء مجلد باسم ruby_1_8 و سيحتوي على الشفرة المصدرية للنسخة 1.8، المطورين الذين يعملون على روبي 1.8 نتوقع منهم ان يدمجوا تعديلاتهم في الجذع الرئيسي لروبي (trunk). في أغلب الأحيان يكون الفرعان متشابهان للغاية. مع استثناء بعض التحسينات التي يضيفها Matz و Nobu للغة نفسها.

اذا كنت تفضل يمكنك تصفح مستودع شفرة روبي من خلال الويب.

للمزيد من المعلومات عن Subversion، من فضلك اقرأ the Subversion FAQ و the Subversion book. كذلك ربما تجد ان في كتاب Pragmatic Version Control with Subversion مقدمة مفيدة عن Subversion.

تطوير روبي، رقعة برقعة

فريق العمل على اساس روبي يستخدم متتبع للرقع لإرسال الترقيعات و التقارير الخاصة بالرقع إلى ماتز و الفريق. هذه التقارير ترسل ايضاً إلى القائمة البريدية الخاصة بأساس روبي لمناقشتها، و بهذا ستضمن ان الترقيع الخاص بك سيتم ملاحظته. يمكنك كذلك ارسال الترقيعات مباشرة إلى القائمة البريدية. في كلا الحالتين يفضل ان تشارك في المناقشة التي ستتبع ارسالك الترقيع.

لتلخيص الأمر، خطوات بناء و ارسال ترقيع:

  1. اذا كنت تقوم بترقيع النسخة 1.8 من روبي، قم بأخذ نسخة منها بإستخدام Subversion من فرع ruby_1_8.
     $ svn co http://svn.ruby-lang.org/repos/ruby/branches/ruby_1_8
    
    اذا كنت ترغب في إضافة خاصية جديدة لروبي، قم بأخذ نسخة من الشفرة المصدرية الموجودة في الجذع. و كذلك اذا كنت ترغب في اضافة خاصية للنسخة 1.8 يجب ان يتم إضافته للجذع اولاً.
     $ svn co http://svn.ruby-lang.org/repos/ruby/trunk ruby
    
  2. قم بالتعديل كما ترغب.
  3. انشأ ملف الترقيع بإستخدام الأمر.
     $ svn diff > ruby-changes.patch
    
  4. قم بإرسال بريد إلكتروني بالترقيع إلى القائمة البريدية الخاصة بأساس روبي مع CHANGELOG يشرح الترقيع.
  5. اذا لم يكن هنالك اي مشاكل في الترقيع، سيتم منح المبرمج الموافقة على اضافته.

يرجى ملاحظة: الترقيعات يجب ان يتم ارسالها كـ unified diff. لمزيد من المعلومات عن كيفية دمج الترقيعات، اطلع على the diffutils reference.

المناقشة حول تطوير روبي تتخذ من القائمة البريدية الخاصة بأساس روبي مكان لها. لذا اذا ظننت ان ترقيعك يستحق او رغبت في بدء مناقشة عن مستقبل روبي لا تترد في دخول القائمة البريدية. يجب ان تعلم بأن المناقشات الخارجة عن الموضوع لن يتم التسامح معها. و يجب ان تظل المواضيع محددة، منطقية و مكتوبة بطريقة جيدة. بما اننا نخاطب صانع روبي يجب ان نتحلى ببعض الإحترام.

ضع في إعتبارك ان مطوري الأساس الخاص بروبي يعيشون في اليابان، و رغم انه العديد منهم يتحدث الإنجليزية بشكل جيد للغاية، هنالك فروق كبيرة في التوقيت. كذلك فهم يتعاملون مع النسخ اليابانية من قوائم روبي البريدية. لذا كن صبور، اذا لم يتم الرد على رسالتك، كن مثابر— و اعد المحاولة بعد عدة ايام.

قواعد لمطوري الأساس

عامة، مطوري روبي يجب ان يكونوا على دراية بالشفرة المصدرية و الأسلوب المستخدم في التطوير من قبل الفريق. ليكون الأمر واضحاً، يجب ان يتم تقدير هذه التعليمات عند استخدام Subversion لتنفيذ التعديلات:

  • كل التعديلات يجب ان يتم شرحها في سجل التغيرات(ChangeLog) بإتباع GNU conventions. (العديد من مطوري أساس روبي يستخدمون إضافة add-log الخاصة بمحرر Emacs. و الذي يمكن الوصول إليه بإستخدام الأمر C-x 4 a).
  • تواريخ التعديلات يجب ان تتبع توقيت اليابان الرسمي (UTC+9).
  • النقط التي يتم اضافتها من سجل التغيرات الخاص بك يجب ان يتم اضافتها كذلك في رسالة تنفيذ التعديلات في Subversion. هذه الرسالة سيتم ارسالها اتوماتيكياً للقائمة البريدية Ruby-CVS بعد تنفيذ التعديل.
  • K&R function declatations يتم استخدامها في الشفرة المصدرية لروبي و المكتبات التابعة لها.
  • من فضلك لا تستخدم اسلوب التعليقات الخاص بلغة ++C (//). يفضل القائمين على روبي استخدام اسلوب التعليقات القياسي الخاص بلغة C و المتعدد الأسطر (/* .. */).