इस सवाल का अच्छा जवाब ढूंढते हुए मुझे बहुत समय हो गया है।
आमतौर पर, किसी भी Arduino परियोजना लेकिन सबसे सरल एक में शामिल होंगे:
- मुख्य स्रोत कोड फ़ाइल
MyProject.ino
- परियोजना के लिए विशिष्ट पुस्तकालय (
MyProjectLibrary1.h
,MyProjectLibrary1.cpp
...) - थर्ड-पार्टी लाइब्रेरी (आम तौर पर मुफ्त खुला स्रोत, मैन्युअल रूप से Arduino पुस्तकालयों निर्देशिका में जोड़ा जाता है)
- स्कैमैटिक्स, पीसीबी आरेख
- प्रलेखन
- ...
यह सब स्रोत कोड प्रबंधन (जैसे कि तोड़फोड़, गिट या गिटहब) के तहत एक परियोजना के पूरे कोड और डॉक्टर को रखना मुश्किल बनाता है।
अपनी परियोजना के स्रोत नियंत्रण को प्रबंधित करने का अर्थ है कि परियोजना द्वारा उपयोग की जाने वाली सभी फाइलों के संस्करण का प्रबंधन करना जिसमें तृतीय-पक्ष पुस्तकालय शामिल हैं।
अब एक ही परियोजना के लिए, मुझे एक निर्देशिका संरचना को परिभाषित करने की आवश्यकता है जो:
- ऊपर वर्णित के रूप में सभी परियोजना फाइलें शामिल हैं
- मैं पूरी तरह से एक स्रोत कोड प्रबंधन उपकरण (तृतीय-पक्ष निर्भरता सहित) के लिए प्रतिबद्ध हो सकता हूं
- मैं अपनी हार्ड ड्राइव पर कहीं भी चेकआउट कर सकता हूं और वहां से प्रोजेक्ट का निर्माण कर सकता हूं (क्या इसे एक ही स्थान पर रखना है जैसा कि Arduino IDE द्वारा लगाया गया है)
- मैं एक आत्म-संग्रह में जा सकता हूं जिसे मैं अपने दोस्त को आसानी से बनाने के लिए भेज सकता हूं (कोई अतिरिक्त मैनुअल डाउनलोड नहीं)
Arduino प्रोजेक्ट्स के साथ मुझे विशेष रूप से मुश्किल लगता है जो बाहरी पुस्तकालयों की निर्भरता का प्रबंधन है। जावा प्रोजेक्ट डेवलपर्स के पास इसके लिए मावेन रिपॉजिटरी हैं और यह सभी बाहरी डिपो के प्रबंधन में बहुत मदद करता है। लेकिन हमारे पास Arduino पुस्तकालयों के लिए एक समकक्ष प्रणाली नहीं है।
मुझे यह जानने में दिलचस्पी होगी कि अन्य Arduino परियोजना निर्माता इन पहलुओं से अपनी परियोजनाओं में कैसे निपटते हैं।
यह भी ध्यान दें कि मैं अपनी विकास प्रक्रिया को बदलने के लिए खुला हूं, जिसमें मेरी IDE (वर्तमान में मैं ज्यादातर Arduino प्लगइन के साथ ग्रहण का उपयोग करता हूं, और फिर मैं सुनिश्चित करता हूं कि मेरी परियोजनाएं सीधे Arduino IDE के साथ भी काम कर सकती हैं)।