Breaking vs Non-Breaking Changes
From time to time, as Projector evolves and new features are added, we extend the web services accordingly. This usually happens in conjunction with a new release of Projector, but very rarely we may also make changes and deploy them as a patch.
All web service changes are categorized into either breaking changes or non-breaking changes. We make every effort to implement changes as non-breaking, and do not generally notify clients about non-breaking changes because they are designed to be just that -- non-breaking. However there are situations that may require breaking changes, and in those cases, we are committed to notifying our clients in advance, so that the change may be anticipated and reacted to in a timely manner.
To be notified of breaking changes, please subscribe to our release notes via your My Profile page. Release notes encompass an entire Projector release, so you will need to check for web service changes. In the event that a breaking change is patched out, there will not be any release notes. In these cases, the Projector support staff will contact your organization directly about the change.
Breaking Changes
We consider the following to be examples of breaking changes:
- Addition of a new required input parameter
- Removal of an existing input parameter (whether required or optional)
- Removal of a response value
- Re-ordering or re-structuring of the input or output format (including adding parameters at the start of or in the middle of existing structures)
- Changing the name or data type of an existing input parameter or output value
- Deprecation of a service
- A change in behavior in response to previously existing inputs that is not a bug fix
Non-Breaking Changes
We consider the following to be examples of non-breaking changes:
- Addition of a new optional parameter at the end of the list of input parameters, so long as behavior of the service is unmodified if the parameter is not specified
- Addition of new response fields at the end of existing structures
- A change in behavior to fix a bug in the service (which is by definition a change in behavior, but hard to consider as "breaking" the software)
- Addition of a new web service