আপনি কোন "সংস্করণ নামকরণ কনভেনশন" ব্যবহার করেন? [বন্ধ]


107

বিভিন্ন সংস্করণ নামকরণ কনভেনশন বিভিন্ন প্রকল্পের জন্য উপযুক্ত? আপনি কি ব্যবহার করবেন এবং কেন?

ব্যক্তিগতভাবে, আমি হেক্সাডেসিমাল (যেমন 11 বিবিসিএফ) এ একটি বিল্ড নম্বর পছন্দ করি, এটি খুব নিয়মিত বৃদ্ধি করা উচিত। এবং তারপরে গ্রাহকদের জন্য একটি সহজ 3 ডিজিটের সংস্করণ নম্বর, অর্থাৎ 1.1.3।

1.2.3 (11BCF) <- Build number, should correspond with a revision in source control
^ ^ ^
| | |
| | +--- Minor bugs, spelling mistakes, etc.
| +----- Minor features, major bug fixes, etc.
+------- Major version, UX changes, file format changes, etc.

উত্তর:


45

আমি নিজেকে খুব কমই জেফ অ্যাটউডের সাথে সম্পূর্ণ একমত হতে দেখি, তবে সংস্করণ সংখ্যার জন্য নেট নেট কনভেনশন সম্পর্কে আমি তার মতামত অনুসরণ করি ।

(প্রধান সংস্করণ)। (গৌণ সংস্করণ)। (সংশোধন নম্বর)। (বিল্ড নম্বর)

প্রায়শই না করা, ব্যক্তিগত প্রকল্পগুলির জন্য, আমি এটি ওভারকিল বলে মনে করি। আমি সি # তে অনুসন্ধান ইঞ্জিনের মতো উল্লেখযোগ্য প্রকল্পগুলিতে যেখানে কয়েকবার কাজ করেছি আমি এই সম্মেলনে আটকে গিয়েছি এবং কার্যকরভাবে এটি অভ্যন্তরীণ ট্র্যাকার হিসাবে ব্যবহার করতে সক্ষম হয়েছি।


1
এটি বড় বা ছোট অনেক প্রকল্পে সফলভাবে ব্যবহার করেছি এমন প্যাটার্নটি অনুসরণ করে। এটা খুব কার্যকর।
luis.espinal

1
"চেঞ্জসেট আইডেন্টিফায়ার (হ্যাশ)" এর সাথে "বিল্ড নম্বর" কীভাবে সম্পর্কযুক্ত? এটি হ্যাশ, বর্ধনশীল, বা অন্য কিছু অংশ?
জেস ব্রাউনিং

@ জেস, আমি যেখানে কাজ করি সেখানে আমরা মার্চুরিয়াল ব্যবহার করি এবং চেঞ্জসেট নম্বরটি বন্ধ করি। আমরা কেবলমাত্র কোনও একক সংগ্রহস্থল থেকে / টানতে চাপি, তাই নির্দিষ্ট চেকআউটটির জন্য সংখ্যাটি অনন্য নয়। আমাদের তখন [মেজর]। [অপ্রাপ্তবয়স্ক]। [পরিবর্তনশীল] তদনুসারে (যদিও বড় এবং সংখ্যালঘু সংখ্যা প্রায়শই শেষ সংস্করণ থেকে অগ্রগতির সূচকের চেয়ে বেশি বিপণন হয়)।
ওয়াই হা লি

আপনি যদি .NET সংস্করণ কাঠামোতে ToString () কল করেন তবে বিল্ডটি তৃতীয় নম্বর হবে, সংশোধন নয়। আপনি এই পাওয়ারশেল স্ক্রিপ্টের সাথে দেখতে পাবেন:$version = New-Object System.Version 1, 2, 3, 4; $version.ToString(); $version.Build;
জোয়েল ম্যাকবেথ

"বিল্ড নাম্বার" কি বোঝায় যে এটি বাগ ফিক্সের মতো সামান্য টুইটগুলি রয়েছে? কোনও নতুন কার্যকারিতা কমপক্ষে তার নিজস্ব সংশোধন নম্বর পাওয়া উচিত?
কাইল ডেলাানি

90

সিমেন্টিক ভার্সনিং ( http://semver.org/ ) এখানে একটি উল্লেখের দাবিদার। এটি রূপান্তরকরণ স্কিমের আকারে সর্বজনীন স্পেসিফিকেশন [Major].[Minor].[Patch]। এই স্কিমটির অনুপ্রেরণা হ'ল সংস্করণ সংখ্যার সাথে অর্থ যোগাযোগ করা।


আশ্চর্যজনকভাবে এটি আরও ভালবাসা পাচ্ছে না।
মার্ক ক্যানলাস

আমি পার্টিতে কিছুটা দেরি করেছিলাম ... মূল প্রশ্নের 9 মাস পরে আমি এই উত্তরটি যুক্ত করেছি। ;-)
এম ডুডলি

দেখে মনে হচ্ছে এটি নীচে উল্লিখিত রুবিগেমস র্যাশনাল ভার্সন নীতিমালার মতোই কাজ করবে, কেবলমাত্র আরও ভালভাবে আনুষ্ঠানিক।
কেন ব্লুম

@ মার্কক্যানলাস আরও ভালবাসা পাবে না কারণ এটি একটি বড় / গৌণ / প্যাচ রিলিজ যা নির্দিষ্ট ধারণাগুলিকে সংযুক্ত করে। এটি এপিআইগুলির কথা বলে যা দয়ালু ... অদ্ভুত
রুডলফ ওলা

5
সেমওয়ারটি ব্যবহারকারীদের মুখোমুখি সফ্টওয়্যার নয়, এপিআই সংস্করণ করার জন্য বোঝানো হয়েছে: "সিমেন্টিক ভার্সন ব্যবহার করে সফটওয়্যারটি একটি পাবলিক এপিআই ঘোষণা করতে হবে" " প্রযুক্তিগতভাবে, আপনি কোনও পাবলিক এপিআই ছাড়া সেমওয়ার ব্যবহার করতে পারবেন না। তবে ব্যবহারকারী-মুখোমুখি অ্যাপ্লিকেশনগুলিকে সংস্করণ করার জন্য সেমওয়ারের অনুরূপ কিছু গ্রহণ করা বুদ্ধিমান হতে পারে।
আজেদী 32

33

আমি এটি ব্যবহার করি না তবে আমি দেখেছি এবং এটি একটি আকর্ষণীয় কাঠামো:

Year.Month.Day.Build

স্ব ব্যাখ্যা।


4
এবং আপনি সর্বদা জানেন যে আপনার কোডটি কতটা তাজা ..! :)
লিপিস

3
এটি উবুন্টুর সংস্করণ সংখ্যার সাথেও সমান। তারা Year.month উদাহরণগুলি করে: 10.04 এবং 10.10
ব্র্যাড

5
এটি উল্লেখ করার মতো যে এটি কেবলমাত্র এমন সিস্টেমের জন্যই ভাল কাজ করে যা হয় হয় যার সাথে সামঞ্জস্যতা সংক্রান্ত সমস্যা (একটি ওয়েবসাইট) থাকে না বা সহজাতভাবে সর্বদা অসম্পূর্ণতা থাকে (একটি উবুন্টু রিলিজ)।
জেকেরিয়ান

1
@ জাকারিয়ান, এর জন্য সামঞ্জস্যতা কেন গুরুত্বপূর্ণ?
এভিডি

12
@ অ্যাভিডি: আপনি কেন এটি জিজ্ঞাসা করছেন তা সম্পর্কে আমি কিছুটা বিভ্রান্ত, কারণ এই প্রশ্নের প্রায় প্রতিটি উত্তরই এমন সংস্করণ সিস্টেমগুলি দেখায় যা সামঞ্জস্যতার তথ্য অন্তর্ভুক্ত করে। আপনার পছন্দটি নির্ভর করে আপনি কোন সংস্করণ নম্বর দিয়ে রেকর্ড করতে চান তার উপর। আমার উদ্দেশ্যে, একটি তারিখের মূলত কোনও অর্থ হয় না (কেবল ভি 1 থেকে শুরু করে প্রতিটি বিল্ডকে বাড়ানো একটি উন্নতি হবে)। আপনি কি কখনও শাখা করেন? "নতুন সংস্করণ" প্রকাশের সময় আপনি কি "পুরানো কোডে নতুন প্যাচ" প্রকাশ করেন? তবে ওয়েবসাইট বা অপারেটিং সিস্টেমের মতো কোনও কিছুর জন্য একটি তারিখ-ভিত্তিক সিস্টেমটি বেশ উপযুক্ত বলে মনে হয়।
জাকারিয়ান

13

আমি রুবিগেমস যুক্তিযুক্ত সংস্করণ নীতিটি ব্যবহার করার চেষ্টা করি যা:

  • বাইনারি সামঞ্জস্যতা নষ্ট হয়ে গেলে মেজর সংস্করণ নম্বরটি বাড়ানো হয়
  • নতুন কার্যকারিতা যুক্ত করা হলে গৌণ সংস্করণ নম্বরটি বাড়ানো হয়
  • বাগ সংশোধন করার জন্য বিল্ড নম্বর পরিবর্তন করে।

2
এটি মূলত সিমেটিক সংস্করণ
প্যাট্রিস এম

2
@PatriceM। যে লিঙ্ক ভাগ করার জন্য ধন্যবাদ। আমি যখন উত্তরটি লিখেছিলাম তখন semver.org এর অস্তিত্ব ছিল না।
কেন ব্লুম

10

সংস্করণ সংখ্যায়নের জন্য এখানে খুব সূক্ষ্ম পদ্ধতি রয়েছে:

  • N.x.K, কোথায় Nএবং Kপূর্ণসংখ্যা হয়। উদাহরণ: 1.x.0, 5.x.1, 10.x.33মধ্যবর্তী বিল্ড জন্য ব্যবহৃত ।
  • N.M.K, কোথায় N, Mএবং Kপূর্ণসংখ্যা হয়। উদাহরণ: 1.0.0, 5.3.1, 10.22.33রিলিজ জন্য ব্যবহৃত হয় ।
  • N.x.x, যেখানে Nপূর্ণসংখ্যা হয়। উদাহরণ: 1.x.xসমর্থন শাখার জন্য ব্যবহৃত হয় ।
  • N.M.x, কোথায় Nএবং Mপূর্ণসংখ্যা হয়। উদাহরণ: 1.0.xরিলিজ শাখার জন্য ব্যবহৃত হয় ।

সংস্করণ সংখ্যায়ন পদ্ধতির সহজ চিত্রের জন্য এখানে চিত্র:

চতুর সংস্করণ নম্বর

PAমানে প্রাক-আলফা A মানে আলফা B মানে বিটা AR মানে আলফা-মুক্তি BR মানে বিটা রিলিজ RC মানে মুক্তি প্রার্থী ST মানে স্থিতিশীল

এই জাতীয় সংস্করণ সংখ্যা পদ্ধতির সুবিধা নিম্নলিখিত:

  • এটি চতুর সফ্টওয়্যার ডেভলপমেন্ট লাইফসাইকের সুনির্দিষ্ট প্রতিনিধিত্ব করে ।
  • এটি উত্স কোড সংগ্রহস্থল কাঠামোর অ্যাকাউন্টে সুনির্দিষ্ট বিবেচনা করে ।
  • যাঁরা নিদর্শনগুলিতে অভ্যস্ত হয়েছিলেন তাদের পক্ষে এটি স্বয়ং ব্যাখ্যা করা । প্রতিটি প্যাটার্ন বিভিন্ন শিল্পকলা প্রতিনিধিত্ব করে। এ জাতীয় নিদর্শনগুলি সহজেই পার্স করা যায় এবং অন্যান্য উদ্দেশ্যে যেমন ইস্যু ট্র্যাকিংয়ের জন্য ব্যবহার করা যেতে পারে।
  • সংস্করণী নিদর্শন সেট করা হয়েছে, যা বর্ণিত সংস্করণ পদ্ধতির জন্য মৌলিক মেট্রিকগুলি সংগ্রহ এবং পরিকল্পনার জন্য ব্যবহার করা যেতে পারে ।
  • এটি পরিপক্কতার ধারণাগুলি এবং মানের স্তরের উপর দৃষ্টি নিবদ্ধ করে । প্রায়শই 1.0.0 এর মতো সংস্করণ নম্বরগুলি খুব বেশি প্রয়োজন ছাড়াই বরাদ্দ করা হয় (যখন সফ্টওয়্যার গভীর আলফায় থাকে)। উপস্থাপিত সংস্করণ সংখ্যায়ন পদ্ধতির পরিপক্কতার বিভিন্ন স্তর স্থাপন করতে দেয়। সবচেয়ে সহজ ক্ষেত্রে এটিতে দুটি মাত্রা থাকবে: মধ্যবর্তী বিল্ড ( N.x.K) এবং রিলিজ ( N.M.K)। প্রকাশের অর্থ হ'ল সম্পূর্ণ সংস্করণ নম্বর ( N.M.K) সহ সফটওয়্যারটি সরবরাহকারী সংস্থা / সংস্থা / দলের মধ্যে একরকম মানসম্পন্ন পরিচালনা প্রক্রিয়া পেরিয়ে গেছে।
  • এটি বিকাশ এবং পরীক্ষা উভয়েরই চতুর প্রকৃতির একটি প্রমাণ ।
  • সফ্টওয়্যার কাঠামো এবং আর্কিটেকচারের মডুলার পদ্ধতির উত্সাহ দেয়

বিশদে রূপান্তর পদ্ধতির প্রতিনিধিত্বকারী আরও জটিল চিত্র রয়েছে । এছাড়াও আপনি সংস্করণকরণ পদ্ধতির রূপান্তর এবং এসসিএমএফভিজ অ্যাপ্লিকেশনটিতে সংস্করণ সংখ্যার পদ্ধতির প্রাথমিক নীতিগুলি বর্ণনা করে এমন দরকারী উপস্থাপনা স্লাইডগুলি পেতে পারেন । উপস্থাপনা স্লাইডগুলিও ব্যাখ্যা করে যে সফ্টওয়্যার প্রকল্পের পুরো জীবন জুড়ে একই সংস্করণ পদ্ধতির সাথে লেগে থাকা কেন গুরুত্বপূর্ণ।

আসল সংস্করণ সংখ্যার পরিবর্তে ব্যক্তিগতভাবে আমার তারিখ সংস্করণ ব্যবহারের প্রতি দৃষ্টিভঙ্গি ধরে নেয় যে সফ্টওয়্যারটির বিকাশকারীগণিত তারিখগুলি রয়েছে:

  • সফটওয়্যার বিকাশ জীবনচক্র সম্পর্কে কিছুই জানেন না । বিকাশ সাধারণত চটপটে এবং পুনরাবৃত্ত হয়। সংস্করণ নম্বর পদ্ধতিতে সফ্টওয়্যার বিকাশ প্রক্রিয়াটির পুনরাবৃত্তি প্রকৃতির প্রতিনিধিত্ব করা উচিত।
  • সফ্টওয়্যার মানের সম্পর্কে যত্ন নেই । মান নিয়ন্ত্রণ এবং আশ্বাস চূড়ান্ত এবং পুনরুক্তিযোগ্য। ঠিক যেমন উন্নয়ন। এবং সংস্করণ নম্বরটি বিকাশ এবং গুণমান নিয়ন্ত্রণ / আশ্বাস উভয়ের চতুর এবং পুনরাবৃত্ত প্রকৃতির প্রমাণ হওয়া উচিত।
  • আর্কিটেকচার বা তাদের প্রয়োগ সম্পর্কে ধারণা সম্পর্কে চিন্তা করবেন না । প্রধান সংস্করণ নম্বর ( Nমধ্যে N.M.K) আর্কিটেকচারাল সমাধান এবং অ্যাপ্লিকেশনটির অন্তর্নিহিত নীতি উভয়ের জন্য দায়ী। মূল সংস্করণ নম্বরটি Nআর্কিটেকচারের পরিবর্তনের পরিবর্তে বা এর কার্যকরী / কার্যকারিতার মূল ধারণা এবং নীতিগুলির পরিবর্তন অনুসারে পরিবর্তন করতে হবে।
  • তাদের কোডবেসে নিয়ন্ত্রণ নেই । সম্ভবত একটি মাত্র শাখা (ট্রাঙ্ক) রয়েছে এবং এটি সমস্ত কিছুর জন্য ব্যবহৃত হয়। যা ব্যক্তিগতভাবে আমি সঠিক বলে মনে করি না কারণ এটি কোডবেসকে একটি বৃহত আবর্জনার ডাম্পে পরিণত করতে উত্সাহ দেয়।

এই পদ্ধতিকে কিছুটা বিতর্কিত মনে হতে পারে তবে আমি বিশ্বাস করি এটি সফ্টওয়্যারটিকে উপযুক্ত সংস্করণ নম্বর দেওয়ার সবচেয়ে সহজ উপায়।


প্রথম লিঙ্কটি ডাউন ...............
পেসারিয়ার

8

আপনার প্রকাশিত প্রতিটি বড় সংস্করণের জন্য, আপনি এটি অভ্যন্তরীণভাবে কল করার একটি কার্যকরী সংস্করণ থাকা অস্বাভাবিক নয়। উদাহরণস্বরূপ, আমার শেষ কাজটিতে, আমরা নিম্নলিখিত উবুন্টু-অনুপ্রাণিত নামকরণ কনভেনশন সহ একটি বড় সংস্করণ উল্লেখ করেছি:

[অসুস্থ অবস্থা] [অভিজাত প্রাণীর নাম]

যা " লিম্প ল্যাম্প্রে ", " ভ্যাংড ওয়াম্ব্যাট " এবং " অ্যাজমেটিক অ্যান্টিয়েটার " এর মতো নাম দিয়েছে ।

নিশ্চিত করুন যে এটি সত্যই শীতল নাম না হলে এটি আপনার গ্রাহকদের কাছে ফাঁস হয় না।


2
সময় এবং শক্তির অকার্যকর ব্যবহারের মতো দেখে মনে হচ্ছে .............
পেসারিয়ার

10
সুতরাং সেই মন্তব্যটি রেখে যাচ্ছিল তবে এটি আপনাকে থামেনি।
জেসি সি স্লিকার 12

এটি পুরো দৈর্ঘ্য কম ......
পেসারিয়ার

7

জেনারেশন.ভিশন.রিভিশন.বিল্ড (9.99.999.9999)

প্রজন্ম খুব কমই পরিবর্তিত হয়। পণ্যটিতে কেবলমাত্র বড় পালা: ডস -> উইন্ডোজ, সম্পূর্ণ পুনর্নবীকরণ।

সংস্করণটি বড় অসম্পূর্ণ পরিবর্তন, নতুন কার্যকারিতা, সফ্টওয়্যার সম্পর্কিত কিছু নির্দিষ্ট দৃষ্টান্তের পরিবর্তন ইত্যাদির জন্য is

পুনর্বিবেচনা প্রায়শই করা হয় (ছোট বৈশিষ্ট্য এবং বাগ ফিক্স)।

বিল্ড হ'ল অভ্যন্তরীণ তথ্য।


ভাল ধারণা. আপনি "প্রজন্ম" ধারণাটি কোথা থেকে পেয়েছেন?
পেসারিয়ার

6

git describeআপনার নির্বাচিত যেকোন সংখ্যক কনভেনশন একটি দুর্দান্ত এক্সটেনশন সরবরাহ করে। আপনার বিল্ড / প্যাকেজিং / স্থাপন প্রক্রিয়াতে এটি এম্বেড করা যথেষ্ট সহজ।

ধরুন আপনি আপনার ট্যাগ করা মুক্তির সংস্করণগুলির নাম রাখবেন এবিসি (মেজর.মিনোর.মেনটেনেন্স)। git describeপ্রদত্ত প্রতিশ্রুতিতে কমিটের সর্বাধিক ট্যাগকৃত পূর্বপুরুষ খুঁজে পাবেন এবং তারপরে কমিটের সংখ্যা এবং কমিটের সংক্ষিপ্ত SHA1 সম্পর্কে সন্ধান করুন:

1.2.3-164-g6f10c

আপনি যদি সত্যিই সংস্করণগুলির একটিতে থাকেন তবে অবশ্যই আপনি ট্যাগটি পাবেন (1.2.3)।

এই লেট আপনি কি জানেন চমৎকার সুবিধা রয়েছে ঠিক কি উৎস আপনি থেকে নির্মিত, যখন প্রতিটি নিজেকে বিল্ড নম্বরে হচ্ছে না।


2

মেজর.মিনোর.পাবলিক (বিল্ড) [আলফা / বিটা / ট্রায়াল], যেমন "4.08c (1290)"

  • মেজর হ'ল প্রধান সংস্করণ নম্বর (1, 2, 3 ...)
  • অপ্রাপ্তবয়স্ক একটি 2 ডিজিটের ছোটখাটো সংস্করণ হচ্ছে (01, 02, 03 ...)। সাধারণত দশটি অঙ্ক বাড়ানো হয় যখন উল্লেখযোগ্য নতুন কার্যকারিতা যুক্ত হয় কেবলমাত্র বাগ ফিক্সের জন্য।
  • বিল্ডটির জনসাধারণ প্রকাশনা (ক, খ, সি, ডি, ই), যা নাবালিক সংস্করণটিকে সর্বজনীন আপডেট হিসাবে প্রকাশিত না হলে প্রায়শই নাবালিক সংস্করণ থেকে আলাদা হয়
  • নির্মাণ, প্রকৃত বিল্ড নম্বর যা সংকলক ট্র্যাক করে।
  • ট্রায়াল, আলফা, বিটা এক্স, বা আরসি এক্স দিয়ে এই বিশেষ ক্ষেত্রে যুক্ত হয়েছে।

2

আমি এমন সংস্করণ সংখ্যা পছন্দ করি যা কিছু অর্থপূর্ণ অর্থ দেয়। যতক্ষণ আপনি উত্স কোডে (এবং আপনার ক্রিয়াকলাপ পরিচালনা ব্যবস্থায়) সংঘটিত পরিবর্তনগুলির জন্য নির্দিষ্ট সংস্করণ দিয়ে রিপোর্ট করা বাগগুলি ট্র্যাক করার জন্য সংস্করণ নম্বরটি ব্যবহার করতে পারবেন ততক্ষণ আপনি সম্ভবত সঠিক পদ্ধতিটি ব্যবহার করছেন।

আমি নেট ব্যবহার করি তাই আমি .NET সংস্করণ নম্বর পদ্ধতিতে আটকে আছি তবে আমি সংখ্যার সাথে অর্থের অর্থ দেওয়ার চেষ্টা করি

major.minor.build.revision

  • মেজর = (প্রকল্প পর্যন্ত)
  • গৌণ = (প্রকল্প পর্যন্ত)
  • হাডসন থেকে বিল্ড = বিল্ড নম্বর (আপনি এখানে টিমসিটি বা টিমবিল্ড ইত্যাদি ব্যবহার করতে পারেন)
  • সংশোধন = বিবর্তন বা বাজার সংশোধন (প্রকল্পের উপর নির্ভর করে এবং এটি কী ব্যবহার করছে)

আমরা সর্বদা নিশ্চিত করি যে সংস্করণ নম্বরটি কোনও উপায়ে দৃশ্যমান রয়েছে (আমাদের ব্যাচের কনসোল-ভিত্তিক প্রোগ্রামগুলি এটির কনসোলতে মুদ্রিত এবং একটি লগ ফাইল সহ, ওয়েব অ্যাপ্লিকেশনগুলির সাথে মেনু বারে শীর্ষে থাকে)

এইভাবে যদি ক্লায়েন্টরা সমস্যার কথা জানায় আমরা সর্বশেষতম সংস্করণটি ব্যবহার করে যাচ্ছি এবং নির্দিষ্ট সংস্করণে আমাদের কতটা সমস্যা হয়েছে তা ট্র্যাক করতে আমরা সংস্করণ নম্বরটি ব্যবহার করতে পারি।

এটি হ'ল ট্রেসেবিলিটি!


1

আমরা ব্যবহার Major.Minor.Build # .YYMMDD [প্রত্যয়], যেমন আমরা সাধারণত শুধুমাত্র এক প্রকাশনা কোনো নির্দিষ্ট দিনে নির্মান করছ (কিন্তু AB / সি / ডি প্রত্যয় ব্যবহার করেন এক বেশি এর) এবং YYMMDD ব্যবহারকারীদের / গ্রাহকদের / ব্যবস্থাপনা দেয় বিল্ডের বয়সের একটি ইঙ্গিত, যেখানে 6.3.1389 হয় না।

উল্লেখযোগ্য পণ্য বৈশিষ্ট্য (অর্থ প্রদানের জন্য) সহ বড় সংখ্যাগুলি বৃদ্ধি পায়।

সংশোধন / উন্নতি (ফ্রি আপডেট) সহ গৌণ সংখ্যাগুলি বৃদ্ধি পায়।

বিল্ড সবসময় বৃদ্ধি; সমস্ত জাহাজ তৈরি করে না, সুতরাং এটি লিনিয়ার অগ্রগতি নয়।


1

সংস্করণ সংখ্যায় পর্যাপ্ত তথ্য থাকতে হবে যা আপনি দ্বন্দ্ব এড়াতে এবং ভুল প্রকাশের ধরণের সমস্যাগুলিতে একটি বাগ ফিক্স করা উচিত, তবে অতিরিক্ত তথ্য প্রাসঙ্গিক নয় যা প্রাসঙ্গিক নয়।

উদাহরণস্বরূপ আপনি যদি তারিখটি ব্যবহার করেন তবে গ্রাহকরা তাদের বলতে পারবেন যে তাদের একটি পুরানো সংস্করণ রয়েছে এবং পুরানো সংস্করণগুলির বিরুদ্ধে প্যাচগুলিতে বিভ্রান্তিকর সংস্করণ থাকতে পারে।

আমি ব্যক্তিগতভাবে শব্দার্থক সংস্করণ পছন্দ করি :

  • রিলিজ হয় MajorMinorPatch
  • Patch আপনি যখন কোনও বিল্ড প্রকাশ করেন ততবারই বৃদ্ধি।
  • Minor প্রতিবার পিছনে সামঞ্জস্যপূর্ণ কার্যকারিতা যুক্ত হয়।
  • Major যখন নতুন কার্যকারিতা পিছনের দিকে সামঞ্জস্যপূর্ণ না হয় তখন বৃদ্ধি।
  • যখন Major== 0 আপনি আলফা / প্রাক-প্রকাশে রয়েছেন। Major> = 1 আপনার সর্বজনীন প্রকাশ s
  • আপনি যখন যতবার বাড়ছেন তত সংখ্যায় কম সংখ্যক 0 এ পুনরায় সেট করুন

    1.5.3-> 1.5.4(বাগ ফিক্স) -> 1.6.0(গৌণ বৈশিষ্ট্য) -> 2.0.0(ব্রেকিং পরিবর্তন)

এইভাবে যদি কেউ ব্যবহার করে, বলুন, সংস্করণটি 1.5.3তারা এক নজরে বলতে পারে যে তারা 1.5.4প্যাচগুলি পেতে আপগ্রেড করতে পারে, এটি 1.6.0কার্যকারিতা যুক্ত করবে এবং তাদের উন্নত করা উচিত নয় 2.0.0(অন্তত পরিবর্তনটি পরিচালনা না করে)।


সেমভার কেবলমাত্র এপিআইয়ের জন্য কাজ করে। পণ্য নয়।
পেসারিয়ার

@ পেসারিয়র আপনি ব্যাখ্যা করতে পারেন কেন?
কিথ


@ পেসারিয়ার অর্থ এই নয় যে আপনি সংস্করণ সংখ্যার জন্য এই প্যাটার্নটি ব্যবহার করতে পারবেন না।
কিথ

0
              1.0.0
                |
              1.0.1
                |
(সর্বজনীন 1.0) 1.0.2 -----
                | \
              2.0.0 1.1.0
                | |
              ২.০.২.২.১.১.২০ (প্রকাশ্য ২.১)
                |
(সর্বজনীন 2.0) 2.0.2 -----
                | \
              3.0.0 2.1.0
                         |
                       ২.১.১ (প্রকাশ্য ২.১)
                         |
                       2.2.0
                         |
                       2.2.1

X.Y.Zআমাদের অভ্যন্তরীণ সংস্করণ নম্বর। X.Yএটি সর্বজনীন সংস্করণ নম্বর, আমাদের ক্লায়েন্টদের কাছে এটির একটি অর্থ। যখন কোনও X.Y.Zসংস্করণ সর্বজনীন হয়ে ওঠে, কোনও X.Y.(Z+1)সংস্করণ কখনই পাওয়া যাবে না : সর্বজনীন সংস্করণ সর্বদা সিরিয়ের শেষ।

X একটি বড় সংস্করণ প্রকাশিত হয় যখন বর্ধিত হয়।

Y কেবলমাত্র বাগ ফিক্সের জন্য এই বড় রিলিজগুলির রক্ষণাবেক্ষণ শাখার জন্য ব্যবহৃত হয়।

Zঅভ্যন্তরীণভাবে ব্যবহৃত হয় এবং এর কোনও নির্দিষ্ট অর্থ নেই। এখন অবধি, আমি একটি নতুন Zসংস্করণ তৈরি করি যখন আমি মনে করি যে অ্যাপ্লিকেশনটিতে এমন বৈশিষ্ট্যগুলির একটি সেট রয়েছে যা অ বিকাশকারীদের দেখানোর জন্য আকর্ষণীয় এবং তুলনামূলকভাবে স্থিতিশীল। এইভাবে, কেউ যখন কেউ জিজ্ঞাসা করে আমি অ্যাপ্লিকেশনটির "শেষ পরিচিত ভাল সংস্করণ" এর একটি ডেমো প্রদর্শন করতে পারি। অদূর ভবিষ্যতে, আমি Zআমাদের বাগট্র্যাকারে বৈশিষ্ট্যগুলির একটি "লক্ষ্য" নামকরণের জন্য সংখ্যা সংস্করণগুলি ব্যবহার করার পরিকল্পনা করছি plan

পার্শ্ব নোট হিসাবে, আমরা releaseসংস্করণ নম্বর বৃদ্ধি করতে maven ( কমান্ড সহ) ব্যবহার করি । সুতরাং, X.Y.Z-SNAPSHOTসংস্করণগুলিও রয়েছে (যা X.Y.(Z-1)এবং এর মধ্যে কোনও সংস্করণ নির্দেশ করে X.Y.Z)।

আমাদের সাইট ব্যবহার করে, আপনি স্বীকার করেছেন যে আপনি আমাদের কুকি নীতি এবং গোপনীয়তা নীতিটি পড়েছেন এবং বুঝতে পেরেছেন ।
Licensed under cc by-sa 3.0 with attribution required.