मैं किसी सहयोगी से बात कर रहा था कि हम किसी पैकेज के उपयोग के बजाय एक अप्रत्याशित/अवांछित व्यवहार के बारे में बात कर रहे थे। यद्यपि हमारे अंत में किसी भी स्पष्ट दुष्प्रभाव के बिना एक आसान फिक्स (या कम से कम कामकाज) है, लेकिन उसने दृढ़ता से प्रासंगिक कोड को विस्तारित करने और पैच अपस्ट्रीम पोस्ट करने का सुझाव दिया, उम्मीद है कि भविष्य में किसी बिंदु पर स्वीकार किया जाएगा। असल में हम कई पैकेजों के विशिष्ट संस्करणों के खिलाफ पैच बनाए रखते हैं जो प्रत्येक नए निर्माण पर स्वचालित रूप से लागू होते हैं। मुख्य तर्क यह है कि यह "बदसूरत" वर्कअराउंड या नाजुक बंदर पैच के विपरीत करने के लिए सही काम है। दूसरी तरफ, मैं शुद्धता पर व्यावहारिकता का पक्ष लेता हूं और अंगूठे का मेरा सामान्य नियम यह है कि कम से कम (महत्वपूर्ण) बग फिक्स के अलावा कम से कम किसी भी चीज़ के लिए "कोई पैच"> "बंदर पैच"> "हार्ड पैच" है।(बंदर) पैच या नहीं (बंदर) पैच, यह प्रश्न
तो मैं सोच रहा हूं कि जब यह (हार्ड) पैच, बंदर पैच के लिए बेहतर है या सिर्फ एक तीसरे पक्ष के पैकेज के आसपास काम करने की कोशिश है, जो वास्तव में ऐसा नहीं करता है जो वास्तव में नहीं करता है। क्या यह मुख्य रूप से पैच के कारण के साथ करना है (उदाहरण के लिए एक बग फिक्स करना, व्यवहार को संशोधित करना, गायब सुविधा जोड़ना), दिया गया पैकेज (आकार, जटिलता, परिपक्वता, डेवलपर प्रतिक्रिया), कुछ और या कोई सामान्य नियम नहीं है और एक केस-दर-मामले आधार पर निर्णय लेना चाहिए?
पैच नदी के ऊपर भेजने के लिए एक और लाभ के लिए प्रासंगिक नहीं है कि आप उसकी कोड की समीक्षा की * लोगों द्वारा मिलता है किसने सॉफ्टवेयर * बनाया। यह महत्वहीन नहीं है। – Daenyth
पैच सबमिट करना बहुत अच्छा है, लेकिन आपके पैच को स्वीकार किए जाने वाले बाधाएं क्या हैं? अपाचे परियोजनाएं एनसीएसए httpd को अनौपचारिक पैच के सेट के रूप में शुरू हुईं क्योंकि वे किसी कारण से पैच स्वीकार नहीं करना पसंद करते थे। – Gabe