कुछ रेल्स ऐप्स को अपग्रेड करना bundle update rails जितना आसान है।
लेकिन क्या होगा यदि आपके पास दूसरे प्रकार के ऐप्स हैं? वे जो अभी भी रेल्स 4.0, या यहां तक कि 3.2 पर हैं, क्योंकि आप उन्हें भविष्य में घसीटते और चिल्लाते हुए नहीं ले जाना चाहते थे?
चाहे आप एक त्वरित अपग्रेड का सामना कर रहे हों या एक दर्दनाक अपग्रेड का, ये चरण आपको अपने ऐप को यथासंभव सुचारू रूप से रेल्स 4.2 तक पहुंचाने में मदद करेंगे। और इस प्रक्रिया में, आप सीखेंगे कि रेल्स 4.2 की नई फीचर्स का पूरा लाभ कैसे उठाया जाए।
अपग्रेड गाइड पढ़ें
आपको हमेशा अपना रेल्स अपग्रेड रेल्स अपग्रेड गाइड पढ़कर शुरू करना चाहिए।
अपग्रेड गाइड आपको रेल्स वर्जन्स के बीच अधिकांश प्रमुख परिवर्तनों के बारे में बताएगा। यह आपको ठीक-ठीक बताएगा कि आपके ऐप को उन सबसे बड़ी समस्याओं को ठीक करने के लिए कैसे बदलना है जिनका आप सामना करेंगे। (उदाहरण के लिए, रेल्स 4.1 में यह परिवर्तन हमें घंटों के दर्द का कारण बना होता अगर हमें इसे देखने के लिए नहीं पता होता।)
लेकिन इससे भी अधिक, अपग्रेड गाइड यह समझाएगा कि क्यों आपको उन परिवर्तनों को करना चाहिए। और यह महत्वपूर्ण है, क्योंकि यह आपको यह समझने में मदद करता है कि इसके कौन से सुझावों का पालन करना चाहिए, और किन्हें नज़रअंदाज किया जा सकता है।
और यदि आप रेल्स 4.2 परिवर्तनों को अधिक गहराई से समझना चाहते हैं, तो रिलीज़ नोट्स पढ़ें। वे आपको उन सभी शानदार नई रेल्स 4.2 फीचर्स से परिचित कराएंगे जिनका आप जल्द ही उपयोग कर पाएंगे। यदि कुछ नहीं, तो यह आपको उस अपग्रेड को पूरा करने के लिए प्रेरित करेगा।
चरणों में अपग्रेड करें
जब आप एक नए रेल्स वर्जन पर जा रहे हों, तो हमेशा पहले नवीनतम पॉइंट वर्जन पर अपग्रेड करें। और माइनर वर्जन्स को न छोड़ें।
इसलिए यदि आप 4.1.6 से 4.2 पर अपग्रेड करना चाहते हैं, तो 4.1.6 से 4.1.9 पर जाएं, और 4.1.9 से 4.2 पर। यदि आप 4.0.12 से शुरू कर रहे हैं, तो 4.0.12 से 4.0.13 पर जाएं, फिर 4.0.13 से 4.1.9 पर, और फिर 4.1.9 से 4.2 पर। यह बहुत अधिक काम लग सकता है, लेकिन यह लंबे समय में आपका समय बचाएगा।
क्यों?
रेल्स रिलीज़ के नवीनतम पॉइंट वर्जन में सबसे अच्छे डिप्रिकेशन वार्निंग्स होते हैं।
डिप्रिकेशन वार्निंग्स कितने उपयोगी हो सकते हैं, इसे कम मत समझिए। यदि आप चरणों में अपग्रेड करते हैं, तो वे आपको ठीक-ठीक बताएंगे कि क्या टूटेगा और इसे कैसे रोका जाए। यदि आप बहुत दूर कूदते हैं, तो आपका ऐप बस टूट जाएगा, और आपको पता नहीं चलेगा कि क्यों।
अंत में, यदि एक पॉइंट वर्जन रेल्स अपग्रेड (जैसे 4.0.9 से 4.0.13) एक टेस्ट को तोड़ता है, तो यह आमतौर पर एक मेजर या माइनर अपग्रेड के दौरान भी टूटेगा। लेकिन वे समस्याएं डीबग करना और ठीक करना बहुत आसान होती हैं जब कम चीजें बदली होती हैं।
तो यहां क्या करना है:
- जिस भी रेल्स वर्जन पर आपका ऐप है, उसके नवीनतम पॉइंट रिलीज़ पर अपग्रेड करें।
- उन किसी भी अन्य जेम्स को अपग्रेड करें जो आपको
bundle updateकरने से रोकते हैं। - टेस्ट्स ठीक करें, आवश्यकतानुसार कमिट करते हुए।
- डिप्रिकेशन वार्निंग्स ठीक करें, आवश्यकतानुसार कमिट करते हुए।
- रेल्स के अगले माइनर या मेजर वर्जन पर अपग्रेड करें, और दोहराएं।
अपने टेस्ट्स पर भरोसा करें
जब आप रेल्स अपग्रेड करते हैं, तो आपके टेस्ट्स इस बात का पहला संकेत होंगे कि कुछ सही नहीं है। वे पहली चीज होनी चाहिए जो आप चलाते हैं, और पहली चीज जो आप ठीक करते हैं। अपने रेल्स ऐप को बूट करने की कोशिश करने से पहले अपने टेस्ट्स को ज्यादातर पास न होने दें।
अपने जेम्स अपग्रेड करें
जब एक टेस्ट फेल होता है, और ऐसा नहीं लगता कि यह आपकी गलती है, तो आमतौर पर इसका मतलब है कि आपके जेम्स में से एक को अपडेट करने की आवश्यकता है।
एक रेल्स अपग्रेड जेम को अपग्रेड करने का लगभग सबसे बुरा समय है। चूंकि आपके ऐप का बहुत कुछ बदल रहा है, यह बताना मुश्किल है कि रेल्स अपग्रेड ने कुछ तोड़ा, या जेम अपग्रेड ने कुछ तोड़ा, या आपने कुछ तोड़ा।
लेकिन क्योंकि कुछ जेम्स रेल्स इंटर्नल्स पर बहुत अधिक भरोसा करते हैं, यह कुछ ऐसा है जो आपको बस करना होगा। इसलिए अगर sass के अंदर कुछ फेल होता है, तो sass-rails जेम अपग्रेड करें। और आशा करें कि यह चीजों को बदतर नहीं बनाता।
बहुत सारे नोट्स लें
यदि आप विशेष रूप से कठिन रेल्स अपग्रेड कर रहे हैं, तो आपको प्रयोग करना होगा। आप शायद कुछ डीबगिंग करेंगे, कुछ कोड ट्वीक करेंगे, या कुछ टेस्ट्स को इधर-उधर बदलेंगे।
जैसे ही आप यह करते हैं, आप भूल जाएंगे जो परिवर्तन आपने किए हैं। कुछ चीजें जो आपने आजमाईं और जो आपको लगभग, लेकिन पूरी तरह से नहीं, वहां ले गईं। आप आगे किन टेस्ट्स को देखने वाले थे। कोड बदलने के लिए अन्य स्थान। सहकर्मियों के साथ साझा करने के लिए टिप्स जो अपने ऐप्स को रेल्स 4.2 में अपग्रेड कर रहे हैं।
तो, बहुत सारे नोट्स लें। सब कुछ लिख लें। चीजें जो आपने आजमाईं, और फाइलें जो आपने बदलीं। परिकल्पनाएं कि चीजें क्यों फेल हो रही थीं, और क्या वे सही थीं। आपको किन जेम्स को अपडेट करना पड़ा। व्यवहार जो अजीब लगता है, और जिसे आप बाद में अधिक बारीकी से जांचना चाहेंगे।
आप कोई परिवर्तन करना, उसे वापस लेना, यह महसूस करना कि यह वास्तव में सही काम था, और यह याद न रखना कि आपने क्या किया, ऐसा नहीं चाहते। इसे लिख लें।
कुछ अन्य संसाधन
टिप्पणियों में, मिहा रेकर ने RailsDiff की ओर इशारा किया, जो आपको अलग-अलग रेल्स वर्जन्स के तहत उत्पन्न नए रेल्स ऐप्स के बीच का अंतर दिखाता है। यह उन कॉन्फ़िगरेशन पैरामीटर्स के बारे में जानने का एक शानदार तरीका है जिनकी अब आपको आवश्यकता नहीं है, या नए जिन्हें आपको अपने ऐप में जोड़ना चाहिए।
और डैनियल केहो ने RVM और RVM जेमसेट्स का उपयोग करके रूबी और रेल्स को अपडेट करने के लिए एक व्यापक गाइड लिखा।
सबसे अच्छा संभव रेल्स अपग्रेड
कुछ रेल्स अपग्रेड सुचारू होते हैं। चीजें बस काम करती हैं। अन्य चुनौतीपूर्ण, बहु-दिन या बहु-सप्ताह की परियोजनाएं होती हैं। यह आपके ऐप, आपकी निर्भरताओं, और उन विशिष्ट चीजों पर निर्भर करता है जिन्हें रेल्स ने बदला। लेकिन यदि आप इन चरणों का पालन करते हैं, तो आपके पास सबसे अच्छा संभव अपग्रेड अनुभव होगा।
क्या आप रेल्स 4.2 पर हैं? आपका अपग्रेड कैसा रहा? क्या आपको बस गुच्छा भर जेम्स अपडेट करने पड़े, या आप अभी भी उस एक अंतिम फेलिंग टेस्ट का पीछा कर रहे हैं?
(एक त्वरित नोट: मैं 11 फरवरी को प्रैक्टिसिंग रेल्स जारी करने जा रहा हूं! इसलिए आपके पास 25% अर्ली एक्सेस छूट पाने के लिए केवल कुछ सप्ताह बचे हैं।)