Update: PlatformIO does library management much better then git-submodules, we have switched to using PatformIO to manage library dependencies, see blog posts
Library management for Arduino has always been a bit of a pain; having to go and download and install all the required libraries for various locations on the internet and hope that they are the correct version. Library management becomes even more important when debugging and supporting a project as libraries get changed and updated.
Things have improved in recent years with the increased use of GitHub for Arduino libs allowing changes to be tracked easier and the later version of Arduino IDE including a library manager which can auto-update.
However I have always wanted to have all required libs and files for a particular project all in once place. I feel that I have now found the best solution (for now!).Read on →