> After starting, we decided that changing the MCA base revision number  
> to 2.0.0 also meant changing *ALL* the framework version numbers.   
> This is because the same components from framework <foo> compiled with  
> MCA base version 1.x.x would not be binary compatible when compiled  
> with MCA base version 2.0.0 (the mca_base_component_t struct is a  
> different size, for example).  So it seemed like we needed to make a  
> large change: we changed both the MCA base and every framework  
> interface version to v2.0.0, which entails touching every framework  
> base and every component.

I guess I don't understand.  I thought there were three versions in every
component -- the MCA version, the framework version, and the component
version.  The first two should determine if the component can safely be
loaded and the third is to identify the component.  I agree that for this
change (an MCA-level change), the MCA version *should* change.  However,
the framework interface didn't change (well, not as a result of this
change), meaning that the framework version *should not* change.  The MCA
load infrastructure should see that the MCA versions don't match, and not
load the component.

Or am I missing something here?

Brian

Reply via email to