मैं के बारे में हमारी वरिष्ठ आर्किटेक्ट एक के लिए एक प्रस्तावित निर्माण प्रणाली (Gradle / Artifactory / जेनकींस / बावर्ची) समझा गया था, और वह मेरे लिए एक टिप्पणी की है कि मैं की तरह से असहमत हैं, लेकिन करने के लिए अनुभवी पर्याप्त नहीं कर रहा हूँ वास्तव में वजन में पर।
यह परियोजना जावा लाइब्रेरी (JAR) को अन्य टीमों द्वारा पुन: उपयोग की जाने वाली कलाकृतियों के रूप में निर्मित करती है। संस्करण के लिए, मैं निम्नलिखित शब्दार्थ दृष्टिकोण का उपयोग करना चाहता हूं:
<major>.<minor>.<patch>
जहां patch
बग / आपातकालीन सुधारों को minor
इंगित करता है, पीछे-संगत रिलीज को major
इंगित करता है , और एपीआई या / या पीछे-असंगत परिवर्तनों के बड़े पैमाने पर रिफ्लेक्टरिंग को इंगित करता है।
जहां तक डिलीवरी यहां तक जाती है कि मैं क्या चाहता हूं: एक डेवलपर कुछ कोड देता है; यह एक QA / TEST वातावरण के निर्माण को ट्रिगर करता है। कुछ परीक्षण चलाए जाते हैं (कुछ स्वचालित, कुछ मैनुअल)। यदि सभी परीक्षण पास हो जाते हैं, तो एक निर्माण बिल्ड जार को हमारे इन-हाउस रेपो में प्रकाशित करता है। इस बिंदु तक JAR को ठीक से संस्करणित किया जाना चाहिए, और मेरी सोच यह थी build.number
कि पैच नंबर के रूप में कार्य करने के लिए हमारे CI टूल द्वारा स्वचालित रूप से उत्पन्न और प्रदान की गई है।
इस प्रकार, संस्करण वास्तव में होगा:
<major>.<minor>.<build.number>
फिर, build.number
सीआई उपकरण द्वारा प्रदान किया गया है।
वास्तुकार ने इसे खारिज करते हुए कहा कि CI बिल्ड नंबर का उपयोग करना अर्थ वर्जनिंग का "दुरुपयोग" था।
मेरा सवाल है: क्या यह सही है, और यदि हां, तो क्यों? और यदि नहीं, तो क्यों नहीं?