Running applications and unittests without "make install"

Ben Cooksley bcooksley at kde.org
Wed Aug 30 05:48:13 UTC 2017


On 30/08/2017 4:10 PM, "Friedrich W. H. Kossebau" <kossebau at kde.org> wrote:

Hi Ben & all,


Hi Friedrich,


Am Samstag, 19. August 2017, 02:24:21 CEST schrieb Ben Cooksley:
> On Wed, Aug 16, 2017 at 3:17 AM, David Faure <faure at kde.org> wrote:
> > Hi everyone,
>
> Hi David,
>
> > The documentation for how to do that is now up at
> >
> >  https://blogs.kde.org/2017/08/15/running-applications-and-
unittests-witho
> >  ut-make-install>
> > I have ported/fixed all frameworks, except for kirigami, and there are
> > still pending merge requests for kpackage.
> >
> > I'm wondering if we could change the CI scripts so that they run the
tests
> > before doing make install? For frameworks only, for now.
>
> I've now done this, for Linux at least.

Any chance the bits about "For frameworks only, for now." was missed here?


I applied it to the XenialQt5.7 platform, because at the moment to my
knowledge only Frameworks uses that.

It could be however that KDevelop is using it too though.

E.g. for kdevelop stable/master builds I now also see tests been run before
install happens (which fails many of them).

Seems to me those bits were important, if looking at the code:

that code in ECM to support running tests uninstalled right now is only
triggered by some "find_package(ECM x.y.z)", with x.y.z >= 5.38.0

Cmp. the
        NOT ("${ECM_GLOBAL_FIND_VERSION}" VERSION_LESS "5.38.0")
in https://cgit.kde.org/extra-cmake-modules.git/tree/kde-modules/
KDECMakeSettings.cmake#n252 , where ${ECM_GLOBAL_FIND_VERSION} is from
        set(ECM_GLOBAL_FIND_VERSION "${ECM_FIND_VERSION}")
in https://cgit.kde.org/extra-cmake-modules.git/tree/ECMConfig.cmake.in#n11

And that find_package of ECM with 5.38.0 is something only the KDE
Frameworks
repos do right now. Where other projects, like kdevelop, are fine with less
recent versions (e.g. kdevelop master only expects ECM 5.14.0 as minimum),
and thus would not trigger that new build layout needed for uninstalled
testing.

So is it possible to limit that new build steps order to just the Frameworks
product, and restore old behaviour for anyone else?


We'd need to change code in the DSL scripts and supply an alternative
pipeline file for that to work, but it shouldn't be too complicated to
achieve if necessary.

Note that the new build directory layout should be forced to on for
Windows, as tests will never pass there due to how Qt on Windows works with
QStandardPaths.


Perhaps in the long term also the logic in ECM needs to be changed, so the
new build artifact placement can be triggered by other means from cmake code
which is prepared for the optional new feature (by testing the version of
the
found ECM or some set feature flag variable). It will be quite some time for
many application projects to jump to 5.38.0 as minimum ECM, given developers
are sometimes bound to LTS distributions.

Cheers
Friedrich


Cheers,
Ben
-------------- next part --------------
An HTML attachment was scrubbed...
URL: <http://mail.kde.org/pipermail/kde-frameworks-devel/attachments/20170830/fe9f4177/attachment.html>


More information about the Kde-frameworks-devel mailing list