Maintaining Backward Compatibility
When planning updates to an existing extension, take care to maintain compatibility with a previously-distributed version of that extension. Some changes will have no adverse effects, some involve a significant risk, and others are known to break compatibility and should be avoided.
Changes With No Risk
The following changes will not affect backward compatibility:
- adding new
Node,ModelOutput,DocumentOutputorInteractiveModelBuilderelements - adding new
Propertydefinitions and their associated new controls to these elements - adding new containers to these elements*
- adding new values to an existing enumeration property
* Note that any code using these new containers should allow for the fact that these containers will be empty for objects created using the previous version of the extension.
Changes With Significant Risk
Changes to existing declarations carry a significant risk of breaking compatibility. These should be tested carefully before distribution.
Changes to Avoid
The following changes are known to break compatibility and should be avoided:
- changing the value of the
idorproviderTagattributes in theExtensionDetailelement - changing the value of the
idattribute in aNode,ModelOutput,DocumentOutputorInteractiveModelBuilderelement - removing a
Node,ModelOutput,DocumentOutputorInteractiveModelBuilderelement from the extension - changing the value of the
valueTypeattribute of aPropertyorPropertyTypeelement