मुझे अपनी स्रोत प्रबंधन आवश्यकताओं को पूरा करने के लिए हमारे निर्माण (github.com/mjibson/esc, और golang.org/x/tools/cmd/stringer) के दौरान उपयोग किए गए टूल के लिए "विक्रेता" का उपयोग करने की आवश्यकता है।

हमारे विनियमों के लिए आवश्यक है कि सभी स्रोत कोड और निर्माण के दौरान उपयोग किए जाने वाले सभी उपकरण कंपनी-प्रबंधित रिपॉजिटरी से प्राप्त किए जाएं। इस मामले में, उपकरण प्रक्रिया की शुरुआत में स्रोत कोड से बनाए जाते हैं।

GitHub.com/golang.org से स्रोतों को प्राप्त करने के लिए git submodule का उपयोग करना काम नहीं करता है, क्योंकि हमारा निर्माण वातावरण बाहरी रिपॉजिटरी तक किसी भी पहुंच को रोकता है।

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

बिल्ड के दौरान उपयोग किए जाने वाले ओपन सोर्स के लिए (import स्टेटमेंट्स के माध्यम से संदर्भित), dep टूल एक अद्भुत काम करता है। लेकिन यह विफल हो जाता है जब मैं किसी भी उपकरण को विक्रेता करने का प्रयास करता हूं।

मैं गो के लिए ऐसे बाहरी उपकरणों के उपयोग को कैसे प्रबंधित कर सकता हूं?

2
chris_f 13 जुलाई 2018, 16:27
क्या आप बाहरी उपकरणों को स्थानीय भंडार के रूप में फोर्क कर सकते हैं, import उन्हें अपने स्थानीय भंडार से, और dep का उपयोग जारी रख सकते हैं?
 – 
landru27
13 जुलाई 2018, 17:12
मैंने एक प्रोजेक्ट जोड़ने की कोशिश की जिसमें import दो टूल्स हैं - लेकिन स्ट्रिंगर एक पैकेज नहीं है और इसे आयात नहीं किया जा सकता है।
 – 
chris_f
16 जुलाई 2018, 10:23
मुझे लगता है कि मैंने पहले आपके प्रश्न को गलत समझा; अब मुझे लगता है कि मैं बेहतर देखता हूं कि आपका क्या मतलब है; फिर भी, आपको टूल्स को फोर्क करने में सक्षम होना चाहिए; उदाहरण के लिए, stringer के लिए, आप https://github.com/golang/tools/tree/master/cmd/stringer से फोर्क कर सकते हैं, वहां से संकलित कर सकते हैं, और अपनी निर्माण प्रक्रिया के दौरान stringer के उस स्थानीय संस्करण को चला सकते हैं।
 – 
landru27
16 जुलाई 2018, 18:47
... यदि आपके एसडीएलसी नियम काफी सख्त हैं, तो आपको स्रोत से ही go संकलित करने की आवश्यकता हो सकती है; मुझे लगता है कि आप ऐसा करने के लिए https://github.com/golang/go फोर्क कर सकते हैं; लेकिन फिर, ऐसा करने के लिए आप जिस कंपाइलर का उपयोग कर रहे हैं, उसे कहीं से आने की जरूरत है ...
 – 
landru27
16 जुलाई 2018, 18:49

2 जवाब

आप अपने git config में insteadOf का उपयोग कर सकते हैं। यह जो करता है वह आपको एक अधिक मानक आयात पथ निर्दिष्ट करने की अनुमति देता है लेकिन रेपो से प्राप्त वास्तविक यूआरएल आपका निजी रेपो हो सकता है।

इस थ्रेड को देखें: निजी रेपो के साथ डिपो जाएं

1
Arash 14 जुलाई 2018, 19:44

मैंने वास्तव में पैकेज ग्राफ़ नियम अनुभाग >Gopkg.toml दस्तावेज़ीकरण पूरी तरह से पर्याप्त:

required सूची अतिरिक्त निर्भरता जोड़ने का स्थान है जो कोड में import निर्देशों द्वारा संदर्भित नहीं हैं। मेरे दो पैकेज जोड़ने और dep ensure चलाने के बाद, सभी आवश्यक स्रोत कोड vendor उपनिर्देशिका में उपलब्ध थे।

मैं क्षमाप्रार्थी हूं...

0
chris_f 17 जुलाई 2018, 14:22