[openstack-dev] [Ironic] How to deal with microversions in 3rdparty tools

Chris Friesen chris.friesen at windriver.com
Wed Apr 8 14:35:16 UTC 2015


On 04/07/2015 11:35 PM, Michael Davies wrote:
> On Tue, Apr 7, 2015 at 10:32 PM, Dmitry Tantsur <dtantsur at redhat.com
> <mailto:dtantsur at redhat.com>> wrote:
>
>     I'm seeking for advice on what to do with microversions in discoverd.
>     Basically I have the following options:
>
>     1. Do nothing. Get whatever behavior I can get from installed Ironic and
>     Ironic client. Though unlikely, may get broken by future changes.
>
>     2. Demand version = 1.6. Looks like it keeps compatibility with old clients
>     and servers, not sure what downsides are here.
>
>     What are we going to recommend now as upstream?
>
>
> I agree with Jim R's suggestion - it's really up to the consumer as to what they
> want to do.  Having said that...
>
> I think that any consumer wants to use the latest version of the API that it can
> support.
>
> And so since we're not planning on making any breaking API changes[1], I think
> any consumer wants to:
>
> a) have a concept of the latest API version that it has been coded for
> b) then, in negotiation with the server, choose a version that suffices:
> b1) negotiated_version = min(your code's max version, max Ironic server version) and
> b2) negotiated_version > your code's supported version
> b3) negotiated_version > Ironic API's minimum version

Is that statement about "not planning on making any breaking API changes" an 
intention or a guarantee?

The reason I ask is that doc/source/devref/api_microversions.rst contains an 
explicit mention of making breaking changes:  "So breaking changes can be added 
to the API without breaking users who don't specifically ask for it."

Chris



More information about the OpenStack-dev mailing list