- Jira से GitLab में माइग्रेट करने वाले एक open source प्रोजेक्ट का अनुभव
- पृष्ठभूमि
- 15 फ़रवरी 2024 से Jira server प्रोडक्ट सपोर्ट बंद होने की खबर
- उपलब्ध विकल्प: Pivotal Tracker, IBM Engineering Requirements Management DOORS Next, Rally Software, GitLab, ServiceNow Agile Development, GitHub आदि
- जो लोग Jira server इस्तेमाल कर रहे थे, वे क्या करें? क्यों न GitLab में माइग्रेट करने वाला एक प्रोजेक्ट बनाया जाए?
- Jira → GitLab माइग्रेशन फीचर की स्थिति
- GitLab में Jira issue के title, description, label कॉपी किए जाते हैं
- बाकी metadata को description के रूप में लाया जाता है
- Jira User को GitLab User से मैप करने के लिए UI उपलब्ध है
- Jira → GitLab माइग्रेशन की सीमाएँ
- Jira Integration सेट करना अनिवार्य
- केवल Jira API v3 उपलब्ध
- Jira और GitLab की syntax अलग होने से सटीक माइग्रेशन नहीं होता
- description में ‘Heading 1’, ‘Heading 2’, ‘Heading 3’ क्रमशः ‘Numbered’, ‘SubNumbered’, ‘SubNembered 2’ में बदल जाते हैं
- GitLab Markdown syntax इस्तेमाल करता है, जबकि Jira ‘ADF(Atlassian Document Format)’ नाम का अपना अलग फ़ॉर्मैट इस्तेमाल करता है, इसलिए यह अंतर आता है
- issue type, priority, label भी पूरी सटीकता से माइग्रेट नहीं होते
- इन-हाउस माइग्रेशन प्रोजेक्ट की दिशा
- लक्ष्य:
- यह तय करना कि Jira epic कहाँ जाएँ और issue कहाँ जाएँ
- title, description, label, component आदि Jira issue फ़ील्ड GitLab के किन फ़ील्ड में जाएँगे, इस पर ठोस माइग्रेशन करना
- Jira epic को GitLab epic में ले जाते समय, यूज़र को यह चुनने की स्वतंत्रता दी गई कि उसे sub group के sub epic में माइग्रेट करना है या upper group के epic में
- issue को issue के रूप में ही माइग्रेट किया गया
- सीमाएँ:
- sub-task को भी sub-task के नीचे issue में मौजूद task के रूप में माइग्रेट करना चाहते थे, लेकिन GitLab का task API इसे सपोर्ट नहीं करता
- Jira में फ़ील्ड बहुत ज़्यादा हैं;
- description, label, component जैसी सरल सुविधाएँ GitLab में भी समर्थित हैं, इसलिए इन्हें माइग्रेट किया जा सकता है
- But!!! time tracking और security से जुड़े फ़ील्ड GitLab में समर्थित नहीं हैं, इसलिए उनका माइग्रेशन नहीं हो पाता
- अंतिम डिज़ाइन
- Jira प्रोजेक्ट → GitLab प्रोजेक्ट
- Jira epic → GitLab epic
- Jira issue → GitLab issue
- Jira के title, description, version, story point, resolution को GitLab में सीधे मैप किया गया
- Jira resolution → GitLab closed, Jira story point → GitLab weight
- Jira issue type, component, status, priority → GitLab label, scoped label का उपयोग करके माइग्रेट
- custom field भी विकसित किया गया
- description के फ़ॉर्मैट को regular expression से पूरी तरह parse करके, सामग्री को Markdown में बदलकर माइग्रेट किया गया
- प्रोजेक्ट परिणाम
- Jira के vanilla mode का माइग्रेशन उपयोगी है
- plugin और automation को छोड़ दें तो माइग्रेशन अच्छी तरह हो जाता है
- ज़्यादातर चीज़ें GitLab Label में मैप की गईं
- target upper group में epic बनाए गए
- Jira में जुड़े issue link भी GitLab में माइग्रेट किए गए
- Jira wiki markup को Markdown converter से बदला गया
- issue में attachment और comment भी जोड़े गए
- बहुत अधिक custom field बनाने पर माइग्रेशन कठिन हो जाता है
- क्या अच्छा रहा
- पहले cloud version बनाया गया, फिर server के लिए अतिरिक्त समर्थन जोड़ा गया
- सिर्फ custom field mapping सेट कर दें तो अधिकांश चीज़ों का माइग्रेशन हो जाता है
- parallel processing को ठीक से व्यवस्थित कर, बिना इसके मुकाबले 3 गुना से अधिक तेज़ माइग्रेशन संभव किया गया
- ट्रेंड के अनुसार YAML आधारित configuration management अपनाया गया
- इसे open source बनाया गया ताकि कोई भी माइग्रेशन कर सके
- Brew के ज़रिए पैकेज वितरित किया गया
- सुधार की ज़रूरत
- Jira server से माइग्रेशन करते समय
- sprint mapping अतिरिक्त रूप से चाहिए
- Cascade field के लिए कोई तरीका नहीं है
- Jira cloud से माइग्रेशन करते समय
- plugin-संबंधित data migration समेत कई वास्तविक मामलों पर टेस्टिंग की ज़रूरत है
- संबंधित open source प्रोजेक्ट पेज:
अभी कोई टिप्पणी नहीं है.