Skip to content
This repository has been archived by the owner on Mar 29, 2024. It is now read-only.

TravisCI: Migrate Linux builds from trusty to xenial #73

Merged
merged 5 commits into from
Jan 29, 2019

Conversation

anlambert
Copy link
Contributor

@anlambert anlambert commented Jan 28, 2019

First PR regarding the maintenance of Tulip CI builds.

Now that's Qt4 support has been dropped and Ubuntu xenial is available as base image on TravisCI, I thought is was time to upgrade the Linux builds of Tulip to a more contemporary environment.

Ubuntu trusty was used as the base image before but it's quite old nowadays for compiling desktop applications (its Qt5 version is 5.2.0 for instance). Migrating the builds to xenial offers updated packages with versions close to those of debian stretch (stable). Il also enables to perform legacy / modern build of Tulip (in terms of compiler, Qt and Python version) with a more concise Travis configuration. Last but not least, it gives more contemporary hints on how to build Tulip on debian based distribution.

The versions of the compilers / dependencies of these updated builds are the following:

  • legacy build: GCC 5.4, Qt 5.5 and Python 2.7.

  • modern build: GCC 8.1, Qt 5.11 and Python 3.7.

In order to benefit from a recent Qt5 version, I used the repository from the kde neon project allowing to benefit from upstream KDE/Qt software on top of Ubuntu LTS. I also noticed a deadlock when running a unit test with recent Qt5 version, I had to slightly patch some files to remove it.

That PR also fixes the detection of OpenMP with CMake when using clang provided by Homebrew and change the Python version used to build AppImages from 2.7 to 3.5 (Python 2 is close to its death so Python 3 should be the preferred version to bundle when distributing Tulip).

This unintended side effect in tests environment was making the plugins
loading test hangs on Ubuntu Xenial when using Qt >= 5.10.
…truct method

I observed deadlocks when running the Tulip plugins loading unit test
on Ubuntu xenial with an xvfb backend and Qt >= 5.10.

This is due to a Qt5 side effect when instantiating interactor plugins.

In Interactor derived class constructors, a call to setConfigurationWidgetText is
made calling Qt5 API under the hood. Calling Qt5 API while loading plugins
is a dangerous operation so prefer to made that call into the construct
method instead.
@anlambert anlambert force-pushed the travis-xenial-migration branch from 0478dc0 to 7498ab0 Compare January 28, 2019 22:00
@p-mary p-mary merged commit b658a63 into Tulip-Dev:master Jan 29, 2019
@p-mary
Copy link
Contributor

p-mary commented Jan 29, 2019

Thanks a lot for your fixes.

Sign up for free to subscribe to this conversation on GitHub. Already have an account? Sign in.
Labels
None yet
Projects
None yet
Development

Successfully merging this pull request may close these issues.

2 participants