একটি পণ্যের সংস্করণ, যেমন v1.0.0.100
, কেবল সফ্টওয়্যারটির অনন্য উত্পাদন প্রকাশের প্রতিনিধিত্ব করে না, তবে উল্লিখিত পণ্যের জন্য বৈশিষ্ট্য সেট এবং হটফিক্স পর্যায়ে সনাক্ত করতে সহায়তা করে। এখনই আমি কোনও পণ্যের চূড়ান্ত প্যাকেজ / বিল্ড / বাইনারি সংস্করণ বজায় রাখার দুটি উপায় দেখছি:
ভর্সন নিয্ন্ত্র্ন. একটি ফাইল কোথাও সংস্করণ নম্বর সঞ্চয় করে। অবিচ্ছিন্ন ইন্টিগ্রেশন (সিআই) বিল্ড সার্ভারে একটি সফ্টওয়্যার তৈরি করার জন্য একটি স্ক্রিপ্ট থাকবে যা প্রয়োজনীয় সফ্টওয়্যারটির সমস্ত ক্ষেত্রে (বাইনারি, ইনস্টলার প্যাকেজ, সহায়তা পৃষ্ঠা, ডকুমেন্টেশন ইত্যাদি) প্রয়োগ করতে এই চেক-ইন সংস্করণ নম্বরটি ব্যবহার করে।
পরিবেশ এবং / অথবা পরামিতিগুলি তৈরি করুন। এগুলি সংস্করণ নিয়ন্ত্রণের বাইরে রক্ষণাবেক্ষণ করা হয় (যেমন এগুলি স্ন্যাপশট / ট্যাগ / শাখায় আবদ্ধ নয়)। বিল্ড স্ক্রিপ্টগুলি সংখ্যাটি একইভাবে বিতরণ করে এবং ব্যবহার করে, তবে তারা কেবল আলাদাভাবে মান অর্জন করে (এটি বিল্ড স্ক্রিপ্টকে সরবরাহ করা হয়, স্ক্রিপ্টটি এটির পরিবর্তে উত্স গাছের সাথে সম্পর্কিত কোথায় পাওয়া যায় তা জেনে থাকে)।
প্রথম পদ্ধতির সমস্যাটি হ'ল এটি মূললাইন শাখাগুলি জুড়ে মার্জকে জটিল করে তুলতে পারে। আপনি যদি এখনও একই সফ্টওয়্যারটির 2 সমান্তরাল রিলিজ বজায় রাখেন তবে শেষ সংশ্লেষের পর থেকে সংস্করণ উভয়টিতে পরিবর্তিত হয়ে থাকলে দুটি মূললাইনটির মধ্যে মার্জ করার সময় আপনি দ্বন্দ্বগুলি সমাধান করবেন।
দ্বিতীয় পদ্ধতির সাথে সমস্যা হ'ল পুনর্মিলন। আপনি যখন 1 বছর আগে কোনও রিলিজে ফিরে যান, আপনি তার প্রকাশের নম্বরটি সনাক্ত করতে শুধুমাত্র ট্যাগের তথ্যের উপর নির্ভর করবেন।
উভয় ক্ষেত্রেই সংস্করণ সংখ্যার কিছু দিক থাকতে পারে যা সিআই বিল্ডের আগে জানা ছিল না। উদাহরণস্বরূপ, একটি সিআই বিল্ড প্রোগ্রামগতভাবে একটি চতুর্থ অংশে রাখতে পারে যা সত্যই স্বয়ংক্রিয় বিল্ড নম্বর (যেমন শাখায় 140 তম বিল্ড)। এটি ভিসিএসে একটি সংশোধন নম্বরও হতে পারে।
সফ্টওয়্যারটির সংস্করণ নম্বরটি রাখার সর্বোত্তম উপায় কী? "পরিচিত" অংশগুলি কি সর্বদা ভিসিএসে বজায় রাখা উচিত? এবং যদি তাই হয় তবে মূল লাইন শাখাগুলি দ্বন্দ্বগুলি কি একটি সমস্যা?
এই মুহুর্তে আমরা সিআই বিল্ড প্ল্যানে (আটলশিয়ান বাঁশ) নির্দিষ্ট ও রক্ষণাবেক্ষণের মাধ্যমে আমাদের সংস্করণ নম্বরটি বজায় রাখি। আমাদের master
শাখায় মার্জ করার আগে আমাদের সতর্কতা অবলম্বন করতে হবে যে সিআই বিল্ড কিকিং অফের আগে সংস্করণ নম্বরগুলি সঠিকভাবে সেটআপ হয় । গিটফ্লো ওয়ার্কফ্লো প্রসঙ্গে, আমি অনুভব করি যে সংস্করণ নম্বরটি যদি উত্স নিয়ন্ত্রণে ট্র্যাক করা হয়, আমরা যখন release
মুক্তির প্রস্তুতির জন্য আমাদের শাখা তৈরি করি তখন আমরা এটি সঠিকভাবে সেটআপ হওয়ার গ্যারান্টি দিতে পারি । কিউএ এই শাখায় এবং সাইনঅফের উপর চূড়ান্ত সংহতকরণ / ধোঁয়া / রিগ্রেশন টেস্টিং সম্পাদন করবে, যা সংমিশ্রণ হবে master
যা মুক্তির প্রতিশ্রুতি দেয়।
version.txt
সংস্করণে একক লাইন থাকে1.0.7
এবং অন্যটি1.2.0
সমাধান করা সত্যিই কঠিন? যদি দুটি শাখা পৃথক পৃথক হয়ে যায় তবে এই একমাত্র বিরোধ যদি আমি নিজেকে খুব ভাগ্যবান মনে করি। এটি কত ঘন ঘন ঘটে? যদি এটি ঘটে থাকে, তবে এটি কি ভাল জিনিস নয় যে আপনি একত্রিত সংস্করণটির কোন সংস্করণ নম্বরটি থাকা উচিত তা সম্পর্কে ভাবতে বাধ্য হন ? ("সংস্করণ" শব্দের অস্পষ্ট ব্যবহারের জন্য দুঃখিত।)