SDK v5.0.0 and Semantic Versioning

When OpenJAUS started we only needed to support a relatively small number of AS-4 SAE service sets but since then not only have newer versions of the SAE documents been released but we’ve seen AEODRS and IOP come into existence, bringing their own custom services. As the number of JAUS services increased, we continued to be the only source for up-to-date, out-of-the-box support. As a result, the number of libraries we maintain and distribute has grown and it has sometimes been difficult for customers to understand what library versions are needed or work together.

To address this challenge, OpenJAUS has decided to switch to a semantic versioning scheme starting with SDK v5.0.0.

Don’t fear, SDK v5.0.0 hasn’t changed much from v4.3.x. While we did make a few API changes (which made this the best time to make the version number change) to fix a few bugs and simplify the configuration file format, but the structure of the code and the way you create JAUS Components hasn’t changed. It is still the same SDK you know and love. We’ve just updated all our existing code/products to v5.0.0 and from now on changes will be versioned as follows:

Code Status Stage Rule Example #
Bug Fixes, or other minor changes Patch Release The 3rd digit is incremented 5.0.1
New features that don’t break existing features Minor Release The 2nd digit is incremented 5.1.0
Changes that break backward compatibility Major Release The 1st digit is incremented 6.0.0
First Release New Product Start with 1.0.0 1.0.0

We believe this version numbering change will help you understand what versions of the libraries will work together so you don’t end up in “dependency hell”, or leave you stuck on an old version because you’re worried about upgrading to the latest version and breaking everything.

If you would like to understand more about Semantic Versioning check out www.semver.org.