एक खुला स्रोत PHP आवेदन जारी करने के लिए सबसे अच्छा अभ्यास


10

मैं एक जीने के लिए PHP डेवलपर हूं, लेकिन इससे पहले कभी भी किसी भी ओपन सोर्स प्रोजेक्ट पर काम नहीं किया है या इसमें योगदान नहीं किया है।

मैं अपने खुद के उपयोग के लिए एक सीएमएस विकसित कर रहा हूं। मेरे पास एक कार्यशील प्रोटोटाइप है और मुझे लगता है कि एक बार यह तैयार हो गया (शायद कुछ महीने का समय) यह कुछ ऐसा हो सकता है जिसमें PHP समुदाय की रुचि होगी।

मैं काफी भरोसेमंद डेवलपर हूं लेकिन ऐसे क्षेत्र हैं जहां मेरे ज्ञान की कमी है, खासकर जब यह ओपन सोर्स मुद्दों की बात आती है:

  • प्रोजेक्ट को प्रचारित करने और / या सहयोग करने में रुचि रखने वाले अन्य लोगों को ढूंढने का सबसे अच्छा तरीका क्या है
  • मेरा सीएमएस CakePHP द्वारा संचालित है और मूल रूप से इसके ऊपर एक परत के रूप में बैठता है। मैंने GitHub पर CakePHP परियोजना को कांटा है: मैंने पहले संस्करण नियंत्रण प्रणाली (एसवीएन) का उपयोग किया है, लेकिन मैं जीआईटी के लिए काफी नया हूं इसलिए यह सुनिश्चित करना चाहता हूं कि मैं "सबसे अच्छे तरीके से" कर रहा हूं
  • मैं लाइसेंस संबंधी समस्याओं के बारे में कैसे पता लगा सकता हूं? मेरे ऐप के लिए कौन सा ओपन सोर्स लाइसेंस सबसे अच्छा होगा? इसके अलावा, मेरी परियोजना बहुत सारे अन्य ओपन सोर्स प्रोजेक्ट्स से उधार लेती है, उदाहरण के लिए मेरे पास कोड के सेक्शन हैं (जिन्हें मैंने बहुत संशोधित किया है) लेकिन जिनके पास कॉपीराइट / लाइसेंसिंग नोटिस थे- मुझे नहीं पता कि मेरे दायित्व क्या हैं? इन्हें अंदर रखना

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


लाइसेंस के सामान के बारे में कुछ अच्छे उत्तर थे, अन्य प्रश्नों के बारे में कोई विचार? संभवतः इसे कुछ पदों में विभाजित किया जाना चाहिए था!
user916336

जवाबों:


5

मैं कोई वकील नहीं हूँ, लेकिन मैं इसे एक कोशिश करूँगा।

CakePHP को MIT लाइसेंस के तहत लाइसेंस प्राप्त है , जिसका मूल अर्थ यह है कि यह उस सॉफ्टवेयर के साथ वितरित किए जाने की शर्त पर मालिकाना सॉफ्टवेयर के भीतर पुन: उपयोग की अनुमति देता है। यह जीपीएल लाइसेंस के साथ संगत है , जिसके तहत बहुत सारे ओपन सोर्स प्रोजेक्ट जारी किए गए हैं।

जैसा कि आप "उधार" अन्य परियोजनाओं के लिए , आपको उनके लाइसेंस प्रकारों की जांच करनी होगी और एक दूसरे के साथ उनकी संगतता की जांच करनी होगी और लाइसेंस प्रकार जिसे आप उपयोग करने का निर्णय लेते हैं। यदि उनमें से कोई भी GPL लाइसेंस का उपयोग करता है , तो आपको लाइसेंस राज्य की शर्तों के अनुसार, GPL के साथ रिलीज़ करना होगा

जीपीएल सामान्य उपयोग के लिए पहला कॉपीलेफ्ट लाइसेंस है, जिसका अर्थ है कि व्युत्पन्न कार्य केवल एक ही लाइसेंस शर्तों के तहत वितरित किए जा सकते हैं।

...

जीपीएल सामान्य उपयोग के लिए पहला कॉपीलेफ्ट लाइसेंस है, जिसका अर्थ है कि व्युत्पन्न कार्य केवल एक ही लाइसेंस शर्तों के तहत वितरित किए जा सकते हैं।

मेरा सुझाव जीएनयू जीपीएल v3 लाइसेंस के तहत जारी करना है क्योंकि यह आपको अपने काम पर पर्याप्त स्वामित्व अधिकार देता है जबकि अन्य इसे वाणिज्यिक और खुले दोनों परियोजनाओं में संभावित रूप से उपयोग करने की अनुमति देता है। हालांकि, याद रखें, "उधार" परियोजनाओं के लाइसेंस संगत होना चाहिए


Git और Github के साथ सर्वोत्तम प्रथाओं के लिए, git submoduleअपने स्वयं के पुस्तकालय में अन्य परियोजनाओं को शामिल करने के लिए उपयोग करें। यह सीधे फाइलों को शामिल करने से बेहतर है क्योंकि आप काम को अपने अनुसार नहीं सुझा रहे हैं।

$ git submodule add git://github.com/cakephp/cakephp.git vendor/cake-php
$ git submodule update --init

git सबमॉड्यूल भी कुछ ऐसा है जिस पर मैं अस्पष्ट हूँ। उदाहरण के लिए, मेरी परियोजना jQuery और jQuery UI का उपयोग करती है- मैं इसे एक सबमॉड्यूल के रूप में कैसे शामिल कर सकता हूं क्योंकि GitHub पर स्रोत कई फ़ाइलों और फ़ोल्डरों में विभाजित है। मेरे पास HTMLPurifier के साथ एक ही चीज है जो मैं भी उपयोग कर रहा हूं। मुझे जिन फ़ाइलों की आवश्यकता है, वे एक सबफ़ोल्डर में हैं, लेकिन गिट सबमॉड्यूल के साथ ऐसा लगता है कि मेरे पास कोई विकल्प नहीं है, लेकिन या तो अतिरिक्त सामान के भार को शामिल करने की आवश्यकता नहीं है, जो कि मेरी परियोजना को अनावश्यक रूप से बाहर कर देगा, या जैसा कि आप कहते हैं कि किसी और के काम के रूप में। मेरा अपना!

जैसा कि लाइसेंस की प्रकृति है, आप विभाजित नहीं कर सकते हैं और केवल उन फ़ाइलों को शामिल कर सकते हैं जिन्हें आप चाहते हैं। आपको पूरी परियोजना को शामिल करना चाहिए क्योंकि यह पैक है। git submodule add git://github.com/jquery/jquery.git public/vendor/jquery
adlawson

हालांकि अन्य ऐसा नहीं करते हैं: Wordpress को ले लीजिए, उन्हें लगता है कि उन्हें केवल एक फाइल को jQuery से एक फ़ोल्डर में रखने की जरूरत है और उन्हें प्रतिबद्ध किया है: github.com/wordpress/wordpress/tree/master/wp-includes/ /…

1
वर्डप्रेस संस्करण नियंत्रण के लिए SVN का उपयोग करता है। उनका गितुब भंडार केवल एक दर्पण है। जहाँ तक मुझे पता है, एसवीएन में कोई "सबमॉड्यूल" क्षमता नहीं है, इसलिए उनके पास इसे फिर से खोलने के अलावा कोई विकल्प नहीं था। दूसरे नोट पर, वर्डप्रेस को सर्वोत्तम अभ्यास के उदाहरण के रूप में लें।
adlawson

जब तक मैं कुछ याद कर रहा हूँ वहाँ jQuery के मामले में ऐसा करने का एक तरीका नहीं लगता है। उनके रेपो github.com/jquery/jquery पर एक नजर डालें , यह सिर्फ सैकड़ों व्यक्तिगत .js फाइलें और एक बिल्ड स्क्रिप्ट है- इसलिए मैं इसे jquery.com से कॉपी डाउनलोड किए बिना और इसे खुद किए बिना अपनी परियोजना में शामिल नहीं कर सकता। , या मैं गलत हूँ?

0

एरिक एस रेमंड (बाकी किताब भी पढ़ने लायक है) से इस गाइड को देखें।

व्यक्तिगत रूप से, मैं इसके बारे में ज्यादा चिंता नहीं करता - आप सीधे इस से पैसे नहीं कमा रहे हैं, और न ही कोई और है, क्योंकि पहले से ही उत्कृष्ट मुफ्त सामान्य-उद्देश्य सीएमएस की बहुतायत है। मेरा सुझाव है कि आप सबसे उदार लाइसेंस के साथ जा सकते हैं (एमआईटी या बीएसडी), जब तक कि आप एक वायरल लाइसेंस (आमतौर पर जीपीएल या एक किस्म) के तहत कोड उधार नहीं लेते हैं, उस स्थिति में आप एक लाइसेंस या किसी अन्य तरीके से उस लाइसेंस में मजबूर होते हैं।

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

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