मैं जानना चाहता हूं कि मैं प्रत्येक मणि के लिए मणि संस्करण निर्दिष्ट करता हूं जिसे मैं Gemfile में जोड़ता हूं या नहीं। इससे पहले मेरी कुछ परियोजनाओं के साथ मैंने सभी रत्नों के लिए किसी भी संस्करण को निर्दिष्ट नहीं किया था और बंडलर ने इसका ख्याल रखा, जिसने काफी अच्छी तरह से काम किया।जेमफाइल में अनिवार्य रूप से जेम संस्करण निर्दिष्ट करना है या रेल अनुप्रयोग के लिए नहीं
लेकिन हाल ही में मुझे कुछ परियोजनाओं पर काम करना पड़ा जो पिछले 6 महीनों के लिए विकास में थे। उस प्रोजेक्ट में, गेमफाइल में केवल कई मणि संस्करण निर्दिष्ट किए गए थे और Gemfile.lock को अनदेखा कर दिया गया था। इसने अंततः संस्करण संघर्षों को हल करने और कुछ रत्नों को अपग्रेड करने के लिए बहुत सी सिरदर्द पैदा की। Yehuda से अच्छा लेख - -
भी पता चला है कि यह बुरा व्यवहार आवेदन संस्करण नियंत्रण से Gemfile.lock दूर करने के लिए है मिल गया http://yehudakatz.com/2010/12/16/clarifying-the-roles-of-the-gemspec-and-gemfile/
तो, मेरे सवाल का मैं मैं Gemfile में specifiy हर मणि के लिए संस्करण निर्दिष्ट करना चाहिए है या सिर्फ नाम और बंडलर संस्करण का ख्याल रखना होगा? इसे संभालने का सबसे अच्छा अभ्यास क्या है?
अद्यतन -
इस सवाल का अद्यतन कर रहा है सही ढंग से एक Gemfile sovles कई समस्याओं :)
समस्या 1 के रूप में, समस्या निर्दिष्ट करने के लिए - हर डेवलपर रत्नों का एक ही संस्करण होना चाहिए। वास्तव में संस्करण नियंत्रण में Gemfile.lock जोड़ना इस समस्या को हल किया। डेवलपर्स को सिर्फ यह ध्यान रखना होगा कि वे 'बंडल अपडेट' के बजाए 'बंडल इंस्टॉल'/'बंडल' चलाते हैं क्योंकि इससे संस्करण भी अपडेट होंगे।
प्रो 2 - कुछ रत्न संस्करण, यदि बदल गया है, तो ब्रेक एप्लिकेशन कोड। असल में omniauth के साथ, इस प्रकार के मुद्दे हैं, क्योंकि एपीआई एक संस्करण से दूसरे संस्करण में बदल दिया गया है। और हाँ, एप्लिकेशन को काम करने के लिए, इस रत्न के लिए संस्करणों को निर्दिष्ट करने की आवश्यकता होगी।
मेरी समस्या। - तो, मेरे जीमेलफ़ाइल में, ए और बी दोनों के संस्करणों को कड़ाई से निर्दिष्ट किया गया है, और क्योंकि वे दोनों ज़ेड के विभिन्न संस्करणों पर निर्भर करते हैं, जो निर्भरता है, मैं भी बंडल इंस्टॉल या बंडल अपडेट नहीं चला सकता। एकमात्र समाधान संस्करणों को हटाना था और कॉल करने के लिए बंडलर को देना था। यही कारण है कि मेरे पास सवाल था - Gemfile.version_specification_mandatory? # => सत्य/झूठा
अच्छा सवाल। इसने मेरी जिज्ञासा का भी उत्तर दिया, क्योंकि मैं मणि संस्करणों को निर्दिष्ट कर रहा हूं! – fregas