আপনার নির্ভরতা আপগ্রেড করা আপনাকে তাদের সর্বশেষ বৈশিষ্ট্য, বাগ ফিক্স এবং উন্নতিতে অ্যাক্সেস দেয়। আপনার নির্ভরতা আপগ্রেড করার জন্য, আপনাকে বুঝতে হবে কিভাবে Gradle আপনার অনুরোধ করা সংস্করণগুলির সমাধান করে , যে ঝুঁকিগুলি জড়িত, এবং সেই ঝুঁকিগুলি কমানোর জন্য আপনি কী পদক্ষেপ নিতে পারেন৷
আপনার আপগ্রেড কৌশল বিবেচনা করুন
যেকোনো আপগ্রেডের সবচেয়ে গুরুত্বপূর্ণ ধাপ হল ঝুঁকি বিশ্লেষণ। আপনি আপগ্রেড করা প্রতিটি নির্ভরতার সাথে কতটা আরামদায়ক তা নির্ধারণ করুন। আপনার আপগ্রেড কৌশল সংজ্ঞায়িত করার সময় অনেক বিবেচনা আছে, যার মধ্যে রয়েছে:
একটি লাইব্রেরি তৈরি করুন | আপনি কি এমন একটি অ্যাপ্লিকেশন তৈরি করছেন যা ব্যবহারকারীরা ডাউনলোড করে একটি ডিভাইসে চালান? অথবা আপনি অন্য ডেভেলপারদের তাদের অ্যাপ্লিকেশন তৈরি করতে সহায়তা করার জন্য একটি লাইব্রেরি তৈরি করছেন? আপনি যদি একটি অ্যাপ্লিকেশন তৈরি করছেন, আপনার ফোকাস আপনার অ্যাপ্লিকেশন আপ টু ডেট এবং স্থিতিশীল রাখা উচিত। আপনি যদি একটি লাইব্রেরি তৈরি করেন তবে আপনার ফোকাস অন্যান্য বিকাশকারীদের অ্যাপ্লিকেশনগুলিতে হওয়া উচিত। আপনার আপগ্রেড আপনার ভোক্তাদের প্রভাবিত করে। আপনি যদি আপনার নির্ভরতাগুলির একটি আপগ্রেড করেন, তাহলে সেই সংস্করণটি Gradle-এর নির্ভরতা রেজোলিউশনের প্রার্থী হয়ে ওঠে, সম্ভবত সেই নির্ভরতার অ্যাপ্লিকেশনটির ব্যবহার ভঙ্গ করে। প্রথম - যেখানে সম্ভব আপনার লাইব্রেরির নির্ভরতা কমিয়ে দিন। আপনার যত কম নির্ভরতা থাকবে, আপনার ভোক্তার নির্ভরতা রেজোলিউশনের উপর প্রভাব তত কম হবে। আপনি যে ধরনের পরিবর্তন করছেন তা নির্দেশ করার জন্য শব্দার্থিক সংস্করণ অনুসরণ করতে ভুলবেন না। উদাহরণস্বরূপ, AndroidX শব্দার্থিক সংস্করণ অনুসরণ করে এবং একটি প্রাক-রিলিজ সংস্করণ স্কিম যোগ করে। আপনার ভোক্তাদের ভাঙা এড়াতে ব্যবহারকারীদের তাড়াতাড়ি পরীক্ষা করার জন্য আপনার লাইব্রেরির একটি রিলিজ-ক্যান্ডিডেট (RC) তৈরি করার কথা বিবেচনা করুন। আপনার লাইব্রেরির অ্যাপ্লিকেশন বাইনারি ইন্টারফেস (ABI) সামঞ্জস্যপূর্ণ রাখার বিষয়ে বিস্তারিত জানার জন্য লাইব্রেরির লেখকদের জন্য ব্যাকওয়ার্ড সামঞ্জস্যের নির্দেশিকা দেখুন। আপনার ABI পরিবর্তনগুলি আপনার উদ্দেশ্যযুক্ত সংস্করণ পরিবর্তনের সাথে মেলে তা নিশ্চিত করতে বাইনারি সামঞ্জস্য যাচাইকারীর মতো ইন্টিগ্রেশন পরীক্ষা এবং সরঞ্জামগুলি ব্যবহার করুন৷ আপনি যদি আপনার লাইব্রেরির নিম্ন সংস্করণে একটি যদি আপনার লাইব্রেরি আপগ্রেডের জন্য ব্রেকিং পরিবর্তনের প্রয়োজন হয় যা আপনার ভোক্তাদের জন্য বিশেষভাবে বেদনাদায়ক হতে পারে, সেগুলিকে একটি নতুন আর্টিফ্যাক্ট হিসাবে প্রকাশ করার কথা বিবেচনা করুন যাতে পুরানো এবং নতুন সংস্করণগুলি একসাথে থাকতে পারে এবং আরও ধীরে ধীরে রোলআউটের অনুমতি দেয়৷ দ্রষ্টব্য : যদি আপনার নির্ভরতাগুলির একটিতে একটি আপগ্রেডে একটি বড় API পরিবর্তন থাকে, আপনি সম্ভবত এটিকে একটি |
রিলিজ চক্র | আপনি কত ঘন ঘন আপনার অ্যাপ্লিকেশন বা লাইব্রেরি প্রকাশ করবেন? সংক্ষিপ্ত বিকাশ এবং মুক্তি চক্র
দীর্ঘতর বিকাশ এবং মুক্তি চক্র
|
সর্বশেষ বৈশিষ্ট্য সঙ্গে আপ রাখুন | আপনি কি সর্বশেষ উপলব্ধ বৈশিষ্ট্য এবং API ব্যবহার করতে পছন্দ করেন, নাকি শুধুমাত্র যখন আপনার একটি বৈশিষ্ট্য বা বাগ ফিক্সের প্রয়োজন হয় তখনই আপগ্রেড করতে চান? ঘন ঘন আপগ্রেডের ট্রেডঅফ বিবেচনা করুন। ভবিষ্যত আপগ্রেড সহজ (একীভূত করার জন্য কম পরিবর্তন), কিন্তু আপনি আরো প্রায়ই আপগ্রেড ঝুঁকি নিচ্ছেন। লাইব্রেরির প্রাক-রিলিজ (আলফা, বিটা, রিলিজ প্রার্থী) সংস্করণে পরীক্ষা আপগ্রেডগুলি যখন স্থিতিশীল রিলিজ উপলব্ধ থাকে তখন প্রস্তুতিতে সাহায্য করতে পারে। |
নতুন নির্ভরতা | আপনি যদি একটি নতুন নির্ভরতা যোগ করেন, তাহলে একটি শক্তিশালী পর্যালোচনা প্রক্রিয়া বিবেচনা করুন যা সমস্ত ঝুঁকির মানদণ্ডের জন্য সেই লাইব্রেরিটি পরীক্ষা করে নিশ্চিত করে যে সেগুলি সঠিকভাবে মূল্যায়ন করা হয়েছে। পর্যালোচনা ছাড়া নতুন নির্ভরতা যোগ করার অনুমতি দেবেন না। |
নিবেদিত দল | আপনি একটি ডেডিকেটেড বিল্ড দল আছে? আপনার সফ্টওয়্যার ইঞ্জিনিয়াররা কি বিল্ড বজায় রাখে? একটি উত্সর্গীকৃত দল প্রায়শই আপগ্রেড ঝুঁকি বিশ্লেষণ করতে এবং নতুন সংস্করণগুলি পরীক্ষা করার জন্য আরও বেশি সময় ব্যয় করতে পারে যাতে প্রকৌশলীরা নতুন সংস্করণগুলি ব্যবহার করার আগে বিল্ডটি সঠিকভাবে কাজ করে তা নিশ্চিত করতে পারে। |
আপগ্রেডের ধরন | কিছু আপগ্রেড অন্যদের চেয়ে বেশি গুরুত্বপূর্ণ। আপনার জন্য সবচেয়ে গুরুত্বপূর্ণ কোনটি সম্পর্কে চিন্তা করুন। বিল্ড টুল আপগ্রেড, যেমন গ্রেডল এবং গ্রেডল প্লাগইন, সাধারণত আপনার ব্যবহারকারীদের উপর কম প্রভাব ফেলে এবং বেশিরভাগ ঝুঁকি আপনার বিল্ডের অভ্যন্তরীণ। বিল্ড নিজেই এই পরিবর্তনগুলি যাচাই করতে সাহায্য করে। লাইব্রেরি এবং SDK আপগ্রেডগুলি যাচাই করা আরও কঠিন, এবং সেগুলি আপনার ব্যবহারকারীদের জন্য একটি উচ্চ ঝুঁকি উপস্থাপন করে৷ Android Gradle Plugin (AGP) — আপনার Android অ্যাপ্লিকেশন বা লাইব্রেরি তৈরি করতে ব্যবহৃত টুলিং। এটি সবচেয়ে গুরুত্বপূর্ণ আপগ্রেড যা আপনি করতে পারেন, কারণ এতে প্রায়শই কর্মক্ষমতার উন্নতি, বাগ ফিক্স, নতুন লিন্ট নিয়ম এবং নতুন Android প্ল্যাটফর্ম সংস্করণগুলির জন্য সমর্থন অন্তর্ভুক্ত বা সক্ষম করে৷ Gradle — আপনি যখন AGP বা অন্য Gradle প্লাগইন আপগ্রেড করবেন তখন আপনাকে প্রায়ই Gradle আপগ্রেড করতে হবে। অন্যান্য গ্রেডল প্লাগইন - কখনও কখনও গ্রেডলের প্লাগইন এপিআই পরিবর্তন হয়। আপনি যখন Gradle আপগ্রেড করবেন, তখন আপনি যে প্লাগইনগুলি ব্যবহার করেন তাতে আপগ্রেডগুলি পরীক্ষা করুন৷ Kotlin এবং Java — কিছু লাইব্রেরি এবং প্লাগইনগুলির জন্য Kotlin বা Java এর ন্যূনতম সংস্করণ প্রয়োজন, অথবা আপনি নতুন ভাষা বৈশিষ্ট্য, API, বা কর্মক্ষমতা উন্নতির সুবিধা নিতে চান। অ্যান্ড্রয়েড প্ল্যাটফর্ম — প্লে স্টোরের নিয়মিত অ্যান্ড্রয়েড SDK আপগ্রেড প্রয়োজন। যত তাড়াতাড়ি সম্ভব আপনার Android SDK-এর নতুন সংস্করণ পরীক্ষা করা উচিত। কিছু SDK আপগ্রেডের জন্য আপনার অ্যাপ্লিকেশনে পরিবর্তন প্রয়োজন, যেমন নতুন অনুমতি বা নতুন API-এর ব্যবহার। লাইব্রেরি — আপনি কি আপনার সামগ্রিক আর্কিটেকচারের ঘনিষ্ঠতার উপর ভিত্তি করে লাইব্রেরিগুলিকে অগ্রাধিকার দিতে চান?
অ্যান্ড্রয়েড স্টুডিও — অ্যান্ড্রয়েড স্টুডিওকে আপ টু ডেট রাখা আপনাকে অন্তর্নিহিত IntelliJ IDEA প্ল্যাটফর্মে সর্বশেষ বৈশিষ্ট্য এবং বাগ ফিক্স এবং সর্বশেষ Android SDK-এর সাথে কাজ করার সরঞ্জামগুলিতে অ্যাক্সেস দেয়৷ |
উপলব্ধ টুলিং | আপনার আপগ্রেডে সহায়তা করার জন্য অনেক সরঞ্জাম এবং প্লাগইন উপলব্ধ রয়েছে৷ Dependabot এবং Renovate-এর মতো টুলগুলি আপনার বিল্ডে স্বয়ংক্রিয়ভাবে লাইব্রেরি সংস্করণ আপগ্রেড করে, তবে ঝুঁকিগুলি পরীক্ষা করার জন্য ফলাফলগুলি বিশ্লেষণ করতে ভুলবেন না। |
নির্দিষ্ট ধরনের আপগ্রেডের জন্য কৌশল
কিছু ধরণের নির্ভরতা আপগ্রেড করলে একটি ক্যাসকেডিং প্রভাব থাকতে পারে, অন্য ধরনের নির্ভরতাগুলিকে আপগ্রেড করতে হবে। আমরা টুল এবং লাইব্রেরির আন্তঃনির্ভরতার মধ্যে বিল্ড উপাদানগুলির মধ্যে সম্পর্ক নিয়ে আলোচনা করি।
প্রতিটি ধরণের উপাদান আপগ্রেড করার সময়, আপগ্রেডটি বিল্ডের অন্যান্য উপাদানগুলিকে কীভাবে প্রভাবিত করে তা বিবেচনা করুন।
অ্যান্ড্রয়েড গ্রেডল প্লাগইন (এজিপি) | অ্যান্ড্রয়েড স্টুডিওতে একটি এজিপি আপগ্রেড সহকারী রয়েছে যা এই কাজগুলিতে সহায়তা করতে পারে। আপনি যদি সহকারী ব্যবহার করেন বা ম্যানুয়ালি আপগ্রেড করেন তবে নিম্নলিখিতগুলি বিবেচনা করুন: AGP রিলিজ নোট দেখুন. অন্তত তালিকাভুক্ত সংস্করণে Gradle আপগ্রেড করুন । Android স্টুডিওকে এমন একটি সংস্করণে আপগ্রেড করুন যা নির্বাচিত AGP সংস্করণকে সমর্থন করে৷ আপনি ব্যবহার করতে চান এমন Android SDK সমর্থন করে এমন Android Studio এবং AGP-এর সংস্করণগুলি ব্যবহার করুন৷ SDK বিল্ড টুল, NDK, এবং JDK-এর সাথে সামঞ্জস্যতা পরীক্ষা করুন। আপনি যদি একটি গ্রেডল প্লাগইন তৈরি করেন (অভ্যন্তরীণ বা সর্বজনীন ব্যবহারের জন্য) যা AGP থেকে ডেটা প্রসারিত বা ব্যবহার করে, আপনার প্লাগইন আপগ্রেড করতে হবে কিনা তা পরীক্ষা করে দেখুন। কখনও কখনও AGP ডিপ্রেকেট করে এবং পরে API গুলি সরিয়ে দেয়, যা পূর্ববর্তী প্লাগইনগুলির সাথে অসঙ্গতি সৃষ্টি করে৷ |
কোটলিন কম্পাইলার, ভাষা এবং রানটাইম | পরিচিত সমস্যা এবং অসঙ্গতিগুলির জন্য কোটলিন রিলিজ নোটগুলি পরীক্ষা করুন৷ আপনি যদি জেটপ্যাক কম্পোজ ব্যবহার করেন:
আপনি যদি Kotlin Symbol Processing (KSP) ব্যবহার করেন, তাহলে সেটআপের জন্য KSP Quickstart এবং উপলব্ধ সংস্করণের জন্য KSP রিলিজ দেখুন। মনে রাখবেন যে আপনাকে অবশ্যই KSP এর একটি সংস্করণ ব্যবহার করতে হবে যা Kotlin সংস্করণের সাথে মেলে। উদাহরণস্বরূপ, আপনি যদি Kotlin 2.0.21 ব্যবহার করেন, আপনি KSP প্লাগইনের যেকোনো সংস্করণ ব্যবহার করতে পারেন যা 2.0.21 দিয়ে শুরু হয়, যেমন 2.0.21-1.0.25। আপনাকে সাধারণত KSP প্রসেসরগুলি আপগ্রেড করতে হবে না (যেমন রুম কম্পাইলার , যা আপনার বিল্ড ফাইলগুলিতে আপনি যে সমস্ত অন্যান্য কোটলিন কম্পাইলার প্লাগইনগুলি ব্যবহার করছেন তা আপগ্রেড করুন৷ Kotlin Compiler Plugin API প্রায়ই রিলিজের মধ্যে পরিবর্তিত হয় এবং প্লাগইনগুলিকে অবশ্যই একটি সামঞ্জস্যপূর্ণ API ব্যবহার করতে হবে। যদি প্লাগইনটি কম্পাইলার প্লাগইনগুলিতে তালিকাভুক্ত থাকে, তাহলে আপনাকে অবশ্যই কোটলিন কম্পাইলারের মতো একই সংস্করণ ব্যবহার করতে হবে। অন্য কোনো কম্পাইল প্লাগইনগুলির জন্য, উপযুক্ত ম্যাপিংয়ের জন্য তাদের ডকুমেন্টেশন পরীক্ষা করুন। মনে রাখবেন যে কম্পাইলার প্লাগইনগুলি যেগুলি Kotlin কম্পাইলারের পাশাপাশি রক্ষণাবেক্ষণ করা হয় না সেগুলি প্রায়শই রিলিজ বিলম্বের সম্মুখীন হয় কারণ তারা কম্পাইলার প্লাগইন API স্থিতিশীল হওয়ার জন্য অপেক্ষা করে। Kotlin আপগ্রেড করার আগে, আপনার ব্যবহার করা সমস্ত কম্পাইলার প্লাগইনগুলির মিলিত আপগ্রেড উপলব্ধ আছে কিনা তা পরীক্ষা করুন৷ অবশেষে, কিছু অনুষ্ঠানে, কোটলিন ভাষা পরিবর্তিত হয়, যার জন্য আপনাকে আপনার কোড আপডেট করতে হবে। আপনি যদি পরীক্ষামূলক বৈশিষ্ট্যগুলি ব্যবহার করে দেখছেন তবে এটি প্রায়শই ঘটে। যদি আপনার কোডটি Kotlin কম্পাইলার আপগ্রেড করার পরে সঠিকভাবে তৈরি না হয়, তাহলে Kotlin রিলিজ নোটে ভাষার পরিবর্তন বা রানটাইম লাইব্রেরি ভাঙার জন্য পরীক্ষা করুন। |
কোটলিন কম্পাইলার প্লাগইনস | আপনি যদি একটি Kotlin কম্পাইলার প্লাগইন আপগ্রেড করতে চান, Kotlin ব্যবহার করা হচ্ছে ম্যাচিং সংস্করণে আপগ্রেড করুন। বেশিরভাগ কোটলিন কম্পাইলার প্লাগইন হয় কোটলিন কম্পাইলারের মতো একই সংস্করণ ব্যবহার করে, অথবা তারা কোটলিন কম্পাইলারের প্রয়োজনীয় সংস্করণ দিয়ে শুরু করে। উদাহরণস্বরূপ, প্লাগইন সংস্করণ 2.0.21-1.0.25 হলে, আপনাকে অবশ্যই Kotlin কম্পাইলারের সংস্করণ 2.0.21 ব্যবহার করতে হবে। কোটলিন কম্পাইলার সংস্করণ পরিবর্তন করার জন্য কখনও কখনও অন্যান্য পরিবর্তনের প্রয়োজন হয়। |
লাইব্রেরি | আপনার বিল্ডে লাইব্রেরিগুলি হল সর্বাধিক আপগ্রেড নির্ভরতা। আপনি অ্যান্ড্রয়েড স্টুডিও এডিটরে উপলব্ধ আপগ্রেড দেখতে পাবেন, অথবা আপনি কিছু নির্ভরতা সরঞ্জাম এবং প্লাগইন ব্যবহার করলে। কিছু লাইব্রেরি লাইব্রেরি ব্যবহার করার জন্য প্রয়োজনীয় একটি ন্যূনতম কিছু লাইব্রেরি ব্যবহারের জন্য ন্যূনতম কোটলিন সংস্করণও নির্দিষ্ট করে। আপনার বিল্ড ফাইলগুলিতে কোটলিনের সংস্করণটি অন্তত নির্দিষ্ট সংস্করণে আপডেট করুন। |
গ্রেডল | কখনও কখনও Gradle-এর নতুন সংস্করণ বিদ্যমান APIগুলিকে অবমূল্যায়ন করে, ভবিষ্যতে রিলিজে সেই APIগুলিকে সরিয়ে দেয়। আপনি যদি একটি Gradle প্লাগইন তৈরি করেন, যত তাড়াতাড়ি সম্ভব আপনার প্লাগইন আপগ্রেড করুন, বিশেষ করে যদি সেই প্লাগইনটি সর্বজনীন হয়। কিছু Gradle আপগ্রেডের জন্য আপনার ব্যবহার করা প্লাগইনগুলির নতুন সংস্করণগুলি সনাক্ত করা প্রয়োজন৷ মনে রাখবেন যে এই প্লাগইনগুলি তাদের বিকাশে পিছিয়ে থাকতে পারে কারণ তারা সর্বশেষ গ্রেডল প্লাগইন API-এর সাথে মিলিত হওয়ার জন্য প্লাগইনগুলি আপগ্রেড করে। Gradle আপগ্রেড করতে:
|
গ্রেডল প্লাগইন | আপগ্রেড করা Gradle প্লাগইনগুলি কখনও কখনও নতুন বা পরিবর্তিত Gradle API ব্যবহার করে, যার ফলস্বরূপ একটি Gradle আপগ্রেড বা সম্ভবত আপনার বিল্ড ফাইলগুলিতে তাদের কনফিগারেশনে পরিবর্তন প্রয়োজন। উভয় ক্ষেত্রেই, আপনি অসঙ্গতি নির্দেশ করতে বিল্ড সতর্কতা বা ত্রুটি দেখতে পাবেন। প্লাগইন আপগ্রেড করার সময়, গ্রেডল আপগ্রেড করুন। |
অ্যান্ড্রয়েড এসডিকে | অ্যান্ড্রয়েড স্টুডিওতে একটি Android SDK আপগ্রেড সহকারী রয়েছে যা এই কাজগুলিতে সহায়তা করতে পারে। আপনি যদি সহকারী ব্যবহার করেন বা ম্যানুয়ালি আপগ্রেড করেন তবে নিম্নলিখিতগুলি বিবেচনা করুন: Android SDK-এর প্রতিটি রিলিজে নতুন বৈশিষ্ট্য এবং API, বাগ ফিক্স এবং আচরণের পরিবর্তন রয়েছে। Play Store-এর জন্য আপনার Android SDK আপগ্রেড করার আগে, রিলিজ নোটগুলি সাবধানে পড়ুন। আচরণ পরিবর্তন বিভাগে গভীর মনোযোগ দিন, যার মধ্যে রয়েছে:
আচরণ পরিবর্তন বিভাগটি বেশ দীর্ঘ হতে পারে, তবে গভীর মনোযোগ দিন কারণ এতে প্রায়শই আপনার আবেদনে করা গুরুত্বপূর্ণ পরিবর্তনগুলি থাকে। প্লে স্টোরের প্রয়োজনীয়তা পূরণ করতে আপনাকে অবশ্যই বিকাশের সময় নতুন SDK বৈশিষ্ট্যগুলির সুবিধা নিতে এবং আপনার বিল্ডের সময় সামঞ্জস্য নিশ্চিত করতে, Android Gradle প্লাগইন (AGP) এবং Android Studio আপগ্রেড করুন৷ এর মধ্যে রয়েছে নতুন SDK-এর জন্য নতুন এবং উন্নত টুল। অ্যান্ড্রয়েড এপিআই লেভেলের জন্য টুলের ন্যূনতম সংস্করণ দেখুন। Android SDK আপগ্রেড করার সময়, আপনি ব্যবহার করেন এমন যেকোনো AndroidX লাইব্রেরি আপগ্রেড করুন। Android SDK সংস্করণ জুড়ে আরও ভাল সামঞ্জস্যতা এবং কার্য সম্পাদনের জন্য AndroidX প্রায়শই নতুন এবং আপডেট করা API ব্যবহার করে। |
অ্যান্ড্রয়েড স্টুডিও | আপনি সাধারণত যে কোনো সময় Android স্টুডিও আপগ্রেড করতে পারেন। আপনি এজিপি আপগ্রেড করতে বা Android SDK আপগ্রেড করার জন্য আপনাকে বার্তাগুলি দেখতে পারেন৷ এই আপগ্রেডগুলি দৃঢ়ভাবে সুপারিশ করা হয় কিন্তু প্রয়োজন হয় না। আপনি যদি পরে এজিপি বা অ্যান্ড্রয়েড এসডিকে আপগ্রেড করতে অ্যান্ড্রয়েড স্টুডিও ব্যবহার করতে চান তবে আপনি টুল মেনুতে এই বিকল্পগুলি খুঁজে পেতে পারেন: |
জাভা | আপনার অ্যান্ড্রয়েড অ্যাপ্লিকেশনে জাভা সোর্স কোড থাকলে, আপনি নতুন জাভা API-এর সুবিধা নিতে চাইতে পারেন। প্রতিটি Android SDK সংস্করণ জাভা API এবং ভাষার বৈশিষ্ট্যগুলির একটি উপসেট সমর্থন করে৷ AGP ডিসুগারিং নামক একটি প্রক্রিয়া ব্যবহার করে নিম্ন Android SDK সংস্করণগুলির জন্য সামঞ্জস্য প্রদান করে। অ্যান্ড্রয়েড SDK রিলিজ নোটগুলি কোন জাভা স্তর সমর্থিত এবং সম্ভাব্য সমস্যাগুলি নির্দিষ্ট করে৷ এই সমস্যাগুলির মধ্যে কিছু কোটলিন সোর্স কোডকেও প্রভাবিত করতে পারে, কারণ কোটলিনের একই জাভা APIগুলিতে অ্যাক্সেস রয়েছে। JDK API বিভাগগুলিতে মনোযোগ দিতে ভুলবেন না যা রিলিজ নোটের আচরণগত পরিবর্তন বিভাগে প্রদর্শিত হয়, এমনকি আপনার কাছে কোনো জাভা সোর্স কোড না থাকলেও। আপনার বিল্ড স্ক্রিপ্টের বিভিন্ন জায়গায় JDK ব্যবহার নির্দিষ্ট করা আছে। আরও তথ্যের জন্য Android বিল্ডে জাভা সংস্করণ দেখুন। |
আপগ্রেড বিশ্লেষণ
নির্ভরতা আপগ্রেড করা API এবং আচরণের পরিবর্তন, ব্যবহারের জন্য নতুন প্রয়োজনীয়তা, নতুন নিরাপত্তা সমস্যা, এমনকি লাইসেন্স পরিবর্তনের আকারে ঝুঁকির পরিচয় দিতে পারে। উদাহরণস্বরূপ, আপনার কি প্রয়োজন:
- API পরিবর্তনের জন্য কোড পরিবর্তন করবেন?
- নতুন অনুমতি চেক যোগ করুন?
- অতিরিক্ত পরীক্ষা তৈরি করবেন বা আচরণ পরিবর্তনের জন্য বিদ্যমান পরীক্ষাগুলি পরিবর্তন করবেন?
বিবেচনা করুন যে আপনি যে নির্ভরতা আপগ্রেড করেছেন তার নির্ভরতাগুলির সংস্করণগুলি আপগ্রেড করেছে৷ এটি দ্রুত পরিবর্তনের একটি বিশাল সেটে মাকড়সা হতে পারে।
আপনি যদি আপনার আপগ্রেডগুলি স্বয়ংক্রিয় করার জন্য রিনোভেট বা ডিপেন্ডাবট- এর মতো একটি টুল ব্যবহার করেন, তবে সচেতন থাকুন যে তারা আপনার জন্য কোনো বিশ্লেষণ করে না; তারা সর্বশেষ লাইব্রেরি সংস্করণে আপগ্রেড করে। অনুমান করবেন না যে এই ধরনের স্বয়ংক্রিয় আপগ্রেডের পরে সবকিছু সঠিকভাবে কাজ করবে ৷
সফল আপগ্রেডের চাবিকাঠি হল আপগ্রেড বিশ্লেষণ:
- আপনার আপগ্রেডের আগে এবং পরে নির্ভরতার পার্থক্য নির্ধারণ করুন।
- প্রতিটি পরিবর্তন পরীক্ষা করুন এবং জড়িত ঝুঁকি নির্ধারণ করুন।
- ঝুঁকি প্রশমিত করুন, বা পরিবর্তনগুলি গ্রহণ বা প্রত্যাখ্যান করুন।
নির্ভরতা পার্থক্য নির্ধারণ করুন
আপনার আপগ্রেড বিশ্লেষণের প্রথম ধাপ হল আপনার নির্ভরতা কিভাবে পরিবর্তিত হয় তা নির্ধারণ করা। পরিবর্তনগুলি দ্রুত দেখতে সংস্করণ নিয়ন্ত্রণ (ভিসিএস, যেমন গিট) এবং নির্ভরতা গার্ড প্লাগইন-এর সুবিধা নিন। আপনার লক্ষ্য হল আগে এবং পরে একটি স্ন্যাপশট তৈরি করা এবং তাদের তুলনা করা।
সেট আপ করুন এবং আপনার প্রথম বেসলাইন তৈরি করুন
আপনার আপগ্রেড শুরু করার আগে, নিশ্চিত করুন যে আপনার প্রকল্প সফলভাবে তৈরি হয়েছে।
আদর্শভাবে, যতটা সম্ভব সতর্কতাগুলি সমাধান করুন, অথবা আপনি ইতিমধ্যে কোন সতর্কতাগুলি দেখেছেন তা ট্র্যাক করতে বেসলাইন তৈরি করুন৷
- লিন্ট: আপনার বিদ্যমান লিন্ট সতর্কতা পরীক্ষা করুন এবং একটি অ্যান্ড্রয়েড লিন্ট বেসলাইন তৈরি করুন।
- কোটলিন কম্পাইলার:
- সমস্ত সতর্কতাকে ত্রুটি হিসাবে বিবেচনা করতে
-Werror
সক্ষম করুন৷ বিকল্পগুলি কীভাবে সংজ্ঞায়িত করবেন তা দেখুন। - কোটলিন ওয়ার্নিং বেসলাইন বা কোটলিন ওয়ার্নিং বেসলাইন জেনারেটরের মতো প্লাগইনগুলি ব্যবহার করার কথা বিবেচনা করুন৷
- সমস্ত সতর্কতাকে ত্রুটি হিসাবে বিবেচনা করতে
- অন্যান্য টুল: আপনি যদি বেসলাইন ট্র্যাকিং সমর্থন করে এমন অন্যান্য স্ট্যাটিক অ্যানালাইসিস টুল (যেমন Detekt ) ব্যবহার করেন, তাহলে তাদের বেসলাইন সেট আপ করুন।
এই সতর্কতা বেসলাইনগুলি আপনি আপনার নির্ভরতা আপগ্রেড করার সাথে সাথে প্রবর্তিত নতুন সতর্কতাগুলি দেখতে সহজ করে তোলে।
ডিপেনডেন্সি গার্ড সেট আপ এবং চালানোর মাধ্যমে একটি নির্ভরতা বেসলাইন তৈরি করুন। আপনার gradle/libs.versions.toml সংস্করণ ক্যাটালগে, যোগ করুন:
[versions]
dependencyGuard = "0.5.0"
[plugins]
dependency-guard = { id = "com.dropbox.dependency-guard", version.ref = "dependencyGuard" }
এবং আপনার অ্যাপের বিল্ড ফাইলে নিম্নলিখিত যোগ করুন:
কোটলিন
plugins { alias(libs.plugins.dependency.guard) } dependencyGuard { configuration("releaseRuntimeClasspath") }
গ্রোভি
plugins { alias(libs.plugins.dependency.guard) } dependencyGuard { configuration('releaseRuntimeClasspath') }
releaseRuntimeClasspath
কনফিগারেশন একটি সম্ভাব্য লক্ষ্য, কিন্তু আপনি যদি একটি ভিন্ন কনফিগারেশন ব্যবহার করতে চান, তাহলে আপনার বিল্ড ফাইলে সমস্ত উপলব্ধ কনফিগারেশন দেখতে তালিকাভুক্ত কনফিগারেশন ছাড়া ./gradlew dependencyGuard
চালান।
সেটআপের পরে, app/dependencies/releaseRuntimeClasspath.txt
এ একটি প্রতিবেদন তৈরি করতে ./gradlew dependencyGuard
চালান। এটি আপনার বেসলাইন রিপোর্ট. এটি সংরক্ষণ করতে আপনার সংস্করণ নিয়ন্ত্রণ সিস্টেম (ভিসিএস) এর কাছে এটি কমিট করুন৷
মনে রাখবেন ডিপেনডেন্সি গার্ড শুধুমাত্র লাইব্রেরি নির্ভরতার তালিকা ক্যাপচার করে। আপনার বিল্ড ফাইলগুলিতে অন্যান্য নির্ভরতা রয়েছে, যেমন Android SDK এবং JDK সংস্করণ। আপনার নির্ভরতা পরিবর্তনের আগে আপনার VCS-এ প্রতিশ্রুতিবদ্ধ হওয়া আপনার VCS পার্থক্যগুলিকেও সেই পরিবর্তনগুলিকে হাইলাইট করতে দেয়।
আপগ্রেড করুন এবং আপনার বেসলাইনের সাথে তুলনা করুন
একবার আপনার একটি বেসলাইন হয়ে গেলে, আপগ্রেড নির্ভরতা এবং অন্যান্য বিল্ড পরিবর্তনগুলি যা আপনি পরীক্ষা করতে চেয়েছিলেন। এই সময়ে আপনার সোর্স কোড বা রিসোর্স আপগ্রেড করবেন না।
নতুন লিন্ট সতর্কতা বা ত্রুটি দেখতে ./gradlew lint
চালান। যেকোনো গুরুত্বপূর্ণ সমস্যা সমাধান করুন এবং তারপর ./gradlew lint -Dlint.baselines.continue=true
চালিয়ে আপনার সতর্কতা বেসলাইন আপডেট করুন। আপনি যদি সতর্কীকরণ বেসলাইন ক্যাপচার করতে অন্যান্য সরঞ্জাম ব্যবহার করে থাকেন, যেমন Kotlin Warning Baseline বা Kotlin Warnings Baseline Generator , নতুন সতর্কবার্তা সম্বোধন করুন এবং তাদের বেসলাইনগুলিও আপডেট করুন।
আপনার বেসলাইন রিপোর্ট আপডেট করতে ./gradlew dependencyGuard
চালান। তারপর ননলাইব্রেরি পরিবর্তন দেখতে আপনার ভিসিএস ডিফ চালান। এটি আপনার ধারণার চেয়ে অনেক বেশি লাইব্রেরি আপগ্রেড অন্তর্ভুক্ত করার সম্ভাবনা রয়েছে।
ঝুঁকি বিশ্লেষণ করুন
একবার আপনি কী পরিবর্তন হয়েছে তা জানলে, প্রতিটি আপগ্রেড লাইব্রেরির সম্ভাব্য ঝুঁকি বিবেচনা করুন। এটি আপনার পরীক্ষা বা পরিবর্তনের গভীর তদন্তে ফোকাস করতে সাহায্য করে। সামঞ্জস্যপূর্ণ বিশ্লেষণ নিশ্চিত করতে আপনার প্রকল্পের জন্য বিশ্লেষণ করার জন্য ঝুঁকির একটি সেট সংজ্ঞায়িত করুন।
কিছু বিবেচনা:
প্রধান সংস্করণ bumps | প্রধান সংস্করণ নম্বর পরিবর্তন হয়েছে? আপনি যখন এটি দেখতে পান, নিম্নলিখিত বিবেচনার যেকোনো একটির দিকে তাকানোর সময় প্রভাবিত গ্রন্থাগারগুলিতে অতিরিক্ত মনোযোগ দিন। যদি আপনার কোড কোনো পরীক্ষামূলক API ব্যবহার করে (যার জন্য আপনাকে প্রায়শই টীকা বা বিল্ড-ফাইল স্পেসিফিকেশন ব্যবহার করে অপ্ট-ইন করতে হয়), এমনকি ছোটখাটো বা প্যাচ সংস্করণ পরিবর্তন, যেমন 1.2.3 থেকে 1.3.1 বা 1.2.3 থেকে 1.2 পর্যন্ত আপগ্রেড করা। 5, অতিরিক্ত ঝুঁকি উপস্থাপন করতে পারে। |
অস্থির API | কিছু লাইব্রেরি রিলিজে অস্থির API অন্তর্ভুক্ত থাকতে পারে। এগুলি সাধারণত এপিআই যা কাজ চলছে বা অন্য অস্থির API এর উপর নির্ভর করে। সাধারণত আলফা, ডেভ বা পরীক্ষামূলক রিলিজের মতো প্রিভিউতে সীমাবদ্ধ থাকলেও কিছু লাইব্রেরিতে পরীক্ষামূলক বা অস্থির চিহ্নিত API অন্তর্ভুক্ত থাকে। যদি সম্ভব হয়, এই ধরনের API এড়িয়ে চলুন। আপনার যদি সেগুলি ব্যবহার করার প্রয়োজন হয় তবে আপনার ব্যবহার রেকর্ড করতে ভুলবেন না এবং পরবর্তী প্রকাশগুলিতে পরিবর্তন বা অপসারণের জন্য দেখুন৷ |
গতিশীল আচরণ | কিছু লাইব্রেরি বাহ্যিক কারণের উপর ভিত্তি করে ভিন্নভাবে আচরণ করে। উদাহরণস্বরূপ, একটি লাইব্রেরি যা একটি সার্ভারের সাথে যোগাযোগ করে সেই সার্ভারের পরিবর্তনের উপর নির্ভর করে।
|
মেনিফেস্ট মার্জ | অ্যান্ড্রয়েড আর্কাইভস (AARs) হিসাবে প্রকাশিত লাইব্রেরিগুলিতে আপনার অ্যাপ্লিকেশনে একত্রিত সংস্থান এবং ম্যানিফেস্ট থাকতে পারে। এগুলি নতুন অনুমতি এবং Android উপাদানগুলি যোগ করতে পারে, যেমন কার্যকলাপ বা সম্প্রচার রিসিভার, যা পরোক্ষভাবে চলে৷ |
রানটাইম আপডেট | কিছু লাইব্রেরি এমন বৈশিষ্ট্য ব্যবহার করে যা আপনার অ্যাপ্লিকেশনের নিয়ন্ত্রণের বাইরে আপডেট করা যেতে পারে। একটি লাইব্রেরি প্লে পরিষেবা ব্যবহার করতে পারে, যা Android SDK থেকে স্বাধীনভাবে আপগ্রেড করা হয়েছে। অন্যান্য লাইব্রেরিগুলি স্বাধীনভাবে আপডেট করা বহিরাগত অ্যাপ্লিকেশনগুলিতে পরিষেবাগুলির সাথে আবদ্ধ হতে পারে (প্রায়শই AIDL ব্যবহার করে)। |
আপনি কত সংস্করণ এড়িয়ে যাচ্ছেন? | আপনি একটি লাইব্রেরি আপগ্রেড করার জন্য যত বেশি অপেক্ষা করবেন, তত বেশি সম্ভাব্য ঝুঁকি। আপনি যদি একটি সংস্করণ উল্লেখযোগ্যভাবে পরিবর্তন করতে দেখেন, যেমন 1.2.3 থেকে 1.34.5, এই লাইব্রেরিতে অতিরিক্ত মনোযোগ দিন। |
মাইগ্রেশন গাইড | লাইব্রেরিতে মাইগ্রেশন গাইড আছে কিনা তা পরীক্ষা করুন। এটি আপনার ঝুঁকি বিশ্লেষণ এবং প্রশমন পরিকল্পনা উল্লেখযোগ্যভাবে হ্রাস করতে পারে। মনে রাখবেন যে এই ধরনের গাইডের উপস্থিতি একটি ভাল সূচক যে ডেভেলপার সামঞ্জস্যের উপর ফোকাস করেছে এবং আপনার আপগ্রেড প্রশমনকে বিবেচনা করেছে। |
রিলিজ নোট | প্রতিটি পরিবর্তিত লাইব্রেরির জন্য রিলিজ নোট (যদি প্রদান করা হয়) দেখুন। পরিবর্তন পরিবর্তন বা নতুন প্রয়োজনীয়তার ইঙ্গিত দেখুন, যেমন যোগ করা অনুমতি. |
READMEs | একটি লাইব্রেরির জন্য কিছু README ফাইল সম্ভাব্য ঝুঁকি নোট করে, বিশেষ করে যদি লাইব্রেরি রিলিজ নোট প্রদান না করে। _জানা সমস্যাগুলি_ দেখুন, বিশেষ করে পরিচিত নিরাপত্তা উদ্বেগ। |
পরিচিত দুর্বলতা পরীক্ষা করুন | প্লে SDK সূচক অনেক জনপ্রিয় SDK-এর দুর্বলতাগুলিকে ট্র্যাক করে৷ Play Console রিপোর্ট করে যে আপনি পরিচিত দুর্বলতা সহ তালিকাভুক্ত SDKগুলির মধ্যে একটি ব্যবহার করছেন কিনা। অ্যান্ড্রয়েড স্টুডিওতে বিল্ড ফাইল সম্পাদনা করার সময়, IDE SDK সূচী পরীক্ষা করে এবং দুর্বল লাইব্রেরি সংস্করণগুলির ব্যবহার পতাকাঙ্কিত করে। ন্যাশনাল ইনস্টিটিউট অফ স্ট্যান্ডার্ডস অ্যান্ড টেকনোলজি (এনআইএসটি) একটি বড় ন্যাশনাল ভালনারেবিলিটি ডেটাবেস (এনভিডি) বজায় রাখে। নির্ভরতা চেক গ্রেডল প্লাগইন এনভিডির বিরুদ্ধে আপনার ব্যবহৃত নির্ভরতা পরীক্ষা করে। নির্ভরতা চেক ব্যবহার করতে, একটি NVD API কী অনুরোধ করুন , Gradle প্লাগইন সেট আপ করুন এবং |
সংস্করণ দ্বন্দ্ব | সংস্করণগুলি কি আশানুরূপ সমাধান করছে? দ্বন্দ্ব, বিশেষ করে প্রধান সংস্করণ পার্থক্য দেখুন। আপনি কীভাবে বিরোধগুলি দেখতে পারেন তার বিশদ বিবরণের জন্য গ্রেডল নির্ভরতা রেজোলিউশন দেখুন। বিশেষ করে, ./gradlew অ্যাপে যখন সম্ভব, নির্ভরশীলতার লেখকদের সাথে তাদের নির্ভরতা নিরসনের জন্য কাজ করুন। যদি আপনার কোম্পানি অনুমতি দেয়, লাইব্রেরির সামঞ্জস্যতা উন্নত করতে সাহায্য করার জন্য লাইব্রেরিতে (আপস্ট্রিমিং) পরিবর্তন করুন। |
লাইসেন্স চেক করুন | একটি লাইব্রেরি আপগ্রেড করার সময় লাইসেন্সগুলিতে পরিবর্তনগুলি দেখুন৷ লাইব্রেরি নিজেই একটি লাইসেন্সে পরিবর্তিত হতে পারে যা আপনার অ্যাপ্লিকেশন বা লাইব্রেরির সাথে আর সামঞ্জস্যপূর্ণ নয়৷ নতুন ট্রানজিটিভ নির্ভরতাও বেমানান লাইসেন্স প্রবর্তন করতে পারে। আপনার নির্ভরতা জুড়ে লাইসেন্সের বর্তমান সেট চেক করার বিশদ বিবরণের জন্য লাইসেন্স যাচাই করুন দেখুন। |
রক্ষণাবেক্ষণ এবং | পাবলিক রিপোজিটরি সহ লাইব্রেরির জন্য:
|
খোলা বনাম বন্ধ উৎস | যদি একটি লাইব্রেরি ওপেন সোর্স হয়, তাহলে ক্লোজড সোর্সের চেয়ে সমস্যাগুলি ডিবাগ করা সহজ হবে, সমস্যাগুলি আপনার কোড বা লাইব্রেরি কোডে থাকুক না কেন৷ ক্লোজড সোর্স নির্ভরতা কমিয়ে দিন এবং তাদের মূল্যায়নের সময় অতিরিক্ত স্ক্রুটিনি প্রয়োগ করুন। আপনার ব্যবহারের ক্ষেত্রে উপযুক্ত যে ভাল বিকল্প আছে? ক্লোজড সোর্স লাইব্রেরিগুলির জন্য কোন পরিষেবা-স্তরের চুক্তিগুলি উপলব্ধ? আপনি যদি একটি বন্ধ উৎস নির্ভরতা ব্যবহার করতে চান, তাহলে ঝুঁকি সীমিত করতে সাহায্য করার জন্য অতিরিক্ত পরীক্ষার কেস লিখতে প্রস্তুত থাকুন। |
একটি বিল্ড চালান
আপনার প্রকল্প তৈরি করুন. নতুন ত্রুটি বা সতর্কতা জন্য দেখুন. যদি আপনি সনাক্ত করতে পারেন যে কোন লাইব্রেরিটি তাদের ঘটাচ্ছে, মনে রাখবেন যে লাইব্রেরি আপগ্রেড করার ঝুঁকি হিসাবে।
আপনি যদি কোনো নতুন অবচয় সতর্কতা দেখতে পান, সেগুলিকে লাইব্রেরির জন্য নির্দিষ্ট ঝুঁকি হিসেবে যোগ করুন। এগুলি পরবর্তী রিলিজে সরানো যেতে পারে। আপনি যদি সেই লাইব্রেরিটি ব্যবহার চালিয়ে যেতে চান, তাহলে অবহেলিত API ব্যবহার করা থেকে তাদের প্রতিস্থাপনে রূপান্তর করার জন্য সময় দিন, অথবা সেই ফাংশনগুলির উপর নজর রাখতে এবং সেগুলি পরে সরানো হয়েছে কিনা তা নোট করুন।
API সমস্যা সনাক্ত করতে লিন্ট ব্যবহার করুন
অ্যান্ড্রয়েড লিন্ট আপনার অ্যাপ্লিকেশানে অনেকগুলি সমস্যা ধরতে পারে, যার মধ্যে কিছু যা নির্ভরতা বা Android SDK পরিবর্তনের সংস্করণের ফলাফল। উদাহরণস্বরূপ, আপনি যদি আপনার compileSdk
আপগ্রেড করেন এবং এর নতুন API ব্যবহার করেন, তাহলে লিন্ট রিপোর্ট করে যেগুলি পূর্বের SDK সংস্করণগুলিতে উপলব্ধ নয়৷
লিন্ট অ্যান্ড্রয়েড স্টুডিও এডিটরে চলে, আপনি পরিবর্তন করার সাথে সাথে সমস্যার রিপোর্ট করা হয়। কিন্তু এটি সাধারণত স্টুডিওতে আপনার বিল্ডের অংশ হিসাবে বা আপনি যখন build
বা lint
টার্গেট ব্যবহার না করেন তবে আপনি কমান্ড-লাইন বিল্ড চালানোর সময় চালানো হয় না।
আপনি যদি কন্টিনিউয়াস ইন্টিগ্রেশন (CI) ব্যবহার করেন, তাহলে এই ধরনের ত্রুটি ধরার জন্য আপনার CI বিল্ডের সময় (বা অন্তত আপনার রাতের বিল্ডে) gradlew build
বা gradlew lint
চালান।
আপনি যদি CI ব্যবহার না করেন, অন্তত মাঝে মাঝে gradlew lint
চালাতে ভুলবেন না।
লিন্ট ত্রুটি এবং সতর্কতা বিশেষ মনোযোগ দিন। কিছু লাইব্রেরি তাদের নিজস্ব লিন্ট চেক দিয়ে পাঠানো হয়, তাদের API এর সঠিক ব্যবহার নিশ্চিত করতে সহায়তা করে। একটি লাইব্রেরির কিছু নতুন সংস্করণে নতুন লিন্ট সতর্কতা এবং ত্রুটি অন্তর্ভুক্ত থাকে, যার ফলে আপনি যখন তৈরি করেন তখন নতুন রিপোর্ট আসে।
ঝুঁকি প্রশমিত করুন
আপগ্রেড ঝুঁকি নির্ধারণ করার পরে, আপনি কীভাবে সেগুলি হ্রাস করতে চান তা নির্ধারণ করুন:
- কিছু ঝুঁকি যেমন আছে গ্রহণ করুন। কিছু ঝুঁকি গ্রহণযোগ্য হওয়ার জন্য যথেষ্ট কম, বিশেষ করে যখন আপগ্রেডের সময় এবং সংস্থান সীমিত।
- কিছু ঝুঁকি সরাসরি প্রত্যাখ্যান করুন। কিছু আপগ্রেড খুব ঝুঁকিপূর্ণ মনে হতে পারে, বিশেষ করে যদি এই মুহুর্তে তাদের প্রশমিত করার জন্য আপনার কাছে সীমিত সময় বা সংস্থান থাকে। আপনার যদি ট্রাইজ করার প্রয়োজন হয়, আপগ্রেডের উপর ফোকাস করুন যা আপনার সম্মুখীন হওয়া বাগের জন্য প্রয়োজনীয় বা আপনার প্রয়োজনীয় নতুন বৈশিষ্ট্যগুলির জন্য প্রয়োজনীয়।
- অবশিষ্ট ঝুঁকি প্রশমিত করুন
- আপনার আপগ্রেডগুলিকে ছোট, স্বতন্ত্র পরিবর্তনের সেটগুলিতে ব্যাচ করার কথা বিবেচনা করুন। এটি সামগ্রিক ঝুঁকি হ্রাস করে এবং আংশিক রোলব্যাকের অনুমতি দেয়।
- বিস্তারিত পরিবর্তন তদন্ত.
- অপ্রত্যাশিত পরিবর্তনগুলি পরীক্ষা করতে আপনার অ্যাপ পরীক্ষা করুন । আপগ্রেডে আত্মবিশ্বাস তৈরি করতে যেখানে প্রয়োজন সেখানে নতুন পরীক্ষা যোগ করুন।
- সন্দেহজনক কিছু পাওয়া গেলে উত্সটি দেখুন (যদি পাওয়া যায়)।
- আপনার উৎস বা বিল্ড প্রয়োজনীয় পরিবর্তন করুন.
আপনার সিদ্ধান্তগুলি নথিভুক্ত করুন। আপনার অ্যাপ্লিকেশন চালানোর সময় যদি আপগ্রেডের ঝুঁকিগুলি সমস্যা হয়ে দাঁড়ায়, আপনার ঝুঁকি বিশ্লেষণের ডকুমেন্টেশন প্রয়োজনীয় ত্রুটি বিশ্লেষণ কমাতে পারে।
লাইসেন্স যাচাই করুন
লাইব্রেরি ডেভেলপাররা আপনার ব্যবহারের জন্য লাইব্রেরি লাইসেন্স করে। আপনাকে লাইসেন্সের শর্তাবলী মেনে চলতে হবে অথবা আপনি লাইব্রেরি ব্যবহার করতে পারবেন না। কিছু লাইসেন্স খুবই অনুমোদনযোগ্য, প্রায়শই শুধুমাত্র লাইব্রেরির অ্যাট্রিবিউশনের প্রয়োজন হয় এবং শেষ ব্যবহারকারীদের কাছে এর লাইসেন্সের টেক্সট সার্ফেস করা হয়। কিছু ভাইরাল বলে মনে করা হয়; আপনি যদি সেই লাইব্রেরিগুলি ব্যবহার করেন, তাহলে আপনাকে অবশ্যই আপনার অ্যাপ্লিকেশন বা লাইব্রেরিতে একই লাইসেন্স প্রয়োগ করতে হবে।
লাইসেন্স যেকোনো রিলিজের সাথে পরিবর্তন হতে পারে। আপনি যখনই আপগ্রেড করবেন, আপনার যাচাই করা উচিত যে আপনি যে নির্ভরতাগুলি ব্যবহার করছেন তা আপনার অ্যাপ্লিকেশন বা লাইব্রেরির সাথে একটি সামঞ্জস্যপূর্ণ উপায়ে লাইসেন্সকৃত৷
যদি একটি লাইসেন্স সামঞ্জস্যপূর্ণ না হয় (বা আর সামঞ্জস্যপূর্ণ না হওয়ার জন্য পরিবর্তিত হয়েছে), আপনি লাইব্রেরির সেই সংস্করণটি ব্যবহার করতে পারবেন না। আপনি করতে পারেন:
- লাইব্রেরির মালিকের সাথে যোগাযোগ করুন এবং পুরানো লাইসেন্সের অনুমতি দেওয়ার জন্য বিদ্যমান লাইসেন্স বা দ্বৈত লাইসেন্সিং অব্যাহত রাখার অনুরোধ করুন।
- আপনি আপনার লাইসেন্স পরিবর্তন করতে পারবেন কিনা তা নির্ধারণ করতে আপনার আইনি দলের সাথে কাজ করুন।
- একটি সামঞ্জস্যপূর্ণ লাইসেন্স সহ অন্য লাইব্রেরি খুঁজুন এবং প্রয়োজন অনুযায়ী আপনার আবেদন সংশোধন করুন।
- লাইব্রেরির শেষ সামঞ্জস্যপূর্ণ সংস্করণটি ফোর্ক করুন (যদি সেই লাইসেন্সটি ডেরিভেটিভকে অনুমতি দেয় এবং পরিবর্তনগুলি পূর্ববর্তী না হয়) এবং আপনার নিজের পরিবর্তনগুলি করুন৷