Open AIIX opened 1 year ago
copy pasting from chat
is_qt6_available
and is_qt5_available
could be helper methods in ovos_utils to be used to conditionally select QML files in skills, if skill devs are willing to maintain compat
with the qt6 move i encourage skills to keep a qt5 version qml file and load it conditionally
at same time skill.json spec is being extended for skills to identify what they need, so OSM can be smart about it and refuse to install/fallback to older skill versions
lets assume mycroft-core sticks to qt5 in all their images etc, if we want skills to be cross compatible we will need skills to explicitly support both, at least as part of a transition period
is_qt6_available and is_qt5_available is not going to work on many distributions, as distributions might ship both qt6 and qt5 packages during the migration phase to qt6 (currently as done by manjaro) , ovos-shell / mycroft-gui library will also only compile under a single qt version, so even if the distribution is shipping qt5 and ovos-shell and mycroft-gui lib have been built against qt6, qt5 skills will not load and same for the other way around.
There is no naming schema in QML to differentiate between QT5 and QT6 qml files either, and qml files targeting Qt6 cannot live under the same folder as qml files targeting Qt5.
Skills specifically need to target Qt5 and Qt6. Qt5 will eventually fully be replaced by Qt6 and a better approach here would be to let the distribution / setup specifically target which UI version to load and use during the migration phase to avoid detection of wrong QT versions.
Qt6 resource files during the migration phase in skills will be located under the "ui6" folder in skills, Qt5 resource files during the migration phase will continue to live under "ui" folder, whenever Qt5 support is fully dropped the "ui6" folder will replace the "ui" spec'd folder in skills.
Images / Setups targeting qt6 during the migration phase can simply add "qt_version: 6" to the GUI config under mycroft.conf to load qt6 resource files, PR for this is at https://github.com/OpenVoiceOS/OVOS-workshop/pull/50
Also updating the issue as the timeline to switch / support Qt6 setups has shortened, KDE frameworks have fully switched all master branches to QT6 and will see a stable release in the coming weeks
What do these changes affect:
Proposed changes for OVOS Shell:
conversation happening in other PRs, but here is a comment raising some points to keep issues connected
https://github.com/OpenVoiceOS/OVOS-workshop/pull/50#issuecomment-1422682703
Skills Port Status (To be updated here on every milestone):
Looked into the status of QT6 within Buildroot. Looks like it might take some time, so guess switching the Buildroot image over to QT6 will not happen until further down the road this year.
At the moment only some base QT6 packages are merged into the master branch; https://github.com/buildroot/buildroot/tree/master/package/qt6
There is work going on, but I do not see to much new packages around the corner; https://patchwork.ozlabs.org/project/buildroot/list/?series=&submitter=&state=*&q=qt6&archive=&delegate=
this is not yet completed.....
Image and Mycroft-GUI issues:
Multimedia Framework Issues:
Major changes: