Well, according to the input, the word "experimental" brings messages regarding 
temporary status and transferring to public API in the future, that doesn't fit 
well to some cases.
To address this, I'd rather choose the word that reflects its semiprivate 
status and limited compatibility guarantees.

  *
protected - for me, it doesn't sound clear in terms of headers
  *
limited_compat - looks good, but doesn't reflect private status
  *
semiprivate - perhaps better as it reflects what it does


So, what about "semiprivate"?


Confidential
________________________________
From: Fabian Kosmale <[email protected]>
Sent: Thursday, May 21, 2026 11:30 AM
To: Qt development mailing list <[email protected]>; Artem Dyomin 
<[email protected]>
Subject: AW: Semi-private headers in Qt

Hi,

for some modules, "experimental" might be fine, but I believe calling QRhi or 
QPA experimental might send the wrong message:
It's not an experiment that, if successful, would at some point become stable 
API, but it's API where we never want commit to
API and ABI stability, as we need the flexibility to adapt to changes in the 
underlying APIs.
"experimental" might also be read as "not fit for production usage", which is 
IMHO also the wrong message.

Kind regards,
Fabian

--


Fabian Kosmale


Manager



The Qt Company GmbH


Erich-Thilo-Str. 10
D-12489 Berlin


[email protected]


+49 1638686070


https://eur01.safelinks.protection.outlook.com/?url=http%3A%2F%2Fqt.io%2F&data=05%7C02%7C%7C7c19a7e7d4cc4bcfa54408deb71b99c1%7C20d0b167794d448a9d01aaeccc1124ac%7C0%7C0%7C639149526350575904%7CUnknown%7CTWFpbGZsb3d8eyJFbXB0eU1hcGkiOnRydWUsIlYiOiIwLjAuMDAwMCIsIlAiOiJXaW4zMiIsIkFOIjoiTWFpbCIsIldUIjoyfQ%3D%3D%7C0%7C%7C%7C&sdata=l28p2OGfFzt6CI6cwZ%2F2y5ko2zs3DdiHtyuZMWy2xuo%3D&reserved=0<http://qt.io/>









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





--



________________________________________
Von: Development <[email protected]> im Auftrag von Artem 
Dyomin via Development <[email protected]>
Gesendet: Donnerstag, 21. Mai 2026 11:07
An: Qt development mailing list
Betreff: [Development] Semi-private headers in Qt

In Qt, we have semi-private functionality for rhi, qpa, ssg, that contain a 
disclaimer in headers and docs limiting SC and BC guarantees, and requiring to 
link the private part of the module. The headers are deployed as 
<QtGui/rhi/qrhi.h> etc.
We want to add similar headers for Multimedia with GStreamer functionality. A 
good idea is having a good name for this kind of API (e.g. experimental) and 
deploy the headers as <QtModule/experimental/qheader.h>.
The current plan is deploying new gstreamer-related headers under the new name, 
and then consider transferring existing headers to the new approach (with 
keeping old ones).

In my view, the term "experimental" is the best as the term "experimental" in 
C++ highly correlates with how Qt declares it in terms of SC and BC.
A discussion has been started in the CR adding "experimental".
https://codereview.qt-project.org/c/qt/qtbase/+/736307

Other proposals are "semiprivate", "nocompat", "unstable" or similar.

Are you agreed that <QtModule/experimental/qheader.h> works fine for these 
semi-private headers?


Confidential
-- 
Development mailing list
[email protected]
https://lists.qt-project.org/listinfo/development

Reply via email to