কিছু রেইলস অ্যাপ্লিকেশন আপগ্রেড করা খুব সহজ: শুধু bundle update rails।
তবে অন্য ধরনের অ্যাপ্লিকেশন থাকলে কী? যারা এখনো রেইলস ৪.০ বা ৩.২-এ আটকে আছে, কারণ আপনি সেগুলো ভবিষ্যতে টানিয়ে আনা চায়নি?
আপনার আপগ্রেড দ্রুত হোক বা কষ্টসাধ্য, এই ধাপগুলো আপনাকে সম্ভাব্য সবচেয়ে স্মুথলি রেইলস ৪.২-এ পৌঁছে দেবে। এবং প্রক্রিয়ায় আপনি রেইলস ৪.২-এর নতুন ফিচারগুলো পুরোপুরি উপভোগ করার উপায়ও শিখবেন।
আপগ্রেড গাইড পড়ুন
রেইলস আপগ্রেড সবসময় রেইলস আপগ্রেড গাইড পড়ে শুরু করা উচিত।
আপগ্রেড গাইড আপনাকে রেইলস ভার্সনগুলোর মধ্যে বড় বড় পরিবর্তনগুলোর মাধ্যমে গাইড করবে। এটি আপনাকে ঠিক কীভাবে আপনার অ্যাপ্লিকেশন পরিবর্তন করতে হবে সেটা বলবে যাতে সবচেয়ে বড় সমস্যাগুলো ফিক্স করা যায়। (উদাহরণস্বরূপ, রেইলস ৪.১-এ এই পরিবর্তনটি আমাদের ঘন্টার পর ঘন্টা কষ্ট দিয়ত যদি আমরা সতর্ক থাকতাম না।)
তবে তার চেয়েও বেশি, আপগ্রেড গাইড ব্যাখ্যা করে কেন আপনাকে সেই পরিবর্তনগুলো করতে হবে। এবং এটা গুরুত্বপূর্ণ, কারণ এটি আপনাকে বুঝতে সাহায্য করে এর সাজেশনগুলোর কোনগুলো ফলো করতে হবে, আর কোনগুলো উপেক্ষা করা যাবে।
আর যদি আপনি রেইলস ৪.২-এর পরিবর্তনগুলো গভীরে বুঝতে চান, তবে রিলিজ নোটস পড়ুন। সেগুলো আপনাকে শীঘ্রই ব্যবহার করতে পারবেন এমন সব কুল নতুন রেইলস ৪.২ ফিচারদের সাথে পরিচয় করাবে। যদি অন্য কিছু না হয়, তবে আপগ্রেডটি সমाप्त করার জন্য আপনাকে মোটিভেট করবে।
ধাপে ধাপে আপগ্রেড করুন
নতুন রেইলস ভার্সনে যেতে গিয়ে, সবচেয়ে নতুন পয়েন্ট ভার্সনে আগে আপগ্রেড করুন। এবং মাইনর ভার্সন স্কিপ করবেন না।
তাই যদি ৪.১.৬ থেকে ৪.২-এ যেতে চান, তবে ৪.১.৬ থেকে ৪.১.৯, তারপর ৪.১.৯ থেকে ৪.২। যদি ৪.০.১২ থেকে শুরু করেন, তবে ৪.০.১২ থেকে ৪.০.১৩, তারপর ৪.০.১৩ থেকে ৪.১.৯, এবং তারপর ৪.১.৯ থেকে ৪.২। একটু বেশি কাজ লাগতে পারে, কিন্তু দীর্ঘদার্ঘ্যে সময় বাঁচাবে।
কেন?
একটি রেইলস রিলিজের সবচেয়ে নতুন পয়েন্ট ভার্সনে সেরা ডিপ্রিকেশন ওয়ার্নিং থাকে।
ডিপ্রিকেশন ওয়ার্নিং কতটুকু উপকারী সেটা 과소평가 করবেন না। আপনি ধাপে ধাপে আপগ্রেড করলে, সেগুলো আপনাকে বলবে ঠিক কী ভাঙবে এবং কীভাবে এড়াতে হয়। আপনি যদি খুব দূরে লাফ দেন, তবে আপনার অ্যাপ্লিকেশন শুধু ভাঙবে, আর কেন ভাঙলো সেটা বুঝতে পারবেন না।
শেষত, যদি একটি পয়েন্ট ভার্সন রেইলস আপগ্রেড (যেমন ৪.০.৯ থেকে ৪.০.১৩) কোনো টেস্ট ভাঙায়, তবে সেটা মেজর বা মাইনর আপগ্রেডেও ভাঙবে। কিন্তু কম জিনিস পরিবর্তন হলে সেগুলো ডিবাগ ও ফিক্স করা অনেক সহজ।
তাই কী করতে হবে:
- আপনার অ্যাপ্লিকেশন যেই রেইলস ভার্সনে আছে, তার সবচেয়ে নতুন পয়েন্ট রিলিজে আপগ্রেড করুন।
- আপনাকে
bundle updateকরতে বাধা দিচ্ছে যেসব জেম, সেগুলো আপগ্রেড করুন। - টেস্টগুলো ফিক্স করুন, প্রয়োজন অনুযায়ী কমিট করুন।
- ডিপ্রিকেশন ওয়ার্নিংগুলো ফিক্স করুন, প্রয়োজন অনুযায়ী কমিট করুন।
- রেইলসের পরের মাইনর বা মেজর ভার্সনে আপগ্রেড করুন, এবং পুনরাবৃত্তি করুন।
আপনার টেস্টের ওপর নির্ভর করুন
রেইলস আপগ্রেড করার সময়, আপনার টেস্টগুলোই প্রথম ইন্ডিকেটর যে কিছু ঠিক নয়। সেগুলোই প্রথমে রান করানো উচিত, এবং প্রথমে ফিক্স করানো উচিত। আপনার রেইলস অ্যাপ্লিকেশন বুট করাতে চেষ্টা করবেন না যতক্ষণ না আপনার টেস্টগুলো অধিকাংশ পাস করে।
আপনার জেমগুলো আপগ্রেড করুন
যখন কোনো টেস্ট ফেইল করে, এবং সেটা আপনার ফল্ট বলে মনে হয় না, সাধারণত এর মানে আপনার একটি জেম আপডেট করতে হবে।
একটি রেইলস আপগ্রেড সময় জেম আপগ্রেড করা সবচেয়ে খারাপ সময়। যেহেতু আপনার অ্যাপ্লিকেশনের অনেক কিছু পরিবর্তন হচ্ছে, বোঝা কঠিন হয় রেইলস আপগ্রেডের কারণে ভাঙলো, জেম আপগ্রেডের কারণে ভাঙলো, নাকি আপনি ভাঙিয়েছেন।
তবে যেহেতু কিছু জেম রেইলস ইন্টারনালের ওপর বেশি নির্ভরশীল, এটি করতে হবে। তাই যদি sass-এর ভিতরে কিছু ভাঙে, তবে sass-rails জেম আপগ্রেড করুন। এবং আশা করুন সেটা বিষয়টা আরও খারাপ করে না।
খুব সারানোট নিন
যদি আপনার খুব কঠিন রেইলস আপগ্রেড হয়, তবে আপনাকে এক্সপেরিমেন্ট করতে হবে। আপনি প্রায়শই কিছু ডিবাগ করবেন, কোড টুইক করবেন, বা টেস্টগুলো পরিবর্তন করবেন।
এটা করার সাথে সাথে, আপনি নিশ্চিতভাবেই আপনার করা পরিবর্তনগুলো ভুলে যাবেন। যেসব চেষ্টা করলে অর্ধেক সাফল্য পেয়েছিলেন। কোন টেস্টগুলো পরবর্তীতে দেখবেন। অন্যান্য জায়গায় কোড পরিবর্তন করতে হবে। সহকর্মীদের সাথে শেয়ার করার টিপস যারা নিজেদের অ্যাপ্লিকেশন রেইলস ৪.২-এ আপগ্রেড করছে।
খুব সারানোট নিন। সবকিছু লিখে রাখুন। আপনি যা চেষ্টা করলেন, এবং যেসব ফাইল পরিবর্তন করলেন। কেন ভাঙছিলো সেটা নিয়ে আপনার হাইপোথেসিস, এবং সেগুলো কি সঠিক ছিল। কোন জেম আপডেট করতে হয়েছিল। বিহেভিয়র যেগুলো অদ্ভুত লাগছে, এবং পরে নজদিক থেকে চেক করতে চাবেন।
আপনি একটি পরিবর্তন করলেন, রোল ব্যাক করলেন, বুঝলেন সেটা আসলে সঠিক পথ ছিল, কিন্তু মনে রাখতে পারলেন না কী করেছিলেন। তাই লিখে রাখুন।
অন্য কিছু রিসোর্স
কমেন্টে মিহা রেকার RailsDiff-কে পয়েন্ট করেছেন, যা বড় কি রেইলস ভার্সনে জেনারেট করা নতুন রেইলস অ্যাপ্লিকেশনের পার্থক্য দেখায়। কনফিগারেশন প্যারামিটার যেগুলো আর দরকার নেই, অথবা নতুন যেগুলো আপনার অ্যাপ্লিকেশনে যোগ করা উচিত - সেগুলো শিখতে এটি ফ্যান্টাস্টিক উপায়।
এবং ড্যানিয়েল কেহোয়া RVM এবং RVM জেমসেট ব্যবহার করে রুবি এবং রেইলস আপডেট করার একটি কম্প্রিহেনসিভ গাইড লিখেছেন।
সর্বোত্তম সম্ভাব্য রেইলস আপগ্রেড
কিছু রেইলস আপগ্রেড স্মুথ। সবকিছুই কাজ করে। অন্যদের চ্যালেঞ্জিং, একাধিক দিন বা সপ্তাহ লম্বা প্রজেক্ট। এটা আপনার অ্যাপ্লিকেশন, আপনার ডিপেন্ডেন্সি, এবং রেইলস কী কী পরিবর্তন করেছে সেটার ওপর নির্ভর করে। তবে আপনি এই ধাপগুলো ফলো করলে, আপনাকে সেরা সম্ভাব্য আপগ্রেড অভিজ্ঞতা হবে।
আপনি কি রেইলস ৪.২-এ আছেন? আপনার আপগ্রেড কেমন গেলো? শুধু কিছু জেম আপডেট করলেই হয়েছিল, নাকি আপনি এখনও সেই একটা ফেইলিং টেস্টের পেছনে পड़े আছেন?
(একটি ছোট নোট: আমি প্র্যাকটিসিং রেইলস ১১ ফেব্রুয়ারি রিলিজ করব! তাই আপনার কাছে আর্লি এক্সেসের ২৫% ডিসকাউন্ট পাওয়ার জন্য আরও কয়েক সপ্তাহ বাকি।)