[Qt-creator] Dev: Proposed public API/binary compatibility policy

Nicolas Arnaud-Cormos nicolas.arnaud-cormos at kdab.com
Wed Jul 3 09:11:21 CEST 2013


Hi Eike,
On 02/07/2013 11:55, Ziller Eike wrote:
> Hi,
>
> this is the proposed API / binary compatibility policy for 3.0 onward:
>
> * Source and binary compatibility within a minor release series
>     * no "unnecessary" public API changes after the Beta release,
>       changes must be communicated (e.g. note on the mailing list with the change)
>     * public API fixed starting with the RC release
>     * plugins written against the final (.0) release can also be loaded in following patch releases
>       i.e. patch releases have a compatVersion tag for .0 in the plugin spec

Looks good indeed, but you only address binary compatibility between 
patch releases.
What about minor releases? I suppose there's no binary compatibility for 
minor releases (ie a plugin written for 3.0 won't work for 3.1), but I 
prefer to ask just to be clear.

> Example:
>
> The public API of the Qt Creator 3.0 series will be fixed starting from 3.0 RC, which has internal version
> number 2.8.8x, compatVersion 2.8.8x (a). The final 3.0.0 release is binary compatible to the 3.0 RC,
> but has compatVersion 3.0.0 (b). So even though the 3.0.0 release is factually
> binary compatible with 3.0 RC, it can only load plugins that were written against 3.0.0.
> A patch release 3.0.1 is binary compatible to 3.0.0, and has compatVersion 3.0.0 (c), so plugins that were
> written against 3.0.0 load in 3.0.1. Plugins that are written against 3.0.1 can decide themselves if
> they require 3.0.1 (d), or work with 3.0.0 (e) (by setting the version tag of the dependency accordingly).

I'm not sure I'm following you here. Plugins written against 3.0.1 can 
decide to depend on Core 3.0.1 only. In this case, those plugins won't 
have a compatVersion of 3.0.0 (like in (c)), but 3.0.1, right?
So the dependency really depends on the compatVersion, not the version.

Thanks,
Nicolas

-- 
Join us in October at Qt Developer Days 2013! - https://devdays.kdab.com

Nicolas Arnaud-Cormos | nicolas.arnaud-cormos at kdab.com | Senior Software 
Engineer
KDAB (France) S.A.S., a KDAB Group company
Tel. France +33 (0)4 90 84 08 53, Sweden (HQ) +46-563-540090
KDAB - Qt Experts - Platform-independent software solutions



More information about the Qt-creator mailing list