2014-12-31 8 views
5

मैं एक laravel पैकेज के विकास कर रहा हूँ में एक पैकेज कांटा का उपयोग करें (की सुविधा देता है फोन यह एक पैकेज) है और यह एक और पैकेज (पैकेज बी https://github.com/dropbox/dropbox-sdk-php) की आवश्यकता है।एक संगीतकार निर्भरता

मैं पैकेज बी के एक कांटा (https://github.com/EmilioBravo/dropbox-sdk-php) कर दिया है, "fix64" एक नई शाखा में कुछ परिवर्तन किए और संगीतकार डॉक्स में संकेत के रूप पैकेज एक के composer.json में एक भंडार के रूप में मेरी GitHub रेपो कहा:

"repositories": [ 
    { 
     "type": "vcs", 
     "url": "https://github.com/EmilioBravo/dropbox-sdk-php" 
    } 
], 
"require": { 
    "php": ">=5.4.0", 
    "illuminate/support": "4.2.*", 
    "dropbox/dropbox-sdk": "dev-fix64" 
}, 

अगर मैं पैकेज एक के भीतर से संगीतकार अद्यतन फोन इसे सही ढंग से मेरी कांटा डाउनलोड करता है, लेकिन, im एक अन्य परियोजना में एक निर्भरता (परियोजना सी) और इसे से कॉल संगीतकार अद्यतन के रूप में पैकेज एक का उपयोग कर रहे हैं, तो संगीतकार यह कहता है कि कर सकते हैं dev-fix64 नहीं मिला। > कोई मिलता-जुलता पैकेज नहीं मिला -

समस्या 1

- emilio-bravo/platform dev-dropboxfix requires dropbox/dropbox-sdk dev-fix64 -> no matching package found. 
  • एमिलियो-ब्रावो/मंच देव-dropboxfix ड्रॉपबॉक्स/ड्रॉपबॉक्स-sdk देव-fix64 की आवश्यकता है।

  • एमिलियो-ब्रावो/प्लेटफार्म dev-dropboxfix के लिए स्थापना अनुरोध -> एमिलियो-ब्रेवो/प्लेटफार्म [dev-dropboxfix] द्वारा संतोषजनक।

सिर्फ अगर मैं परियोजना सी composer.json में खजाने के रूप में मेरे रेपो जोड़ने यह मेरे कांटा की शाखा पाता है।

मेरे आस-पास के अन्य तरीके से मैंने पाया है कि मेरे कांटा को साटन भंडार में क्लोन कर रहा है।

लेकिन यह सही नहीं लगता है। मैं गिटहब से अपना कांटा ढूंढने के लिए संगीतकार कैसे प्राप्त कर सकता हूं?

+1

क्या आपको कभी भी इसका कोई वैध समाधान मिला है? मुझे एक ही समस्या है। –

+1

संभावित डुप्लिकेट [संगीतकार के साथ एक कांटा की आवश्यकता कैसे है] (http://stackoverflow.com/questions/13498519/how-to-require-a-fork-with-composer) –

उत्तर

2

मुख्य प्रोजेक्ट में कस्टम रिपोजिटरी जोड़ना संगीतकार को नए स्रोत के बारे में जागरूक करने का एकमात्र तरीका है।

और यह जानबूझकर रेपोस की एक निश्चित सूची के लिए इस तरह से किया जाता है, क्योंकि अन्यथा रेपोस जोड़ सकता है रेपोस रेपोस जोड़ सकते हैं गारंटी के बिना ...।

इसके अलावा, एक रेपो जोड़ने किसी भी बयान सॉफ्टवेयर वहाँ पाया जा सकता है जिसके बारे में नहीं है, संगीतकार हर टैग और शाखा को स्कैन करेगा। सिद्धांत रूप में एक भंडार में एक पूरी तरह से अलग, जाने-माने पैकेज के लिए एक और शाखा हो सकती है, जो इसका एक नया संस्करण पेश करती है, और कुछ दुर्भावनापूर्ण व्यवहार जोड़ती है। सामान्य रूप में

संगीतकार दूरस्थ कोड निष्पादन के खिलाफ बहुत अच्छी तरह से अनुकूल के बारे में सुरक्षा, एक बेख़बर मानव बुरा निर्णय लेने के अपवाद के साथ हो रहा है।

तो अगर आप एक पैकेज packagist.org पर प्रकाशित में एक बग मिल जाए, हर किसी के लिए सबसे अच्छा तरीका है एक पुल अनुरोध प्रस्ताव करने के लिए है। दूसरा सबसे अच्छा तरीका परियोजना को नए नाम के तहत फोर्क करना होगा और इसे packagist.org पर भी प्रकाशित करना होगा। एक ही प्रोजेक्ट नाम के साथ एक फोर्कड रेपो का उपयोग करके समस्या को पैच करना और इसके लिए संगीतकार को इंगित करना सबसे खराब समाधान है और आम तौर पर केवल अपनी परियोजनाओं की निर्भरताओं के लिए संभव है।