2012-04-27 10 views
64

एक जिथब परियोजना से बाइनरी वितरित करने का सबसे अच्छा अभ्यास क्या है?एक जिथब परियोजना से बाइनरी वितरित करने का सबसे अच्छा अभ्यास क्या है?

मैं के बारे में सोच सकते हैं:

  • अपनी परियोजना में एक बिन फ़ोल्डर बनाएँ जहाँ आप बाइनरी की एक प्रति रखना। हालांकि, जिथब स्रोत कोड को स्टोर करने के लिए है और बाइनरी नहीं है बड़े और नियमित रूप से बदलते बाइनरी महंगा क्वा डिस्कस्पेस और बैंडविड्थ हो सकता है?
  • प्रोजेक्ट के github pages पर बाइनरी की एक प्रति अपलोड करें, या अपनी बाइनरी होस्ट करने के लिए एक अलग वेबसाइट का उपयोग करें। हालांकि, यह हमेशा संभव नहीं है, और बाइनरी अद्यतित रखने के लिए और अधिक (हाथ) काम की आवश्यकता है, बल्कि मैं द्विआधारी को स्वचालित रूप से अपडेट करना चाहता हूं या एकल क्रिया के साथ चाहता हूं।
+0

यह सवाल जहां बाइनरी मेजबानी करने के लिए के बारे में है, और विषय से दूर है, जहां एक जावा परियोजना से उत्पन्न फ़ाइलों – random

उत्तर

17

यह अब मुझे स्पष्ट है कि आपके जीथब प्रोजेक्ट में बाइनरी स्टोर करने के लिए महत्वपूर्ण नहीं है। इस प्रकार, आपको कहीं और द्विआधारी स्टोर करने की आवश्यकता होगी। संभावित समाधान जो मैंने पार किए हैं:

  • बाइनरी को एक अलग सबमिशन (dalores idea) में स्टोर करें। उन्हें अपनी परियोजनाओं github pages में स्टोर करने का अर्थ है, जिसका उपयोग आप अपनी परियोजनाओं की वेबसाइट को गिटूब के माध्यम से होस्ट करने के लिए करते हैं।
  • यदि आपके पास केवल कुछ ही द्विआधारी या ज़िप फ़ाइल हैं, तो आप उन्हें डाउनलोड के माध्यम से github पर अपलोड कर सकते हैं -> एक नई फ़ाइल अपलोड करें। हालांकि यह सुविधा काफी सीमित है, आप संरचित फ़ोल्डरों में फ़ाइलों को नहीं डाल सकते हैं।
  • जावा जार फ़ाइलों के मामले में, आपके पुस्तकालयों के प्रबंधन के लिए Nexus जैसे समाधान हैं।
  • स्टोर एक पूरी तरह से अलग साइट पर बाइनरी कि आप अपने आप
+6

अपने जीथब प्रोजेक्ट में बाइनरी स्टोर न करना क्यों महत्वपूर्ण है? –

+0

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

+1

गिटहब अपलोड अब बहिष्कृत हैं। Https://github.com/blog/1302-goodbye-uploads – akaihola

2

किस तरह की द्विआधारी? बाइनरी किसी बिंदु पर स्रोत से आनी चाहिए?

तो उस स्रोत को जोड़ें जो गिट में एक सबमिशन के रूप में उन बाइनरी बनाता है। फिर अपनी बिल्ड प्रक्रिया में अपने स्रोत बनाने से पहले उन बाइनरी का निर्माण करें। सबमिशन को उस स्रोत के विशिष्ट संस्करण में सिंक में रखा जाता है जिसे आप जानते हैं जो काम करता है। आपके पास स्रोत होने के बाद भी आसान डिबग करने में सक्षम होने का लाभ प्राप्त होता है।

जब तक द्विआधारी छवियां इत्यादि नहीं हैं, तो बस उन्हें स्टोर करें।

यदि स्थान समस्या है बिटबकेट का उपयोग करें क्योंकि उनके पास असीमित स्थान है।

+0

मैं उदाहरण के लिए एक जावा पुस्तकालय (जार) की मेजबानी के लिए दिए गए सिफारिशों। मुझे इस लाइब्रेरी को स्टोर करने की ज़रूरत है कि यह lib को स्वयं lib के बिना lib के उपयोगकर्ता के लिए डाउनलोड करने योग्य है। विकास जारी रखने के रूप में मुझे जार के विभिन्न संस्करणों (1.3.0, 1.3.1, 1.4.0, आदि) को स्टोर करने की भी आवश्यकता है। –

+1

जार फ़ाइलों के लिए आप इसे नेक्सस में स्टोर नहीं कर सकते हैं और निर्भरताओं को डाउनलोड करने के लिए मेवेन का उपयोग कर सकते हैं? वह मानक जावा तरीका है। Http://stackoverflow.com/questions/3329041/best-practice-to-store-jar-files-in-vcs-svn-git – dalore

+0

धन्यवाद जो समझ में आता है। तो, कम से कम यह स्पष्ट है कि बेहतर है कि जार और बाइनरी को गिट में स्टोर न करें, लेकिन बाहरी समाधान का उपयोग करें। –

56

की मेजबानी 11 दिसंबर, 2012 की स्थिति के अनुसार Downloads feature on GitHub is deprecated

हम CDN, या इस तरह के SourceForge के रूप में अन्य सेवाओं के माध्यम से की सेवा के लिए CloudFront के साथ रखा भंडारण के लिए Amazon S3 अनुशंसा करते हैं: लेख Distributing large binaries एक बाहरी सेवा का उपयोग करने की सिफारिश की गई।


हालांकि, since 2d July 2013, अब आप एक रिलीज परिभाषित कर सकते हैं।

विज्ञप्ति, सॉफ्टवेयर अंतिम उपयोगकर्ताओं के लिए शिपिंग के लिए एक कार्यप्रवाह।
विज्ञप्ति प्रथम श्रेणी की वस्तुओं हैं जो चेंजलॉग और बाइनरी संपत्तियों के साथ हैं जो गिट कलाकृतियों से परे एक पूर्ण परियोजना इतिहास प्रस्तुत करती हैं। वे एक भंडार के मुखपृष्ठ से सुलभ कर रहे हैं:

homepage

  • विज्ञप्ति रिलीज नोट्स और लिंक सॉफ्टवेयर या स्रोत कोड डाउनलोड करने के लिए के साथ कर रहे।
  • कई गिट परियोजनाओं के सम्मेलनों के बाद, रिलीज गिट टैग से बंधे हैं। आप किसी मौजूदा टैग का उपयोग कर सकते हैं, या प्रकाशित होने पर रिलीज को टैग बना सकते हैं।
  • आप रिलीज के लिए बाइनरी संपत्तियां (जैसे संकलित निष्पादन योग्य, मिनी स्क्रिप्ट, दस्तावेज़ीकरण) को भी संलग्न कर सकते हैं। एक बार प्रकाशित होने के बाद, रिलीज विवरण और संपत्ति किसी भी व्यक्ति के लिए उपलब्ध होती है जो भंडार को देख सकती है।

release

+0

"जिथब पेज" सार्वजनिक है। "github रिलीज़" के लिए एक github खाता की आवश्यकता है। :-( –

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

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