इसे छोड़कर सामग्री पर बढ़ने के लिए

विकास

यह पृष्ठ बताता है कि हमारी रिपॉजिटरी का आयोजन कैसे किया जाता है, कैसे कोड को संपादित करना शुरू करें और अपना पहला पुल अनुरोध बनाएं, और जेलिफ़िन में पुल अनुरोधों पर कुछ सामान्य प्रक्रियाएं।

आपको किस पर काम करना चाहिए?

गितुब पर समीक्षा करने और योगदान करने के लिए जेलीफिन संगठन के बहुत सारे प्रोजेक्ट हैं। संक्षेप में, यहाँ दो सबसे बड़े हैं, एक पृष्ठभूमि के विकास के लिए और एक सामने वाले के लिए:

 विकास विकास
  • जेलीफिन सर्वर - जेलीफिन एप्लिकेशन का बैक एंड सर्वर। इसे .NET Core 3.1 और C# का उपयोग करके बनाया गया है।
  • जेलीफिन वेब - मुख्य जेलीफिन ग्राहक अनुप्रयोग। वेब के लिए बनाया गया है, लेकिन हमारे कुछ अन्य ग्राहकों में भी उपयोग किया जाता है जो इस वेब क्लाइंट के रैपर हैं।

ध्यान दें कि प्रत्येक रिपॉजिटरी में उस प्रोजेक्ट के साथ आरंभ करने के बारे में अपने स्वयं के दस्तावेज भी हैं, जो आमतौर पर README रिपॉजिटरी में पाया जाता है। आप संगठन के स्रोत पेड़ को भी देख सकते हैं कि कुछ बड़ी परियोजनाएं कैसे संरचित हैं।

वास्तविक विकास शुरू करने का सबसे अच्छा तरीका संबंधित भंडार में समस्याओं की सूची के माध्यम से जाना है, एक समस्या है जिस पर आप काम करना चाहते हैं, और हैकिंग शुरू करें! प्रबंधन टीम द्वारा समस्याओं की नियमित रूप से समीक्षा की जाती है, और लेबल असाइन किए जाते हैं जो आपको अपने कौशल सेट के भीतर समस्याओं का पता लगाने में मदद करें। एक बार जब आप किसी समस्या पर काम करना शुरू कर देते हैं, तो कृपया इस पर टिप्पणी करें कि यह समस्या पर काम करने के आपके इरादे को दर्शाता है, ताकि काम की अनावश्यक नकल से बचा जा सके।

मुख्य प्रश्न प्रकार

प्रश्न प्रकारों की एक सूची प्रश्न दिशानिर्देश अनुभाग में पाई जा सकती है।

अगर कोई समस्या नहीं है तो क्या होगा?

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

मुझे परिवर्तन कैसे करना चाहिए?

एक बार जब आप कुछ ऐसा पा लेते हैं, जिस पर आप काम करना चाहते हैं या सुधारना चाहते हैं, तो अगला कदम यह है कि आप अपने कोड में बदलाव करें, उनका परीक्षण करें और फिर GitHub पर एक पुल अनुरोध (PR) सबमिट करें।

सादगी के लिए, सभी उदाहरण यह मानते हैं कि डेवलपर लिनक्स पर GitHub तक पहुंच के साथ काम कर रहा है, हालांकि सामान्य विचारों को HTTP आधारित GitHub इंटरफेस पर लागू किया जा सकता है, और विंडोज या मैकओएस में अनुवाद किया जा सकता है।

यदि आप Git से परिचित नहीं हैं, तो हम यह समझने के लिए आधिकारिक प्रलेखन की अनुशंसा करते हैं कि यह संस्करण नियंत्रण प्रणाली कैसे काम करती है और इसका उपयोग कैसे किया जाता है।

रेपो की अपनी कॉपी तैयार करें

पहला कदम उस परियोजना के गिट भंडार की एक प्रति तैयार करना है जिसे आप योगदान देना चाहते हैं। जेलीफिन योगदान के लिए एक "कांटा, सुविधाएँ, और जनसंपर्क" मॉडल का अनुसरण करता है।

  1. GitHub पर, Jellyfin रिपॉजिटरी "फोर्क" जिसके लिए आप उसी रिपॉजिटरी के "फोर्क" बटन का उपयोग करके अपने स्वयं के उपयोगकर्ता खाते में योगदान करना चाहते हैं।
  2. अपने स्थानीय मशीन पर अपने कांटे को क्लोन करें और निर्देशिका दर्ज करें: git क्लोन git@github.com: yourusername / projectname.gitcd projectname /
  3. "अपस्ट्रीम" रिमोट जोड़ें, जो आपको मुख्य प्रोजेक्ट से परिवर्तन आसानी से डाउनलोड करने की अनुमति देता है: git Remote add upstream git@github.com: jellyfin / projectname.git
  4. गिट सबमॉडल्स को प्रारंभ करें; अधिकांश प्रोजेक्ट्स में कम से कम एक Git सबमॉड्यूल अपडेट होता है-सबटूडल्स के भीतर फाइल एडिट करने वाली फाइल को संपादित करें। ऐसा करने से अवांछित दुष्प्रभाव हो सकते हैं, जिसमें आपके काम को अधिलेखित करना भी शामिल है। हमेशा सबमॉड्यूल को अपने क्लोन क्लोन में कहीं और संशोधित करें।
  5. Jellyfin.Server प्रोजेक्ट को सफलतापूर्वक चलाने के लिए, यह सर्वर और वेब क्लाइंट प्रोजेक्ट दोनों की जाँच करता है।
  6. यार्न या एनपीएम के साथ जेलीफिन वेब परियोजना का निर्माण करें, और परिणामी डिस्टर्ब फ़ोल्डर के स्थान को कॉपी करें। अपने Jellyfin.Server प्रोजेक्ट में एक पर्यावरण वैरिएबल जोड़ें जिसका नाम JELLYFIN_WEB_DIR है जो आपके डिस्टर्ब फोल्डर के पूर्ण पथ पर सेट वैल्यू के साथ है।

अब आप प्रोजेक्ट का निर्माण या संशोधन शुरू करने के लिए तैयार हैं।

रेपो में बदलाव करें

एक बार जब आप अपनी जमा राशि जमा कर लेंगे, तो आप काम कर सकते हैं।

  1. नवीनतम परिवर्तन के साथ काम करने के लिए अपस्ट्रीम मास्टर के खिलाफ अपनी स्थानीय शाखाओं को रिले करें: git fetch -allgit rebase upstream / master
  2. अपने परिवर्तन करने के लिए मास्टर की एक स्थानीय सुविधा शाखा बनाएँ: git checkout -b my-feature मास्टर
  3. इस स्थानीय सुविधा शाखा में अपने परिवर्तन और प्रतिबद्धताएं बनाएं।
  4. अपने काम को पूरा करने के बाद अपने स्थानीय शाखा कार्यालय में चरण 1 को दोहराएं, यह सुनिश्चित करने के लिए कि आपके द्वारा घोषित किए गए अन्य कार्यों के साथ कोई संघर्ष नहीं है।
  5. अपने GitHub कांटे पर स्थानीय सुविधा शाखा अपलोड करें: git push –set-upstream मूल my-feature
  6. GitHub पर, नीचे दी गई सलाह का पालन करके updraft मास्टर ब्रांच के खिलाफ एक नया RP बनाएं।
  7. एक बार जब आपका आरपी मर्ज हो जाता है, तो अपनी स्थानीय शाखाओं को अद्यतित रखना सुनिश्चित करें: git fetch -allgit checkout mastergit rebase upstream / mastergit push -u original master
  8. यदि आपको इसकी आवश्यकता नहीं है, तो अपनी स्थानीय सुविधा की शाखा को हटा दें: git Branch -d my-feature

CONTRIBUIDORES.md

यदि यह आपका पहली बार किसी विशेष रिपॉजिटरी में योगदान देने वाला कोड है, तो कृपया इसे Jellyfin योगदानकर्ता अनुभाग के अंत में फ़ाइल CONTRIBUTORS.md में जोड़ें। हालांकि GitHub इस पर नज़र रखता है, कि दस्तावेज़ में लिखित चीजें साफ हो जाती हैं यदि कोड GitHub छोड़ देता है और सभी को जल्दी से यह देखने की अनुमति देता है कि कॉपीराइट या प्रशंसा के लिए प्रोजेक्ट पर किसने काम किया है!

आधिकारिक शाखाएँ

फ़ीचर शाखाएँ

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

एक बार जिस सुविधा के लिए एक फीचर शाखा बनाई गई थी वह तैयार हो गई है, इसे मास्टर और हटाए गए फीचर शाखा में एक ले में विलय किया जा सकता है। वैकल्पिक रूप से, बहुत लंबी जीवन विशेषताओं के लिए, कुछ "स्थिर" स्नैपशॉट को आवश्यकतानुसार मास्टर में विलय किया जा सकता है।

मास्टर शाखा

मास्टर शाखा परियोजना का मुख्य चेहरा और मुख्य विकास शाखा है। आपातकालीन रिलीज़ हॉटफ़िक्स को छोड़कर, सभी सार्वजनिक संबंध शिक्षक को लक्षित करना चाहिए। एक सामान्य नियम के रूप में, किसी भी आरपी को मास्टर को नहीं तोड़ना चाहिए और ऐसा नहीं होने के लिए विलय से पहले सभी आरपी का परीक्षण किया जाना चाहिए। हम केवल मानव हैं और यह होने की संभावना है, लेकिन सामान्य तौर पर मास्टर से निर्माण करने के लिए सुरक्षित होना चाहिए यदि आप जेलीफिन का नवीनतम और सबसे बड़ा संस्करण चाहते हैं।

शूटिंग के लिए एक अनुरोध का परीक्षण

किसी और के निकासी अनुरोध का परीक्षण करने के लिए, आपको अपने स्थानीय भंडार में परिवर्तन आयात करना होगा।

  1. पुल अनुरोध में परिवर्तन प्राप्त करें और उन्हें एक नई स्थानीय शाखा में बाँधें: गिट्टी अपस्ट्रीम पुल / / हेड: माय-टेस्टिंग-ब्रांचनोट GitHub पर निष्कर्षण अनुरोध संख्या है।
  2. नई स्थानीय शाखा की जाँच करें: मेरे परीक्षण शाखा की जाँच करें
  3. कोई भी परीक्षण करें या परीक्षण करने के लिए आवश्यक बनाता है, फिर वापस मास्टर पर जाएं और शाखा को हटा दें: git checkout mastergit branch -D my-testing-branch

निष्कर्षण अनुरोध दिशानिर्देश

नया आरपी जमा करते समय, कृपया निम्नलिखित करें। यदि आप पहले से ही नहीं हैं, तो कृपया एक सगाई संदेश कैसे लिखें यह उपयोगी सगाई संदेश लिखने के लिए एक महान संसाधन है।

  • आरपी दाखिल करने से पहले, कद्दू "कबाड़" समग्र कहानी को साफ रखने के लिए सहमत होता है। एक सिंगल कमिट में एक महत्वपूर्ण बदलाव को कवर किया जाना चाहिए: अपने सभी परिवर्तनों को कुचलने से बचें, विशेष रूप से बड़े आरपी के लिए जो बहुत सारी फाइलों को छूते हैं, लेकिन 'फिक्स्ड' को भी नहीं छोड़ते हैं, जो आपके शाखा इतिहास में टाइप करता है, क्योंकि यह एक है परियोजना की अंतिम कहानी में अनावश्यक अव्यवस्था।
  • एक अच्छा शीर्षक लिखें जो जल्दी से वर्णन करता है कि क्या बदल दिया गया है। उदाहरण के लिए, "जेलिफ़िन को एलडीएपी समर्थन जोड़ें।" जैसा कि ह्विट टू गेट एंगेजमेंट मैसेज में लिखा गया है, हमेशा अनिवार्य मनोदशा का उपयोग करें, और शीर्षक को संक्षिप्त लेकिन वर्णनात्मक रखें। शीर्षक अंततः चैंज में प्रवेश होगा, इसलिए कृपया उपयुक्त राजधानियों का उपयोग करने की कोशिश करें लेकिन कोई विराम चिह्न नहीं; कृपया ध्यान दें कि कोर टीम विलय से पहले इस मानक की बेहतर पुष्टि करने के लिए शीर्षक बदल सकती है।
  • कुछ भी लेकिन सबसे तुच्छ परिवर्तनों के लिए जिन्हें (संक्षेप में) शीर्षक में पूरी तरह से वर्णित किया जा सकता है, पीआर टेम्पलेट का अनुसरण करें और वर्णन करने के लिए एक पीआर निकाय लिखें, जितना संभव हो उतना विस्तार से: क्यों बदल जाता है। यदि संभव हो तो कीवर्ड (फिक्स, क्लोजिंग, एड्रेस, आदि) के साथ विशिष्ट विषयों को संदर्भ दें। कैसे विषय को संबोधित किया गया है (यदि लागू हो) और संक्षेप में परिवर्तनों का वर्णन करें, विशेष रूप से बड़े आरपी के लिए।
  • यदि आपका निकासी अनुरोध अभी तक समाप्त नहीं हुआ है, तो कृपया इसे खोलने पर इसे "ड्राफ्ट" के रूप में चिह्नित करें। जब तक यह टैग चालू रहता है, तब तक पुल अनुरोध को मर्ज नहीं किया जाएगा, और संशोधन केवल टिप्पणियों के रूप में रहना चाहिए। एक बार जब आप अपने आरपी की अंतिम स्थिति से संतुष्ट हो जाते हैं, तो कृपया इस टैग को हटा दें; इसे भूल जाने से आपके आरपी को अनजाने में अनदेखा किया जा सकता है जैसे कि यह अभी भी सक्रिय विकास में था! निष्क्रिय WIPs कभी-कभी टीम पिंग्स को स्थिति के लिए पूछ सकते हैं, और कोई प्रतिक्रिया नहीं होने पर बंद कर दिया जाता है।
  • यदि संभव हो, और विशेष रूप से पैच के बाद बड़े या जटिल पुल अनुरोधों की निगरानी करने से बचें। सत्यापित करने के लिए अनावश्यक समीक्षाएं मजबूर करती हैं कि परिवर्तन अभी भी ठीक हैं और ठीक से निर्मित हैं।
  • एक समीक्षा और चर्चा की अपेक्षा करें। यदि आप एक अच्छे विवरण के साथ और समीक्षा के माध्यम से अपने परिवर्तनों का बैकअप नहीं ले सकते हैं, तो कृपया उस पर पुनर्विचार करें यदि यह बिल्कुल किया जाना चाहिए। सभी सार्वजनिक संबंधों को प्रबंधन टीम के एक सदस्य द्वारा कम से कम एक अनुमोदन समीक्षा की आवश्यकता होती है, हालांकि हम किसी भी योगदानकर्ता द्वारा समीक्षाओं का स्वागत करते हैं और प्रोत्साहित करते हैं, खासकर यदि यह आपके द्वारा ज्ञात क्षेत्र में है। अधिक आँखें हमेशा बेहतर होती हैं।
  • सभी सार्वजनिक संबंधों को मास्टर में विलय होने से पहले कम से कम दो टीम के सदस्यों की समीक्षा की आवश्यकता होती है, हालांकि किसी भी योगदानकर्ता की समीक्षाओं का स्वागत है! दूसरी टीम के सदस्य की समीक्षा के बाद, आरपी को तुरंत विलय किया जा सकता है, या यदि आवश्यक हो तो अन्य योगदानकर्ताओं से स्पष्ट रूप से अनुरोध की गई समीक्षाओं या टिप्पणियों को आगे बढ़ाया जा सकता है।

हमें सभी विकास निर्भरताओं को स्थापित करने और कंटेनर को बाहर निकालने से पहले कोड को संकलित करने और चलाने की आवश्यकता है।

टिप्पणी

प्रत्येक कमांड को एक अलग लाइन पर रखें। जिस कंटेनर में हम परीक्षण करेंगे, उसे जफ्फेस्ट कहा जाता है। डॉकर के अंदर, हर बार जब एंट्री पॉइंट एक्सेलेबल होता है, सेशन फिर से शुरू होता है, इसलिए इसे जारी रखने के लिए इसे फिर से चलाएं। इसलिए हम नए संस्करण को पुनः लोड करने के लिए इसे स्पष्ट रूप से मारते हैं।

मास्टर शाखा

docker exec -ti jftest bashapt-get update && apt-get install इंस्टॉल करें gnupg wget apt-transport-https-curlwget -qO- https://packages.microsoft.com/keys/microsoft.asc | gpg --dearmor> microsoft.asc.gpg && mv microsoft.asc.gpg/etc/apt/trusted.gpg। d / wget -q https://packages.microsoft.com/config/debian/10/prod.list && mv prod.list /etc/apt/sources.list.d/microsoft-prod.listcurl -sS https: / /dl.yarnpkg.com/debian/pubkey.gpg | apt-key add - && echo "deb https://dl.yarnpkg.com/debian/ स्थिर मुख्य" | टी / आदि / उपयुक्त / स्रोत। list.d / thread.listapt-get update && apt-get install डॉटनेट- sdk-3.1 यार्नबॉक्स / ऑप्ट && git क्लोन https://github.com/jellyfin/jellyfin.git && git clit https://github.com/ jellyfin / jellyfin-web.gitmv / jellyfin / /jellyfin.bak && cd / opt / jellyfin && dotnet प्रकाशित जेलीफिन। सर्वर --configuration डीबग --आउटपुट = "/ जेलीफिन" - स्व-निहित - क्रंट लाइनक्स-x64cd / opt / jellyfin-web && यार्न स्थापित करें और& यार्न बिल्ड && cp -r / opt / jellyfin-web / dist / jellyfin / जेलीफिन-वेबकिल -15 $ (पिडोफ जेलीफिन)

फेंकने का अनुरोध

सबसे पहले, मास्टर शाखा बनाने के लिए अपने कंटेनर को कॉन्फ़िगर करने के लिए पिछले चरणों को पूरा करें।

टिप्पणी

GitHub पर निष्कर्षण अनुरोध संख्या है।

docker exec -ti jftest bashcd / opt / jellyfingit fetch मूल पुल /  / हेड: माय-टेस्टिंग-ब्रांचिट मेरा-टेस्टिंग-ब्रांचडॉट मर्ज को जेलीफिन प्रकाशित करें। सेवर --configuration डिबग --आउटपुट = "/ जेलीफिन" - स्वयं-निहित - क्रंटीन लक्स-एक्स-रेस्किल -15 $ (पिडोफ जेलिफ़िन)

hi_INहिन्दी
es_ESEspañol zh_CN简体中文 arالعربية pt_BRPortuguês do Brasil bn_BDবাংলা ru_RUРусский ja日本語 de_DEDeutsch fr_FRFrançais it_ITItaliano hi_INहिन्दी