Any class that is referenced via any parameters or return values from the public API (the api module) is also part of the public API. The 3rd parameter to the ImageInterface constructor is a ProgressTracker object. So this exposes ProgressTracker as part of the public API.

The Update Center updatetool implements its own ProgressTracker as part of using this interface and that progress tracker has dependences on other parts of updatetool and the toolkits it uses (wxWidgets). I'm assuming that you are not really suggesting that we put all of updatetool into the gate.

I would suggest modifying the new methods within the ProgressTracker class so that they just return rather than raising a NotImplementedError. If someone is interested in doing something for those methods, they can be overridden in the subclass. If not interested, the subclass doesn't need to do anything.

Cheers,
Tom

[email protected] wrote:
Tom,

On Wed, Apr 22, 2009 at 11:00:36AM -0500, Shawn Walker wrote:
Tom Mueller wrote:
Shawn,

Isn't the addition of the ProgressTracker methods that raise a NotImplementedError an incompatible change to the API? A program that extended ProgressTracker previously and worked without having an exception raised will now have an exception raised when these methods are called unless they do what you had to do in installupdate.py (implement empty methods).
These are methods that subclasses need to implement, I'm not sure what else I can do here.

As far as I know, we've never made the decision how the progresstracker class ties to the public client API and how the API might be rev'd.

Also, as far as I know, the programs in the pkg(5) gate are the only ones to implement progress trackers. As such, that particular aspect of this change really isn't a concern for me.

I agree with Shawn on this one.  The ProgressTracker is a separate
interface from the versioned API that's exposed to client callers.
Anyone who has extended a version of the ProgressTracker and left their
code outside of the gate is essentially using a consolidation private
interface.  If you have a custom progress tracker that you'd like to
avoid being broken by incompatible changes, I'd encourage you to
integrate it into the pkg gate.

-j

begin:vcard
fn:Tom Mueller
n:Mueller;Tom
org:Sun Microsystems, Inc.;SWI Install/Update Software
adr:;;21915 Hillandale Dr;Elkhorn;NE;68022;USA
email;internet:[email protected]
title:Senior Staff Engineer
tel;work:877-250-4011
tel;fax:877-250-4011
tel;home:402-916-9943
x-mozilla-html:TRUE
version:2.1
end:vcard

_______________________________________________
pkg-discuss mailing list
[email protected]
http://mail.opensolaris.org/mailman/listinfo/pkg-discuss

Reply via email to