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

