"अपस्ट्रीम" क्या है?


27

मैं हमेशा लोगों को यह कहते हुए सुनता हूं कि "अपस्ट्रीम मर्ज" करना बेहतर है और सामान की तरह जब यह डिजाइनिंग सॉफ्टवेयर और पसंद आता है। मुझे लगता है कि यह मुख्यधारा के लिनक्स कर्नेल सामान के साथ करना है लेकिन मैं शायद गलत हूं।

और यह भी कि, "अपस्ट्रीम" के विपरीत क्या है। यदि "अपस्ट्रीम" जाना अच्छा नहीं है तो विकल्प क्या है और क्यों?

जवाबों:


33

अपस्ट्रीम उस घटक के प्रवर्तक को संदर्भित करता है जिस पर चर्चा की जा रही है।

उदाहरण के लिए, यदि आपने एक टोरेंट क्लाइंट लिखा है, जो कि लेबरट्रांसमीशन पर आधारित है, तो आपके क्लाइंट में एक बग पाया जाता है, जिसे वापस लेबरट्रांसफ्रेम पर ट्रैक किया जाता है। बग को एक पैच के साथ तय किया गया है जो अब आपके क्लाइंट में शामिल है।

इस संदर्भ में पैच अपस्ट्रीम को विलय करने का मतलब होगा कि समावेश के लिए libtransmission के लेखकों को पैच भेजें। इस तरह यह फिक्स हर प्रोजेक्ट के लिए प्रचारित किया जाएगा, जो कि लेबरट्रांसफार्मेशन पर आधारित है।

अपस्ट्रीम को मर्ज करने का विकल्प पैच को अपने लिए रखना है।


तो सब कुछ ऊपर-नीचे विलय करने से ओपन-सोर्स मानसिकता के साथ जाता है? सॉफ्टवेयर के कई टुकड़ों के लिए एक फिक्स?
n0pe

4
अपस्ट्रीम को मर्ज करना एक ऐसा काम है जिसे आप ओपन सोर्स सॉफ्टवेयर के साथ कर सकते हैं क्योंकि आपके पास सोर्स तक पहुंच है और आप बग्स को खुद ही ढूंढ और ठीक कर सकते हैं। बंद स्रोत में, अधिकांश पार्टियों के पास ऐसी पहुंच नहीं है (हालांकि कुछ स्थितियों में लाइसेंस इसमें शामिल हो सकते हैं) इसलिए वे बग की रिपोर्ट करने और / या वर्कअराउंड ढूंढने तक सीमित हैं। अपस्ट्रीम एक बहुपरत सॉफ्टवेयर को विकसित करने के दृष्टिकोण को संदर्भित करता है और यह केवल बगफिक्स में सुधार के लिए भी लागू होता है।
plco

इसे दूसरे तरीके से रखने के लिए: "अपस्ट्रीम" का अर्थ है "जो आपको स्रोत से मिला"; ओपन सोर्स दुनिया के बाहर, कोई अपस्ट्रीम नहीं है, जैसा कि आपको स्रोत बिल्कुल नहीं मिला। =)
1

21

उदाहरण के रूप में उबंटू का उपयोग करना।

उबंटू एक वितरण है जो बहुत सारे सॉफ्टवेयर को एक साथ पैक करता है, छोटे और बड़े। ग्राफिक ड्राइवर, एक्स सर्वर, और गनोम, दूसरों के बीच में हैं। उबंटू खुद उन सॉफ्टवेयर को विकसित नहीं कर रहा है। उबंटू सॉफ्टवेयर को एक साथ "बस" पैक कर रहा है, यह सुनिश्चित करता है कि व्यक्तिगत घटक एक साथ काम करते हैं। वह सभी सॉफ्टवेयर जो उबंटू एक साथ पैकिंग कर रहे हैं, उन्हें उबंटू के दृष्टिकोण से ऊपर की ओर कहा जाता है ।

सभी सॉफ्टवेयर को एक साथ मिलाने की प्रक्रिया में बग पॉप अप हो सकते हैं। बग सॉफ्टवेयर घटक में से एक में हो सकता है, उदाहरण के लिए सूक्ति, या यह बहुत ही खास तरीके से हो सकता है, जो उबंटू कर रहा है। आखिरकार, एक वितरण एक वितरण है क्योंकि यह कुछ चीजों को अपने आप में बहुत ही खास तरीके से करता है।

अगर बग उबंटू के काम करने के तरीके के कारण होता है, तो उबंटू को उस बग को अपने लिए ठीक करना होगा। यदि बग वास्तव में सॉफ्टवेयर घटकों में से एक में है, उदाहरण के लिए ग्नोम, तो उबंटू को गनोम को पैच करना होगा। जब उबंटू पैच को वापस गनोम को भेजता है, तो अन्य भी पैच से लाभ उठा सकते हैं, फिर उबंटू उस पैच को ऊपर की तरफ भेज रहा है ।

यदि उबंटू उस पैच अपस्ट्रीम को नहीं भेजने का फैसला करता है, या अपस्ट्रीम प्रोजेक्ट पैच को अस्वीकार कर देता है (लेकिन उबंटू अभी भी पैच रखने का फैसला करता है), तो उबंटू ने तकनीकी रूप से परियोजना को कांटा कर दिया है।

अपस्ट्रीम का विपरीत बहाव नीचे होगा, उबंटू ग्नोम से नीचे की ओर है। मैं उस शब्द को अक्सर सुन / पढ़ नहीं पाता हूं।

विकिपीडिया में अपस्ट्रीम के बारे में लेख भी देखें ।

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