هي github الأحجار الكريمة أقل استقرارا من gems rubyforge؟

StackOverflow https://stackoverflow.com/questions/1112875

  •  12-09-2019
  •  | 
  •  

سؤال

في هذا السؤال, ، ذكرت افتراضي أن GEMS RubyForge أكثر رسمية، موثوقة، مستقرة من شوك Github. وقال أحد الأشخاص الذين يردون على سؤالي أن افتراضي قد لا يكون دقيقا.

ماذا لاحظت؟ هل يستخدم الناس Github لإصدار مبكرين وإطلاق سراحهم في كثير من الأحيان، فقط وضع إصدارات مستقرة على Rubyforge، أو يقومون بإصدار أشخاص أقل غالبا على RubyForge لأسباب أخرى (مثل Rubyforge كونهم أكثر من المتاعب)؟

تحديث: هذا السؤال هو moot قليلا الآن. جيثوب الأحجار الكريمة هي بذر, ، و gems rubyforge سوف يتم نقلها إلى Rubygems.org.

هل كانت مفيدة؟

المحلول

لا فرق بقدر ما أستطيع أن أقول.

هناك مجموعة كبيرة في جودة / استقرار الأحجار الكريمة من كلا المصادر. بعض الصخور الصلبة، والبعض الآخر هي جودة ما قبل ألفا.

يعتمد حقا على مشروع GEM نفسه.

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

نصائح أخرى

ما لاحظته هو تناقص جودة جوهرة صدر عبر جيثب مقارنة بالجودة الشاملة للجواهر في Rubyforge.

IMHO هناك اثنين على الأقل شرح رئيسي لهذا السلوك:

--

قبل جيثب، كان 99٪ من Rubyist تعتمد على التخريب. يمكنك أن تقول ما تريده حول التخريب، ولكن بالتأكيد أكثر سهولة الاستخدام مقارنة مع GIT وكل الجميع يدركون تخطيط الجذع / العلامات / الفروع. ثم بدأ الناس في الانتقال إلى git. بدأت فقط شريحة محدودة للغاية من مستخدمي التخريب في استخدام GIT مع مستوى المعرفة، وينبغي أن تتطلب، ما الذي لاحظته، هو أن الناس بدأ نسيان العلامات.

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

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

--

جيثب يجعل خطوة النشر لا مزعج أكثر من المتاعب. ومع ذلك، يمكنك بسهولة نشر جوهرة جديدة ببساطة دفع Gemspec إلى مستودعك.

في رأيي، قد تؤدي هذه البساطة إلى جودة أقل. بدأ تطوير المزيد من المهارات المتقدمة في توزيع الأحجار الكريمة لأنه سهل مثل إنشاء مشروع جديد مع الجواهري (أو مكتبة مماثلة) ودفع مستودع GIT. لم يعرفوا الكثير عن إدارة الإفراج، والتوافق مع التراجع، والافراج عن المطبات، وصيانة الافراج.

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

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

--

أخيرا وليس آخرا، ما الذي أكرهه أكثر هو ازدواجية غير محدودة لنفس الأحجار الكريمة. عندما كان Rubyforge مصدر GEM بدون تغيير، كان من السهل العثور على مشروع جديد وتثبيته.

IMHO، قدم جيثب طبقة غير ضرورية من التعقيد. أولا، لديك جوهرة متوفرة عبر Rubyforge mygem وعلى جيثب username-mygem. وبعد غالبا ما تحتاج إلى قضاء بعض الوقت لمعرفة الأحجار الكريمة هي الأكثر تحديثا وتحمل التطوير الرئيسي.

علاوة على ذلك، لم تعد بعض الأحجار الكريمة الشعبية محدثة على Rubyforge وما زال الكثير من الناس يستخدمونها لمجرد أن Ruygems لا يخطرك حول الإصدارات الجديدة. من السهل أن نفهم، إذا قمت بتثبيت coolgem الافراج عن 1.2.4 والمكتبة نفسها متاحة الآن كمخطأ Superuser-Coolgem (الإصدار 2.0)، Ruyygems ليست ذكية بما يكفي لإخبارك يتوفر تحديث جديد.

--

الآن حان الوقت لإخلاء المسؤولية.

أنا لا أقول مستخدمي جيثب ينتجوا الأحجار الكريمة Crappy مقارنة بالريف. أنا مستخدم GitHub وقبل مستخدما Rubyforge أيضا. هاجر الآلاف من الأحجار الكريمة بنجاح من Rubyforge إلى Github دون مغادرة المستخدم النهائي في "أي واحد" ميلي.

أفضل مثال على القضبان، ولكن يمكنني ذكر العديد من الأحجار الكريمة الأخرى بما في ذلك (ولكن لا تقتصر على) CAPISTRANO، HPRICOT، RedCloth ... جميع هذه المكتبات مستضافة الآن على جيثب وإذا نظرت بعناية إليك، يمكنك التعرف عليها بسهولة نفس المستوى الجودة كما كان من قبل.

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

أيضا، لا يتأثر المستخدم النهائي بقرارات التنمية. تأخذ capistrano على سبيل المثال. قبل شهرين أعلن جميس عن نهاية التزامها بالتنمية. تولى المجتمع مسؤولية التنمية وانتقل مستودع الماجستير من جاميس / كابرانو إلى كابرانو / كابرانو. ماذا سيحدث إذا تم إطلاق الأحجار الكريمة مثل Jamis-Capistrano؟ يجب أن يتعين على جميع المستخدمين التبديل إلى الأحجار الكريمة الجديدة والمستودع الجديد مع الكثير من المتاعب.

لم ينحض هذا السيناريو أبدا لأن Rubyforge كان ويستمر في أن تكون محور تسليم Capistrano الرئيسي.

--

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

لا يمكن وصف github كجول. عندما تصبح الأمور المعقدة أكثر سهولة وأكثر من الناس الذين يتناولونها دون معرفة أساسية، من الطبيعي أن تكون الجودة يمكن أن تنخفض لأن التعقيد عملية اختيار طبيعية.

على أي حال، لا يزال هناك مستوى ممتاز من الجودة في مجتمع روبي. من المدهش أن نرى كيف يلتزم مطورو روبي باختبار الوحدات وعادات البرمجة المهنية الأخرى.

ربما أقل استقرارا وأكثر قليلا حتى الآن :) -r

للإجابة على سؤالك أخيرا: كل من الموارد التي ذكرتها (Rubyforge، GitHub) الآن عفا عليها الزمن، لأن Gemcutter هي المكان الجديد والوحيد للراغي.

Gemcutter هو مضيف Rubygem الرسمي الجديد الرسمي:http://www.rubyinside.com/gemcutter-is-the-new-picial-default-rubygem-host-2659.html.

مرخصة بموجب: CC-BY-SA مع الإسناد
لا تنتمي إلى StackOverflow
scroll top