দুটি ভিন্ন কোড ঘাঁটি (অ্যান্ড্রয়েড এবং একটি নোড.জেএস ওয়েব অ্যাপ্লিকেশন) সহ আমাদের দুটি প্রধান নির্ভরতা-সম্পর্কিত সংকট ছিল। অ্যান্ড্রয়েড রেপো ফ্লুরি থেকে ফায়ারবেসে স্থানান্তরিত হওয়া দরকার, যার জন্য গুগল প্লে পরিষেবা লাইব্রেরি চারটি বড় সংস্করণ আপডেট করা দরকার required আমাদের হেরোকু-হোস্টেড নোড অ্যাপের সাথে একই রকম ঘটনা ঘটেছে যেখানে আমাদের প্রোডাকশন স্ট্যাক (সিডার) অবমূল্যায়ন করা হয়েছিল এবং সিডার -14 এ আপগ্রেড করা দরকার। আমাদের পোস্টগ্রিজ এসকিউএল ডাটাবেসেরও 9.2 থেকে 9.6 থেকে আপডেট করা দরকার।
এই অ্যাপসের প্রতিটি নির্ভরতা প্রায় দুই বছর ধরে বাসি বসেছিল, এবং যখন কিছুকে অবমূল্যায়ন করা হয়েছিল এবং আমরা 'সূর্যাস্ত' পিরিয়ডে পৌঁছেছি তখন সেগুলি আপডেট করার জন্য বা তাদের প্রতিস্থাপনের জন্য এটি একটি প্রধান মাথাব্যথা হয়ে দাঁড়িয়েছে। আমি গত এক মাস ধরে 30 ঘন্টা ধরে কাটিয়েছি এবং ধীরে ধীরে সমস্ত দ্বন্দ্ব এবং ভাঙ্গা কোড সমাধান করে।
স্পষ্টতই দু'বছর ধরে জিনিসগুলিকে বসতে দেওয়া অনেক দীর্ঘ। প্রযুক্তি দ্রুত চলে আসে, বিশেষত যখন আপনি হিরোকুর মতো প্ল্যাটফর্ম সরবরাহকারী ব্যবহার করেন। আসুন ধরে নেওয়া যাক আমাদের একটি পূর্ণাঙ্গ পরীক্ষার স্যুট আছে এবং ট্র্যাভিস সিআই এর মতো একটি সিআই প্রক্রিয়া রয়েছে, যা আপডেট হওয়ার বাইরে অনেক অনুমানের কাজ করে। উদাহরণস্বরূপ যদি কোনও আপগ্রেডের পরে কোনও ফাংশন সরানো হয় এবং আপনি এটি ব্যবহার করে থাকেন তবে আপনার পরীক্ষাগুলি ব্যর্থ হবে।
কতক্ষণ নির্ভরতা আপডেট করা উচিত, বা কখন নির্ভরতা আপডেট করা উচিত? আমরা বাধ্য হয়েছিলাম কারণ আমরা বাধ্য হয়েছিলাম, তবে মনে হচ্ছে একরকম প্রাক-আগ্রাসী পদ্ধতির চেয়ে ভাল হবে। ছোটখাটো সংস্করণ প্রকাশিত হলে আমাদের আপডেট করা উচিত? প্রধান সংস্করণগুলি? প্রতিমাসে যদি আপডেট পাওয়া যায়? আমি সর্বাধিক ব্যয় করে যা করেছি তার মতো পরিস্থিতি এড়াতে চাই।
পিএস - আমার ব্যক্তিগত রেল প্রকল্পগুলির জন্য, আমি জেমনেসিয়াম নামক একটি পরিষেবা ব্যবহার করি যা আপনার নির্ভরতাগুলি ট্র্যাক করে যাতে আপনাকে যেমন সুরক্ষা দুর্বলতার বিষয়ে অবহিত করা যায়। এটি একটি দুর্দান্ত পরিষেবা, তবে আমি উল্লিখিত প্রকল্পগুলির জন্য আমাদের ম্যানুয়ালি নির্ভরতা পরীক্ষা করতে হবে।