[Development] QButtonGroup: When the "right thing to do" is absolutely the wrong thing to do

Olivier Goffart olivier at woboq.com
Mon Oct 15 09:46:14 CEST 2018


On 10/13/18 9:03 AM, Boudewijn Rempt wrote:
> On vrijdag 12 oktober 2018 14:31:33 CEST Konstantin Ritt wrote:
>> It didn't.
> 
> Then what else made it necessary to suddenly add lots of #include
> <QButtonGroup> lines?


Maybe that was commit 000c76ada5cc21479fc479be16a7507fed6490f8 ?


The commit you mentioned does not touch any public headers and was already in 
Qt 5.6. So unless you include private headers, in which case you are on your 
own, there was no way it causes a source incompatible change. No wonder why the 
replies you got were skeptical.
You could have stated directly what source incompatibilities you have seen.


Coming back to the actual problem of missing includes, this is indeed not the 
first time that Qt broke source compatibility in that regards. (last time i 
remember, it was requiring to include QDataStream, in Qt 5.5)

According to QUIP-6, 'Removing an include from a public header file' is an 
acceptable source incompatible change.  The rationale is that you should not 
rely on indirect includes.
IMHO, this is a bit unfortunate, as this causes indeed source incompatible 
change that makes it harder to upgrade Qt.


-- 
Olivier

Woboq - Qt services and support - https://woboq.com - https://code.woboq.org



More information about the Development mailing list