Qt-Version-Compatibility: Difference between revisions

From Qt Wiki
Jump to navigation Jump to search
No edit summary
 
No edit summary
Line 1: Line 1:
[[Category:Developing_Qt::Guidelines]]
'''''Work In Progress'''''
'''''Work In Progress'''''


=Qt Version Compatibility=
[toc align_right="yes" depth="3"]


Qt uses a major.minor.patch numbering scheme for Qt releases. For example, Qt 5.0.1 represents the 1st patch release of Qt 5.0. Each release has restrictions on what kind of changes are acceptable, in order to provide a predictable and stable <span class="caps">API</span>. This enables users who are only interested in certain types of improvements to be sure that they won’t be adversely affected by upgrading to a newer version.
= Qt Version Compatibility =
 
Qt uses a major.minor.patch numbering scheme for Qt releases. For example, Qt 5.0.1 represents the 1st patch release of Qt 5.0. Each release has restrictions on what kind of changes are acceptable, in order to provide a predictable and stable API. This enables users who are only interested in certain types of improvements to be sure that they won't be adversely affected by upgrading to a newer version.


We do our best to maintain compatibility between versions. However, in order to improve Qt it is sometimes necessary to break compatibility.
We do our best to maintain compatibility between versions. However, in order to improve Qt it is sometimes necessary to break compatibility.
Line 13: Line 17:
'''Patch''' releases are both backwards and forwards binary and source compatible.
'''Patch''' releases are both backwards and forwards binary and source compatible.


==Binary Compatibility Guidelines==
== Binary Compatibility Guidelines ==
 
<blockquote>
 
A library is '''binary compatible''', if a program linked dynamically to a former version of the library continues running with newer versions of the library without the need to recompile. – [https://techbase.kde.org/Policies/Binary_Compatibility_Issues_With_C techbase.kde.org] ''[techbase.kde.org]''++


<blockquote>A library is '''binary compatible''', if a program linked dynamically to a former version of the library continues running with newer versions of the library without the need to recompile.<br />- &quot;techbase.kde.org&amp;quot;:https://techbase.kde.org/Policies/Binary_Compatibility_Issues_With_C++
</blockquote>
</blockquote>
Below are examples of binary compatible and binary incompatible changes.
Below are examples of binary compatible and binary incompatible changes.


===Compatible Changes===
=== Compatible Changes ===




===Incompatible Changes===
=== Incompatible Changes ===




==Source Compatibility Guidelines==
== Source Compatibility Guidelines ==
 
<blockquote>
 
If a program needs to be recompiled to run with a new version of library but doesn’t require any further modifications, the library is '''source compatible'''. – [https://techbase.kde.org/Policies/Binary_Compatibility_Issues_With_C techbase.kde.org] ''[techbase.kde.org]''++


<blockquote>If a program needs to be recompiled to run with a new version of library but doesn't require any further modifications, the library is '''source compatible'''.<br />- &quot;techbase.kde.org&amp;quot;:https://techbase.kde.org/Policies/Binary_Compatibility_Issues_With_C++
</blockquote>
</blockquote>
Below are examples of source compatible and source incompatible changes.
Below are examples of source compatible and source incompatible changes.


===Compatible Changes===
=== Compatible Changes ===




===Incompatible Changes===
=== Incompatible Changes ===




==Compatibility in Modules==
== Compatibility in Modules ==
 
The modules in [[Qt-Essentials-Modules|Qt Essentials]] have the same forward and backward compatibility promises as Qt 4: new Qt 5 minor releases will not break binary compatibility, and patch level releases are forward and backward compatible. [[Qt-Add-ons-Modules|Qt Add On]] modules specify their compatibility promise separately.
 
==Additional Information==


For more information on which branch you should submit a change to depending on its compatibility, see the [[Branch-Guidelines|branch guidelines]].
The modules in [[Qt-Essentials-Modules | Qt Essentials]] have the same forward and backward compatibility promises as Qt 4: new Qt 5 minor releases will not break binary compatibility, and patch level releases are forward and backward compatible. [[Qt-Add-ons-Modules | Qt Add-On]] modules specify their compatibility promise separately.


==References==
== Additional Information ==


http://qt.io/groups/qt-contributors-summit-2011/wiki/Qt5ProductDefinition#a79cebd30df3933c09d6584eb0e9fa54<br />http://techbase.kde.org/Policies/Binary_Compatibility_Issues_With_C++
For more information on which branch you should submit a change to depending on its compatibility, see the [[Branch-Guidelines | branch guidelines]].


===Categories:===
== References ==


* [[:Category:Developing Qt|Developing_Qt]]
http://qt.io/groups/qt-contributors-summit-2011/wiki/Qt5ProductDefinition#a79cebd30df3933c09d6584eb0e9fa54
** [[:Category:Developing Qt::Guidelines|Guidelines]]

Revision as of 09:04, 24 February 2015


Work In Progress

[toc align_right="yes&quot; depth="3&quot;]

Qt Version Compatibility

Qt uses a major.minor.patch numbering scheme for Qt releases. For example, Qt 5.0.1 represents the 1st patch release of Qt 5.0. Each release has restrictions on what kind of changes are acceptable, in order to provide a predictable and stable API. This enables users who are only interested in certain types of improvements to be sure that they won't be adversely affected by upgrading to a newer version.

We do our best to maintain compatibility between versions. However, in order to improve Qt it is sometimes necessary to break compatibility.

Major releases may break backwards binary and source compatibility, although source compatibility may be maintained.

Minor releases are backwards binary and source compatible.

Patch releases are both backwards and forwards binary and source compatible.

Binary Compatibility Guidelines

A library is binary compatible, if a program linked dynamically to a former version of the library continues running with newer versions of the library without the need to recompile.
- "techbase.kde.org&quot;:https://techbase.kde.org/Policies/Binary_Compatibility_Issues_With_C++

Below are examples of binary compatible and binary incompatible changes.

Compatible Changes

Incompatible Changes

Source Compatibility Guidelines

If a program needs to be recompiled to run with a new version of library but doesn't require any further modifications, the library is source compatible.
- "techbase.kde.org&quot;:https://techbase.kde.org/Policies/Binary_Compatibility_Issues_With_C++

Below are examples of source compatible and source incompatible changes.

Compatible Changes

Incompatible Changes

Compatibility in Modules

The modules in Qt Essentials have the same forward and backward compatibility promises as Qt 4: new Qt 5 minor releases will not break binary compatibility, and patch level releases are forward and backward compatible. Qt Add-On modules specify their compatibility promise separately.

Additional Information

For more information on which branch you should submit a change to depending on its compatibility, see the branch guidelines.

References

http://qt.io/groups/qt-contributors-summit-2011/wiki/Qt5ProductDefinition#a79cebd30df3933c09d6584eb0e9fa54