Frank Schönheit - Sun Microsystems Germany wrote:

> Hi Mathias,
> 
>>> If major releases happen every 3 years, then allowing API changes only on a 
>>> mayor release does not make much sense to me.
>> 
>> That depends from where you look at it. We always must consider that API
>> users expect API stability, so we need to find a good compromise.
>> Changing APIs every 6 months definitely isn't one.
>> 
>> I think that for now aiming for 4.0 as the first release that allows for
>> incompatible API changes is reasonable and I see this as a good
>> opportunity to get the most annoying things fixed. So perhaps the
>> "pressure" to have more fixes only a few months later shouldn't be too
>> high and for now I would like to plan for 5.0 as the next release for
>> more changes.
> 
> I'd expect a timing problem then. If you need a precision landing for
> your API change, then chances are good you will miss it - and then
> you'll have to wait for another 3 years (which effectively means your
> CWS will rot over that time).
> 
> For a very good reason, we have a train model - "integrate what's done,
> not more, not less" - for all other code changes. The lesson we learned
> for features is that precision landings - "I want to have that finished
> for release x.y" - are doomed to fail too often. Why should this be
> different for API changes?

I don't buy that. If something is really important, I know that I have
to get it ready in time and the available time is sufficient, I can
start early enough. You are right, we won't be able to have exact
timings for everything we do, but it should be doable to get some of the
things (preferably the important ones ;-)) ready in a multi year planning.

Most of the changes you have in mind now are related to old existing
APIs. So now you have many months to plan which APIs to change in 4.0
and calculate the effort. This should allow you to schedule the changes
for the next major release. Planning for 4.0 means that you will have a
time frame of at least 6 months for your "ready" date. So you can plan
to have the changes ready half a year before the major release
(immediately after branch-off date for the last 3.x version) and
calculate the necessary starting dates accordingly. You still have
several months leeway. Sounds doable to me.

Really, we shouldn't overburden our API "customers". We couldn't do any
incompatible changes for now many years and last time I checked the
project is still alive. So it should be OK for now to restrict
incompatible changes to major releases.

I think that even the impression that our API wouldn't be reliable for
more than 6 months would be bad for our project. Even if you and me know
that allowing for API changes basically in every minor release won't
lead to complete chaos, the impression can emerge that indeed this will
happen.

So I opt for targeting only major releases for all API changes that will
force either code changes or recompilations. API changes with only
documentary character (like in old-style services) should be possible at
every release (even 3.x).

Every agreement can be reconsidered later, so this one also. But we
don't need to do that before 4.0 has actually shipped.

Ciao,
Mathias

-- 
Mathias Bauer (mba) - Project Lead OpenOffice.org Writer
OpenOffice.org Engineering at Sun: http://blogs.sun.com/GullFOSS
Please don't reply to "nospamfor...@gmx.de".
I use it for the OOo lists and only rarely read other mails sent to it.

---------------------------------------------------------------------
To unsubscribe, e-mail: dev-unsubscr...@api.openoffice.org
For additional commands, e-mail: dev-h...@api.openoffice.org

Reply via email to