[Development] How does QML versioning work?

Koehne Kai Kai.Koehne at digia.com
Mon Jul 28 08:59:58 CEST 2014

> -----Original Message-----
> From: development-bounces+kai.koehne=digia.com at qt-project.org
> Subject: [Development] How does QML versioning work?
> Hi all,
> We have a very clearly defined policy on what changes are allowed new
> versions of Qt:
> - Patch release: Source & binary compatible bug fixes only
> - Minor release: Source & binary compatible bug fixes and new features
> - Major release: Incompatible changes allowed
> What about QML modules? I couldn't find a similar policy outlined anywhere;
> does one exist?

I'm not sure it's written down anywhere. Anyhow, that's how _I_ understand the policy so far:

- The major number is bumped for rewritings (e.g. API is removed, or altered).
- The minor number is bumped for new API.
- Fixes that do not introduce new API (behavioral changes) do not require a version change.

Qt Quick modules have to keep the source/binary compatibility promises of Qt, but are otherwise versioned independently.

That is,
- All import versions have to be supported until a new Qt major release.
- Qt minor releases might contain new imports, and new import versions.
- Qt patch releases might contain new import versions, too [1].
- Import versions do not need to be "bumped" in a Qt release.



[1]: There's precedence for this in Qt 4.x times, and actually one of the reasons why a separate scheme for e.g. QtQuick was introduced. Anyhow, it's IMO something best to be avoided.

More information about the Development mailing list