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

Ziller Eike Eike.Ziller at digia.com
Tue Jul 2 11:55:29 CEST 2013


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
     
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).

(a)
<plugin name="Core" version="2.8.84" compatVersion="2.8.84">

(b)
<plugin name="Core" version="3.0.0" compatVersion="3.0.0">

(c)
<plugin name="Core" version="3.0.1" compatVersion="3.0.0">

(d)
<dependency name="Core" version="3.0.1"/>

(e)
<dependency name="Core" version="3.0.0"/>

-- 
Eike Ziller, Senior Software Engineer - Digia, Qt
 
Digia Germany GmbH, Rudower Chaussee 13, D-12489 Berlin
Geschäftsführer: Mika Pälsi, Juha Varelius, Anja Wasenius
Sitz der Gesellschaft: Berlin, Registergericht: Amtsgericht Charlottenburg, HRB 144331 B




More information about the Qt-creator mailing list