-----BEGIN PGP SIGNED MESSAGE-----
Hash: SHA1

On 11-06-06 04:14 PM, Robert Collins wrote:
> Certainly, but there are limits to which one can fake out handling a
> gone attribute.

I agree.  But I'm arguing that those limits also apply if you've exposed
getter/setter pairs instead, so it seems strange to single out exported
attributes.  "think twice before exposing attributes" could encourage
people to write getter/setter pairs instead of exposing attributes, and
I think that would be a perverse outcome.

> Imagine for a second that we remove the bug supervisor attribute from
> project (and replace it with something (call it bug teams) that
> represents a single communities interest in a project; commercial
> projects get to review who has such an interest, open source projects
> allow any community that wants to step up and play to do so).
> 
> Irrespective of API versioning, we'd have a -real- hard time handling
> either get or set requests for the old bug supervisor attribute.

And my point is that the problem is the same whether get or set requests
are exposed as Product.bug_supervisor or Product.getBugSupervisor() &
Product.setBugSupervisor().

> I'm arguing that if we've decided to change the model, then we *really
> have* changed the model and should accept that that is an incompatible
> change across /all/ our API versions.

I have no disagreement with this.

>> If you mean "expose attributes" in the broad sense that we expose them
>> as part of the user model, regardless of how they are manipulated, I can
>> see some logic in that.  But there is a constant push to expose more and
>> more, so that our web service clients are just as empowered as local
>> code is.  At times, you yourself have championed that.
> 
> I think there is a balancing act with our API's and when and how much we 
> expose.

Could you explain why you think that?  ISTM that we need to think twice
when we promote something to an API version other than "devel", but not
before that.

> Much of this is fallout from the design of the current web service
> model: because we present a very large facade as a single 'version' of
> the service, and its all described as a single service, when we
> promise 7 years support, we're promising for -everything- for 7 years,
> but not all our API's or our model are needed by the desktop clients
> for whom we were making that promise.

Do you imagine that if we provided Launchpad as a federation of APIs,
some of them would have a 7-year guarantee and some would not?

Aaron
-----BEGIN PGP SIGNATURE-----
Version: GnuPG v1.4.11 (GNU/Linux)
Comment: Using GnuPG with Mozilla - http://enigmail.mozdev.org/

iEYEARECAAYFAk3tO18ACgkQ0F+nu1YWqI2vpgCfbextu+ZPxZo0m+TYa+MvdwIz
r7oAnReoIYd1t3uY1+8+Zb28py8RMZSE
=P9UW
-----END PGP SIGNATURE-----

_______________________________________________
Mailing list: https://launchpad.net/~launchpad-dev
Post to     : launchpad-dev@lists.launchpad.net
Unsubscribe : https://launchpad.net/~launchpad-dev
More help   : https://help.launchpad.net/ListHelp

Reply via email to