SDK API Backwards Compatibility

Our URCaps was started a long time ago using the sdk version 1.2.56, and since then we never had to upgrade to a newer version since the features were enough for us.

Now we would like to introduce a new feature which requires us to upgrade to 1.6 or higher.
This raises 2 questions:

  • Is there a reason why we should only upgrade to 1.6 and not to the latest 1.11?
  • Would this change require our users to upgrade to a newer Polyscope version? If so, which?
  1. The only reason would be to be compatible with more versions.
  2. Yes, 1.6 requires 3.9.0/5.3.0 or later, and 1.11 requires 3.14.1/5.9.1 or later.

The URCap API/SDK version can be found in the release notes for each software release and they are not backwards compatible.
https://www.universal-robots.com/articles/ur/release-note-software-version-39xx/
https://www.universal-robots.com/articles/ur/release-note-software-version-3141/
https://www.universal-robots.com/articles/ur/release-note-software-version-53xx/
https://www.universal-robots.com/articles/ur/release-note-software-version-591/

@mads is completely right!

The URCap tutorial gives a more detailed information. Section “12.2.1 Advanced compatibility” describes how you utilize features from a never API and still be able to run on an older version of Polyscope.
The following change in the pom.xml:

 ...
 <Import - Package >
 com.ur.urcap.api *; version =" [1.4.0 ,2.0.0) "; resolution := optional ,
 *
 </Import-Package >
 ...

Will make the URCap start up if the supported API version is between 1.4.0 and 2.0.0 (latter not inclusive) regardless of what the actual dependency states.

To provide a good user experience for the URCap installation process by ensuring that end users cannot install a URCap that is not compatible with their robot you shall also pay attention to the Compatibility flags.

Ebbe