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: https://phabricator.kde.org/project/board/310/ * 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 time... ** 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, fa...@kde.org Clearly using phabricator a bit too much, recently...