I’m puzzled by the current library system and wonder what it’s real purpose is and whether it fulfills that purpose…
Here’s what I see: I’m attaching an SSD1306 OLED display to a boron, so I looked for libraries. I found 4 candidates. One has a github link that 404’s (owner has evidently deleted the repo), one looks good (by RK) although out of date with the Adafruit orig and has no github link, two look like “random” hacks by individuals more for themselves than anything else, neither has a github link.
I have yet to come across pretty much any Arduino library that I use just as-is. There’s always something I need to fix or extend. Half the time I want to feed the fixes back upstream 'cause they affect everyone, the other half of the time it’s just personal hacks. None of the above 4 libraries make any of this easy. Yeah, I can download them, but (at least using workbench) they are not a git repo and thus don’t have the lineage from the original (Adafruit libs in this case), are incomplete, have no easy diff from the originals, and have no way of sending pull requests or equiv to the author.
What am I missing?
What I would do (naively) is (1) insist on a git source (doesn’t have to be github), (2) insist that ports of libraries have intact git history (and are forks if on github), (3) mark libraries whose upstream git repo has vanished as deprecated, (4) ensure that downloads come with full git history.