On 03/11/2016 05:44 AM, Tom Igoe wrote:
> Can you explain your overridden libraries concept a bit more?
Library override has been a standard feature Arduino has supported for a
very long time.
In ancient times, like 0012-ish, Arduino had only a single location for
libraries.
Then the ability to override Arduino's libs with your own copy was
added. If you put copy of a library into the libraries folder within
your sketckbook, it would override anything with the same name in Arduino.
Of course, few people knew of this feature, until eventually (thanks
mostly to Adafruit) this folder was automatically created and populated
with a readme file. Adafruit and others published tutorials,
instructing users how to install customized copies of libraries.
With 1.6.x (and the 1.5.x betas) supporting multiple architectures, this
was expanded to a 3 tier system. Libraries supplied with particular
architecture override those in Arduino's libraries, and libs in the
sketchbook libraries override both of the others.
Starting with 1.6.2, we now have the Library Manager, which automates
downloading and installing libs to the sketchbook libraries folder.
It's pretty much the same as people following Adafruit's manual
tutorials, without the human errors.
Few people really understand library overrides, probably because we've
never really made it visually apparent. My hope is we can restructure
the Examples menu in a way that doesn't demand attention, but does
visually represent the 3 tiers. My main hope is there's nothing
extraordinary about this change in the common case where libs do not
conflict. But in the troublesome cases where a user has a conflict, I
want to very visibly show the overridden libs which *can't* be used, so
they have a strong visual cue that duplicate copies exist, and they can
understand which one Arduino will really use.