Hi,

We have 
https://community.kde.org/Policies/Binary_Compatibility_Issues_With_C%2B%2B 
for backwards binary compatibility issues and we have 
https://contribute.qt-project.org/quips/6 for acceptable and 
unacceptable backwards source compatibility.

However, please keep in mind that the Qt project promises that we 
maintain _forward_ BC and SC within patch releases: 
https://wiki.qt.io/Qt-Version-Compatibility

Without further clarification (absent from the linked wiki page), this 
means no new symbols that are (legally) referencible by user code may be added 
post .0 release.

One could argue that if user code uses new symbols (for BC) or variable, 
constants, functions or classes, or templates thereof (for SC), it's 
their own problem that the code doesn't work against older releases of 
the same minor release. But that's something we need to clarify in 
https://wiki.qt.io/Qt-Version-Compatibility and, at a minimum, we'd need 
a \since 6.5.2 (say) to document the in-patch-release addition.

That argument doesn't help with symbols that unchanged user code might 
reference by a mere recompilation. This includes new overloads or 
overrides of existing functions. Merely recompiling user code against a 
new patch release should never make the result incompatible with older 
releases from the same minor version. That would mean we have no SC/BC 
guarantees at all in that situation.

I've looked around git diff v6.5.0..gerrit/6.5 a bit and added some 
comments to changes that think are suspect in this regard.

I think we should decide what we mean by forward BC and SC and describe 
it in https://wiki.qt.io/Qt-Version-Compatibility more precisely.

Thanks,
Marc

-- 
Marc Mutz <marc.m...@qt.io>
Principal Software Engineer

The Qt Company
Erich-Thilo-Str. 10 12489
Berlin, Germany
www.qt.io

Geschäftsführer: Mika Pälsi, Juha Varelius, Jouni Lintunen
Sitz der Gesellschaft: Berlin,
Registergericht: Amtsgericht Charlottenburg,
HRB 144331 B
_______________________________________________
Releasing mailing list
Releasing@qt-project.org
https://lists.qt-project.org/listinfo/releasing

Reply via email to