Note that the initial version of the MQI did not have a version predicate so The proper way for callers to check the version is:
use_module(library(mqi))
, ( current_predicate(mqi_version/2)
->
mqi_version(Major_Version, Minor_Version)
; Major_Version = 0, Minor_Version = 0 )
Major versions are increased when there is a change to the protocol that will likely break clients written to the previous version. Minor versions are increased when there is new functionality that will not break clients written to the old version
This allows a client written to MQI version’Client_Major_Version.Client_Minor_Version’to check for non-breaking compatibility like this:
Client_Major_Version = MQI_Major_Version and Client_Minor_Version <=
MQI_Minor_Version
Breaking changes (i.e. Major version increments) should be very rare as the goal is to have the broadest adoption possible.
Protocol Version History: