मेरे कंपोज़र.जसन फ़ाइल में टिल्ड (~) का क्या अर्थ है?


115

मेरी कंपोजर.जॉन फ़ाइल में यह लाइन है:

"require": {
    ...
    "friendsofsymfony/user-bundle": "~2.0@dev",
    ...
},

वास्तव ~में क्या ~2.0@devमतलब है? कि एक प्लेसहोल्डर है और हमेशा की तरह subversions लाने जाएगा 1.2.0, 2.2.0, 3.2.0और इतने पर? मतलब नहीं है (और *वाइल्डकार्ड द्वारा किया जाएगा )।

Composer.json प्रलेखन टिल्ड के बारे में कुछ नहीं बताता है।

मैं पूछ रहा हूं क्योंकि मैं सिम्फनी ब्लॉग में सिर्फ एक सुरक्षा मुद्दे के बारे में पढ़ता हूं और वे 1.3.3 संस्करण में अपग्रेड करने की सलाह देते हैं। लेकिन FOSUserBundle के संस्करण का पता लगाना इतना आसान नहीं है (मुझे ऐसी फ़ाइल नहीं मिली जिसमें संस्करण शामिल हो)।

जवाबों:


142

टिल्ड का अर्थ है अगली महत्वपूर्ण रिलीज़ । आपके मामले में, यह बराबर है >= 2.0, < 3.0

पूर्ण विवरण टिल्ड संस्करण रेंज डॉक्स पृष्ठ पर है :

~ऑपरेटर सबसे अच्छा उदाहरण से समझाया गया है: ~1.2के बराबर है >=1.2 <2.0.0, जबकि ~1.2.3के बराबर है >=1.2.3 <1.3.0

इसे देखने का एक और तरीका यह है कि ~न्यूनतम संस्करण का उपयोग करना निर्दिष्ट है, लेकिन अंतिम अंक निर्दिष्ट करने की अनुमति देता है।

सेल्देक की नीचे की टिप्पणी संगीतकार प्रलेखन का एक सरल योग है।


73
एक सरल नियम-तरीका जो मुझे पसंद है वह यह है कि ~ अंतिम अंक को ऊपर जाने की अनुमति देता है। उदाहरण का ~2.2अर्थ है २.२ और कोई २.x जहाँ x २ या ऊपर है। ~2.1.3पर भी किसी भी 2.1.x है जहाँ x 3 या ऊपर है।
सेलडेक

2
कैसे ~2.0अलग है 2.*? यदि अंतिम अंक 0 नहीं है तो क्या यह उपयोगी है?
जेसी

24
~ 2.0 और 2. * समान BUT हैं ~ 2.3 और 2. * अलग हैं क्योंकि ~ 2.3 2.3 से नीचे के संस्करणों की अनुमति नहीं देता है जबकि 2. 2. 2.0, 2.1, 2.2, आदि की अनुमति देता है
AlterPHP

2

Tildeऑपरेटर उन परियोजनाओं के लिए उपयोगी है जो semantic versioningयोजना का उपयोग करके अपने पुस्तकालयों का संस्करण बनाते हैं।

Semantic versioningएक दिशानिर्देश के अधिक है जो मूल्यांकन करता है next significant release

संगीतकार के लिए, इस ऑपरेटर का मतलब है कि एक छोटे संस्करण (जिसमें पैच शामिल हो सकते हैं) को एक प्रमुख संस्करण की अनुमति के बिना (जो कि पिछड़े संगत नहीं हो सकता) स्थापित करने और अपडेट करने की अनुमति देता है

उदाहरण के लिए: ~4.1परियोजना संस्करणों की अनुमति देगा >=4.1लेकिन <5.0

क्रेडिट: http://dwellupper.io/post/37/use-tilde-range-operator-to-resolve-d dependency-version-in-composer-php


0

तत्काल संस्करण के लिए ऊपर जाने के लिए टिल्ड ~का ~2.0@dev मतलब है:

उदाहरण के लिए :

यदि हमारे पास ~2.0@devहै तो यह तत्काल अगले संस्करण में चला जाएगा => ~2.x@dev

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