জটিল এন্টারপ্রাইজ প্ল্যাটফর্ম স্তর নির্ভরতা পরিচালনার এবং রিলিজ সংস্করণ সহ আমার অভিজ্ঞতার উপর ভিত্তি করে আমি সেমি-সিমেটিক সংস্করণকে কল করতে চাই এমন একটি পদ্ধতির প্রস্তাব দিতে এসেছি ।
মূলত এটি সেন্টিমেন্টিক ভার্সন ২.০ বন্ধ করে দেয় তবে এটি তেমন কঠোর নয়।
আধা-শব্দার্থক সংস্করণ বিভাগগুলি:
<primary.release.segment>[-<pre.release.segment>][+<post.release.segment>]
প্রাথমিক প্রকাশের বিভাগের ফর্ম্যাট:
MARKETTING.MAJOR.MINOR.PATCH
প্রতিটি বিভাগে বর্ণমালার অনুমতি দেওয়া উচিত, তবে লজিকাল ইনক্রিমেন্টাল পরিবর্তনের জন্য খাঁটি সংখ্যাসূচকদের সুপারিশ করা হয়।
সেমভাইয়ারের মতো, আমি বিপরীত সামঞ্জস্যতা স্তরগুলি উপস্থাপন করার জন্য মেজর, মাইনর এবং প্যাচ উপাদানগুলির প্রস্তাব দিই, তবে আমি একটি বিপণন উপাদান প্রিপেন্ডিংয়েরও পরামর্শ দিই । এটি পণ্য মালিকদের বৈশিষ্ট্য, মহাকাব্য / গোষ্ঠীগুলি এবং ব্যবসায়িক উদ্বেগগুলিকে প্রযুক্তিগত সামঞ্জস্যতা উদ্বেগের তুলনায় পৃথক প্রাথমিক উপাদানটিকে ঘাড়ে ফেলার অনুমতি দেয়।
অন্যান্য উত্তরের মতো, আমি প্রাথমিক বিভাগে বিল্ড নম্বর যুক্ত করার প্রস্তাব দিই না। পরিবর্তে, একটি '+' অনুসরণ করে একটি পোস্ট-রিলিজ সেগমেন্ট যুক্ত করুন (উদা: 1.1.0.0 + build.42)। সেমভাইয়ার এই বিল্ডটি মেটাডেটা বলে, কিন্তু আমি মনে করি পোস্ট-রিলিজ বিভাগটি আরও পরিষ্কার। এই বিভাগটি প্রাথমিক প্রকাশের বিভাগে সামঞ্জস্যতার তথ্যের সাথে সম্পর্কিত নয় বলে প্রত্যয় তথ্য ঘোষণার জন্য দুর্দান্ত। আপনার অবিচ্ছিন্ন ইন্টিগ্রেশন বিল্ডগুলি তারপরে প্রতিটি প্রাথমিক রিলিজের পরে পুনরায় সেট হওয়া বর্ধিত বিল্ড সংখ্যার সাথে যুক্ত পূর্ববর্তী রিলিজ নম্বর দেওয়া যেতে পারে (উদা: 1.1.0.0 -> 1.1.0.0 + build.1 -> 1.1.0.0 + build.2 -> 1.1.0.1)। কিছু লোক পর্যায়ক্রমে কোড সংগ্রহস্থলের সাথে টাই করা সহজ করার জন্য এখানে এসএনএন পুনর্বিবেচনা নম্বর বা গিট কমিট শে রাখতে চান। আর একটি বিকল্প হটফিক্স এবং প্যাচগুলির জন্য প্রকাশের পরে বিভাগটি ব্যবহার করা উচিত, এটির জন্য এটি একটি নতুন প্রাথমিক রিলিজ উপাদান যুক্ত করা বিবেচনা করা উপযুক্ত। প্যাচ উপাদানটি বর্ধিত হলে এটি সর্বদা বাদ দিতে পারে, কারণ সংস্করণগুলি কার্যকরভাবে বাম-প্রান্তিককরণ এবং সাজানো থাকে।
মুক্তি ও পোস্ট-মুক্তির অংশ ছাড়াও, মানুষ প্রায়ই একটি ব্যবহার করতে চান প্রাক রিলিজ সেগমেন্ট alphas, বিটাগুলির ও মুক্তি প্রার্থীদের মত প্রায়-স্থিতিশীল প্রাক রিলিজ ইঙ্গিত। এটির জন্য SemVer পদ্ধতিরটি ভালভাবে কাজ করে তবে আমি আলফা-সংখ্যাগত শ্রেণিবদ্ধীদের (উদাহরণস্বরূপ: ১.২.০.০ + আলফা ২.২ বা 1.2.০.০ + আরসি .২) থেকে সংখ্যার উপাদানগুলি পৃথক করার প্রস্তাব দিই। সাধারণত আপনি রিলিজ-পরবর্তী বিভাগটি যুক্ত করার সাথে সাথে রিলিজ বিভাগটিকে টুকরো টুকরো টুকরো টানবেন এবং তারপরে প্রি-রিলিজ সেগমেন্টটি ফেলে রাখবেন যখন আপনি পরেরগুলি তাদের প্রাথমিক রিলিজ বিভাগটিকে টুকরো টুকরো টুকরো টুকরো টুকরো টুকরো টুকরো টুকরো টুকরো টুকরো টুকরো টুকরো টুকরো করে ছাড়ুন (প্রাক্তন: 1.0.1.2 -> 1.2.0.0-আরসি .১ - > ১.২.০.০)। রিলিজ সংস্করণটি প্রকাশিত হওয়ার পূর্বে প্রকাশিত বিভাগগুলি যুক্ত হয়ে যায়, সাধারণত আরও গভীরতার পরীক্ষা ও ভাগ করে নেওয়ার জন্য বৈশিষ্ট্যগুলির একটি নির্দিষ্ট সেট সাধারণত আরও কমিটের উপর ভিত্তি করে মিনিট থেকে মিনিটে পরিবর্তন হয় না।
এই সমস্ত কিছুই শব্দার্থবিজ্ঞানের সাথে এমনভাবে সংজ্ঞায়িত করা হয়েছে যা প্রায় সমস্ত ব্যবহারের ক্ষেত্রে coversেকে রাখে তা হ'ল আপনি এগুলিকে পার্স, সাজান, তুলনা এবং একটি স্ট্যান্ডার্ড উপায়ে বৃদ্ধি করতে পারেন। এটি বিশেষত গুরুত্বপূর্ণ যখন সিআই সিস্টেমগুলি জটিল অ্যাপ্লিকেশনগুলির জন্য প্রচুর ছোট স্বতন্ত্রভাবে সংস্করণযুক্ত উপাদানগুলি (মাইক্রো-পরিষেবাগুলির মতো) প্রতিটি তাদের নিজস্ব পরিচালিত নির্ভরতা সহ ব্যবহার করে।
আপনি যদি আগ্রহী হন তবে আমি রুবিতে একটি অর্ধ-শব্দার্থক পার্সার লিখেছি । আমার কেবল এই প্যাটার্নটি ব্যবহার করার প্রয়োজন ছিল না তবে এটি ব্যবহার করা অন্যান্য অ্যাপ্লিকেশন পরিচালনা করতে সক্ষম হব।