2014-04-10 3 views
7

यह एक version.rb फ़ाइल के लिए, मणि के संस्करण को परिभाषित करने, जैसे आम है:,क्या रूबी मणि में version.rb के लाभ है

module Foo 
    VERSION = "0.0.1" 
end 

और .gemspec फ़ाइल में संस्करण की आवश्यकता है । आरबी और Foo :: संस्करण का उपयोग करें।

इस सम्मेलन का क्या फायदा है?

-

इसके अलावा, कुछ समय जब नाम स्थान प्रयोग किया जाता है, उत्पन्न संस्करण फ़ाइल नेस्टेड फ़ोल्डरों में गहरा हो सकता है। क्या वर्जन.आरबी सीधे lib/के तहत रखना और संस्करण को निर्दिष्ट करना आसान नहीं होगा?

उत्तर

2

यह आपके द्वारा उपयोग किए जाने वाले मणि निर्माता पर निर्भर करता है। एक अलग फ़ाइल होने से उदाहरण के लिए rake कार्यों के साथ संस्करण संख्याओं को टक्कर मारना आसान हो जाता है। यह एक स्रोत फ़ाइल के साथ झुकाव और कुछ भी नुकसान न करने की कोशिश करने से बहुत आसान है।

कुछ पैकेजर्स अलग VERSION फ़ाइल का उपयोग करते हैं।

4

यह .gemspec फ़ाइल पर मंथन (परिवर्तन दर) को कम करने के लिए किया जाता है। मुझे कल्पना है कि निर्भरता परिवर्तन संस्करण बंप (जो अधिक बार भी होते हैं) से कहीं अधिक महत्वपूर्ण हैं। तो संस्करण में परिवर्तन बहुत ज्यादा शोर जोड़ देगा और महत्वपूर्ण कामों को छुपाएगा।

+0

जेम्सस्पेक की परिवर्तन दर की परवाह क्यों करें? बस अपने गिट इतिहास क्लीनर रखने के लिए? यह मेरे लिए महत्वपूर्ण प्रतीत नहीं होता है। मुझे लगता है कि एक बेहतर कारण यह है कि कुछ रत्न, कुछ बिंदु पर, कुछ एप्लिकेशन कोड से संस्करण को पढ़ना चाहते हैं। उदा।, 'रेक - संस्करण' संदर्भ 'रेक :: संस्करण'। –

+0

@DanielLubarov: स्वच्छ प्रतिबद्धता इतिहास आपके लिए महत्वपूर्ण नहीं है? अरे मेरा। आपका सुझाव भी एक अच्छा अनुमान है, लेकिन गिट इतिहास काफी महत्वपूर्ण है। यही कारण है कि हम फीचर शाखाओं को एक या कुछ कामों में स्क्वैश करते हैं। –

+1

व्यक्तिगत रूप से मैं फ़ाइल के गिट लॉग को छोटा करने के उद्देश्य से अपने कोड में कभी भी संकेत नहीं जोड़ूंगा। पॉलिश गिट इतिहास से पॉलिश कोड अधिक महत्वपूर्ण है, वैसे भी मेरे लिए। –

2

संक्षेप में, यदि आपके मणि को वर्तमान संस्करण को जानने की आवश्यकता नहीं है, तो आपको version.rb की आवश्यकता नहीं है। घटना rack जैसे कुछ प्रसिद्ध रत्नों का उपयोग न करें।

मान लीजिए कि आप एक exetable मणि कि वर्तमान संस्करण को देखने के लिए एक विकल्प -v शामिल का निर्माण कर रहे हैं या आप डेवलपर्स चेतावनी देने के लिए कुछ पदावनत परिवर्तन होते हैं वर्तमान संस्करण मुद्रित करने के लिए है, तो require करने के लिए एक sperated संस्करण फ़ाइल muchs अधिक convinent है और gemspec पार्स से कुशल।

यह रूबी समुदाय में सिर्फ एक संयोजन है। version.rb का मुख्य कारण यह है कि बहुत सारे रत्न bundler gem द्वारा बनाए गए हैं।

संबंधित मुद्दे