Sudah lama saya mencari jawaban yang bagus untuk pertanyaan ini.
Biasanya, setiap proyek Arduino tetapi yang paling sederhana akan mencakup:
- File kode sumber utama
MyProject.ino
- Perpustakaan khusus untuk proyek (
MyProjectLibrary1.h
,MyProjectLibrary1.cpp
...) - Perpustakaan pihak ketiga (umumnya open source, ditambahkan secara manual ke direktori perpustakaan Arduino)
- Skema, diagram PCB
- Dokumentasi
- ...
Semua ini membuat sulit untuk menyimpan seluruh kode dan dokumen dari satu proyek di bawah Manajemen Kode Sumber (misalnya pada Subversion, Git atau GitHub).
Mengelola kontrol sumber proyek Anda berarti mengelola versi semua file yang digunakan oleh proyek termasuk perpustakaan pihak ketiga.
Sekarang untuk satu proyek, saya perlu mendefinisikan struktur direktori yang:
- Termasuk semua file proyek seperti yang dijelaskan di atas
- Saya sepenuhnya dapat berkomitmen pada alat Manajemen Kode Sumber (termasuk dependensi pihak ketiga)
- Saya dapat checkout di mana saja di hard drive saya dan membangun proyek dari sana (apakah itu harus menjadi satu lokasi seperti yang diberlakukan oleh Arduino IDE)
- Saya dapat menyalin ke arsip mandiri yang dapat saya kirim ke teman untuk dia buat semudah mungkin (tidak ada unduhan manual tambahan)
Apa yang saya temukan sangat rumit dengan proyek Arduino adalah pengelolaan dependensi perpustakaan eksternal. Pengembang proyek Java memiliki repositori pakar untuk itu dan itu banyak membantu dalam mengelola semua deps eksternal. Tetapi kami tidak memiliki sistem yang setara untuk perpustakaan Arduino.
Saya akan tertarik untuk mengetahui bagaimana pembuat proyek Arduino lain menangani aspek-aspek ini dalam proyek mereka sendiri.
Perhatikan juga bahwa saya terbuka untuk mengubah proses pengembangan saya, termasuk IDE saya (saat ini saya paling sering menggunakan Eclipse dengan plugin Arduino, dan kemudian saya memastikan proyek saya juga dapat bekerja langsung dengan Arduino IDE).