आप अपना प्रमुख / मामूली / पैच वर्जन नंबर कब बदलते हैं?


40

संभव डुप्लिकेट:
क्या "संस्करण नामकरण सम्मेलन" आप उपयोग करते हैं?

क्या आप जारी करने से पहले या उसके ठीक बाद अपने प्रमुख / मामूली / पैच संस्करण संख्याओं को बदलते हैं?

उदाहरण: आपने दुनिया (हुज़ाह!) के लिए सिर्फ १३.१ जारी किया। लेकिन रुकिए, बहुत जश्न मत मनाइए। छह हफ्तों में 1.1.0 निकल रहा है! तो आप एक बग को ठीक करते हैं और एक नया निर्माण करते हैं। उस निर्माण को क्या कहा जाता है? 1.1.0.0 या 1.0.0.xxxy (जहां xxxy 1.0.0 की वृद्धि हुई संख्या है)?

ध्यान रखें कि 1.1.0 में जाने के लिए आपके पास 100 सुविधाएँ और बग हो सकते हैं। इसलिए इसे 1.0.0.xxxy कहना अच्छा हो सकता है, क्योंकि आप कहीं भी 1.1.0 के करीब नहीं हैं। लेकिन दूसरी ओर, एक और देव 2.0.0 पर काम कर रहे होंगे, जिस स्थिति में आपके निर्माण का नाम क्रमशः 1.1..0.0 और उनके 2.0.0.0 के बजाय 1.0.0.xxxy और 1.0.0.xxxz हो सकता है।


3
मैं यह नहीं पूछ रहा हूं कि क्या आप प्रमुख .minor.release.build या किसी अन्य योजना का उपयोग करते हैं। मैं पूछ रहा हूं कि रिलीज साइकिल के किस बिंदु पर आप संख्या को 3.2.0 में बदल सकते हैं? जब आप पहली बार 3.2.0 कोडिंग शुरू करते हैं या जब आप 3.2.0 जारी करते हैं?
dave4351

मैंने प्रश्न को फिर से खोल दिया क्योंकि यह "कैसे" प्रश्न नहीं है, बल्कि "जब" प्रश्न है। यह अब भी पिछले चिह्नित डुप्लिकेट के समान है और फिर से बंद हो सकता है।
maple_shaft

आप प्रेरित हो सकते हैं - commons.apache.org/releases/versioning.html
आर्टेगन

जवाबों:


24

अपना सॉफ़्टवेयर जारी करने के बाद, संस्करण संख्या तुरंत बढ़ाई जानी चाहिए।

क्यूं कर?

मान लेते हैं कि आप सेमेटिक संस्करण जैसी किसी योजना का अनुसरण कर रहे हैं , और आपके पास संस्करण में एक बिल्ड नंबर है। इसलिए आपके पास [मेजर] [माइनर] [पैच] [बिल्ड] हो सकता है। मैं [मेजर] को कॉल करने जा रहा हूं। [माइनर]। [पैच] संस्करण का हिस्सा।

आप विकास के दौरान कई बिल्ड बना रहे होंगे। प्रत्येक बिल्ड आपकी अगली रिलीज़ का एक विकास स्नैपशॉट है। यह आपके विकास और रिलीज बिल्ड के लिए एक ही संस्करण का उपयोग करने के लिए समझ में आता है। संस्करण इंगित करता है कि आप किस रिलीज़ की ओर काम कर रहे हैं ।

यदि आप रिलीज़ के लिए तैयारी कर रहे हैं और सॉफ़्टवेयर अपने सभी परीक्षण पास कर लेता है, तो आप सॉफ़्टवेयर को फिर से बनाना और फिर से बेचना नहीं चाहेंगे क्योंकि आपको संस्करण को अपडेट करना था। जब आप अंततः एक रिलीज करते हैं, तो आप कह रहे हैं कि "1.1.0.23 का निर्माण करें" इसलिए इसे "संस्करण 1.1.0" के रूप में संदर्भित किया जाएगा।

इंक्रीमेंट-आफ्टर-रिलीज़ मॉडल ब्रांचिंग के लिए भी समझ में आता है। मान लीजिए कि आपके पास एक मेनलाइन विकास शाखा है, और आप रिलीज़ के लिए रखरखाव शाखाएँ बनाते हैं। जिस क्षण आप अपनी रिलीज़ शाखा बनाते हैं, आपकी विकास शाखा अब उस रिलीज़ के संस्करण संख्या से जुड़ी नहीं होती है। विकास शाखा में कोड है जो अगली रिलीज़ का हिस्सा है, इसलिए संस्करण को प्रतिबिंबित करना चाहिए।


6

मैं आमतौर पर आंतरिक संस्करण संख्याओं के लिए सेमी वीयर का उपयोग करने की कोशिश करता हूं । इसके संस्करण संख्या के शब्दार्थों के आधार पर रिलीज़ के बारे में कुछ जानना संभव है।

विकास के दौरान, मैं सीधे संस्करण संख्याओं को बदलने की कोशिश करता हूं (यदि संभव हो तो) । कभी-कभी यह जानना कठिन होता है कि परिवर्तन एक ब्रेकिंग परिवर्तन होगा या नहीं (जो मेरे संस्करण संख्या को प्रभावित करेगा), इसलिए "पत्थर में सेट" कुछ भी नहीं है।

अपने विशिष्ट उदाहरण को संबोधित करने के लिए:

  • विकास के दौरान, पूर्व-रिलीज़ संस्करण 1.0.1-Alpha.1, 1.0.1-Alpha.2 आदि होंगे।
  • बग फिक्स का अंतिम रिलीज संस्करण 1.0.1 होगा।

कहा जाता है कि, 'सार्वजनिक-सामना' उत्पाद संस्करण संख्याएँ अक्सर विपणन द्वारा निर्धारित की जाती हैं, और पूरी तरह से अलग होती हैं। यह मेरे नियंत्रण से बाहर है, इसलिए कोई चिंता की बात नहीं है।


4

चलो जवाब में एबीसीडी मान लेते हैं। आप प्रत्येक घटक को कब बढ़ाते हैं?

यह मूल रूप से आपकी कंपनी की नीति द्वारा निर्धारित किया जाता है। हमारी कंपनी की नीति है:

  • ए - कार्यक्षमता या इंटरफ़ेस में महत्वपूर्ण (> 25%) परिवर्तन या परिवर्धन।
  • बी - कार्यक्षमता या इंटरफ़ेस में छोटे परिवर्तन या परिवर्धन।
  • सी - मामूली बदलाव जो इंटरफ़ेस को तोड़ते हैं।
  • डी - एक निर्माण को ठीक करता है जो इंटरफ़ेस को नहीं बदलता है।

4
हाँ, लेकिन dave4351 इस बारे में पूछ रहा है कि आप (कालानुक्रमिक रूप से) क्या वास्तव में इन मूल्यों को स्रोत नियंत्रण में संपादित करते हैं? जब भी आप कोड में जांच करते हैं, तो क्या आप हर बार संस्करण संख्या नहीं बदलते हैं?
एम। डडले

जैसा कि आप देख सकते हैं कि प्रत्येक बिल्ड पर डी केवल एक उम्मीदवार है जिसे स्वचालित रूप से बदला जाना है।
ईएल यूसुबोव

3

बड़ी परियोजनाओं / संगठनों में, प्रमुख और मामूली संस्करण संख्याएं विपणन विभागों द्वारा नियंत्रित की जाती हैं और आमतौर पर विपणन कारणों से बढ़ाई जाती हैं। मेरे संगठन में, समूहों का लक्ष्य प्रत्येक वर्ष एक प्रमुख और एक मामूली रिहाई करना है। उम्मीद यह है कि प्रमुख रिलीज में महत्वपूर्ण नई कार्यक्षमता होती है और एक ही प्रमुख संस्करण संख्या के साथ सभी रिलीज के लिए एपीआई के बीच द्विआधारी संगतता होती है। हालाँकि, विपणन मामूली के लिए एक प्रमुख संस्करण परिवर्तन को डाउनग्रेड करने का विकल्प चुन सकता है क्योंकि वादा किए गए फीचर्स वितरित नहीं किए गए हैं या इसके विपरीत मेंढक प्रतियोगिता को देखने के लिए देखा जा सकता है।

प्रमुख और मामूली बिल्ड नंबर (abcd में c और d) आमतौर पर विकास द्वारा नियंत्रित होते हैं। c बिल्ड नंबर है और d का उपयोग किसी विशेष रिलीज़ या c के संस्करण पर पैच के लिए किया जाता है।

आपके मामले में, जब आप प्रमुख और लघु संस्करण संख्या बदलते हैं, तो यह सुनिश्चित करने की तुलना में कम प्रासंगिक होता है कि प्रमुख और लघु बिल्ड संख्याएँ सटीक हैं। मेरे संगठन में, हम स्रोत नियंत्रण में ब्रांचिंग प्रक्रिया के हिस्से के रूप में प्रमुख और मामूली निर्माण संख्याओं को बदलते हैं। मुख्य शाखा में आम तौर पर नवीनतम संस्करण होता है, लेकिन विपणन ने यह तय नहीं किया होगा कि रिलीज़ के संस्करण की संख्या क्या होगी।


2

हम ग्रहण के उदाहरण का प्रयास करते हैं । यह मुझे समझाने की तुलना में बेहतर काम करता है, लेकिन हमारे लिए प्रभावी रूप से यह इस तरह काम करता है:

जब आप 1.0.0.0 जारी करते हैं, तो आप जिस संस्करण संख्या को बदलते हैं, वह उस प्रकार के परिवर्तन पर निर्भर करता है जो आप बना रहे हैं।

  • एक रिलीज़ जो एपीआई को प्रभावित नहीं करता है, दृश्यों के बग फिक्स के पीछे विचार करें जो वर्तमान एपीआई को अपेक्षित तरीके से काम करता है, 1.0.1 पर जारी किया जाता है
  • एक रिलीज़ जो एपीआई में जोड़ता है लेकिन मौजूदा एपीआई को नहीं बदलता है, आपने एक नई सुविधा जोड़ी होगी जो नए संस्करण के साथ वर्तमान ग्राहकों को अतुलनीय नहीं बनाती है। इसमें उपरोक्त किसी भी संख्या में सुधार शामिल हो सकते हैं।
  • एक रिलीज़ वर्तमान एपीआई को तोड़ता है, कुछ को हटाता है, कुछ बदल रहा है जो वर्तमान ग्राहकों के साथ तुलना को तोड़ता है। यह उपरोक्त फिक्स के किसी भी umber हो सकता है।

संस्करण संख्या में 4 वें खंड का उपयोग करने के तरीके के रूप में हम इसका उपयोग Nuget (पैकेज प्रबंधन समाधान के लिए हम उपयोग करते हैं) में अलग-अलग बिल्ड में अंतर करने के लिए करते हैं। इससे हमें अपने अप्रकाशित सॉफ़्टवेयर को अपडेट करने के लिए हर बार कैश साफ़ करने से बचने की अनुमति मिलती है।


मैं विशेष रूप से संस्करणों के बीच निर्माण के बारे में पूछ रहा हूं। 1.0.0 GA रिलीज़ के बाद, आपका अगला अगला निर्माण, 1.1.0 की ओर काम करते हुए, एक संस्करण संख्या है, जो 1.0.0.2592 या 1.1.0.0 जैसा दिखता है?
dave4351

शायद यह पूछने का एक और तरीका होगा: क्या आपकी 1.0.0 रिलीज़ की बिल्ड संख्या 1.0.0.0 (चक्र के अंत में परिवर्तन) या 1.0.0.2591 (चक्र की शुरुआत में परिवर्तन) है?
dave4351 1

-1 संस्करण को बढ़ाने के प्रश्न को संबोधित नहीं करता है। एक्लिप्स दस्तावेज़ केवल संस्करण संख्याओं के शब्दार्थों के बारे में बात करता है।
एम। डडले

1

कोई अगला निर्माण नहीं है। उस शाखा पर।

हमारी योजना का आदर्श संस्करण।

किसी भी शाखा पर संस्करण की पहचान PRETTY_BRANCH_NAME- बिल्ड है और PRETTY_BRANCH_NAME शाखा निर्माण पर निर्धारित है।

हमारी शाखा योजना (*) निम्नलिखित है:

शीर्ष स्तर की शाखाएं, प्रत्येक का PRETTY_BRANCH_NAME एक कोड नाम है, उस स्तर पर संस्करण संख्या का बोलना अर्थहीन है, एक योजनाबद्ध योजना हो सकती है लेकिन यह रिलीज से पहले बदल जाएगी।

  • एक TNG ( अगली पीढ़ी ) शाखा जहां दीर्घकालिक विकास किया जाता है। अक्सर हमारे पास यह भी नहीं होता है और इसकी कभी भी (रिलीज) उप-शाखाएं नहीं होती हैं।

  • एक टीसीजी ( वर्तमान पीढ़ी ) शाखा जहां वर्तमान विकास किया जाता है। PRETTY_BRANCH_NAME एक कोड नाम है।

  • एक TPG ( पिछली पीढ़ी ) शाखा। अक्सर यहां कोई अधिक विकास नहीं किया जाता है, लेकिन उपनगरों में गतिविधि हो सकती है।

एक सबरंच एक शीर्ष स्तर की शाखा (टीसीजी की, टीपीजी के धीमे प्रवास की उपस्थिति में) से बना होता है जब एक प्रमुख रिलीज के लिए बीटा शुरू होता है। PRETTY_BRANCH_NAME कुछ ऐसा है जैसे "1.3.X" (X अक्षर है, अंक नहीं, इसका मतलब है कि हम यहां से 1.3 रिलीज देने का इरादा रखते हैं), बीटा से फीडबैक को ध्यान में रखा जाता है जबकि अगले प्रमुख रिलीज के लिए काम किया जाता है। टीसीजी शाखा।

आदर्श रूप से, रिलीज को उस शाखा पर स्नैपशॉट होना चाहिए, लेकिन हम जानते हैं कि हम सही नहीं हैं और अक्सर अंतिम मिनट में बदलाव करने की आवश्यकता होती है, जबकि अन्य लोगों को अगली छोटी रिलीज के लिए काम करना जारी रखना चाहिए। इस प्रकार उप-नामकरण अंतिम स्थिरीकरण के लिए किए जाते हैं, जिसमें सुंदर नाम आधिकारिक संस्करण संख्या होते हैं (उस समय भी विपणन इसे बदलना नहीं चाहेंगे) "1.3", "1.3.1" जैसे "1.3.X" शाखा से बाहर, प्रत्येक पर अंतिम निर्माण रिलीज है।

यदि हमारे पास एक चौथा स्तर होता है, तो उप-सब्स्क्राइब्ड नाम "1.3.0.X" होगा, जिसमें से हमने ^ 3branches "1.3.0.0" "1.3.0.1" उप किया होगा।


(*) रिलीज के स्तर पर। इनमें से प्रत्येक पर प्रोजेक्ट सबब्रांच हो सकते हैं।


इसके लिए धन्यवाद। मैंने एक अलग उत्तर स्वीकार किया जो मेरे विचारों के अनुरूप था, लेकिन यदि आप शाखाओं का थोड़ा अधिक उपयोग कर रहे हैं तो यह अच्छी जानकारी है।
dave4351

1

यदि आप सॉफ्टवेयर बेच रहे हैं तो आपके पास एक बड़ा बोनस कमाने के लिए हर बार बिक्री / विपणन की आवश्यकता के साथ एक नया प्रमुख रिलीज होगा।

यदि आपके पास कुछ नियंत्रण है तो:

  1. प्रमुख रिलीज जब:

    • पिछली रिलीज़ के साथ कुछ असंगतता है जिसके लिए रूपांतरण आदि की आवश्यकता होती है जैसे कि पायथन 2 से पायथन 3।

    • नई कार्यक्षमता का एक पूरा हिस्सा है।

  2. कार्यक्षमता में किसी भी छोटे परिवर्तन के लिए लघु रिलीज।

  3. बग फिक्स के लिए पैच रिलीज़।
हमारी साइट का प्रयोग करके, आप स्वीकार करते हैं कि आपने हमारी Cookie Policy और निजता नीति को पढ़ और समझा लिया है।
Licensed under cc by-sa 3.0 with attribution required.