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