Qt Contributors Summit 2019 Program: Difference between revisions

From Qt Wiki
Jump to navigation Jump to search
No edit summary
Line 23: Line 23:
|-
|-
|10:30 - 11:00
|10:30 - 11:00
| style="text-align: center; background-color:#fbfde5;" | Coffee Break
|''Coffee Break''
|-
|-
|11:00 - 11:30
|11:00 - 11:30
Line 32: Line 32:
|-
|-
|12:00 - 13:30
|12:00 - 13:30
| style="text-align: center; background-color:#fbfde5;" | Lunch Break
|''Lunch Break''
|-
|-
|13:30 - 14:00
|13:30 - 14:00
Line 44: Line 44:
|-
|-
|15:00 - 15:30
|15:00 - 15:30
| style="text-align: center; background-color:#fbfde5;" | Coffee Break
|''Coffee Break''
|-
|-
|15:30 - 16:00
|15:30 - 16:00
Line 50: Line 50:
|-
|-
|16:00 - 16:30
|16:00 - 16:30
|[[Qt Contributors Summit 2019 Program#Qt for Python and beyond|Qt for Python in Qt 6]]
|[[Qt Contributors Summit 2019 Program#Qt for Python and beyond|Qt for Python]]
|-
|-
|16:30 - 17:00
|16:30 - 17:00
Line 68: Line 68:
|
|
| rowspan="2" |[[Qt Contributors Summit 2019 Program#Qt Marketplace|Qt Marketplace]]
| rowspan="2" |[[Qt Contributors Summit 2019 Program#Qt Marketplace|Qt Marketplace]]
|[[Rethinking serialization for Qt6]]
|
|
|-
|-
Line 77: Line 76:
|-
|-
|10:30 - 10:50
|10:30 - 10:50
| colspan="4" style="text-align: center; background-color:#fbfde5;" | Coffee Break
|''Coffee Break''
|-
|-
|10:50 - 11:30
|10:50 - 11:30
|
|
| [[Qt Contributors Summit 2019 Program#Platform-specific APIs in Qt 6|Platform-specific APIs in Qt 6]]
| [[Qt Contributors Summit 2019 Program#Platform-specific APIs in Qt 6|Platform-specific APIs in Qt 6]]
| [[Qt Contributors Summit 2019 Program#Future of QStyle for widgets and controls|Future of QStyle for widgets and controls]]
|Future of QStyle for widgets and controls
|
|
|-
|-
Line 88: Line 87:
|
|
| [[Qt Contributors Summit 2019 Program#Refurbishing Qt Widget internals|Refurbishing Qt Widget internals]]
| [[Qt Contributors Summit 2019 Program#Refurbishing Qt Widget internals|Refurbishing Qt Widget internals]]
| [[Qt Contributors Summit 2019 Program#Available, hidden and missing gems on the way of using Qt on embedded devices | Available, hidden and missing gems on the way of using Qt on embedded devices]]
|
|
|
|-
|-
|12:20 - 13:20
|12:20 - 13:20
| colspan="4" style="text-align: center; background-color:#fbfde5;" | Lunch Break
|''Lunch Break''
|-
|-
|13:20 - 14:00
|13:20 - 14:00
|
|
|[[Qt Contributors Summit 2019 Program#Qt Wayland Client and extensions|Qt Wayland Client and extensions]]
|[[Qt Contributors Summit 2019 Program#Qt Wayland Client and extensions|Qt Wayland Client and extensions]]
|[[Qt Contributors Summit 2019 PRogram#Qt for Python and beyond| Qt for Python and beyond]]
|
|
|
|-
|-
|14:10 - 14:50
|14:10 - 14:50
| [[Qt Contributors Summit 2019 Program#Improve the contributor experience of the Qt project| Improve the contributor experience of the Qt project]]
|
|
|
| [[Qt Contributors Summit 2019 Program#High DPI|High DPI]]
| [[Qt Contributors Summit 2019 Program#High DPI|High DPI]]
Line 107: Line 106:
|-
|-
|14:50 - 15:10
|14:50 - 15:10
| colspan="4" style="text-align: center; background-color:#fbfde5;" | Coffee Break
|''Coffee Break''
|-
|-
|15:10 - 15:50
|15:10 - 15:50
Line 116: Line 115:
|-
|-
|16:00 - 17:00
|16:00 - 17:00
| colspan="4" style="text-align: center; background-color:#fbfde5;" | '''Plenary Session'''
|Plenary Session
|}
|}


Line 140: Line 139:
|-
|-
|10:30 - 10:50
|10:30 - 10:50
| colspan="4" style="text-align: center; background-color:#fbfde5;" | Coffee Break
|''Coffee Break''
|-
|-
|10:50 - 11:30
|10:50 - 11:30
|
|
| [[Qt Contributors Summit 2019 Program#Qt Machine Learning and Math|Qt Machine Learning and Math]]
|
|
|
|-
|-
|11:40 - 12:20
|11:40 - 12:20
|
|
| Qt WebEngine Release Management
|Qt WebEngine Release Management
| [[Qt Contributors Summit 2019 Program#Qt for Python Documentation|Qt for Python Documentation]]
|
|-
|-
|12:20 - 13:20
|12:20 - 13:20
| colspan="4" style="text-align: center; background-color:#fbfde5;" | Lunch Break
|''Lunch Break''
|-
|-
|13:20 - 14:00
|13:20 - 14:00
Line 161: Line 160:
|-
|-
|14:00 - 15:00
|14:00 - 15:00
| colspan="4" style="text-align: center; background-color:#fbfde5;" | '''Plenary Session'''
|''Plenary Session''
|}
|}


Line 176: Line 175:
=== KDE experience in attracting and nurturing contributors ===
=== KDE experience in attracting and nurturing contributors ===
''David Edmundson''
''David Edmundson''
KDE has been a primarily volunteer driven project for its 20+ year lifespan. Attracting and keeping volunteers can be a difficult process, but there are many easy steps that can have a positive return. By sharing what we do successfully in KDE, we hope to kickstart a discussion of what steps we can emulate in Qt to improve the number of contributor contributions.


=== Qt Marketplace ===
=== Qt Marketplace ===
Line 236: Line 233:


=== Platform-specific APIs in Qt 6 ===
=== Platform-specific APIs in Qt 6 ===
'''Tor Arne Vestbø''', '''Johan Helsing''', '''Paul Olav Tvete'''
'''Tor-Arne Vestbø''', '''Johan Helsing''', '''Paul Olav Tvete'''


There are currently multiple different ways of exposing platform-specific APIs in Qt (Qt Platform Headers, Qt Platform Native Interface, Qt Platform Support, and Qt Foo Extras among others). Qt 6 is a good time to take a look at how this can be improved and coordinated better.  
There are currently multiple different ways of exposing platform-specific APIs in Qt (Qt Platform Headers, Qt Platform Native Interface, Qt Platform Support, and Qt Foo Extras among others). Qt 6 is a good time to take a look at how this can be improved and coordinated better.  


=== Refurbishing Qt Widgets internals ===  
=== Refurbishing Qt Widgets internals ===  
'''Tor Arne Vestbø''', '''Johan Helsing''', '''Paul Olav Tvete'''
'''Tor-Arne Vestbø''', '''Johan Helsing''', '''Paul Olav Tvete'''


This is a session to discuss changes to the underlying architecture in Qt Widgets, such as the backing store and parent/child hierarchy.
This is a session to discuss changes to the underlying architecture in Qt Widgets, such as the backing store and parent/child hierarchy.
Line 292: Line 289:
=== Qt CMake Workshop ===  
=== Qt CMake Workshop ===  
'''Alexandru Croitor'''
'''Alexandru Croitor'''
=== Qt Machine Learning and Math ===
'''Cristián Maureira-Fredes'''
What C++ and more precisely, Qt, can provide to the Machine Learning community? What about simple Math?
Python has shown us how a simple API can transform a whole language, just by providing the proper tools.
The C++ performance could be a game-changer regarding Data Science, and it has been used in frameworks like [https://github.com/pytorch/pytorch PyTorch].
=== Qt for Python Documentation ===
'''Cristián Maureira-Fredes'''
Currently, there are many issues with the documentation of the project: [https://bugreports.qt.io/browse/PYSIDE-691 C++ snippets], [https://bugreports.qt.io/browse/PYSIDE-1106 Toolchain], [https://bugreports.qt.io/browse/PYSIDE-1067 Not optimal structure, unclear flow], [https://bugreports.qt.io/browse/PYSIDE-841 mix of tutorials, missing examples], etc.
The idea of this session is to define both the design, and content of the Qt for Python documentation for future releases.
=== Rethinking serialization for Qt6 ===
'''Arnaud Clère'''
Serialization is an old problem, still, we keep writing code to serialize C++ data in specific ways again and again. With Qt5 for instance, you may have to code: QDebug << to debug it, QDataStream << and >> to marshal it to another Qt application, use QSettings to make it persistent, QJson* or QXml* to convey it on the web, QCbor* for the IoT, and QAbstractModelItem for the DB/GUI. Even though such code needs to be customized here and there, it is mostly boilerplate code. So, can we make this simpler for Qt6?
Indeed, I will present a solution that enables to read/write C++ data from/to any of those APIs by defining a single function which can be easily customized to specific needs. Its runtime overhead being almost negligible, I will go on talking about many data formats from QDataStream to XML since that is where the actual performance/safety/interoperability tradeoffs are made. That should trigger an interesting discussion on the tradeoffs made by the only broadly implemented serialization for Qt types: QDataStream.
Finally, I hope to trigger enough interest from the community to review and polish this proposal, and to enable more serialization choices for most Qt6 types.
=== Available, hidden and missing gems on the way of using Qt on embedded devices ===
''[[User:WindJunkie|Vladimir Minenko]]''
In this talk I would like to review how Qt as whole helps in making embedded devices. There is a variety of offerings, solutions and even real Qt modules dedicated to or just relevant for embedded devices for one or another use case. I think, the total is currently almost unbeatable and at the same time, it is very hard to find. What is that total and how can we make it more accessible? Should we? Is this something contributors should care? Is there an actual interest in the field? I wish to find out. Do you?

Revision as of 13:51, 11 November 2019

Back to Qt Contributors Summit 2019

Table of topics

Please add a longer session description with topic owner in the lower part of the page!

Tuesday, 2019-11-19

First day is reserved for topics that are of interest to the majority, and main location is the Assembly Hall. If you have something to present please coordinate beforehand on IRC or via mail.

Time Assembly Hall
8:00 - 9:00 Registration
9:00 - 9:20 Introduction and sponsors
9:20 - 10:30 Keynote: Towards Qt 6 (Lars Knoll)
10:30 - 11:00 Coffee Break
11:00 - 11:30 QML Version 3
11:30 - 12:00 CMake Port
12:00 - 13:30 Lunch Break
13:30 - 14:00 Branch Policy for Qt 6
14:00 - 14:30 Qt Marketplace
14:30 - 15:00 KDE experience in attracting and nurturing contributors
15:00 - 15:30 Coffee Break
15:30 - 16:00 Qt 6 Graphics Overview
16:00 - 16:30 Qt for Python
16:30 - 17:00 Agenda Overview

Wednesday, 2019-11-20

Time Assembly Hall 1.3.14 (Zoo) 1.1.9 (Landsberger Allee) 1.1.8 (Greifwalder Str)
9:00 - 9:40 Qt Marketplace
9:50 - 10:30 Clang-based cpp parser for lupdate
10:30 - 10:50 Coffee Break
10:50 - 11:30 Platform-specific APIs in Qt 6 Future of QStyle for widgets and controls
11:40 - 12:20 Refurbishing Qt Widget internals
12:20 - 13:20 Lunch Break
13:20 - 14:00 Qt Wayland Client and extensions
14:10 - 14:50 High DPI
14:50 - 15:10 Coffee Break
15:10 - 15:50 Fate of Qt Solutions?
16:00 - 17:00 Plenary Session

Thursday, 2019-11-21

Time Assembly Hall 1.3.14 (Zoo) 1.1.9 (Landsberger Allee) 1.1.8 (Greifwalder Str)
9:00 - 9:40 Qt CMake Workshop
9:50 - 10:30 Qt 6 Migration strategy
10:30 - 10:50 Coffee Break
10:50 - 11:30
11:40 - 12:20 Qt WebEngine Release Management
12:20 - 13:20 Lunch Break
13:20 - 14:00 Fuzzing Qt
14:00 - 15:00 Plenary Session

Sessions

QML Version 3

Ulf Hermann

CMake Port

Alexandru Croitor

Branch Policy for Qt 6

KDE experience in attracting and nurturing contributors

David Edmundson

Qt Marketplace

Tino Pyssysalo and Marko Finnig

Qt Marketplace status, existing and planned features, launch schedule, content publishing process, and content usage.

Qt 6 Graphics Overview

Laszlo & co.

Let's have an overview of graphics related changes in Qt 6. The keynote will probably mention some of these, the goal in this session is to expand on them a bit. There can then be deeper individual discussions on specific topics during the next two days, if there is interest.

C++17 language and std library features for Qt 6

Volker Hilsheimer

With Qt 6 we want to be able to use some C++ 17 language and std library features. Not all compilers and platforms we are going to care about by the time Qt 6 comes around will support evertyhing, so this needs a balanced discussion of up- and down-sides, leading to a pragmatic subset that we can rely on. See https://bugreports.qt.io/browse/QTBUG-77477 for details.

Code Review: Sharing the load

Eddy

Sometimes we wait and wait for anyone to review our changes. Sometimes we struggle to keep up with all the reviews we're asked to look at. How can we organise this so that no-one waits too long but all of us still have time to hack on code ? Time To Be Arranged.

API Review Process

Volker Hilsheimer

As experienced during Qt 5.13 and Qt 5.14 releases, some changes to APIs were getting feedback only very late in the release process, when the header diff was uploaded for sanity review. This seems a bit late. I'd like to see if we can find a more effective way of integrating API reviews into the general code review process. Perhaps changes that change public headers require a slightly different process than fixes and changes that touch only the implementation.

Evolving the Qt Project Security Policy

Volker Hilsheimer

During summer, the Qt Project Security Policy was moved from a wiki page into QUIP-15, and during that review process, some changes and additions were proposed to strengthen the project's capability to respond to security issues. Those changes were not taken into the QUIP as part of the move, since for the moment we only wanted to move the content. Suggestions included a clearer statement how security fixes are applied to LTS releases; the integration of CVE handling when disclosing vulnerabilities; the documentation of processes established by the Qt Company; and a general review of the way the "core team of developers" is organized, and operating.

Discussing these (and additional) proposals, and agreeing on what should become part of the policy (and thus the responsibility of the Qt project) is the purpose of this session. A proposal is available here: https://codereview.qt-project.org/c/meta/quips/+/278819

Qt for Python and beyond

Cristián Maureira-Fredes

After one year since the official release of Qt for Python we have been getting many new ideas for features to include in the next releases. Most of the features are explained in the latest blog post we wrote, but nevertheless we should try to build the next versions in favor of the Qt ecosystem, this means not only improving the Qt for Python project, but more like answering the question "How Qt for Python can improve the Qt project?". Please join us in this session to discuss how we can make Qt for Python a first-class citizen in the project by giving it more responsibility.

Improve the contributor experience of the Qt project

Cristián Maureira-Fredes

After the following steps:

  • Creating Qt account,
  • Creating Gerrit account,
  • Agreeing with the CLA,
  • Configure gerrit locally.

You are ready to start contributing.

If you think that it is too much, you should join this discussion. We aim to focus on having a welcoming and easy-to-do process for getting more people involved in contributing to Qt. Check the related task on JIRA

Platform-specific APIs in Qt 6

Tor-Arne Vestbø, Johan Helsing, Paul Olav Tvete

There are currently multiple different ways of exposing platform-specific APIs in Qt (Qt Platform Headers, Qt Platform Native Interface, Qt Platform Support, and Qt Foo Extras among others). Qt 6 is a good time to take a look at how this can be improved and coordinated better.

Refurbishing Qt Widgets internals

Tor-Arne Vestbø, Johan Helsing, Paul Olav Tvete

This is a session to discuss changes to the underlying architecture in Qt Widgets, such as the backing store and parent/child hierarchy.

Future of QStyle for widgets and controls

Shawn Rutledge, Richard Gustavsen, Uwe Rathman

This is a session to discuss a potential architecture for styles that can be used to render both widgets and Qt Quick Controls, making the scene graph available for use in styles, perhaps using techniques similar to QSkinny, perhaps enabling Qt widgets and controls to be backed by native platform widgets (at least on some platforms where it's most necessary), etc.

Qt Wayland Client and extensions

Johan Helsing, Paul Olav Tvete

What existing extensions should we support, and should we propose any new extensions for wayland-protocols? What functionality is missing from Qt Wayland Client, and how can we improve cooperation with KDE and other stakeholders? (note that there is a separate session about the general approach to platform-specific APIs in future Qt versions.)

High DPI

Friedemann Kleint

Recap of High DPI, future plans

Fate of Qt Solutions

Friedemann Kleint

There are some gems in the current solutions (Singleton, property editor, etc), should they live on in Qt 6 and how?

Clang-based cpp parser for lupdate

Lucie Gerard

Introduction to the new cpp parser for lupdate, based on clang-tooling.

Topics:

  • How to build a clang-tool?
  • What are the requirement to use the new cpp parser?
  • Why a new cpp parser (what is gained, what is lost)?
  • How can cmake facilitate the use of the new clang-based parser?

Qt 6 Migration strategy

Friedemann Kleint

  • How can we migration to Qt 6 as easy as possible and start already in Qt 5?
  • For example, a unified string theory would be a relevant topic

Fuzzing Qt

Robert Löhning

Fuzzing could already find a couple of crashes in Qt, including security related. Let's synchronize on how to make the most of it.

  • How to try it locally?
  • Which code needs fuzz testing the most?
  • What's missing to test Qt in oss-fuzz?

Qt CMake Workshop

Alexandru Croitor