Major features
- Support for ROS2 Dashing and Eloquent (via an adaption layer), with very positive response from various members in the ROS2 community.
- Support for an arbitrary number of concurrent DDS domains (fully independent instantiations of DDS) in a single process — this is a common feature for DDS implementations, but involved quite a bit of surgery for Cyclone DDS because of its heritage.
- Abstracting the notion of samples, types and reader history caches, allowing overriding the default implementations of these to get behaviours more suited to the applications. This is particularly relevant to language bindings and embedding Cyclone DDS in other frameworks, such as ROS2.
- Platform support is extended beyond the usual Linux/Windows/macOS: FreeRTOS, Solaris 2.6 are now known to work, with CI builds for FreeRTOS-simulator-on-Linux expected to be in before the release is planned.
- A variety of bug fixes, static analysis and test coverage improvements, and small usability enhancements.
On the proposed version number
The jump to 0.5 is because I have received some comments that "0.1" (and hence "0.2") makes Cyclone DDS look much less mature than it really is. I personally think that should not carry too much weight, but in the naming scheme following the movements of Schumann's Carnaval, 5 maps nicely to the calm and deliberate "Eusebius" — and this is a time to steadily move forward with considered steps. Obviously "1.0" would be a nicer version number still, but I do not believe that is a sensible step just yet:
- Some parts of the API need a revision and while the changes will be minor, it appears likely that it will require updating application code. That change should be done before (or coinciding with) releasing 1.0.
- Two key features are not in place yet: an implementation of the DDS Security specification, and support for what the specification calls "transient data", that is, data managed by the infrastructure and remaining available to new subscribers even when the original publishers have terminated. Given these efforts are progressing, it is again not a good time to think of releasing 1.0.