Versioning interfaces
Daniel P. Berrange
dan at berrange.com
Tue Nov 15 02:15:00 PST 2005
On Mon, Nov 14, 2005 at 12:20:45PM -0500, Havoc Pennington wrote:
> On Mon, 2005-11-14 at 12:54 +0000, Daniel P. Berrange wrote:
> > b) Just tack a number onto the end of the interface name, getting
> > something like 'org.example.Music.Player2', 'org.example.Music.Player3',
> > etc, etc.
>
> This is what most existing frameworks such as COM do fwiw. Another
> convention is to put "X" in there, like "XPlayer" or "javax."
>
> Java typically creates a new package with a new API for major changes,
> e.g. io -> nio
>
> > In
> > reality many apps will choose c), even though it is truely evil.
>
> Well, just because the Linux world seems to be kind of retarded about
> this. Lots of pushback on ometer.com/parallel.html too, for "aesthetic"
> reasons. I think the Java and Windows worlds both "get it" on this
> front.
Now that is a very interesting / helpful URL. I had been thinking about
this purely in terms of ensuring a client can express a required minimum
version for an interface, and not considering the wider use case of how
can one allow multiple versions of a service to co-exist on the bus. Tacking
the major versioning digit onto the end of a name is a really quite effective
way of enabling parallel installation of different versions - trivially
avoiding the need to introduce (much) extra logic in the bus. In light of this,
I think the 'rename for breakage' rule isn't soo bad after all :-)
Regards,
Dan.
--
|=- GPG key: http://www.berrange.com/~dan/gpgkey.txt -=|
|=- Perl modules: http://search.cpan.org/~danberr/ -=|
|=- Projects: http://freshmeat.net/~danielpb/ -=|
|=- berrange at redhat.com - Daniel Berrange - dan at berrange.com -=|
-------------- next part --------------
A non-text attachment was scrubbed...
Name: not available
Type: application/pgp-signature
Size: 189 bytes
Desc: Digital signature
Url : http://lists.freedesktop.org/archives/dbus/attachments/20051115/55e08d52/attachment.pgp
More information about the dbus
mailing list