I would like to know what the compatibility guarantees are between versions of the SDK as well as betwen plugins compiled using the SDK and Rhinoceros versions.
For example, if I compile a plugin using version 6.x of the SDK, is it guaranteed to be compatible with any version 6.y, in which y > x? In other words, does the SDK respect backwards compatibility within major versions?
And regarding compatibility between SDK versions and Rhinoceros versions, is any plugin compiled with version 6.x compatible with any other version of Rhinoceros version 6.y?
Kind regards,
Erik Valkering
Software Engineer at Mindesk
Thank you Dale, that makes the version scheme w.r.t. the plugins and the program clear.
However, regarding code compatibility, are there any compatibility guarantees?
More specifically, we tried to compile our plugin code base using version 6.9 of the SDK (we were previously using version 6.3). This resulted in several deprecation errors because of the CRhinoDoc::BoundingBox() function, which now requires 3 explicit arguments (i.e. they don’t provide any default values any longer).
Is this expected, that deprecated functions now fail with an error? Shouldn’t this be a warning?
And regarding this function? What would be good values to pass to the function? I’m now passing (false, true, true). However, I’m not 100% sure whether those are the correct values to pass (previously, we called the function without any parameters).
I am assuming this is the same for Rhino 7. Specifically, a plug-in built with the Rhino 7 C++ SDK will NOT load and run in Rhino 6?
I know it is forward compatible, so a plug-in built with the Rhino 6 C++ SDK WILL load and run in Rhino 7. Although at some point, through SDK changes/usage, my plug-in will eventually fail the Installer Engine’s “compatibility check.” So I’m assuming it would be better to build separate RHPs, one for each major version, using the appropriate SDKs. Is that correct?
Sorry for piggybacking on an older thread, but it does seem relevant since Rhino 7 was released.