[Openais] reminder about api changes

Steven Dake sdake at redhat.com
Fri Oct 9 11:02:15 PDT 2009


In flatiron, we have previously discussed the following policy relating
to X releases:
* Addition of a new C api to any external exported library with the bump
of the lib.so micro field 
* No changes to existing C apis in external exported APIs
	This also includes changes to data structures passed to existing C
APIs 

Previously we have had a total lockdown on coroapi.h.  After
investigation I have found it does not break ABI compatibility to add
new functions to the corosync_api_v1 structure at the end of the
structure.  The reason is that corosync is responsible for providing the
functions described by this api.  As a result, as long as new functions
are added to end, the ABI remains unchanged to the lcrso (since it
doesn't know about the new function).  The same goes for objdb.

By making this policy change, we disallow people to use the new coroapis
with older versions of corosync.  An example use case where we will no
longer allow is compile openais 1.2.0 against corosync 1.2.0 where
openais uses new api functions and then run openais 1.2.0 against
corosync 1.1.0.

Still the bar for coroapi changes will be extremely high in an X release
and only related to our core objectives.

Regards
-steve



More information about the Openais mailing list