আপনি কখন আপনার বড় / গৌণ / প্যাচ সংস্করণ নম্বর পরিবর্তন করবেন?


40

সম্ভাব্য সদৃশ:
আপনি কোন "সংস্করণ নামকরণ কনভেনশন" ব্যবহার করেন?

আপনি প্রকাশের ঠিক আগে বা ঠিক পরে আপনার বড় / অপ্রাপ্তবয়স্ক / প্যাচ সংস্করণ নম্বরগুলি পরিবর্তন করেন?

উদাহরণ: আপনি সবেমাত্র 1.0.0 বিশ্বের কাছে প্রকাশ করেছেন (হুজাহ!)। তবে অপেক্ষা করুন, খুব বেশি উদযাপন করবেন না। ১.১.০ প্রকাশিত হচ্ছে ছয় সপ্তাহের মধ্যে! সুতরাং আপনি একটি বাগ ঠিক করেছেন এবং একটি নতুন বিল্ড করুন। এই বিল্ড কি বলা হয়? ১.১.০.০ বা ০.০.০.এক্স.এক্স.এক্সিक्सी (যেখানে এক্স.ক্স.ক্স.০.০.০ এর বিল্ড সংখ্যাটি বাড়ানো হয়েছে)?

1.1.0 এ যাওয়ার জন্য আপনার 100 টি বৈশিষ্ট্য এবং বাগ থাকতে পারে তা মনে রাখবেন। সুতরাং এটিকে ০.০.০.এক্সএক্স্সি বলা ভাল হবে কারণ আপনি কোথাও ১.১.০ এর কাছাকাছি নেই। তবে অন্যদিকে, অন্য একটি দেব ২.০.০-এ কাজ করছেন, সেক্ষেত্রে আপনার বিল্ডটির যথাক্রমে ১.০.০.০xy এবং ০.০.০.এক্সএক্সএক্স-এর পরিবর্তে ১.০.০.০ এবং তার ২.০.০.


3
আপনি মেজর.মিনোর.রেল.স বিল্ড বা অন্য কোনও স্কিম ব্যবহার করেন কিনা তা আমি জিজ্ঞাসা করছি না। আমি জিজ্ঞাসা করছি মুক্তির চক্রের কোন পর্যায়ে আপনি সংখ্যাটি 3.2.0 তে পরিবর্তন করবেন? আপনি যখন প্রথম 3.2.0 কোডিং শুরু করবেন বা আপনি কখন 3.2.0 প্রকাশ করবেন?
dave4351

আমি প্রশ্নটি আবার খুললাম কারণ এটি "কীভাবে" প্রশ্ন নয় বরং পরিবর্তে "কখন" প্রশ্ন। এটি এখনও আগের চিহ্নিত ডুপ্লিকেটের সাথে খুব মিল এবং আবার বন্ধ হয়ে যেতে পারে।
ম্যাপেল_শ্যাফ্ট

আপনি অনুপ্রাণিত হতে পারেন - commons.apache.org/relayss/versioning.html
আর্টগন

উত্তর:


24

আপনি আপনার সফ্টওয়্যার প্রকাশ করার পরে, সংস্করণ নম্বরটি অবিলম্বে বাড়ানো উচিত।

কেন?

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

আপনি উন্নয়নের সময় একাধিক বিল্ড তৈরি করবেন। প্রতিটি বিল্ডটি আপনার পরবর্তী প্রকাশের বিকাশের স্ন্যাপশট। আপনার বিকাশ এবং রিলিজ বিল্ডগুলির জন্য একই সংস্করণটি ব্যবহার করে তা বোধগম্য হয়। সংস্করণটি নির্দেশ করে যে আপনি কী মুক্তির দিকে কাজ করছেন ।

আপনি যদি মুক্তির জন্য প্রস্তুতি নিচ্ছেন এবং সফ্টওয়্যার এর সমস্ত পরীক্ষা পাস করে, আপনি সংস্করণটি আপডেট করার কারণে আপনি সফ্টওয়্যারটি পুনর্নির্মাণ এবং পুনরায় পরীক্ষা করতে চান না। আপনি যখন অবশেষে একটি রিলিজ করেন, আপনি বলছেন যে "বিল্ড 1.1.0.23" এর পরে "সংস্করণ 1.1.0" হিসাবে উল্লেখ করা হবে।

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


6

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

বিকাশের সময়, আমি সরাসরি সংস্করণ নম্বরগুলি পরিবর্তন করার চেষ্টা করি (সম্ভব হলে) । কখনও কখনও পরিবর্তনটি ব্রেকিং পরিবর্তন হবে কি না তা জানা শক্ত (যা আমার সংস্করণ নম্বরকে প্রভাবিত করবে), তাই কিছুই "পাথরে সেট করা" হয় না।

আপনার নির্দিষ্ট উদাহরণ সম্বোধন করতে:

  • বিকাশের সময়, প্রাক-প্রকাশের সংস্করণগুলি 1.0.1-alpha.1, 1.0.1-alpha.2, ইত্যাদি হবে etc.
  • বাগ-ফিক্সের চূড়ান্ত প্রকাশটি সংস্করণ 1.0.1 হবে।

এটি বলার পরে, 'পাবলিক-ফেসিং' পণ্য সংস্করণ নম্বরগুলি প্রায়শই বিপণন দ্বারা সেট করা হয় এবং সম্পূর্ণ আলাদা। এটি আমার নিয়ন্ত্রণের বাইরে, সুতরাং এটি নিয়ে চিন্তা করার কোনও দরকার নেই।


4

আসুন উত্তরে এবিসিডি অনুমান করি। আপনি যখন প্রতিটি উপাদান বৃদ্ধি করবেন?

এটি মূলত আপনার সংস্থার নীতি দ্বারা নির্ধারিত হয়। আমাদের সংস্থার নীতি হ'ল:

  • এ - কার্যকারীতা বা ইন্টারফেসে উল্লেখযোগ্য (> 25%) পরিবর্তন বা সংযোজন।
  • বি - কার্যকারিতা বা ইন্টারফেসে ছোট পরিবর্তন বা সংযোজন।
  • সি - ছোটখাটো পরিবর্তন যা ইন্টারফেসটি ভেঙে দেয়।
  • ডি - এমন একটি বিল্ডের স্থির করে যা ইন্টারফেস পরিবর্তন করে না।

4
হ্যাঁ, তবে ডেভ 4351 জিজ্ঞাসা করছে কখন (কালানুক্রমিকভাবে) উত্স নিয়ন্ত্রণে আপনি এই মানগুলি সম্পাদনা করেন? আপনি যখনই কোডটি চেক করেন প্রতিবার সংস্করণ নম্বরটি পরিবর্তন করেন না, তাই না?
এম ডুডলি

আপনি দেখতে পাচ্ছেন যে প্রতিটি বিল্ডে স্বয়ংক্রিয়ভাবে পরিবর্তিত হওয়ার জন্য কেবলমাত্র ডি প্রার্থী।
ই এল ইউসুবভ

3

বড় প্রকল্পগুলি / সংস্থাগুলিতে, প্রধান এবং গৌণ সংস্করণ নম্বর বিপণন বিভাগগুলি দ্বারা নিয়ন্ত্রিত হয় এবং সাধারণত বিপণনের কারণে বর্ধিত হয়। আমার সংস্থায়, দলগুলি প্রতি বছর একটি বড় এবং একটি ছোটখাটো মুক্তি প্রকাশের লক্ষ্য করে। প্রত্যাশাটি হ'ল বড় রিলিজগুলিতে উল্লেখযোগ্য নতুন কার্যকারিতা থাকে এবং একই বড় সংস্করণ নম্বর সহ সমস্ত প্রকাশের জন্য এপিআইয়ের মধ্যে বাইনারি সামঞ্জস্য থাকে। যাইহোক, বিপণন নাবালকের একটি বড় সংস্করণ পরিবর্তনকে ডাউনগ্রেড করতে পারে কারণ প্রতিশ্রুতিবদ্ধ বৈশিষ্ট্যগুলি বিতরণ করা হয় না বা বিপরীতভাবে ব্যাঙের প্রতিযোগিতা লাফাতে দেখা যায়।

প্রধান এবং গৌণ বিল্ড সংখ্যা (সি এবং ডি এবিসিডিতে) সাধারণত বিকাশ দ্বারা নিয়ন্ত্রিত হয়। সিটি বিল্ড নম্বর এবং সি এর নির্দিষ্ট প্রকাশ বা সংস্করণে প্যাচগুলির জন্য ব্যবহৃত হয়।

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


2

আমরা চেষ্টা করি এবং গ্রহণের উদাহরণ অনুসরণ করি । এটি আমার চেয়ে ব্যাখ্যা করার চেয়ে ভাল কাজ করে তবে কার্যকরভাবে আমাদের জন্য এটি এর মতো কাজ করে:

আপনি যখন 1.0.0.0 প্রকাশ করেন তখন আপনি যে সংস্করণ নম্বরটি পরিবর্তন করেন তা নির্ভর করে আপনি যে পরিবর্তনটি করছেন তার উপর নির্ভরশীল।

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

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


আমি বিশেষভাবে সংস্করণগুলির মধ্যে বিল্ড সম্পর্কে জিজ্ঞাসা করছি। ১.০.০ জিএ প্রকাশের পরে, আপনার কি পরের বিল্ডটি, ১.১.০ এর দিকে কাজ করছে, এর একটি সংস্করণ সংখ্যা রয়েছে যা 1.0.0.2592 বা 1.1.0.0 এর মতো দেখাচ্ছে?
dave4351

সম্ভবত অন্যভাবে জিজ্ঞাসা করার উপায়টি হ'ল: আপনার ১.০.০ রিলিজের কি একটি বিল্ড সংখ্যা ১.০.০.০ (চক্রের শেষে পরিবর্তন) বা 1.0.0.2591 (চক্রের শুরুতে পরিবর্তন) রয়েছে?
dave4351

-1 সংস্করণটি কখন বাড়ানো হবে সেই প্রশ্নের ঠিকানা দেয় না। ইলিপস ডকুমেন্টটি কেবল সংস্করণ সংখ্যার শব্দার্থ সম্পর্কে আলোচনা করে।
এম ডুডলি

1

এরপরে আর কোনও বিল্ড নেই। সেই শাখায়।

আমাদের স্কিমের আদর্শ সংস্করণ।

যে কোনও শাখায় সংস্করণ সনাক্তকরণ হ'ল PRETTY_BRANCH_NAME- বিল্ড এবং PRETTY_BRANCH_NAME শাখা তৈরির সময় স্থির করা হয়েছে।

আমাদের ব্রাঞ্চিং স্কিম (*) নিম্নলিখিত:

শীর্ষ স্তরের শাখাগুলি, প্রত্যেকের PRETTY_BRANCH_NAME একটি কোড নাম, সেই স্তরের সংস্করণ সংখ্যার কথা বলা অর্থহীন, এখানে একটি পরিকল্পিত পরিকল্পনা থাকতে পারে তবে এটি প্রকাশের আগেই পরিবর্তন হবে।

  • একটি টিএনজি ( পরবর্তী প্রজন্ম ) শাখা যেখানে দীর্ঘমেয়াদী উন্নয়ন করা হয়। প্রায়শই আমাদের কাছে এটি থাকে না এবং এটি কখনও (রিলিজ) সাব-শাখা করে না।

  • একটি টিসিজি ( বর্তমান প্রজন্ম ) শাখা যেখানে বর্তমান উন্নয়ন করা হয়। PRETTY_BRANCH_NAME একটি কোড নাম।

  • একটি টিপিজি ( পূর্ববর্তী প্রজন্মের ) শাখা। প্রায়শই এখানে আর কোনও বিকাশ হয় না, তবে সাব-শাখাগুলিতে ক্রিয়াকলাপ থাকতে পারে।

একটি বড় রিলিজ শুরুর জন্য বিটা যখন একটি সাব্র্যাঞ্চ শীর্ষ স্তরের শাখা (টিপিজির, টিপিজির ধীরে চলার উপস্থিতিতে উপস্থিত) তৈরি হয়। PRETTY_BRANCH_NAME "1.3.X" এর মতো কিছু (X হরফ, অঙ্ক নয়, এর অর্থ আমরা এখান থেকে 1.3 প্রকাশ করতে চাইছি), বিটা থেকে প্রাপ্ত প্রতিক্রিয়াটি এখানে অ্যাকাউন্টে দেওয়া হয়েছে যখন পরবর্তী বড় রিলিজের কাজ চলছে টিসিজি শাখা।

আদর্শভাবে, রিলিজটি সেই শাখায় স্ন্যাপশট হওয়া উচিত, তবে আমরা জানি যে আমরা নিখুঁত নই এবং প্রায়শই শেষ মুহুর্তের পরিবর্তনগুলি করা দরকার যখন অন্যদের পরবর্তী ছোট ছোট মুক্তির জন্য কাজ চালিয়ে যাওয়ার সুযোগ দেওয়া হয়। সুতরাং চূড়ান্ত স্থিতিশীলতার জন্য সাবস্ক্র্যাবগুলি তৈরি করা হয়েছে সুন্দর নামগুলির অফিশিয়াল সংস্করণ নম্বর হিসাবে (সেই সময়ে এমনকি বিপণনও এটি পরিবর্তন করতে চায় না) "1.3", "1.3.1" "1.3.X" শাখার বাইরে, প্রতিটি উপর নির্মিত বিল্ড হ'ল মুক্তি।

যদি আমাদের একটি চতুর্থ স্তর থাকে তবে সাবস্ক্রাইবগুলির নামগুলি "1.3.0.X" হত যার মধ্যে আমাদের উপ ^ 3 শাখা "1.3.0.0" "1.3.0.1" থাকত।


(*) মুক্তির স্তরে। এর প্রতিটিতে প্রকল্পের সাব-শাখা থাকতে পারে।


এর জন্য ধন্যবাদ. আমি একটি ভিন্ন উত্তর গ্রহণ করেছি যা আমার চিন্তার সাথে সামঞ্জস্যপূর্ণ, তবে আপনি যদি আরও কিছু শাখা ব্যবহার করেন তবে এটি ভাল তথ্য।
dave4351

1

আপনি যদি সফ্টওয়্যারটি বিক্রি করে থাকেন তবে প্রতিবার বিক্রয় / বিপণনে আরও একটি বড় বোনাস অর্জন করতে হবে :-)।

আপনার যদি কিছু নিয়ন্ত্রণ থাকে তবে:

  1. প্রধান প্রকাশ যখন:

    • পূর্ববর্তী রিলিজের সাথে কিছুটা অসঙ্গতি রয়েছে যার জন্য পাইথন 2 থেকে পাইথন 3 তে রূপান্তর ইত্যাদি প্রয়োজন।

    • নতুন কার্যকারিতার পুরো অংশ রয়েছে।

  2. কার্যক্ষমতায় যে কোনও ছোট পরিবর্তনের জন্য মাইনর রিলিজ করে।

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