Comments on Arduino 1.5 Specifications

Cristian, if you're still reading, here are some questions:

All 22 libraries that ship in Arduino 1.5.4's libraries folder have "core-dependencies=arduino (>=1.5.0)". What is my Teensyduino installer supposed to do with the core-dependencies field? If "arduino (>=1.5.0)" means it will only work with a core named "arduino", do I need to rename my core from "teensy" to "arduino"? Or do I modify the library.properties files to add the name of my core to the properties files?

Likewise, how am I supposed to install Teensy 3.0's non-avr architecture EEPROM library? Suppose I name Teensy 3.0's architecture "kinetis". It seems logical that I would add a "kinetis" directory inside libraries/EEPROM/arch and copy my architecture EEPROM.cpp there? But what do I do about EEPROM.h? It's currently in libraries/EEPROM/src, shared by all architectures. My EEPROM library customizes that header, adding a constructor which I use to initialize the hardware (unlike AVR, the eeprom hardware needs to be initialized). It looks like I'll need to overwrite the platform neutral header with my customized version. Then, of course there's the library.properties file in EEPROM, which currently says the EEPROM library is only compatible with AVR architecture. Will I need to modify EEPROM's library.properties, for both architectures and core-dependencies?

SoftwareSerial is another library I've ported to Teensy 3.0. Fortunately, SoftwareSerial seems to have a header in libraries/SoftwareSerial/src that includes the architecture specific header, but it looks like I might need to patch library.properties, since both architectures and core-dependencies say it's incompatible with my hardware (even if I copy the code into a new directory to make it compatible). Another complexity with SoftwareSerial is I'll want to patch the examples, which mention the supported pin numbers only for Arduino boards. I'll want to add similar comments for my 3rd boards. How am I supposed to do that?

I recall earlier you mentioned the intended path is to contact the library maintainer and get them to update their library.properties file and add the code. Is that really what you intend for the 22 libraries that ship with Arduino? Generally Arduino has maintained a policy of facilitating 3rd party hardware, but not shipping any code or file that directly support any non-Arduino boards. Arduino's lengthy release cycle could also be, well, frustrating if you're the path to get 3rd party support into those library.properties files.

I did notice 1.5.4 has two old style copies of the Wire library, in hardware/arduino/avr/libraries/Wire and hardware/arduino/sam/libraries/Wire. Maybe this the path? If I have a library like EEPROM ported to another architecture, but it's already present with library.properties incompatible with my hardware, can I put a pre-1.5 format library in my platform/arch/libraries directory? Will it override the same-named copy in the main libraries directory? I was under the impression those directories were the pre-1.5.3 way which was intended to be replaced by library.properties. Is that right? If those are the official way for 3rd party boards to be compatible with the 22 "standard" libraries that ship with Arduino, it really ough to at least be mentioned in the library spec.

When I start supporting 1.5.X, I really do want to do it properly. I honestly do not see what the proper way is to resolve these many issues, at least not without overwriting many library files. Please let me know your thoughts?