Minutes from the KF6 BoF session at Akademy

David Faure faure at kde.org
Tue Sep 10 18:18:08 BST 2019

We discussed the topic of KF6, to have some sort of common direction.
When, what, how, etc.

Raw notes at https://notes.kde.org/p/akademy2019-kf6-notes, but let me try to 
make this more readable here.

* We created a phabricator board to manage all the tasks involved in being 
able to have a Qt6-based KF6 when the time comes:

* The idea of a KF6-specific sprint was floated around, in December or later, 
if needed to keep the momentum going. Right now a lot is happening, but then 
people will go back to their daily lives.... Anyone up for organizing such a 
sprint? Discuss in https://phabricator.kde.org/T11535

* The main tasks that were identified were:

** Porting KF5 away from deprecated methods in Qt (which is a moving target,
but we're starting with what is currently deprecated, and then we'll try to 
keep up). It's too early to look at Qt6, we'll do that (and create KF6 
branches) once there's an alpha release of Qt6.

** Porting Applications/Plasma/Extragear/Calligra away from deprecated classes 
and deprecated frameworks that we would like to remove (kdelibs4support, 
khtml, kjsembed, kross, possibly more depending on further investigation)
This means we won't just remove stuff and break apps, the rule will be to port 
apps first and then remove the stuff. Note that playground isn't included, so
if you have a stable app in playground, it's time to move it to one of the 
above areas. React in https://phabricator.kde.org/T11563 to discuss the set of 
modules covered by policy, see the board for the discussion on the individual 
candidates for removal (there's one for each framework listed above).

** We will decide later whether a KF5Support library will be useful/needed.

There are many cleanup tasks in the board, but some big ones are:

** Split up kdeclarative and move its code to relevant Frameworks, please 
contribute in T11536

** Possibly kill Plasma components in favour of QtQuickControls2 + kirigami, 
task T11558. This probably needs to be discussed between KDE and Qt people, 
possibly at QtCon or specific sprint.

** Redesign frameworks where API and implementation are too tied together (ex: 
KWallet). T11556. Help welcome.

** We need to think about what we are missing in Qt in order to solve issues 
in Frameworks. Much like we did around Qt 5.0 times, contributing to Qt the 
things that help untangle dependencies between frameworks, especially.
A big one in that category would be a QWidget-independent QAction (T11555).

** Remove unneeded dependencies on QWidget e.g. to set parent windows or 
display errors (T11547), I took care of KWindowSystem recently and I plan to 
redesign KRun, at least, but there are probably more.

** We should mark code that needs change with "// TODO KF6: ..." already now
(on things that are clearly defined and doable, not pie-in-the-sky wishes).
We'll really need to go through those; there were quite some leftovers at KF5 

** We need to think about which policies/design guidelines we want to change 
for frameworks, such as how to handle bindings (T11557).

The question came up whether we'll be able to use C++ modern features like 
std::optional in KF6? The answer is yes, Qt6 will require C++17 so we can do 
the same.

This is all mainly a heads up. If you can think of other things that need to 
be done before Qt6 and/or KF6 is out, add tasks to the board.

Some work (investigating and porting) has started and is on-going but we can 
definitely use many more hands on board for all of those tasks. Pick a task, 
drag it to the "In progress" column, and start helping. Note: when a task is 
done, don't close it (that would make it disappear from the board), just drag 
it to the Done column. It's motivating to see a growing list of done tasks.

Let's set sail for a great KF6! All on board :-)

David Faure, faure at kde.org
Clearly using phabricator a bit too much, recently...

More information about the Kde-frameworks-devel mailing list