[Development] Removing Qt 3D from release configuration in dev branch

Mike Krus mike.krus at kdab.com
Thu Apr 4 16:13:58 CEST 2024


Hi everyone

Disclaimer: I’m one of the contributors to Qt3D, and a KDAB employee.

As mentioned, early discussions have taken place between KDAB and tQtC around this issue, 
although much needs to be clarified as to why, how and when this happens.

As mentioned by Tuukka, Qt3D was introduced in Qt4 timeline, but didn’t make it into Qt5.
KDAB invested a lot of time in a complete rewrite of the module (don’t think it shares anything
with the original) and it was made available sometime in the Qt 5 timeline.  Many contributions
have been made since then, including in Qt6 with the introduction of an RHI based backend (although
to this day this doesn’t have feature parity with the GL backend due to limitations of RHI).

But since then things have settled down in the Qt6 branch, no major features have been added. KDAB 
has continued to contribute bug fixes, and small features in support of our clients. So development
has indeed been very slow.

So hence came the discussions on retiring Qt3D. KDAB is ok on the principle and committed to
keep maintaining Qt3D in the same manor.

But there’s a lot of implications.

So what does “removing qt3d from release configuration” mean for contributors?
- if CI remains, gerrit continue to check commits right? If so, the version of qt this is built against 
  remains controlled by the dependencies.yaml file?
- but I also presume qt5.dev integration will no longer affect qt3d? ie there will no automated checked that
  qt3d continues to build against the rest qt when that changes and the dependencies.yaml won’t  be
  updated automatically?
- no more automatic branching?
- so how does versioning work? Would it be up to maintainer to decide when to do branches, tags, releases?
  And what would be a good strategy for that?
- module life cycle in general needs to be defined.

And what does “removing qt3d from release configuration” mean for users/developers?
- no longer in the installer, or tarballs?
- probably no longer in linux distributions?
- do ABI/API compatibility rules still apply?
- for new projects, no more C++ 3D scene graph API, and no more LGPL licensed module to do 3d.
  At least not bundled with Qt?
- only way to get the code would be to check it out and build it?
- given qt3d is a proper qt module (as opposed to a simple library), including qml (and it’s own) plugins, and
  that it was up to now installed along the rest of Qt, how much work will it be for existing users to change 
  their build to continue getting new versions of Qt3D?
- and finally, how do we warn users of the upcoming change? 


While I have no problems with the aim of this, we need to figure out the important details first before
pulling the trigger.



Mike

 
> On 27 Mar 2024, at 08:39, Tuukka Turunen <tuukka.turunen at qt.io> wrote:
> 
> Hi,
>  We have been discussing with KDAB about the future maintenance of Qt 3D module. It is a quite large and complex module, which has for most use cases by now been superseded by Qt Quick 3D. Since Qt 3D has been available for a long time, it should continue to be available for those who still need it. It is also part of all currently supported releases, which would continue to have it in upcoming patch level releases.
>  After discussing with KDAB (maintainer of Qt 3D) on how to proceed, we came up with the following and also agreed that I’ll summarize it for the Qt project development list:
>     • Qt 3D module is removed from official release configuration in the dev branch, i.e. no longer part of the releases from Qt 6.8 onwards
>     • Qt 3D continues to be part of Qt project, it continues to be covered by CI, and available in the repository for those who want to use it
>     • Even though not part of the release configuration, intention is to keep Qt 3D working also with Qt 6.8
>     • Qt 6.7 and older releases continue to have Qt 3D module in the upcoming patch releases
> Qt 3D module was initially developed for Qt 4 and then received a major overhaul for Qt 5. It was also brought forward to Qt 6. Initially the idea was to offer Qt 3D as a separate item in Qt 6.0 via package manage (https://wiki.qt.io/Qt_6.0.0_Modules), but since we were not able to make this modularity successful, it was included to the release configuration along with the other add-on modules. Qt Quick 3D is a later addition to Qt, originating from the contribution from NVIDIA (https://www.qt.io/blog/2017/02/20/introducing-qt-3d-studio), initially as a separate runtime, then refactored into Qt Quick 3D for Qt 5 to achieve better alignment with Qt Quick 2D and after that completely reworked to be fully aligned with Qt Quick in Qt 6.
>  Yours,
>                  Tuukka


—
Mike Krus | mike.krus at kdab.com | Senior Software Engineer & Teamlead
KDAB (UK) Ltd., a KDAB Group company
Tel: UK Office +44 1625 809908   Mobile +44 7833 491941
KDAB - The Qt Experts, C++, OpenGL Experts



More information about the Development mailing list