Solid API change request (with patch)

Kevin Ottens ervin at kde.org
Fri Nov 2 09:48:14 GMT 2007


Le vendredi 2 novembre 2007, Sebastian Kuegler a écrit :
> I'm against changing the API if it doesn't fix a bug in this stage. To be
> able to judge this issue in a more informed way:
>
> - Is it possible to do this in a binary compatible way (which doesn't make
> one puke when reading the code)

Well, it's a signal signature change. So binary compatible... Granted it means 
the connects of non-ported code will fail at runtime though. A way to avoid 
this problem would be to add the extra signal (bool,QString) instead of 
replacing the current one. Solid::StorageAccess would have:
void accessibilityChanged(bool);
AND
void accessibilityChanged(bool, const QString&);

Note that I'm not really in favor of this move though, despite the RC being 
already released.

> - How painful is it shifting this to post-4.0?

Depends on who use the API. In the case of Jeff it makes his feature more 
complicated to write, keeping around a lot of pointers and allowing him to 
shoot himself in the foot when a user upload stuff to his portable media 
player. Also after 4.0 modifying a signal like this will be a no-no on my 
side.

If we apply the proposal above (adding an extra signal instead of changing the 
signature of the current one), that means we'll keep two redundant signals 
until KDE 5.0.

> I think at this point we should only change the API for really critical
> issues, even if that causes a bit of temporary pain. We cannot introduce
> source/binary incompatible changes, that forces people to recompile and
> gives less time for testing, or it causes problems with BIC that need to be
> solved by a recompile and thus costs even more energy.

Note that solid is not widely used ATM. And this particular signal is used 
only by Jeff and KFilePlacesModel... Means that the transition won't be 
painful, Amarok dev already have the switch in the pipe, and the fixed 
KFilePlacesModel will arrive to you in updated kdelibs.

> IMO, this really is the time to only fix things, and not keep changing
> kdelibs. Besides that, introducing an API change after a release candidate 
> is ... not smart.

Timing issues in development have nothing to do with being smart or not. Maybe 
you didn't notice we're lacking developer time at a lot of places? That's 
really not tinkering at this stage, but new API defects getting detected by 
wider use.

> The platform is hard-frozen, and there's a good reason 
> for that.

Agreed, I wouldn't have okay-ed this change to Jeff if it could bite us for 
the transition, but since it was a signal signature change currently used 
only in kdelibs and by him it looks safe enough IMHO.

Regards.
-- 
Kévin 'ervin' Ottens, http://ervin.ipsquad.net
"Ni le maître sans disciple, Ni le disciple sans maître,
Ne font reculer l'ignorance."
-------------- next part --------------
A non-text attachment was scrubbed...
Name: signature.asc
Type: application/pgp-signature
Size: 194 bytes
Desc: This is a digitally signed message part.
URL: <http://mail.kde.org/pipermail/kde-core-devel/attachments/20071102/47d0a999/attachment.sig>


More information about the kde-core-devel mailing list