Install dependencies to CI-test python bindings for KF5 frameworks
Closed, ResolvedPublic

Description

I am currently working on python bindings for KDE frameworks. One of the
things I want to achieve is ci-testing the bindings together with the
code, so that for each framework we also build the bindings on CI (and
therefore people will get immediate notifications if their changes break
the bindings).

The bindings are generated for both python2 and python3, so the
development versions of one or both of those would need to be on CI
machines. The bindings are generated using the sip PyQt compiler
currently, so sip would have to be present too. Those dependencies are
all in the ubuntu repositories.

An additional dependency is a recent version of the python libclang
bindings. I believe the script we use currently requires the development
version of clang, which is available in the llvm apt repositories, so
that would have to be present too. Is that a problem? Note that the
frameworks (and the python bindings) themselves don't have to be built
with the recent clang, but the script to generate the bindings requires it.

It might be possible to implement the script with clang 3.8 stable instead, but I have not investigated that.

skelly created this task.Apr 30 2016, 3:37 PM
scarlettclark added a subscriber: bcooksley.

Adding Ben, he is the python master.

I haven't had time to dig into this yet. Will asap

skelly added a comment.May 4 2016, 8:05 AM

Ok.

I don't think this is urgent. I'm more trying to start a discussion, not trying to assign a difficult task :)

In terms of PPA's - are you comfortable with that Scarlett?

I've added Python 2.x development materials to the images now, Python 3.x and SIP should have already been available.

Sorry I missed something.. PPAs?

astan added a subscriber: astan.Jun 6 2016, 10:32 AM

I think Ben meant the LLVM apt repositories Steve mentioned?

That is correct.

An update on this:

The LLVM apt repo with clang packages from trunk is no longer online:

http://thread.gmane.org/gmane.comp.compilers.llvm.devel/99556

Meanwhile I tested some of the bindings with clang-3.8, and that works for the bindings I tested.

I tested with clang-3.7 and that does not work because the python API misses things like CursorKind.VISIBILITY_ATTR, function.is_const_method(), and function.is_virtual_method(). If I removed the features that depended on those, other problems came up, so I stopped investigating.

So, I think clang-3.8 release is the minimum for testing these bindings. It is not clear to me whether clang 3.8 is available for the CI machines. So, either we find a repo containing clang 3.8, or we don't CI test the bindings until CI is using a newer version of ubuntu ?