@rickkas7 I follow the SparkFun GNSSv3 library on GitHub and I saw that someone just started a Pull Request for Particle compatibility:
I only use I2C for GNSS but I'm not a fan of
#ifdef some_platform_name to fix library bugs so it got me thinking... is the library the right place for this to be fixed or is it something with the way DeviceOS handles UART streams?
char* any more correct or better than the other?
The problem is that the APIs appear to have diverged between Arduino and Particle for that API, with one taking a signed character buffer and Particle using uint8_t, which is what we use for arbitrary binary data. The easiest solution is a platform-specific #ifdef for most Arduino libraries.
Creation of community libraries is self-service, see Firmware Libraries.
If you want to use arbitrary libraries from Github in your own projects and you are using Particle Workbench (recommended), see Workbench pseudo-libraries which is the easiest way to incorporate and also modify existing libraries.
Thanks for the reply. The
#ifdef PARTICLE change was merged so now as of SparkFun_u-blox_GNSS_v3 v3.1.2 the library compiles in Particle Workbench without errors.
I've tested it with DeviceOS 5.6.0 on the P2 platform and it seems to work great!
The community Libraries are a bit wild west. After publishing I thought to myself really it's much better to get this published as a "Verified Library" from a somewhat more trusted source than a random user. Is there a process for deciding what gets "Verified"?
Also, Particle Library format specifies LICENSE or LICENSE.txt but not LICENSE.md, which is frequently found on GitHub library projects. Thoughts?
The verified library program isn't currently active, and no libraries have been verified in several years, but it could come back in the future.
The LICENSE file extension isn't actually checked, so .md could be used. It's a reasonable request to add it to the list in the docs.