मैं अपने समय में बहुत विकास करता हूं। मैं जिन परियोजनाओं पर काम करता हूं वे सभी केवल मनोरंजन और सीखने (अभी तक) के लिए हैं। मैं आमतौर पर मावेन के साथ जावा विकास करता हूं, लेकिन मुझे .NET और पायथन में डब करने के लिए भी जाना जाता है। मैं जिन परियोजनाओं पर काम करता हूं, वे सभी खुले स्रोत लाइसेंस का उपयोग करते हैं, हालांकि उनमें से अधिकांश किसी भी सार्वजनिक कोड रिपॉजिटरी पर नहीं हैं।
जावा / मावेन विकास के लिए मुझे एक अद्वितीय groupId
(जैसे "com.mydomain") और एक अद्वितीय package
(निर्देशिका) संरचना का उपयोग करने की आवश्यकता होती है , जिसमें आमतौर पर groupId
.NET विकास शामिल होता namespaces
है जो अद्वितीय को प्रोत्साहित करता है जिसमें मैं जावा package
अवधारणा के समान सम्मेलनों का उपयोग करता हूं । विशिष्टता सुनिश्चित करने के लिए, मैं आमतौर पर अपने डोमेन नामों में से एक का उपयोग उल्टे भागों के साथ करता हूं (जैसे "ca.jessewebb"); मेरा मानना है कि यह एक बहुत ही आम बात है।
मैं एक नया, खुला स्रोत, जावा / मावेन परियोजना (चलो इसे "न्यूप्रोज" कहता हूं) बनाने के प्रारंभिक चरणों में हूं और मैं इसे गीथहब पर रखना चाहूंगा। GitHub पर मेरा उपयोगकर्ता नाम "jessewebb" है, इसलिए यह इसे एक URL देगा जैसे https://github.com/jessewebb/newproj
:। मैं "newproj.com" डोमेन नाम दर्ज तो मैं के रूप में "ca.jessewebb" और "ca.jessewebb.newproj" का उपयोग करने का फैसला किया परेशान करने के लिए नहीं चाहते हैं groupId
और package
क्रमश:।
यह मेरे साथ हुआ कि कोड में मेरी व्यक्तिगत पहचान की उपस्थिति और परियोजना के घर के हिस्से के रूप में (GitHub URL में) संभावित रूप से मेरे प्रोजेक्ट के साथ जुड़ने के बारे में दो बार सोचने के लिए संभावित योगदानकर्ता का कारण होगा। यह एक समस्या है, मैं नहीं चाहता कि यह मेरी परियोजना हो। मैं पसंद करूंगा अगर मैं कर सकता / सकती हूं, इसके बजाय, संदेश दें कि मेरे पास परियोजना नहीं है। अब, सभी ईमानदारी में, यह वास्तव में नहीं है कि एक समझौते के बड़ा क्योंकि मुझे शक है अपनी परियोजनाओं ज्यादा सामुदायिक भागीदारी जुटाने होगा लेकिन मैं यह भी भी रूप में देखते है और अधिक एक कारण के भयभीत योगदानकर्ताओं होने की किसी भी संभावना से बचने के लिए।
एक अन्य उदाहरण के लिए, मैंने कुछ साल पहले एक Google कोड परियोजना बनाई थी (चलो इसे "ओल्डप्रोज" कहते हैं)। जब मैंने प्रोजेक्ट बनाया, तो मुझे पता था कि मैं इसे Google कोड पर होस्ट करने जा रहा हूं, इसलिए मैंने groupId
"com.googlecode.oldproj" के पैकेज नाम और पैकेज का उपयोग किया , जो कि डिफ़ॉल्ट डोमेन नाम के विपरीत है Google कोड हर नई परियोजना प्रदान करता है। यह एक महान विचार नहीं था; एक या एक साल बाद, मैंने कोड को एक अलग रेपो में स्थानांतरित कर दिया और मुझे इन पहचानकर्ताओं का नाम बदलना पड़ा (अच्छी तरह से मेरे पास नहीं थालेकिन ...)। उस समय, मेरे पास कोई डोमेन नाम नहीं था और मैंने "oldproj.com" डोमेन नाम खरीदना समाप्त कर दिया और मैंने इसका उपयोग किया। मुझे यह पसंद आया क्योंकि इसने परियोजना को अपनी पहचान दी और मैं हर जगह कोड पर अपना नाम नहीं चिपका रहा था। मैं आसानी से "jessewebb.ca" डोमेन नाम पंजीकृत कर सकता था और पैकेज नाम के रूप में "ca.jessewebb.oldproj" का उपयोग कर सकता था, लेकिन मैंने ऐसा नहीं किया क्योंकि मेरे पास भी यही चिंता थी।
तो मेरा सवाल है ...
पैकेज / नामस्थान की विशिष्टता बनाए रखते हुए ओपन सोर्स प्रोजेक्ट बनाते समय मैं अपने स्वयं के (डोमेन) नामों का उपयोग करने से कैसे बच सकता हूं?
जैसा कि परियोजनाएं अधिक गति प्राप्त करती हैं, यह डोमेन नामों को पंजीकृत करने के लिए समझ में आता है, लेकिन यह मूर्खतापूर्ण लगता है और इससे पहले ऐसा करने के लिए पैसे की बर्बादी होती है। मुझे एहसास है कि मुझे वास्तव में कोड में इसका उपयोग करने के लिए डोमेन नाम का मालिक नहीं है, लेकिन यह गलत लगता है और इस बीच आपके द्वारा इसे छीनने वाले एक स्क्वीटर को जन्म दे सकता है। इस दुविधा के बारे में अन्य लोग क्या करते हैं? क्या लोकप्रिय (व्यापक रूप से उपयोग किए जाने वाले, बड़े समुदाय, आदि) के उदाहरण हैं ओपन सोर्स प्रोजेक्ट्स जिसमें मूल डेवलपर की पहचान अपने स्वयं के पहचानकर्ता (ओं) के हिस्से के रूप में होती है?