नए उत्पादों के लिए शुरुआती संस्करण संख्याएं कैसे काम करती हैं?


11

मैं वर्तमान में एक दोस्त के लिए एक छोटा डेस्कटॉप एप्लिकेशन लिख रहा हूं, लेकिन मैं इसे मुख्य रूप से अपने लिए एक सीखने के अनुभव के रूप में कर रहा हूं। शिक्षित होने और चीजों को सही तरीके से करने की भावना में, मैं इस ऐप के लिए संस्करण संख्याएं रखना चाहता हूं।

मेरे शोध ने इन संबंधित परिणामों को सामने लाया

लेकिन उनमें से कोई भी अल्फ़ाज़, बेतास, रिलीज़ उम्मीदवारों और सी की संख्या को संबोधित नहीं करता है। 1.0 से नीचे संस्करण संख्याओं के लिए सम्मेलन क्या हैं? मुझे पता है कि वे कुछ समय के लिए जा सकते हैं; उदाहरण के लिए, PuTTY कम से कम एक दशक के लिए रहा है और अभी भी केवल संस्करण बीटा 0.60 पर है।

जवाबों:


30

यह वास्तव में परियोजना पर निर्भर करता है; कुछ परियोजनाएँ 1.0 संस्करण भी जारी नहीं करती हैं।

MAME के ​​डेवलपर्स अपने एमुलेटर प्रोग्राम के संस्करण 1.0 को जारी करने का इरादा नहीं रखते हैं। तर्क यह है कि यह कभी भी "समाप्त" नहीं होगा क्योंकि हमेशा अधिक आर्केड गेम होंगे। संस्करण 0.99 को केवल संस्करण 0.100 (लघु संस्करण 100> 99) द्वारा अनुसरण किया गया था। इसी तरह के फैशन में ज़ीफ़र 1.99 के बाद 1.100 पर था। 6 साल के विकास के बाद, eMule अभी तक 0.50 संस्करण तक नहीं पहुंचा है। विकिपीडिया पर सॉफ्टवेयर संस्करण

नंबरिंग संस्करणों की एक लोकप्रिय विधि (जिसका मैंने उपयोग करना शुरू कर दिया है) सिमेंटिक संस्करण है

इस योजना के तहत, संस्करण संख्या और जिस तरह से वे बदलते हैं वह अंतर्निहित कोड के बारे में अर्थ बताता है और जिसे एक संस्करण से अगले तक संशोधित किया गया है।

कुछ उद्धरण आपको इस बारे में अधिक विचार देने के लिए कि यह कैसे काम करता है और / या आपके कुछ सवालों के जवाब देता है:

मुझे यह कैसे पता चलेगा कि 1.0.0 रिलीज़ कब होगी?

यदि आपका सॉफ़्टवेयर उत्पादन में उपयोग किया जा रहा है, तो यह संभवतः पहले से ही 1.0.0 होना चाहिए। यदि आपके पास एक स्थिर एपीआई है जिस पर उपयोगकर्ता निर्भर होने के लिए आए हैं, तो आपको 1.0.0 होना चाहिए। यदि आप पीछे की संगतता के बारे में बहुत चिंता कर रहे हैं, तो आपको शायद पहले से ही 1.0.0 होना चाहिए।

क्या यह तेजी से विकास और तेजी से चलना को हतोत्साहित नहीं करता है?

प्रमुख संस्करण शून्य तेजी से विकास के बारे में है। यदि आप हर दिन एपीआई बदल रहे हैं तो आपको या तो अभी भी संस्करण 0.xx में होना चाहिए या अगले प्रमुख संस्करण पर काम करने वाली एक अलग विकास शाखा पर होना चाहिए।

यहां तक ​​कि अगर सार्वजनिक एपीआई में सबसे पीछे के असंगत बदलावों को एक प्रमुख संस्करण टक्कर की आवश्यकता होती है, तो क्या मैं संस्करण 42.0.0 पर बहुत तेजी से समाप्त नहीं होगा?

यह जिम्मेदार विकास और दूरदर्शिता का सवाल है। असंगत परिवर्तन को सॉफ्टवेयर के लिए हल्के ढंग से पेश नहीं किया जाना चाहिए जिसमें बहुत अधिक निर्भर कोड है। अपग्रेड करने के लिए आवश्यक लागत महत्वपूर्ण हो सकती है। असंगत परिवर्तन जारी करने के लिए प्रमुख संस्करणों को टक्कर देने का मतलब है कि आप अपने परिवर्तनों के प्रभाव से सोचेंगे, और इसमें शामिल लागत / लाभ अनुपात का मूल्यांकन करेंगे।

"अल्फ़ा," "बीटा," इत्यादि रिलीज़ को निर्दिष्ट करने के नियम भी हैं। Http://semver.org/ पर विवरण देखें

[संपादित करें] एक और दिलचस्प संस्करण नंबरिंग योजना एक MongoDB उपयोग है :

MongoDB विकास रिलीज के लिए विषम संख्या वाले संस्करणों का उपयोग करता है।

एक MongoDB संस्करण में 3 नंबर हैं: ABC

  • A प्रमुख संस्करण है। यह शायद ही कभी बदलेगा और बहुत बड़े बदलावों का संकेत देगा
  • B रिलीज़ संख्या है। इसमें सुविधाओं और चीजों सहित कई बदलाव शामिल होंगे जो संभवतया पीछे की ओर अनुकूलता को तोड़ते हैं। यहां तक ​​कि बी एस भी स्थिर शाखाएं होंगी, और विषम बी एस विकास होगा।
  • C संशोधन संख्या है और इसका उपयोग बग और सुरक्षा समस्याओं के लिए किया जाएगा।

उदाहरण के लिए:

  • 1.0.0: पहला GA रिलीज़
  • 1.0.x: बग फिक्स 1.0.x - अपग्रेड करने के लिए अत्यधिक अनुशंसित, बहुत कम जोखिम
  • 1.1.x: विकास रिलीज़। इसमें नई सुविधाएँ शामिल होंगी जो पूरी तरह से समाप्त नहीं हुई हैं, और प्रगति पर काम करती हैं। कुछ चीजें 1.0 से भिन्न हो सकती हैं
  • 1.2.x: दूसरा GA रिलीज़। यह 1.1.x रिलीज की परिणति होगी।

वाह, यह ... काफी संपादित है। अगर मैं कर सकता तो मैं तुम्हें फिर से उभार देता।
पोप

2
धन्यवाद! ^ _ ^ मुझे लगता है कि यह संपादन है जो मुझे धक्का देता है 1.0.0 तक? :)
मिशेल टिली


@RossPatterson Upvotes और स्वीकारें शब्दार्थ रूप से भिन्न हैं; इस जवाब में अच्छी जानकारी का एक बहुत कुछ शामिल है, लेकिन मैं इसे "है नहीं लगता है तो स्वीकृति सही महसूस नहीं करता है जवाब है,"।
पोप

1

मुझे नहीं लगता कि ऐसा कोई "मानक" है।

रिलीज़ कैंडिडेट्स के लिए एक कन्वेंशन है जो आमतौर पर "[संस्करण] आरसी 1" आदि पर निर्भर करता है कि आपको लगता है कि आप कितने संस्करण जारी कर सकते हैं।

यदि आप अपने उत्पाद का एक बहुत ही प्रारंभिक संस्करण जारी कर रहे हैं - एक जो पूरी तरह से नहीं है - तो आपका संस्करण "0" के साथ जाना चाह सकता है। इस तरह आप समय के साथ संस्करण को बढ़ा सकते हैं जैसे ही आप अपना फीचर सेट भरते हैं।

मैं रिलीज उम्मीदवार की तरह "अल्फा" और "बीटा" का उपयोग करूंगा - समय के लिए सीमित संस्करणों से संकेत मिलता है कि आपको लगता है कि आप पूर्ण संस्करण जारी करने के करीब हैं।


मैंने इस बारे में सोचा था, लेकिन मैं अपने सिर को चारों ओर नहीं लपेट सकता, जो कि संस्करण 0 का प्रतिनिधित्व करता है। 0.1 और 0.2 के बीच और 0.3.2 और 0.3.3 के बीच का अंतर, एक साथ "मामूली रिलीज" / "बगफिक्स पैच" मॉडल के अनुसार मुझे समझ में नहीं आता है।
पोप्स

@Lord - जहां यह ... नीचे गिर करता बेशक कि की
ChrisF

1

सॉफ्टवेयर संस्करण पर एक विकिपीडिया पृष्ठ है । प्री-1.0 संस्करण साझा करने के लिए, Apple और अन्य द्वारा उपयोग किया जाने वाला सम्मेलन अच्छी तरह से काम करता है: major.minor.maintSrev जहां S प्रीलीज संस्करणों के लिए स्टेज इंडिकेटर है: d = development, a = alpha, b = beta, rc = release उम्मीदवार। तो आपका पहला आंतरिक संस्करण 1.0.0d1 हो सकता है।

पूरी तरह से आंतरिक संशोधनों के लिए, टाइमस्टैम्प पर्याप्त है।


0

अधिकांश भाग के लिए प्रत्येक डेवलपर यह तय करता है कि वे किस मानक का उपयोग करने जा रहे हैं। सामान्य तौर पर हालांकि दशमलव बिंदु के बाईं ओर स्थित संख्याएं बड़े संशोधन दर्शाती हैं जो संभवतः औसत उपयोगकर्ता (यानी कार्यक्षमता या इंटरफ़ेस परिवर्तन, आदि) पर बहुत ध्यान देने योग्य होगा। दशमलव बिंदु के दाईं ओर यह एक परिवर्तन / संशोधन / जोड़ होगा जो समग्र कार्यक्षमता और डिज़ाइन को बहुत अधिक नहीं बदलता है, लेकिन कार्यक्रम के बारे में कुछ ही बदल दिया है (यानी एक ही काम करते हुए या तेज़ी से कार्य करना एक सुरक्षा मुद्दा)। फिर अगर आप अतिरिक्त दशमलव अंक जोड़ते हैं तो इनमें से दाईं ओर संख्या में तेजी से और छोटे बदलाव (यानी मामूली बग फिक्स / सुरक्षा मुद्दे और ऐसे) का संकेत होगा।


यह मेरे द्वारा पोस्ट किए गए कुछ संबंधित प्रश्नों के लिए एक अच्छा उत्तर होगा - और, वास्तव में, उन सवालों के कुछ मौजूदा उत्तरों के समान है - लेकिन वास्तव में "संस्करण शून्य" मामले को संबोधित नहीं करता है। मैं पूछ रहा हूँ।
पोप

क्यों नहीं होता? कंप्यूटर विज्ञान में 0 से सब कुछ शुरू होता है ...
केनेथ

ईमानदारी से अंत में एकमात्र व्यक्ति / लोगों के लिए संस्करण संख्या का महत्वपूर्ण अर्थ है डेवलपर (ओं)। उपयोगकर्ताओं के लिए इसका केवल सापेक्ष अर्थ है। तो अंत में डेवलपर्स बहुत अधिक और कम या ज्यादा का उपयोग कर सकते हैं कि वे कभी भी क्या योजना महसूस करते हैं।
केनेथ

0

जैसा कि दूसरों ने कहा है, एक सटीक मानक प्रतीत नहीं होता है। हमारा संगठन निम्नलिखित संकेतन का उपयोग करता है:

रिलीज़ 1.0 ---> 2.0 (उत्पाद में एक प्रमुख नई / बेहतर सुविधा जोड़ी गई)

रिलीज़ 1.0 ---> 1.1 (उत्पाद में एक मध्यम स्तर की नई / बेहतर सुविधा जोड़ी गई)

रिलीज़ 1.0 ---> 1.001 (बगफिक्स)


1
"1.0 ---> 1.001 (Bugfixes)" वास्तव में? क्यों नहीं 1.0.1? यह अधिक सामान्य है। यदि आपके पास 100 बग फिक्स हैं तो क्या होगा?
जेम्स

@ जेम्स - यह कभी नहीं होगा (प्रसिद्ध अंतिम शब्द जो मुझे पता है)। गंभीरता से, हालांकि, हम कभी भी एक समय में 100 बगफिक्स तक नहीं पहुंचे हैं, और इसलिए इस सीमा तक पहुंचने से पहले उप रिलीज संख्या हमेशा बदल गई है (1.1,1.2,1.3 आदि)। यदि हम सीमा तक पहुँच गए तो हमें उप रिलीज़ संख्या को बढ़ाना पड़ सकता है - यह कई फिक्स के साथ एक मध्यम / स्तर में सुधार की सुविधा के रूप में गिना जाएगा।
दाल

0

"संस्करण 1.0" मील का पत्थर अनुभवी कंप्यूटर उपयोगकर्ताओं के लिए बहुत महत्वपूर्ण है, क्योंकि इसका तात्पर्य है कि कार्यक्रम किया जाता है और अपेक्षा के अनुरूप काम करता है। "0.something" संस्करण में कुछ भी तात्पर्य है कि प्रोग्रामर खुद सोचते हैं कि प्रोग्राम अभी तक नहीं किया गया है।

आप कार्यक्षमता की प्रमुख उपलब्धियों के लिए "0.1", "0.2" ... संस्करण संख्या रख सकते हैं और फिर इसे एक बिल्ड नंबर के साथ सब्मिट कर सकते हैं जो अक्सर पर्याप्त रूप से ठीक दानेदार तारीख और टाइमस्टैम्प है।


वाणिज्यिक विकास के लिए, 1.0 अक्सर इसका मतलब है कि यह छोटी गाड़ी है, अधूरी है, और बहुत जल्द बदलावों से गुजरना होगा।
डेविड थॉर्नले
हमारी साइट का प्रयोग करके, आप स्वीकार करते हैं कि आपने हमारी Cookie Policy और निजता नीति को पढ़ और समझा लिया है।
Licensed under cc by-sa 3.0 with attribution required.