Branching KDE PIM for the final phase of the Qt 6 port
After KDE Frameworks branched in January and Plasma followed in February to enter the final phase of the transition to Qt 6, KDE PIM is following now. The approach taken here might also be applicable for other KDE Gear modules.
KDE PIM Sprint
Coordination and planning for this happened at the KDE PIM sprint in Toulouse last weekend, see also Kévin’s report about this.
And this comes after more than three years of preparatory work, porting away from deprecated API in Qt and KDE Frameworks, and enabling Qt 6 builds in parallel to Qt 5.
We are reaching the limits of what can be done in that way though, and with the first releases of KF6 and Plasma 6 planned for later this year, time is running short if we want to have the transition completed around the same time as well, even more so for things where we need more substantial changes in Frameworks as well.
So the time for branching has come.
Following the discussion about the branching process
with the release team we’ll add branches called
kf6, which will be similar to what
master is currently in Frameworks
and Plasma, ie. those will have Qt 5 support removed and only support Qt 6 going forward.
This leaves us for the next few months with three active branches though:
release/23.04- this is frozen for features already and will only be used for fixes for the 23.04.x maintenance releases.
master- this is what will become
release/23.08in a few months, and if everything goes according to plan that’s going to be the last Qt 5 based release.
kf6- that’s what will become the first Qt 6 based release, if everything goes to plan that’ll merge into
masterafter 23.08 was branched off, but not before a KF 6 release in time for 23.12 is confirmed.
In particular feature work going on in that time will need to be carefully merged between
so nothing gets lost. On the upside this doesn’t require us to commit to a Qt 6 based 23.12 now already,
but we can defer that when there’s more certainty about Frameworks and Plasma keeping the schedule.
This also isn’t interfering with the KDE Gear release automation, which is the main reason to deviate from the approach Plasma took.
Alongside branching adjustments to the CI are needed. The master branch will only have Qt 5 CI going forward,
the Qt 6 builds will move to the
kf6 branch. While maybe temporarily disruptive this shouldn’t have any impact beyond PIM modules.
It’s something to keep in mind when merging code between branches though, you cannot rely on it being checked for compiling with both Qt versions already anymore.
How you can help
There’s plenty of work to be done, see the new Gitlab workboard or join us in the #kontact Matrix channel if you want to help.
But there’s other ways to contribute as well. Getting everyone together for a sprint is extremely valuable, and that needs a venue and people organizing such meetings. Thanks to Artilect for hosting us in Toulouse, and to Kévin and Sébastien for organizing and running this.
And there’s of course always the option to donate to KDE e.V., which covers for example the travel and infrastructure cost for all this.