النشر إلى RubyGems
إصدار Gem الخاصة بكم
النشر إلى RubyGems درس مجاني في Ruby Academy على CoddyKit. هذا هو الدرس 4 من أصل 4. يمكنك قراءة الدرس كاملاً أدناه مجاناً — ثم تمرن عليه مباشرة في المتصفح باستخدام محرر أكواد مدمج ومدرس ذكاء اصطناعي متاح 24/7. هذا الدرس جزء من مسار التعلم في Ruby Academy، وتقدمك يتزامن عبر الويب وتطبيق CoddyKit. تتضمن دورة Ruby Academy 4 دروس في المجموع.
ما هو RubyGems.org؟
إن RubyGems.org هو المضيف العام الذي تُنشر فيه Ruby gems وتُنزّل منه. وعند تشغيل gem install أو bundle install، تُجلب الحزم منه افتراضيًا.
- يجعل النشر gem الخاص بك قابلًا للتثبيت في جميع أنحاء العالم.
- يكون اسم كل gem فريدًا، ويُحجز حسب أسبقية التسجيل.
- بمجرد نشر إصدار، ينبغي التعامل معه على أنه دائم.
إنشاء حساب
قبل النشر، تحتاج إلى حساب مجاني على RubyGems.org. ثم تسجّل الدخول من سطر الأوامر حتى تتمكن أداة gem من مصادقة عمليات الرفع. تُخزّن بيانات الاعتماد محليًا لعمليات الدفع المستقبلية.
قائمة التحقق قبل الإطلاق
قبل الإصدار، تأكد من الآتي:
- تمت زيادة رقم الإصدار.
- نجحت الاختبارات.
- تم تحديث سجل التغييرات.
- يسرد gemspec جميع الملفات والترخيص الصحيح.
تمنع بضع دقائق من التحقق إصدارًا عامًا معطّلًا.
checklist = ["version bumped", "tests pass", "changelog updated", "gemspec valid"]
checklist.each { |item| puts "[ ] " + item }بناء الحزمة
شغّل gem build mygem.gemspec. يقرأ هذا الأمر ملف gemspec وينتج ملفًا مثل mygem-0.1.0.gem يحتوي على الشيفرة والبيانات الوصفية. وهذا هو ملف الناتج نفسه الذي يُرفع.
اختبار البناء محليًا
ثبّت الملف المبني في بيئة نظيفة باستخدام gem install ./mygem-0.1.0.gem وجرّب استدعاءه. يساعد ذلك على اكتشاف الملفات المفقودة أو أخطاء التحميل قبل أن يراها الجميع.
النشر على RubyGems
انشر باستخدام gem push mygem-0.1.0.gem. خلال لحظات، سيظهر الإصدار على RubyGems.org ويمكن لأي شخص تثبيته. يستخدم الأمر بيانات الاعتماد المحفوظة لديك للسماح بالرفع.
الإصدار باستخدام Rake
تتضمن الحزم التي ينشئ هيكلها Bundler مهمة rake release. تنشئ هذه المهمة وسمًا للإصدار في git، وتبني الحزمة، ثم ترفعها في خطوة واحدة، بحيث يتطابق وسم git دائمًا مع الإصدار المنشور.
لا يمكنك إعادة نشر إصدار
بعد نشر 1.0.0، لا يمكنك استبداله بشيفرة مختلفة. ولإصلاح مشكلة، يجب أن تنشر إصدارًا جديدًا مثل 1.0.1. ويضمن ذلك أن يكون الإصدار المحدد دائمًا مكوّنًا من البايتات نفسها لدى جميع المستخدمين.
published = "1.0.0"
fix = "1.0.1"
puts "Cannot overwrite " + published
puts "Publish " + fix + " instead"سحب إصدار معيب
إذا كان أحد الإصدارات معيبًا أو غير آمن، فإن gem yank mygem -v 1.0.1 يزيله من عمليات التثبيت الجديدة. قد تظل ملفات القفل الحالية تشير إليه، لذا يُعد السحب حلًا أخيرًا وليس زرًا للتراجع.
تأمين حسابك
احمِ حزمتك من الاستيلاء عليها:
- فعّل المصادقة متعددة العوامل على RubyGems.org.
- استخدم مفاتيح API محددة النطاق ذات صلاحيات محدودة.
- أضف مالكين مشاركين موثوقين باستخدام
gem ownerحتى تستمر الحزمة في حال ابتعادك عنها.
بعد النشر
بعد إتاحة الحزمة، شارك تعليمات التثبيت في README، وأعلن عن الإصدار، وتابع المشكلات. استجب لتقارير الأخطاء بإصدارات تصحيحية. فالحزمة التي تحظى بالصيانة تبني الثقة وتزيد اعتماد المستخدمين عليها بمرور الوقت.
تحقق سريع
اختبر مدى فهمك لعملية النشر.
مراجعة: النشر على RubyGems
لقد تعلمت سير عمل الإصدار:
- أنشئ حسابًا وسجّل الدخول.
- نفّذ قائمة التحقق قبل الإطلاق، ثم
gem build. - اختبر محليًا، ثم استخدم
gem pushأوrake release. - الإصدارات دائمة؛ انشر الإصلاحات في إصدارات جديدة أو استخدم
gem yank. - أمّن حسابك باستخدام المصادقة متعددة العوامل والمالكين المشاركين.
وبذلك يكتمل مساق بناء حزمة Ruby الخاصة بك.
الأسئلة الشائعة
هل درس «النشر إلى RubyGems» مجاني؟
نعم — نص درس «النشر إلى RubyGems» كامل متاح مجاناً هنا على الويب. لتمرينه بشكل تفاعلي (محرر أكواد مدمج ومدرس ذكاء اصطناعي متاح 24/7) وفتح باقي دورة Ruby Academy، انتقل إلى CoddyKit PRO. تتضمن دورة Ruby Academy 4 دروس في المجموع.
ماذا ستتعلم في «النشر إلى RubyGems»؟
إصدار Gem الخاصة بكم تتمرن على Ruby Academy مع أكواد عملية تشغلها مباشرة في المتصفح، ومدرس ذكاء اصطناعي متاح 24/7 يجيب على أسئلتك أثناء عملك.
هل أحتاج إلى خبرة سابقة لأبدأ Ruby Academy؟
لا تُشترط خبرة سابقة. Ruby Academy على CoddyKit منظم للمبتدئين حتى المتقدمين، لذا يمكنك البدء من هنا أو من البداية والتقدم بسرعتك الخاصة. هذا هو الدرس 4 من أصل 4.
كم من الوقت يستغرق درس «النشر إلى RubyGems»؟
معظم دروس CoddyKit تستغرق حوالي 5–10 دقائق. كل منها موجز وتفاعلي، لذا تحرز تقدماً مستمراً وتستأنف من حيث توقفت عبر الويب والتطبيق.
هل يمكنني كتابة وتشغيل أكواد في درس Ruby Academy هذا؟
نعم. كل درس في Ruby Academy يتضمن محرر أكواد مدمج، لذا تكتب وتشغل أكواداً حقيقية مباشرة في متصفحك وتحصل على تعليقات فورية من الذكاء الاصطناعي — بدون إعداد محلي.
جميع الدروس في هذه الدورة
- بنية Gem
- كتابة الشيفرة
- الاختبار وإدارة الإصدارات
- النشر إلى RubyGems