Skip to main content

[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index] [List Home]
RE: [cdt-dev] API changes in IOption (cdt.managedbuilder.core)

Hi Andrew,
 
I had a quick look at the patch and I don't think that this requires a breaking change.
The additional attribute is optional, so you can define a new extension interface which all
internal implementations of IOption (Option, OptionReference) implement.
 
On the other hand, IOption looks like it is not meant to be implemented by clients,
therefore it should have the "@noimplement" tag which allows you to add methods
without breaking the API. Adding the "@noimplement" is a breaking change in itself, though.
 
In other words, if you are going to increment the major version number, I'd recommend
to tag public interfaces which are not meant to be implemented by clients with "@noimplement"
and thus avoid breaking changes later on.
 
Cheers,
Toni


From: cdt-dev-bounces@xxxxxxxxxxx [mailto:cdt-dev-bounces@xxxxxxxxxxx] On Behalf Of Andrew Gvozdev
Sent: Tuesday, January 26, 2010 6:01 PM
To: CDT General developers list.
Subject: [cdt-dev] API changes in IOption (cdt.managedbuilder.core)

Hi,
There a new contribution bug 300707 to Build Settings UI to allow an integrator to specify a file-extension filter for FileListControl when browseType 'file' is used for an option (one example is C++ Linker->Misc->Other objects).

The request makes sense, however it breaks API adding new methods to IOption interface. Since we decided in favor of CDT 7.0 it is legitimate. However it is a core interface for MBS and I suppose some existing integrations may be broken. Is there any reservations against making these breaking changes in IOption for CDT 7.0?

Andrew

Back to the top