Skip to main content

[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index] [List Home]
Re: [cdt-dev] The Great Managed Build API Tooling Fiasco of 2009

2009/4/22 Elena Laskavaia <elaskavaia@xxxxxxx>:
> I am not talking breakage I am talking about extension. When we going to
> maintanance mode i.e. 6.0.1 it would real pain because some method in public
> class declared private and not protected and so on. We hit a lot of with
> 5.0.2.

IMHO I don't believe we should be changing API in the stable branches,
whether it's a visibility change or a contract change i.e. behaviour
changed in some subtle way.  Unless it's a genuine bug-fix, all
feature changes should be confined to mainline.

In 50x such api changes did caused unexpected breakage for
integrators. In some cases this required code changes. This isn't
ideal at all, and I think it's something the API tooling will help us
with. If the API tooling says we're breaking something in a
maintenance branch, we should really thing hard about whether to make
the change at all!

> Yes we not suppose to do that in bug fix mode, but it I don't think
> it
> was designed to be a good API and we find it out by trial and error. Does it
> (API tooling) allow to make something like that as an exception?

Yes, you can add exceptions for given errors which occur, and if need
be this file can be checked in. But this should be heavily
discouraged.

Having a the plugin version number internalize the compatibility
between different releases is just another way of helping extenders
use the functionality safely and increases transparency.  Changing API
without up-versioning makes it difficult / impossible for anyone to
know whether the next bug fix release of the cdt platform will
continue to work with extender plugins untouched.

So +1 from me for enabling this.

James

>
> Chris Recoskie wrote:
>>
>> Wouldn't you rather know you're creating a breakage and deal with it by
>> adding an exclusion if you need to? Given we're past the freeze, I would
>> rather turn on the tooling in order to force the conversation to happen
>> about any such changes. We're going to start ramping down in only a few
>> weeks.
>>
>> I haven't detected any actual API breakages. We added some things, hence
>> the need to upversion to 5.1.0 and give them @since tags, but those are not
>> API breakages. Most of the changes happen to the internals, which are not
>> tracked as API. Given that the API errors I found were minor, I don't think
>> this is a problem, as I think I would have detected breakages if we need to
>> break things as often as you say, because someone would have broken them by
>> now in 6.0
>>
>> Or are we declaring that nothing in MBS is API right now? I don't agree
>> with that.
>>
>> ===========================
>> Chris Recoskie
>> Team Lead, IBM CDT and RDT
>> IBM Toronto
>> Inactive hide details for Elena Laskavaia <elaskavaia@xxxxxxx>Elena
>> Laskavaia <elaskavaia@xxxxxxx>
>>
>>
>>                        *Elena Laskavaia <elaskavaia@xxxxxxx>*
>>                        Sent by: cdt-dev-bounces@xxxxxxxxxxx
>>
>>                        04/22/2009 09:46 AM
>>                        Please respond to
>>                        "CDT General developers list."
>> <cdt-dev@xxxxxxxxxxx>
>>
>>
>>
>> To
>>
>> "CDT General developers list." <cdt-dev@xxxxxxxxxxx>
>>
>> cc
>>
>>
>> Subject
>>
>> Re: [cdt-dev] The Great Managed Build API Tooling Fiasco of 2009
>>
>>
>>
>>
>> As I already said I don't think we should enabled API tooling for this
>> release because API have to be cleaned up before.
>> And it has not been done for this release. Committing every small fix
>> usually results in API extensions for managebuild stuff
>> (but we should enable it as soon as start 7.0)
>>
>> Chris Recoskie wrote:
>>  > This seems to have worked out, so unless there are any objections I'm
>>  > going to look at checking in changes to enable this. There have not
>> been
>>  > many API changes in MBS in this release, so there were not many API
>>  > errors to fix. Mostly missing @since tags.
>>  >
>>  > One thing to note is that the plugin versions will be raised to 5.1.0.
>> I
>>  > see they are currently at 5.0.100 for some reason.
>>  >
>>  > ===========================
>>  > Chris Recoskie
>>  > Team Lead, IBM CDT and RDT
>>  > IBM Toronto
>>  > Inactive hide details for "Schorn, Markus"
>>  > <Markus.Schorn@xxxxxxxxxxxxx>"Schorn, Markus"
>> <Markus.Schorn@xxxxxxxxxxxxx>
>>  >
>>  >
>>  >                         *"Schorn, Markus"
>> <Markus.Schorn@xxxxxxxxxxxxx>*
>>  >                         Sent by: cdt-dev-bounces@xxxxxxxxxxx
>>  >
>>  >                         04/21/2009 04:15 AM
>>  >                         Please respond to
>>  >                         "CDT General developers list."
>> <cdt-dev@xxxxxxxxxxx>
>>  >
>>  >
>>  >
>>  > To
>>  >
>>  > "CDT General developers list." <cdt-dev@xxxxxxxxxxx>
>>  >
>>  > cc
>>  >
>>  >
>>  > Subject
>>  >
>>  > RE: [cdt-dev] The Great Managed Build API Tooling Fiasco of 2009
>>  >
>>  >
>>  >
>>  >
>>  > The API tooling does not care about how you name the packages. However
>>  > it is important whether the package is marked as internal or not in the
>>  > plugin manifest. Should be easy to fix.
>>  >
>>  > Markus.
>>  >
>>  >
>> ------------------------------------------------------------------------
>>  > *From:* cdt-dev-bounces@xxxxxxxxxxx
>> [mailto:cdt-dev-bounces@xxxxxxxxxxx]
>>  > *On Behalf Of *Chris Recoskie*
>>  > Sent:* Tuesday, April 21, 2009 3:21 AM*
>>  > To:* cdt-dev@xxxxxxxxxxx*
>>  > Subject:* [cdt-dev] The Great Managed Build API Tooling Fiasco of 2009*
>>  > Importance:* Low
>>  >
>>  > Folks,
>>  >
>>  > I've been looking at turning on the API tooling on the MBS plugins.
>>  > However, I've hit a big snag in that many of the internal packages are
>>  > not named correctly (using org.eclipse.cdt.managedbuilder.internal.*
>>  > instead of org.eclipse.cdt.internal.managedbuilder.*) This causes the
>>  > API tooling to think that these packages are public, and it reports
>>  > gazillions of errors on them that should not be considered errors..
>>  >
>>  > My first instinct was to perhaps refactor these packages to use the
>>  > right naming convention, but then we lose the CVS history on them all,
>>  > and this affects a lot of classes :-(
>>  >
>>  > Setting up manual exclusions would be a tedious nightmare, and would
>> end
>>  > up being an ongoing process that continues whenver someone makes a
>>  > change to the internals.
>>  >
>>  > I've looked to see if there is a way to add additonal rules as to how
>>  > internal packages are named, but I can't seem to find this anywhere.
>>  >
>>  > Does anyone have suggestions/opinions?
>>  >
>>  > ===========================
>>  > Chris Recoskie
>>  > Team Lead, IBM CDT and RDT
>>  > IBM Toronto_______________________________________________
>>  > cdt-dev mailing list
>>  > cdt-dev@xxxxxxxxxxx
>>  > https://dev.eclipse.org/mailman/listinfo/cdt-dev
>>  >
>>  >
>>  >
>> ------------------------------------------------------------------------
>>  >
>>  > _______________________________________________
>>  > cdt-dev mailing list
>>  > cdt-dev@xxxxxxxxxxx
>>  > https://dev.eclipse.org/mailman/listinfo/cdt-dev
>> _______________________________________________
>> cdt-dev mailing list
>> cdt-dev@xxxxxxxxxxx
>> https://dev.eclipse.org/mailman/listinfo/cdt-dev
>>
>>
>> ------------------------------------------------------------------------
>>
>> _______________________________________________
>> cdt-dev mailing list
>> cdt-dev@xxxxxxxxxxx
>> https://dev.eclipse.org/mailman/listinfo/cdt-dev
>
> _______________________________________________
> cdt-dev mailing list
> cdt-dev@xxxxxxxxxxx
> https://dev.eclipse.org/mailman/listinfo/cdt-dev
>


Back to the top