[Development] Updates to QUIP-6: Acceptable Source-Incompatible changes

Marc Mutz marc.mutz at qt.io
Fri Dec 16 22:49:51 CET 2022


The recent episode with qVersion() moving from qglobal.h to 
qlibraryinfo.h, a header not included in qglobal.h, has shown that 
QUIP-6 SiC A are too broad a category. As per QUIP-6, I'm proposing to 
add a new entry to the table that bans moving definitions from one 
header to another if the headers don't include each other. Optionally, 
we may allow this for classes, because the <QClass> header will continue 
to work as before.

I'm also proposing to add a sentence that SiC B's can be made acceptable 
if they're hidden behind opt-in macros. This just spells out existing 
practice, to wit QT_NO_FOO, QT_CONFIG(foo), or QT_DEPRECATED_SINCE.

The changes, in order:
- https://codereview.qt-project.org/c/meta/quips/+/449444
   (editorial, numbers the rows in the table for easier reference)
- https://codereview.qt-project.org/c/meta/quips/+/449445
   (mentions opt-in mechanisms)
- https://codereview.qt-project.org/c/meta/quips/+/449446
   (bans moving definitions from one header to another)
- https://codereview.qt-project.org/c/meta/quips/+/449447
   (exception for class types)

Please discuss!


Marc Mutz <marc.mutz at qt.io>
Principal Software Engineer

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

Geschäftsführer: Mika Pälsi, Juha Varelius, Jouni Lintunen
Sitz der Gesellschaft: Berlin,
Registergericht: Amtsgericht Charlottenburg,
HRB 144331 B

More information about the Development mailing list