On 6 April 2010 11:21, Egon Willighagen <egon.willigha...@gmail.com> wrote:
> On Tue, Apr 6, 2010 at 12:05 PM, Noel O'Boyle <baoille...@gmail.com> wrote:
>> On 6 April 2010 10:34, Egon Willighagen <egon.willigha...@gmail.com> wrote:
>>> CDK uses the Linux kernel system [0]:
>>>
>>> x.even is stable
>>> x.odd is development (or unstable)
>>>
>>> So, the current stable release series is 1.2.x, and the current
>>> development series is 1.3.x. The latter will lead (aim this summer) to
>>> a new stable series numbered 1.4.
>>
>> So could you explain exactly what API changes are allowed between
>> successive Minor releases (e.g. 1.2 and 1.3), and what API changes are
>> allowed between successive Point releases (e.g. 1.2.3 and 1.2.4)?
>
> The used numbering scheme does not identify the second number as
> 'Minor'. Instead, those are actually 'Major'. I am not sure what they
> call the first number, so I'll call that Foo, giving you:
> Foo.Major.Minor.Point.
>
> Between 1.2.x and 1.2.(x+1) the API is stable. Only bug fixes and
> sometimes new functionality. Rarely an API change, if this is really
> needed to fix a grave bug.
>
> Betweem 1.2 and 1.3, anything can happen. 1.3 is a Foo.odd release, so
> the API can be changed at will.
>
> Just to make clear, CDK does *not* use the Major.Minor.Version release scheme.

Thanks for making that clear, because I'm not familiar with how the
Linux kernel operates.

Between 1.2.4 and 1.2.5 the API lost functionality relating to 2D
depiction. I understand that this was due to a refactoring out to
JChemPaint, not to fix a grave bug. This forces me to break my own
promise of a stable API over at Cinfony (removal of the draw() method)
or else to avoid upgrading to the remainder of the 1.2.x series.

Simply put, I don't think removal of functionality (or a refactoring)
should be allowed in a Minor release. Instead, the new CDK jar should
be a drop-in replacement for an existing jar. If there are any
automatic tools that can be added to nightly to test for API stability
(or provide a diff of the API), I would encourage you to use them and
to revert any changes that break the API.

Please take these comments as constructive criticism. Users, not
developers, are most heavily hit by API changes and it needs to be
clear if/when it's safe to upgrade from one jar to another without
breaking an application. Over at OpenBabel we get grief from Debian
for inadvertent API changes in point releases, and quite rightly too.

- Noel

------------------------------------------------------------------------------
Download Intel&#174; Parallel Studio Eval
Try the new software tools for yourself. Speed compiling, find bugs
proactively, and fine-tune applications for parallel performance.
See why Intel Parallel Studio got high marks during beta.
http://p.sf.net/sfu/intel-sw-dev
_______________________________________________
Cdk-user mailing list
Cdk-user@lists.sourceforge.net
https://lists.sourceforge.net/lists/listinfo/cdk-user

Reply via email to