@bluejedi, thanks for your suggestions. Let me give you a bit more background on the current situation.
DO UPDATE the library version and library.properties with every release
(see below why this is a must).
This is pretty much what I’m doing already, except that I haven’t gotten around to actually doing releases a lot (and updating the version number on every commit is not what should happen IMHO).
In your first post, you say:
Update the version and library.properties file with every code increment (with any change).
Preferable: provide/publish stable releases in addition to ‘the latest and greatest’ Head revision of the Master branch.
How do you suggest to identify these stable releases? Through different branches of version numbers and using documentation to indicate which are stable?
A possible option for version numbers would be to use even PATCH numbers for stable releases and uneven PATCH numbers for other code updates (this seems to be a common use in the Linux community).
FWIW, I don’t think Linux does that anymore, they just use a x.x.0 release for new features, and then x.x.1 etc for bugfix-only releases (which could be useful here as well, except that does not mesh well with doing a release on every commit, but I wasn’t planning to do that anyway).
The URL iThe URL in library.properties is a dead link, the page does not exist anymore.
It is better to change URL to https://github.com/matthijskooijman/arduino-lmic1
(in conformance with the Arduino IDE 1.5 Library Specification).
Agreed, I just pushed this change.
The current library version 1.5.0+Arduino-2 is unclear and puzzling (it has more meaning to you than to others). Using Semantic Versioning is a best practice. It will make things simpler and more clear and is also what PlatformIO suggests. Please use Semantic Versioning.
The background of this version number is that this is an Arduino-specific port of an upstream LMIC version. Since LMIC itself could release new versions, and I might also release multiple versions for one upstream LMIC version, this needed an extra level of versioning. To be explicit, I added the
+arduino-x, though it might have been more semver (but less explicit) to just add
.x instead (e.g.
I’m still planning to revamp the entire LMIC-repo and create an upstream repo that includes the Arduino-specific files, which completely removes this problem (since there will be only one repository doing releases). Until then, I’ll probably stick to the current versioning scheme (since I do not think it is actually breaking anything, other than people’s understanding).