Dawno nie szukałem dobrej odpowiedzi na to pytanie.
Zazwyczaj każdy projekt Arduino, ale najprostszy obejmuje:
- Główny plik kodu źródłowego
MyProject.ino
- Biblioteki specyficzne dla projektu (
MyProjectLibrary1.h
,MyProjectLibrary1.cpp
...) - Biblioteki innych firm (ogólnie bezpłatne oprogramowanie typu open source, dodawane ręcznie do katalogu bibliotek Arduino)
- Schematy, diagramy PCB
- Dokumentacja
- ...
Wszystko to sprawia, że trudno jest zachować cały kod i dokument jednego projektu w ramach zarządzania kodem źródłowym (np. W Subversion, Git lub GitHub).
Zarządzanie kontrolą źródła projektu oznacza zarządzanie wersją wszystkich plików używanych przez projekt, w tym bibliotek zewnętrznych.
Teraz dla jednego projektu muszę zdefiniować strukturę katalogów, która:
- Obejmuje wszystkie pliki projektu, jak opisano powyżej
- Mogę całkowicie zaangażować się w narzędzie do zarządzania kodem źródłowym (w tym zależności osób trzecich)
- Mogę kasować w dowolnym miejscu na dysku twardym i stamtąd budować projekt (czy musi to być pojedyncza lokalizacja narzucona przez Arduino IDE)
- Mogę spakować do samodzielnego archiwum, które mogę wysłać znajomemu, aby zbudował go tak łatwo, jak to możliwe (bez dodatkowego ręcznego pobierania)
Szczególnie trudne w projektach Arduino jest zarządzanie zależnościami bibliotek zewnętrznych. Projekty mają programistów Java Maven repozytoriów za to i to bardzo pomaga w zarządzaniu wszystkie deps zewnętrznych. Ale nie mamy równoważnego systemu dla bibliotek Arduino.
Chciałbym wiedzieć, jak inni twórcy Arduino radzą sobie z tymi aspektami we własnych projektach.
Zauważ też, że jestem otwarty na zmianę mojego procesu rozwoju, w tym mojego IDE (obecnie używam Eclipse z wtyczką Arduino przez większość czasu, a następnie zapewniam, że moje projekty mogą również współpracować bezpośrednio z Arduino IDE).