A (partial) list of bug fixed and issues resolved in this release can be found here.
CREATE_DEVICE_LIBRARY_MODULES option was renamed YARP_COMPILE_DEVICE_PLUGINS and is now enabled by default.CREATE_OPTIONAL_CARRIERS option was renamed YARP_COMPILE_CARRIER_PLUGINS and is now enabled by default.COMPONENTS in find_package(YARP) calls. The YARP_LIBRARIES variable contains only the libraries corresponding to the components requested in the last find_package(YARP) call. If no components are specified, the OS, sig, dev and math (only when enabled) components are searched.YARP_INCLUDE_DIRS variable is deprecated, as it is handled automatically by CMake targets.YARP_MATH_LIBRARY is deprecated. You can check for YARP_math using find_package(YARP COMPONENTS math)YARP_WRAP_STL_STRING and YARP_WRAP_STL_STRING_INLINE are now always undefined, and they are now considered deprecated.shmem carrier is no longer builtin inside YARP_OS and it is now a plugin.Run class was moved to the new library YARP_runyarp::os::setprogname() is now deprecated.yarp::os::getprogname() is now deprecated.yarp::os::SystemInfo::getProcessInfo() now returns info for current process when called without arguments.yarp::os::Mutex::tryLock() and yarp::os::RecursiveMutex::tryLock() were deprecated in favour of try_lock().ConstString is now deprecated in favour of std::string.YARP_INT{8,16,32,64} with std::int{8,16,32,64}_t from cstdintcinttypes instead of YARP_INT64_FMTyarp::conf::float{32,64,128}_t (128 only if supported)yarp::conf::ssize_tYARP_INT{8,16,32,64} in favour of std::int{8,16,32,64}_tYARP_FLOAT{32,64} in favour of yarp::conf::float{32,64}_tYARP_INT64_FMT in favour of PRId64YARP_CONF_SSIZE_T in favour of yarp::conf::ssize_tyarp::os::Bottle::addInt{8,16,32,64}()yarp::os::Bottle::addFloat{32,64}()yarp::os::Value::{is,as,make}Int{8,16,32,64}()yarp::os::Value::{is,as,make}Float{32,64}()yarp::os::ConnectionWriter::appendInt{8,16,32,64}()yarp::os::ConnectionWriter::appendFloat{32,64}()yarp::os::ConnectionReader::expectInt{8,16,32,64}()yarp::os::ConnectionReader::expectFloat{32,64}()BOTTLE_TAG_INT{8,16,32,64} (BOTTLE_TAG_INT32 = BOTTLE_TAG_INT)BOTTLE_TAG_FLOAT{32,64} (BOTTLE_TAG_FLOAT64 = BOTTLE_TAG_DOUBLE)int and double.yarp::os::Bottle::addInt()yarp::os::Bottle::addDouble()yarp::os::Value::isInt()yarp::os::Value::isDouble()yarp::os::Value::asInt()yarp::os::Value::asDouble()yarp::os::Value::makeInt()yarp::os::Value::makeDouble()yarp::os::ConnectionWriter::appendInt()yarp::os::ConnectionWriter::appendDouble()yarp::os::ConnectionReader::expectInt()yarp::os::ConnectionReader::expectDouble()BOTTLE_TAG_INTBOTTLE_TAG_DOUBLEThread setOptions() and setDefaultStackSize() are now deprecated and no longer doing anything.YARP_STACK_SIZE environment variable is no longer used.Portable::getType() became Portable::getType() const(#1617).PortWriter::getWriteType() became PortWriter::getWriteType() const(#1621).PortReader::getReadType() became PortReader::getReadType() const(#1616).Companion has been moved to a dedicated library (#1509). As consequences:Companion to NetworkBase: disconnectInput, poll, sendMessage, wait (wait() has been split into two new functions waitConnection() and waitPort().Companion::exists() has been removed unifying its code with NetworkBase::exists().readString() function has been deprecated in NetworkBase.RateThread has been deprecated in favour of the new class PeriodicThread. Note that RateThread used the period in msec(int), PeriodicThread requires the period in sec(double), so remember to consider a x1000 factor when migrate the code.const Portable on a Port.const Bytes and const ManagedBytes can no longer return non-const pointers to the underlying data.serial device is no longer a plugin, but it is automatically built with YARP_dev.YARP_dev and are now plugins:
/yarp/dev/DeviceGroup.h/yarp/dev/DevicePipe.h/yarp/dev/IKinectDeviceDriver.h/yarp/dev/IOpenNI2DeviceDriver.h/yarp/dev/RemoteFrameGrabber.h/yarp/dev/ServerFrameGrabber.h/yarp/dev/ServerSerial.h/yarp/dev/ServerSoundGrabber.h/yarp/dev/TestMotor.h/yarp/dev/RemoteFrameGrabberDC1394.h/yarp/dev/MultipleAnalogSensorsInterfaces.hmultipleanalogsensorsserver, multipleanalogsensorsclient and multipleanalogsensorsremapper are available for exposing and accessing the multiple analog sensors over a network, and for combining multiple devices in a single device (remapper).TorqueControlImpl to allow conversion of bemf, ktau parameters from metric to machine units.ControlBoardHelper classes, implementation is now contained in a separate .cpp file. Removed inline functions.PidEnums.hsetNominalCurrentRaw() to IAmplifierControl interface.setTorquePid(), setPositionMode() etc, marked as deprecated since 2.3.70ICalibrateControl2 in favour of ICalibrateControl.ICalibrateControl2Raw in favour of ICalibrateControlRaw.IFrameGrabberControl2 in favour of IFrameGrabberControl.FrameGrabberControl2Impl in favour of FrameGrabberControlImplIControlLimits2 in favour of IControlLimits.IControlLimits2Raw in favour of IControlLimitsRaw.ImplementControlLimits2 in favour of ImplementControlLimits.IControlMode2 in favour of IControlMode.IControlMode2Raw in favour of IControlModeRaw.ImplementControlMode2 in favour of ImplementControlMode.IPositionControl2Raw in favour of IPositionControlRaw.IPositionControl2 in favour of IPositionControl.ImplementPositionControl2 in favour of ImplementPositionControl.IVelocityControl2Raw in favour of IVelocityControlRaw.IVelocityControl2 in favour of IVelocityControl.ImplementVelocityControl2 in favour of ImplementVelocityControl.IPositionDirectRaw::setPositionsRaw(const int, const int*, double*) became IPositionDirectRaw::setPositionsRaw(const int, const int*, const double*).IPositionDirect::setPositions(const int, const int*, double*) became IPositionDirect::setPositions(const int, const int*, const double*)(#1351).yarp/dev/ControlBoardInterfacesImpl.inl was renamed yarp/dev/ControlBoardInterfacesImpl-inl.hyarp/sig/IplImage.h is deprecated, use opencv headers instead.yarp::sig::PointCloud class. See the documentation for details./yarp/manager/ymm-dir.hlibyarpcxx was removed.yarp::math::<class>es have been moved from the yarp::math to the global namespace.libYARP_math is now enabled by default if Eigen3 is found.yarp::os::Companion.CLICOLOR_FORCE=1 environment variable. This is not enabled by default because it is not GUI friendly.OPTION, DEFAULT and DOC options to yarp_begin_plugin_library. If the option is disabled, all plugins in the bundle are automatically disabled.VERBOSE and YarpPlugin_VERBOSE options to yarp_prepare_pluginSocketTwoWayStream::open(), in SocketTwoWayStream::flush is disabled and then re-enabled.ResourceFinder::setDefault() overloads for int32_t and float64_t.yarp::sig::file::[read|write](ImageOf<PixelFloat>&) services refactored to store data in binary formats.mjpeg carrier is now compatible also with mono images.yarp_idl_to_dir and yarp_add_idl, using the NO_RECURSE argument.yarp::rosmsg namespace.yarp/rosmsg subfolder._indexALL.txt files are generated only for the requested types.yarpidl_rosmsg is not built with YARP_NO_DEPRECATED enabled, but they are considered deprecated.yarp_add_idl.IMotorEncoders interface methods can be used to directly monitor the motor shaft position and speed or even to control the motor positions individually when estimating coupled motors friction parameters.yarp::dev::PolyDriver and the yarp::dev::IMotorEncoders classes.Int64 value no longer returns true when isInt() is called.yarpdataplayer able to deal with ImageOf<PixelFloat> also with OpenCV.yarpdataplayer image overlapping.This is a list of people that contributed to this release (generated from the git history using git shortlog -ens --no-merges v2.3.72..v3.0.0):