Proposal: branch ECM into ECM6 for KF6
Friedrich W. H. Kossebau
kossebau at kde.org
Tue Jul 6 00:05:49 BST 2021
Hi,
during the discussion of the MR for a KDEInstallDirs6 variant I learned that
there is no clear idea yet how ECM should be be released once there are both
KF5 and KF6. And more, it seems so far for ECM there is no version-branch
planned, but instead would it have to support both Qt5/KF5 and Qt6/KF6 at the
same time for the longer future. With no defined plan when support for Qt5/KF6
should be dropped.
Which also brings a related question: when should all the deprecated ECM
modules and any other deprecated things there be dropped that have accumulated
in the last years since ECM 1.0? While CMake itself has it's policy mechanism
though so far I think they still keep backward compatibility for anything,
just doing things different by policy default? And might only dump backward-
compat support really on the next major version?
So when would ECM dump backward-compat support for anything? And, due to not
being co-installable to older version of itself as of now, risk breaking
builds of older Qt5/KF5 software or forcing the use of dir links switching?
Hello Debian and other LTS systems and trying to develop with more recent
software at the same time.
IMHO ECM should rather be branched into a major-version-postfixed variant as
well for KF6 times, e.g. "ECM6". And allow a clear cut of legacy things, as
well as some redesign where considered useful. And perhaps even be renamed,
into KFCM, KDE Frameworks CMake Modules (yes, I see the unfortune brand name
conflict while typing, so perhaps something else or no change at all)
Having a version postfix in the name should allow co-installability. Yes,
there will be some duplication, but Qt5 and Qt6 or Python 2 and Python3
libraries also duplicate lots of logic ;) and its not that the ECM modules are
MB of installation.
Maintenance to ensure backward ports of bug fixes between ECM & ECM6 is an
issue, but might be less trouble than having to support Qt5/KF5 & Qt6/KF6 at
the same time (including any cached variables on switching build deps) and
then the challenge when to annoy some people by dropping legacy support they
rely on.
And those who want to support builds against Qt5/KF5 & Qt6/KF6 from the same
code (which I personally in general recommend against, compromises needed just
hurt), they then would have to do a bit more code branches in cmake code as
well. But they are fine with that in the C++ code, so should they be in the
cmake code (or just copy over any newer CMake modules temporarily if more
simple).
Also think of test setup - having to test both against Qt5 & Qt6 might be more
troublesome, locally and on CI. More easy if there is just one Qt flavour to
keep in mind.
My 2 cents as old cmake code writer (who might not be involved in the near
future)
Cheers
Friedrich
More information about the Kde-frameworks-devel
mailing list