[openstack-dev] API changes [was: Re: [API] Standardizing status codes in the native API]

Christopher B Ferris chrisfer at us.ibm.com
Wed Jul 25 17:28:15 UTC 2012


+1 to the reasoning and position taken. Nicely put.

Chris

Sent from my iPad

On Jul 25, 2012, at 12:51 PM, "Mark McLoughlin" <markmc at redhat.com> wrote:

> Hey,
>
> Trying to get away from this specific issue for a minute ... some
> points:
>
>    - We fix bugs all the time that may affect clients which rely on the
>      specific buggy behaviour. Not just pure API changes like this one,
>      but subtle behavioural changes.
>
>    - API compatibility is very important. As a general rule, we don't
>      want to break clients.
>
>    - If we take things to extremes and wait until the next major
>      version to fix *any* issue which *may* have an impact on clients,
>      I don't think anyone will thank us.
>
>    - So, there's a client impact threshold under which we accept the
>      bugfixes without a major version bump.
>
>    - What that threshold is will partly depend on when the next major
>      version will be - e.g. if v3 will be in 5 years time, it wouldn't
>      be sane for us to wait that long to fix issues which have minimal
>      client impact.
>
>    - We certainly do want to get to a point where we can make a
>      commitment to not make changes even this minor, but I don't think
>      the project is there yet.
>
>    - Our API documentation doesn't cover every aspect of the API which
>      clients may come to rely on. We also don't really document what
>      clients should avoid relying on (e.g. URL structure, specific
>      response codes etc.) so we can't always rely on the documentation
>      to tell us whether an API fix is acceptable.
>
>    - I hate to think of us rejecting API fixes with "this needs to wait
>      until v3" and then, when v3 comes around, we don't actually get
>      around to fixing those issues. We need some way of channelling
>      people's desire to fix the API, even if that's just helping to
>      document what needs fixing in v3.
>
> So, thinking about this specific issue:
>
>    - "201 Created" is clearly the right behaviour and is what we do
>      elsewhere in the API. Unfortunately, we don't document this so we
>      can't just say "see, we're just making it compliant with the spec".
>
>    - Some clients may be relying on "200 OK" and they may be affected
>      by this change. However, more sensible clients would just accept
>      any 2xx code as success. In terms of impact that I expect API
>      clients may see between Essex and Folsom, my guess is this is
>      pretty minor.
>
>    - I don't know of any plans for v3. I also don't know that we have
>      any way to channel this effort into preparing for v3.
>
> No-one reading this should interpret it as a lack of understanding of
> the importance of API compatibility. There is a spectrum of API compat
> strictness. Where we fall on the spectrum at this point of the project's
> life isn't a trivial question. We don't want to be at either of the
> extreme ends of the spectrum (e.g. the rules Sun used to apply to
> Solaris changes vs Ruby libraries which change API every day of the
> week), so please don't try and make out this is a black-and-white thing.
>
> Cheers,
> Mark.
>
>
> _______________________________________________
> OpenStack-dev mailing list
> OpenStack-dev at lists.openstack.org
> http://lists.openstack.org/cgi-bin/mailman/listinfo/openstack-dev
>
-------------- next part --------------
An HTML attachment was scrubbed...
URL: <http://lists.openstack.org/pipermail/openstack-dev/attachments/20120725/c89c2646/attachment-0001.html>


More information about the OpenStack-dev mailing list