किसी मौजूदा परियोजना के पूर्ण पुनर्लेखन को जारी करने के लिए उचित शिष्टाचार क्या है?


12

मैं ओपनसोर्स की दुनिया में नया हूं। मैं जिस प्रोजेक्ट पर काम कर रहा हूं वह गितुब पर रहता है। (केवल संदर्भ के लिए) मैं जिस प्रोजेक्ट पर काम कर रहा हूं वह Plex Media Server के लिए प्लग-इन है। मैंने अपना प्लग-इन Plex में जमा करने की योजना बनाई है ताकि यह उनके "ऐप स्टोर" में शामिल हो जाए। अब मेरे सवाल पर।

जब मैंने पहली बार शुरुआत की, तो मुझे एक पुराना अर्ध-परित्यक्त प्लगइन मिला, जिसमें से कुछ मैं चाहता था, लेकिन बहुत अच्छी तरह से नहीं। मैंने उस रेपो में योगदान देकर शुरुआत की। मुझे रेपो पर पूरे अधिकार के साथ तुरंत एक सहयोगी बना दिया गया क्योंकि वर्तमान मालिक ने कहा कि वह अब इसके साथ खिलवाड़ करने में व्यस्त था। हालांकि, जैसा कि मैंने कोड में गहराई से खुदाई करना शुरू किया, मुझे एहसास हुआ कि यह व्यर्थ था। मौजूदा कोड आधार भयानक था और इसे ठीक करने का कोई कारगर तरीका नहीं था। मैं खरोंच से बस शुरू हुआ। मेरे नए प्लगइन में मैंने जो एकमात्र कोड इस्तेमाल किया था वह कोड था जिसे मैंने शुरू में प्रतिबद्ध किया था।

अब यह परियोजना जारी होने के लिए तैयार है। हालाँकि मैं इस बारे में अनिश्चित हूं कि ऐसा करने के बारे में कैसे जाना जाए। मैं अपने विकल्प इस प्रकार देखता हूं:

  1. एक नया रेपो बनाएं और मौजूदा के बारे में भूल जाएं। मुझे यकीन नहीं है कि मुझे पिछले रेपो और इसके योगदानकर्ताओं का भी उल्लेख करना चाहिए। मैंने उस कोड / संसाधन का उपयोग नहीं किया और पूरी तरह से नया कोड आधार बनाया है। जबकि प्लगइन वही काम करता है जो पुराने ने किया था, वह इसे पूरी तरह से नए तरीके से और अधिक कुशल तरीके से करता है।

  2. मैंने मौजूदा रेपो को कांटा, मौजूदा कोड को हटा दिया, और अपना नया कोड बनाया। मैं वास्तव में Git में नया हूं, इसलिए मुझे यकीन नहीं है कि यह संभव है।

  3. मैं मौजूदा रेपो में अपने परिवर्तन करता हूं और देखता हूं कि वर्तमान योगदानकर्ताओं को कैसा कहना है।

तीन विकल्पों में से, मैं दृढ़ता से पहले की ओर झुक रहा हूं। परंतु! मैं ओपन सोर्स के लिए नया हूं और मैं यह सुनिश्चित करना चाहता हूं कि मैं उचित शिष्टाचार के अनुसार चीजें कर रहा हूं। मैं अपनी पहली परियोजना को अपने चेहरे पर नहीं उतारना चाहता और एक आपदा बन सकता हूं। विकल्प दो बुरा नहीं लगता है, लेकिन मुझे यकीन नहीं है कि मैं ऐसा करने वाला हूं। मुझे यकीन नहीं है कि इतिहास और विचलन कैसे काम करेंगे। हम केवल कोड के बारे में 500 - 1000 लाइनों के बारे में बात कर रहे हैं। तो यह एक विशाल कोड आधार नहीं है।

आप प्रदान कर सकते हैं किसी भी इनपुट के लिए धन्यवाद!


10
चूंकि यह सब नया कोड है, मैं # 1 के साथ जाना चाहूंगा क्योंकि पुरानी परियोजना का इतिहास वास्तव में अप्रासंगिक है। लेकिन README के ​​साथ, "एक विचार के आधार पर ...." की तर्ज पर कुछ जोड़ना अच्छा होगा।
पीटर रोवेल

2
@PeterRowell कृपया उस टिप्पणी को एक उत्तर में रखें ताकि मैं इसे बढ़ा सकूं!
मैटाडेवी

@PeterRowell सलाह के लिए धन्यवाद। बढ़िया विचार है।
मैट केलर

1
2 के लिए, मौजूदा रिपॉजिटरी को हटाने की कोई आवश्यकता नहीं है। जो कुछ भी आप करते हैं, मुझे यकीन है कि मूल डेवलपर आपको यह बताने की सराहना करेंगे कि आप परियोजना को आगे बढ़ा रहे हैं
जेम्स

जवाबों:


13

चूंकि यह सब नया कोड है, मैं # 1 के साथ जाना चाहूंगा क्योंकि पुराने प्रोजेक्ट का प्रतिबद्ध इतिहास वास्तव में अप्रासंगिक है। लेकिन README के ​​साथ, "एक विचार के आधार पर ...." की तर्ज पर कुछ जोड़ना अच्छा होगा।

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

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