On Sat, Jun 4, 2011 at 8:16 AM, Brad Crittenden
<[email protected]> wrote:
> Hi,
>
> I recently worked on bug 186660, which called for the removal of the 
> wiki_names attribute from Person.  In doing so, I realized the attribute was 
> exported to the web service and completely removing it from the interface and 
> database would break our existing contract for beta and 1.0 versions of the 
> API.
>
> At first Gary and I discussed changing the get method for the Person 
> attribute to return an empty results for the wiki_names collection.  This 
> approach is insufficient as the attribute has been writable too and any 
> scripts attempting to patch it would error.
>
> It would be nice to mark the attribute as deprecated in devel, allowing for 
> removal when beta and 1.0 EOL, but there is currently no lazr-restful 
> declaration analogous to 'operation_removed_in_version' that works with 
> attributes.
>
> For now I have deployed a branch that simply removes references to wiki names 
> for Person from the web UI but leaves the database alone and continues to 
> export the attributes.
>
> So my question is: what is our policy for API backwards compatibility for 
> exported attributes we wish to remove?  Has this been addressed in the past?

I think if we no longer support using an attribute at all, we should
remove it from the API - the decision to remove it is incompatible by
definition. So we should:
 - think twice before exposing attributes
 - think about users of things before removing them once exposed.

IOW: nuke from orbit.

-Rob

_______________________________________________
Mailing list: https://launchpad.net/~launchpad-dev
Post to     : [email protected]
Unsubscribe : https://launchpad.net/~launchpad-dev
More help   : https://help.launchpad.net/ListHelp

Reply via email to