Qt Contributor Summit 2024 - Program: Difference between revisions
Paulwicking (talk | contribs) m (Added name) |
|||
(42 intermediate revisions by 13 users not shown) | |||
Line 13: | Line 13: | ||
Afternoon: Breakout rooms | Afternoon: Breakout rooms | ||
Evening: Dinner! | |||
'''Friday, September 6th''' | '''Friday, September 6th''' | ||
Line 26: | Line 28: | ||
|- | |- | ||
! style="background-color:#41cd52" |Time (CEST) | ! style="background-color:#41cd52" |Time (CEST) | ||
! colspan="4" style="background-color:#41cd52" |Room | ! colspan="4" style="background-color:#41cd52" | Room 12+13 | ||
|- | |- | ||
|08:30 - 09:00 | |08:30 - 09:00 | ||
Line 42: | Line 44: | ||
|- | |- | ||
!style="background-color:#41cd52" |Time (CEST) | !style="background-color:#41cd52" |Time (CEST) | ||
!style="background-color:#41cd52" |Room | !style="background-color:#41cd52" |Room 12+13 | ||
!style="background-color:#41cd52" |Room | !style="background-color:#41cd52" |Room 11 | ||
!style="background-color:#41cd52" |Room | !style="background-color:#41cd52" |Room 10 | ||
!style="background-color:#41cd52" |Common area | !style="background-color:#41cd52" |Common area | ||
|- | |- | ||
|12:00 - 13:00 | |12:00 - 13:00 | ||
| colspan="4" |''Lunch'' | | colspan="4" |''Lunch in the "Franconia Foyer"'' | ||
|- | |- | ||
|13:00 - 13:45 | |13:00 - 13:45 | ||
|Whither QProperty? | |[[QtCS2024 QProperty|Whither QProperty?]] | ||
|Qt Documentation | |[[QtCS2024 Qt Documentation|Qt Documentation]] | ||
|Qt on Windows: Windows 11 Style and Recent Developments | |[[QtCS2024 Qt on Windows|Qt on Windows: Windows 11 Style and Recent Developments]] | ||
| | | | ||
|- | |- | ||
|13:45 - 14:30 | |13:45 - 14:30 | ||
|std::format support in Qt | |[[QtCS2024 std::format|std::format support in Qt]] | ||
|What's new in QtGraphs | |[[QtCS2024 QtGraphs|What's new in QtGraphs]] | ||
|How to hate QML | |[[QtCS2024 How to hate QML|How to hate QML]] | ||
| | | | ||
|- | |- | ||
|14:30 - 15:00 | |14:30 - 15:00 | ||
| colspan="4" |''Coffee break'' | | colspan="4" |''Coffee break in the "Franconia Foyer"'' | ||
|- | |- | ||
| 15:00 - 15: | | 15:00 - 15:30 | ||
|Error handling in Qt (and C++) | |[[QtCS2024 Error handling|Error handling in Qt (and C++)]] | ||
| | |[[QtCS2024 Qt Lottie|Qt Lottie: Where it is, where to go]] | ||
|Qt for Python | |[[QtCS2024 Qt for Python|Qt for Python]] | ||
| | |||
|- | |||
|15:30 - 16:00 | |||
|[[QtCS2024 C++26 Reflection|C++26 Reflection and Qt]] | |||
| | |||
| | | | ||
|[[QtCS2024 Wayland protocols for Qt|Wayland protocols for Qt]] | |||
|- | |- | ||
| | |16:00 - 16:30 | ||
|C++ | |[[QtCS2024 C++20|C++20]] | ||
| | |||
| | | | ||
|[[QtCS2024 AI tooling for Qt developers|AI tooling for Qt developers]] | |||
|[[QtCS2024 qt-project.org|qt-project.org]] | |||
|- | |- | ||
|16:30 - 17:00 | |16:30 - 17:00 | ||
Line 82: | Line 90: | ||
|17:00 - 18:30 | |17:00 - 18:30 | ||
| colspan="4" |Unplanned time | | colspan="4" |Unplanned time | ||
Option 1 - Franconian wine at the Alte Mainbrüke (Old Main Bridge). Leave <u>'''hotel'''</u> lobby together at '''<u>17.15</u>''' for the 700m walk. | |||
|- | |- | ||
|18:30 - ... | |18:30 - ... | ||
Line 92: | Line 101: | ||
|- | |- | ||
! style="background-color:#41cd52" |Time (CEST) | ! style="background-color:#41cd52" |Time (CEST) | ||
! colspan="4" style="background-color:#41cd52" |Room | ! colspan="4" style="background-color:#41cd52" |Room 12+13 | ||
|- | |- | ||
|08:30 - 09:00 | |08:30 - 09:00 | ||
Line 98: | Line 107: | ||
|- | |- | ||
|09:00 - 12:00 | |09:00 - 12:00 | ||
| colspan="4" | | | colspan="4" |Keynote | ||
* [[Cyber-Security and implications on the Qt Project]] (SBOM and 3rd party code, account and privilege life cycle) | |||
Brainstorming | |||
* Is Qt good enough for desktop applications? | |||
Discussions | |||
* [[QtCS2024 Breaking The Monolith|How do we break the monolith - candidates and guidelines]] | |||
* | * API design and Header review is everyone's problem | ||
|- | |- | ||
!style="background-color:#41cd52" |Time (CEST) | !style="background-color:#41cd52" |Time (CEST) | ||
!style="background-color:#41cd52" |Room | !style="background-color:#41cd52" |Room 12+13 | ||
!style="background-color:#41cd52" |Room | !style="background-color:#41cd52" |Room 11 | ||
!style="background-color:#41cd52" |Room | !style="background-color:#41cd52" |Room 10 | ||
!style="background-color:#41cd52" |Common Area | !style="background-color:#41cd52" |Common Area | ||
|- | |- | ||
|12:00 - 13:00 | |12:00 - 13:00 | ||
| colspan="4" |''Lunch'' | | colspan="4" |''Lunch in the "Franconia Foyer"'' | ||
|- | |- | ||
|13:00 - 13:45 | |13:00 - 13:45 | ||
|Quo Vadis, | |[[QtCS2024 Quo Vadis, TTLOFIR|Quo Vadis, TTLOFIR]]? | ||
|Qt Creator meets Lua | |[[QtCS2024 Qt Creator meets Lua|Qt Creator meets Lua]] | ||
|[[QtCS2024 Compile once. Run everywhere|Compile once. Run everywhere]] | |||
| | | | ||
|- | |- | ||
|13:45 - 14:30 | |13:45 - 14:30 | ||
|[[QtCS2024 Deprecate|Deprecation vs Compatibility]] | |[[QtCS2024 Deprecate|Deprecation vs Compatibility]] | ||
| | |[[QtCS2024 Vector Graphics|Vector Graphics in Qt]] | ||
|QML Next - Qt Quick UI with non-C++ languages | |[[QtCS2024 QML Next|QML Next - Qt Quick UI with non-C++ languages]] | ||
| | | | ||
|- | |- | ||
|14:30 - 15:00 | |14:30 - 15:00 | ||
| colspan="4" |''Coffee break'' | | colspan="4" |''Coffee break in the "Franconia Foyer"'' | ||
|- | |- | ||
|15:00 - 15: | |15:00 - 15:30 | ||
|[[QtCS2024 Flaky|Flaky tests]] | |[[QtCS2024 Flaky|Flaky tests]] | ||
|QFuture/QPromise: ’sup? | |[[QtCS2024 QFuture/QPromise|QFuture/QPromise: ’sup?]] | ||
|Future of QtLanguageServer repo / Proper CI for non-mainline repos? | |[[QtCS2024 QtLanguageServer|Future of QtLanguageServer repo / Proper CI for non-mainline repos?]] | ||
| | |[[QtCS2024 XR|Current state of XR support in Qt]] | ||
|- | |||
|15:30 - 16:00 | |||
|[[QtCS2024 TaskTree|TaskTree '24]] | |||
|[[QtCS2024 QtScrypt|QtScrypt/QtPythonScripting]] | |||
|[[QtCS2024 FFmpeg in Qt Multimedia|FFmpeg in Qt Multimedia]] | |||
|[[QtCS2024 Supporting multiple versions of Qt in QML|Supporting multiple versions of Qt in QML]] | |||
|- | |- | ||
| | |16:00 - 16:30 | ||
| colspan="4" |Summary of Day 2 and Closing of Qt CS 2024 | | colspan="4" |Summary of Day 2 and Closing of Qt CS 2024 | ||
|} | |} | ||
Line 173: | Line 193: | ||
|- | |- | ||
|[[QtCS2024 Deprecate|Deprecation vs Compatibility]] | |[[QtCS2024 Deprecate|Deprecation vs Compatibility]] | ||
|Eddy | |Eddy Welbourne | ||
Alex Blasche | |||
|Discussion session | |Discussion session | ||
|Follow up on [https://lists.qt-project.org/pipermail/development/2024-June/045429.html Peppe, Andre' and others] discussing SC/BC and the impact of deprecations on users. | |Follow up on [https://lists.qt-project.org/pipermail/development/2024-June/045429.html Peppe, Andre' and others] discussing SC/BC and the impact of deprecations on users. | ||
Line 214: | Line 235: | ||
|Nicholas Bennett, Paul Wicking | |Nicholas Bennett, Paul Wicking | ||
|Presentation and Discussion | |Presentation and Discussion | ||
| | |Presentation Link https://prezi.com/view/7d8AeklFc5xp8pmPT2yy/ | ||
* Qt Documentation State of the Union | * Qt Documentation State of the Union | ||
** How do I contribute? | ** How do I contribute? | ||
Line 295: | Line 316: | ||
|TaskTree '24 | |TaskTree '24 | ||
|Jarek Kobus | |Jarek Kobus | ||
|Presentation | |Presentation + Discussion | ||
|TaskTree (https://wiki.qt.io/TaskTree) is a solution for automatic management of asynchronous tasks. It is used in many places inside QtCreator. The first non-Creator usage is AssetDownloader (shared among many Qt examples) for the upcoming Qt 6.8 release. The presentation shows in more details what this solution is about, how you may start using it and a short description about new task tree functionalities added recently. | |TaskTree (https://wiki.qt.io/TaskTree) is a solution for automatic management of asynchronous tasks. It is used in many places inside QtCreator. The first non-Creator usage is AssetDownloader (shared among many Qt examples) for the upcoming Qt 6.8 release. The presentation shows in more details what this solution is about, how you may start using it and a short description about new task tree functionalities added recently. | ||
|- | |- | ||
Line 303: | Line 324: | ||
|There are many ways to render vector graphics in Qt. In the past few months, Qt Svg module has received some updates that add the most used features from SVG 1.1 standard. Moreover, a new QML component, VectorImage, has been under development that takes an SVG file and render it as part of QtQuick scene graph. Let's discuss those new features and talk about the possible new features that can improve them. | |There are many ways to render vector graphics in Qt. In the past few months, Qt Svg module has received some updates that add the most used features from SVG 1.1 standard. Moreover, a new QML component, VectorImage, has been under development that takes an SVG file and render it as part of QtQuick scene graph. Let's discuss those new features and talk about the possible new features that can improve them. | ||
|- | |- | ||
| | |Wayland protocols for Qt | ||
| | |Tor Arne/David | ||
| | |Discussion | ||
| | |To what degree can we propose/adopt custom Wayland protocols that solve issues we're having with Qt/KDE, such as global window positioning, surface-less window geometry, etc | ||
|- | |||
|C++20 | |||
|Alex Blasche | |||
|Discussion | |||
|Where to go with C++20 in Qt | |||
|- | |||
|Supporting multiple versions of Qt in QML | |||
|Fabian Kosmale | |||
|Discussion | |||
|Addressing KDE's complaint/wish to have something like ifdef in QML | |||
|- | |||
|XR | |||
|Christian Strømme | |||
|Discussion | |||
|Check the current status of VR/XR support in Qt | |||
|- | |||
|qt-project.org | |||
|Cristián Maureira-Fredes | |||
|Discussion (hallway track) | |||
|Ideas on how to improve the site? Curious on how does it work? please find me and let's have a chat :) | |||
|} | |} | ||
[[Category: | [[Category:QtCS2024]] |
Latest revision as of 12:34, 9 September 2024
Event main page: Qt Contributor Summit 2024
Please, add your sessions/talks/presentations to the table at the end of the page.
→ If you have any issues while editing this page, please contact Pedro Bessa directly at pedro.bessa@qt.io
Current draft program
Thursday, September 5th
Morning: Keynote Sessions
Afternoon: Breakout rooms
Evening: Dinner!
Friday, September 6th
Morning: Keynote Sessions
Afternoon: Breakout rooms
Thursday, Sep 5th | ||||
---|---|---|---|---|
Time (CEST) | Room 12+13 | |||
08:30 - 09:00 | Registrations, Welcoming, Coffee | |||
09:00 - 11:00 | Keynotes
| |||
11:00 - 12:00 | Session pitching | |||
Time (CEST) | Room 12+13 | Room 11 | Room 10 | Common area |
12:00 - 13:00 | Lunch in the "Franconia Foyer" | |||
13:00 - 13:45 | Whither QProperty? | Qt Documentation | Qt on Windows: Windows 11 Style and Recent Developments | |
13:45 - 14:30 | std::format support in Qt | What's new in QtGraphs | How to hate QML | |
14:30 - 15:00 | Coffee break in the "Franconia Foyer" | |||
15:00 - 15:30 | Error handling in Qt (and C++) | Qt Lottie: Where it is, where to go | Qt for Python | |
15:30 - 16:00 | C++26 Reflection and Qt | Wayland protocols for Qt | ||
16:00 - 16:30 | C++20 | AI tooling for Qt developers | qt-project.org | |
16:30 - 17:00 | Summary of Day 1 | |||
17:00 - 18:30 | Unplanned time
Option 1 - Franconian wine at the Alte Mainbrüke (Old Main Bridge). Leave hotel lobby together at 17.15 for the 700m walk. | |||
18:30 - ... | Dinner at the Event Venue |
Friday, Sep 6th | ||||
---|---|---|---|---|
Time (CEST) | Room 12+13 | |||
08:30 - 09:00 | Welcome back and Coffee | |||
09:00 - 12:00 | Keynote
Brainstorming
Discussions
| |||
Time (CEST) | Room 12+13 | Room 11 | Room 10 | Common Area |
12:00 - 13:00 | Lunch in the "Franconia Foyer" | |||
13:00 - 13:45 | Quo Vadis, TTLOFIR? | Qt Creator meets Lua | Compile once. Run everywhere | |
13:45 - 14:30 | Deprecation vs Compatibility | Vector Graphics in Qt | QML Next - Qt Quick UI with non-C++ languages | |
14:30 - 15:00 | Coffee break in the "Franconia Foyer" | |||
15:00 - 15:30 | Flaky tests | QFuture/QPromise: ’sup? | Future of QtLanguageServer repo / Proper CI for non-mainline repos? | Current state of XR support in Qt |
15:30 - 16:00 | TaskTree '24 | QtScrypt/QtPythonScripting | FFmpeg in Qt Multimedia | Supporting multiple versions of Qt in QML |
16:00 - 16:30 | Summary of Day 2 and Closing of Qt CS 2024 |
Table of session details
Topic | Speaker | Format | Summary |
---|---|---|---|
Topic Title | Add Your Name(s) | Discussion/Presentation/Workshop/... | Add a short paragraph about the scope of the proposed talk. |
Whither QProperty? Wither, perpetuate or evolve? | Fabian Kosmale | Discussion session | We've added bindable C++ properties in Qt 6 – and then mostly ignored them except for bug fixes. Let's recap why we've added it to begin with, collect how it's currently . Then, investigate why we (mostly) went nowhere with it and whether we we want to change that. |
std::format support in Qt | Ivan Solovev | Discussion session | We've started to provide support for formatting Qt types using std::format, but we might need some more features from the standard in order to use std::format *inside* Qt. Let's try to discuss what we need from the standard and how can we achieve that. |
Qt for Python | Friedemann Kleint | Discussion session | Discuss Qt for Python development and explore ways to enhance its interoperability with other Qt products through feedback, ideas, and constructive criticism. |
QtScrypt/QtPythonScripting | Friedemann Kleint | Presentation + Discussion | Present a research project which has been under way providing a more light-weight way for Python bindings. |
Deprecation vs Compatibility | Eddy Welbourne
Alex Blasche |
Discussion session | Follow up on Peppe, Andre' and others discussing SC/BC and the impact of deprecations on users. |
What's new in QtGraphs | Tomi Korpipää | Presentation + Discussion | A look into what has changed between QtDataVisualization and QtGraphs, which will be out of TP in Qt 6.8.
A short presentation followed by a discussion of where we can / should take it next. |
Quo Vadis, TTLOFIR ? | Marc Mutz | Discussion | "Things to look out for in review" (https://wiki.qt.io/Things_To_Look_Out_For_In_Reviews) started as a low-entry-barrier way to collect guidelines surrounding code^Wgit-versioned contributions, to be distributed to "official" documents as time goes by. While I believe it had a positive impact on many Qt contributors already in the present form, I still see (too) many of the issues, discussed there, in approved code, suggesting that it may be time to migrate some of the content to said "official" format (QUIP? Qt Coding Standard (no, not the whitespace formatting guideline that currently carries the name)). Also, the number of contributions to TTLOFIR from others than myself remains relatively small (with an explicit shout-out to those who did contribute!). Seeing as the number of Qt contributors only continues to grow (itself a very healthy sign), I think the project is facing a bit of "didn't know; if known, didn't read; if read; didn't understand; if understood, didn't apply" going on. So this session is both to spread awareness, as well as discuss how the process to migrate TTLOFIR items to a more "official" format could look like. |
Future of QtLanguageServer repo / Proper CI for non-mainline repos? | QML Team | Discussion | The Qt Language Server repository contains an implementation of JSON RPC and skeleton functionality to implement a language server. It is a non-essential module, which led to https://bugreports.qt.io/browse/QTBUG-115252 , causing it's main user qmlls to not work. While this issue has been resolved, we should ponder a few questions:
|
Error handling in Qt (and C++) | Volker Hilsheimer | Discussion | We have several ways of handling errors in Qt: fail with runtime warning, return false with errorString() getter, or emit errorOccurred() signals - often combinations of those.
We don't throw exceptions, and we rarely return std::optional. C++23 has introduced std::expected as the vocabulary type for error handling, but we likely won't be able to require C++23 for several more years. Various alternatives that are (or have been) discussed in the C++ committee (such as throwing value-type exceptions) are decades out, if they ever get anywhere at all. However, we have had several attempts to implement something along the lines of std::expected, esp in cases where we needed better tools to handle errors from system API calls:
As pointed out in [1], C++17 compatible implementations of std::expected exist. Should we allow ourselves to use one of them internally? Can we have something that we can use in our own public API (e.g. for QJniObject)? |
Qt Documentation | Nicholas Bennett, Paul Wicking | Presentation and Discussion | Presentation Link https://prezi.com/view/7d8AeklFc5xp8pmPT2yy/
|
C++26 Reflection and Qt | Thiago Macieira | Discussion | C++26 will come with the first release of reflection. It's probably not enough for Qt's needs to replace moc, but we should know what is missing so we can recommend to the committee our use-cases. We also need to know if there are any design issues that would make the replacement completely impossible. |
Qt Lottie : Where it is, where to go | Kwanghyo Park | Presentation and Discussion | A brief introduction of the Qt Lottie module and presents the current status.
Following up with a suggestions and discussions on how it could be improved and updated. |
Flaky tests | Eddy | Discussion | Should blacklistings be temporary ? What policy should we apply to them ? |
QFuture/QPromise: ’sup? | Kai Uwe Broulik | Discussion | QFuture capabilities have been much expanded in Qt 6, yet it’s not seeing much use within Qt itself.
In the scope of Qt OPC UA, which is inherently asynchronous, we’re investigating the use of QFuture/QPromise to make the APIs more convenient. This discussion session is about setting standards for QFuture/QPromise-based APIs throughout Qt to ensure consistent naming and error handling before their use within Qt expands further. |
Qt on Windows: Windows 11 Style and Recent Developments | Wladimir Leuschner | Presentation + Discussion | The native look of UI elements have changed their appearance starting with Windows 11. Since Qt 6.7 the UI changes were incoorperated into QtWidgets with a new QWindows11Style. This presentation will give a brief introduction into the style and about recent developments with a glimpse on what comes next for Qt on Windows. |
Qt SBOM (Software Bill of Materials) | Alexandru Croitor | Presentation | Incoming EU legislation is influencing companies to provide a Software Bill of Materials for their products. Qt will start offering one starting with Qt 6.8. This will be a short presentation about what an SBOM is, and what Qt maintainers will have to be aware of to ensure it is up-to-date.
EDIT: No separate slot needed. |
Compile once. Run everywhere | Cristian Adam | Presentation + Discussion | Deploying of C++ applications on Windows, Linux, macOS for x86_64 and arm64 can be challenging. By using Cosmopolitan Libc we could have an alternative. |
Qt Creator meets Lua | Marcus Tillmanns | Presentation | Writing Extensions for Qt Creator gets more convenient using Lua scripting. |
FFmpeg in Qt Multimedia | Jøger Hansegård, Artem Dyomin, Maycon Stamboroski | Presentation + Discussion | Qt Multimedia is replacing native media backends with a backend based on FFmpeg. We will discuss why and how this affects contributors and users. |
QML Next - Qt Quick UI with non-C++ languages | Vladimir Minenko | Presentation + Discussion | There are a few prototypes and concepts for combining Qt Quick UI with backends written in other, non-C++ languages. Lets have a look what that and where it could or "should" go |
How to hate QML | Ulf Hermann | Presentation + Discussion | There are lots of people who don't like QML, albeit most of them for the wrong reasons. We're going to turn the tables this time. I'm going to hate on QML the Right Way™ and you're going to convince me of its merits. This will either result in a constructive debate on how to improve the language or in an idea what a new language to replace QML could look like. |
AI tooling for Qt developers | Daniel Smith | Presentation + Discussion | LLMs can be a powerful tool for developers if utilized in a sensible way. I will briefly present a couple bots that have proven useful in trials, and want to hear more ideas for how LLMs could be put to work in our development ecosystem. I believe that if accurate enough, and only if they don't get in the way, LLM based bots can reduce wasted time and make working on Qt a better experience. |
TaskTree '24 | Jarek Kobus | Presentation + Discussion | TaskTree (https://wiki.qt.io/TaskTree) is a solution for automatic management of asynchronous tasks. It is used in many places inside QtCreator. The first non-Creator usage is AssetDownloader (shared among many Qt examples) for the upcoming Qt 6.8 release. The presentation shows in more details what this solution is about, how you may start using it and a short description about new task tree functionalities added recently. |
Vector Graphics in Qt | Hatem ElKharashy | Discussion | There are many ways to render vector graphics in Qt. In the past few months, Qt Svg module has received some updates that add the most used features from SVG 1.1 standard. Moreover, a new QML component, VectorImage, has been under development that takes an SVG file and render it as part of QtQuick scene graph. Let's discuss those new features and talk about the possible new features that can improve them. |
Wayland protocols for Qt | Tor Arne/David | Discussion | To what degree can we propose/adopt custom Wayland protocols that solve issues we're having with Qt/KDE, such as global window positioning, surface-less window geometry, etc |
C++20 | Alex Blasche | Discussion | Where to go with C++20 in Qt |
Supporting multiple versions of Qt in QML | Fabian Kosmale | Discussion | Addressing KDE's complaint/wish to have something like ifdef in QML |
XR | Christian Strømme | Discussion | Check the current status of VR/XR support in Qt |
qt-project.org | Cristián Maureira-Fredes | Discussion (hallway track) | Ideas on how to improve the site? Curious on how does it work? please find me and let's have a chat :) |