2013-09-25 4 views
18

मैं Symfony2 का उपयोग करना शुरू कर रहा हूं और कई ट्यूटोरियल का पालन कर रहा हूं। मैंने पाया कि जब उन्होंने composer.json का उपयोग करके कुछ नई सुविधाएं स्थापित की, तो उन्होंने "हमेशा" dev-master घोषित किया। मुझे कारणों का पता नहीं है कि वे हमेशा इसका इस्तेमाल क्यों करते हैं। DoctrineFixturesBundle से एक उदाहरण:जब "dev-master" composer.json में उपयोग किया जाना चाहिए?

{ 
    "require": { 
     "doctrine/doctrine-fixtures-bundle": "dev-master" 
    } 
} 

वास्तव में, मैं googled और कुछ लोगों को लिखा पाया है कि हम किसी भी stable संस्करण के बजाय dev-master का उपयोग करते हैं। भविष्य में यह कुछ संघर्ष होगा क्योंकि आज का संस्करण शायद 1.5.0 और कल शायद हो सकता है।

तो, हम व्यावहारिक कार्यों में वास्तव में क्या उपयोग करते हैं - dev-master या specified version और क्यों?

उत्तर

19

आपको जहां भी संभव हो, एक विशिष्ट (टैग किए गए स्थिरतम स्थिर) संस्करण का उपयोग करना चाहिए।

जबकि composer.lock एक विशिष्ट करने के लिए निर्भरता ताला प्रतिबद्ध भी जब dev-master का उपयोग कर ... हर composer update नवीनतम संस्करण के लिए निर्भरता अपडेट हो जाएगा और बाद में lockfile अद्यतन करता है।

यदि आपका लॉकफ़ाइल किसी भी तरह से हटा दिया गया है/खो गया है और यह बैकअप/संस्करण नियंत्रण के तहत नहीं है, तो आप composer install या composer update चलाने के बाद आसानी से एक गैर-कार्यरत प्रोजेक्ट के साथ समाप्त हो सकते हैं!

एक साधारण उदाहरण symfony/symfony स्वयं होगा ... नए काम dev-master शाखा में किसी भी समय गैर-कार्यात्मक स्थिति में आपके आवेदन को छोड़कर नई बीसी (पिछड़ा संगतता) ब्रेक पेश कर सकते हैं।

+9

"यदि आपका लॉकफाइल किसी भी तरह से हटा दिया गया/खो गया है और यह बैकअप नहीं है" - यह एक बहुत बड़ा "अगर" है। इसके अलावा, स्पष्ट रूप से यदि यह मामला है, तो यह समस्या है, न कि आप "dev-master" का उपयोग कर रहे हैं। अगर आपकी लॉक फाइल गुम हो सकती है तो कंपोज़र.जेसन सहित अन्य फाइलों में से कोई भी हो सकता है। – Gerry

संबंधित मुद्दे