मैं एक पाइथन लाइब्रेरी जारी करने वाला हूं जो पिछले कुछ हफ्तों में काम कर रहा हूं। मैं अजगर निर्भरता के बारे में बहुत पढ़ा है लेकिन कुछ अभी तक काफी स्पष्ट नहीं है:क्या मुझे अपने पायथन निर्भरता संस्करणों को पिन करना चाहिए?
कुछ लोगों का नाटक आप कभी नहीं अपने निर्भरता संस्करणों पिन के रूप में यह उन निर्भरता उन्नयन से अपनी लाइब्रेरी के उपयोगकर्ताओं रोका जा सके चाहिए।
कुछ अन्य का दावा है कि आप हमेशा अपने निर्भरता संस्करणों पिन चाहिए क्योंकि यह गारंटी है कि आपके रिहाई जिस तरह से यह किया था जब आप इसे विकसित और है कि एक निर्भरता में एक को तोड़ने परिवर्तन में तबाही को रोकने के लिए काम करता है की एक ही रास्ता है आपकी पुस्तकालय
मैं किसी भी तरह (अर्थ संस्करण तय है कि इस तरह के संस्करणों हो रहे हैं जब प्रमुख संस्करण संख्या 0
है सिवाय एक संकर समाधान, जहां मैं अपने निर्भरता semantic versioning इस्तेमाल किया ग्रहण साथ खूंटी में केवल प्रमुख संस्करण संख्या (कहते हैं somelib >= 2.3.0, < 3
) के लिए चला गया हूँ अस्थिर माना जाता है और एपीआई तोड़ सकता है भले ही केवल पैच संख्या बंप हो)।
अभी तक, मुझे यकीन नहीं है कि कौन सा तरीका सबसे अच्छा है। क्या कोई आधिकारिक दिशानिर्देश है (यहां तक कि एक पीईपी शायद?) जो पाइथन निर्भरताओं और उन्हें निर्दिष्ट करने के बारे में सर्वोत्तम अभ्यास को निर्देशित करता है?
अच्छा सवाल। मुझे लगता है कि इसे पायथन समुदाय द्वारा संबोधित किया जाना चाहिए। – pylang