Excuse me for this rant, but better out than in.
So I've just come back to Arduino programming after a fairly extensive break, almost a year. I've got ten thousand lines of library code, dozens of hardware drivers, quite a lot of time invested. And, frankly, it's been like taking a succession of blows to the head. I'm not happy.
First, there's the whole "better read this carefully or we'll delete all your work" part of the IDE upgrade process that craps over anyone who's developed their own libs, or spent any time collecting them. Wonder how much of the community's work that blew away. (I read dialog boxes, but even then it was subtle)
Second, again for us library programmers, I notice we've gone "one arch forward, one src back", thus breaking everything twice. That might be fine, if the "how to write a library" page had been updated since 2011, or even linked to a discussion page that wasn't closed for years. The only documentation on the change is hidden half-way down a forum post. And "yeah, I changed it" is not a how-to.
Then there's the whole "prog_uchar" thing, which while it might be an avrlib issue more than yours ("hey, there's a difference between the spec and the way everyone uses it. We could easily change the spec, but instead let's break everyone's code!") I'll be damned if I can find useful information on how to cope with the change. A lot of people were encouraged by tutorials to use that RAM-saving trick, and now it's broken. I'll figure it out, but it's more hours out of my life. One #define in the right place and all the old code would probably still work.
I bought lots of Leonardo gear when that was supposed to be the future, and gee was that a mistake. No-one makes binaries for it, it's not source-level compatible, and the new ARM based variants are just creating a bigger explosion in unsupported boards.
I know that judging the Arduino IDE by the standards of a professional software development environment is a little unfair, but for goodness sake. Perhaps you should put the effort into an Eclipse plugin instead. Perhaps I'm doing it all wrong, and library development in the Arduino IDE isn't supposed to be an exercise in pure frustration, but with a complete lack of documentation or tutorials, how can I know?
This comes after years of learning that pretty much every part of the Arduino "learning experience" is badly designed, right down to the toggling of IO pins. Name one serious piece of Arduino code that uses portWrite() statements, and yet that's lesson 1 with blinky. You reach stages where you have to unlearn everything so far, in order to progress to the next level. And then you're on your own, on a sea of changing port registers and timer capabilities.
No line numbers. Errors in included files aren't hyperlinked. Recompiles rescroll the error window. Compiles that fail to rebuild the libraries. It's like you never expected any program to exceed 50 lines of code, or for people to use it past the end of the tutorial.
I've been messing with the Raspberry Pi and Naze32 platforms lately... both quite enjoyable. If the Pi was half the size and cost, I'd never use an Arduino again. Wifi, Javascript, 5mp camera, GPU. My biggest issue with the Pi is I only have one of them. That should seriously worry you. Instead you've got Intel designing boards for you that look like Product DevKits with Arduino connectors slapped on it. Hope you got a sweet deal there, because they've hardly been exclusive.
I don't understand what your strategy is, and I'm sick of being surprised by these lurching changes in direction, hardware, and software compatibility. (Anyone want my Leonardos? They're almost useless.) I'm tired of having my time wasted. You're big on promise, but sadly lacking in implementation, and not getting better. The individual boards are wonderful - great hardware engineering. But all together, they're a shambles.
Think I'm being harsh? Perhaps so. But reality will be harsher if you keep doing crap like this. If you can't even figure out what directory structure your libs should have after years of vacillating, perhaps you should bring in some actual software engineers.