Re: [Development] Continuous Integration for 3rd party projects using Qt

2019-03-19 Thread Jedrzej Nowacki
On Tuesday, March 19, 2019 7:55:53 AM CET Uwe Rathmann wrote:
> Hi all,
> 
> in the end all advice goes into the direction of using one of the
> standard services in combination with using my own brain when working on
> the code.
> 
> Unfortunately nobody pointed out a realistic way how a 3rd party project
> could make use of the infrastructure used by the Qt project nor did
> anyone seem to like this idea enough to think it through.
> 
> Anyway - thanks for all the valuable thoughts and links,
> 
> Uwe
> 

Hi,

 Coin is able to build and tests practically any qmake and >qt5.6 (soon qt5.9) 
based project. It has to be hosted on codereview.qt-project.org, there is 
limited support for git.qt.io or github.com (can not work as a gate keeper). 
There is no SVN support at all. Qt4 support would be a pain in general, 
because of many reasons.

  Qt project CI is for modules that closely follow Qt, including coding style 
as well as release cycle. It is not a general CI, it could be, as it is not 
that far from it, but it is not. There is an ongoing effort to simplify 
3rdparty modules builds ("Qt modules, API changes and Qt 6" 
https://lists.qt-project.org/pipermail/development/2019-January/035018.html), 
but even then I 
would not expect to build against anything older then the oldest LTS. The 
build system, platform configurations, dependencies are changing too quickly 
and all modules needs to follow.

Cheers,
  Jędrek


___
Development mailing list
Development@qt-project.org
https://lists.qt-project.org/listinfo/development


Re: [Development] Continuous Integration for 3rd party projects using Qt

2019-03-19 Thread Uwe Rathmann
Hi all,

in the end all advice goes into the direction of using one of the 
standard services in combination with using my own brain when working on 
the code.

Unfortunately nobody pointed out a realistic way how a 3rd party project 
could make use of the infrastructure used by the Qt project nor did 
anyone seem to like this idea enough to think it through.

Anyway - thanks for all the valuable thoughts and links,

Uwe

 

___
Development mailing list
Development@qt-project.org
https://lists.qt-project.org/listinfo/development


Re: [Development] Continuous Integration for 3rd party projects using Qt

2019-03-18 Thread Thiago Macieira
On Sunday, 17 March 2019 23:49:09 PDT Uwe Rathmann wrote:
> Hi,
> 
> thanks for the all the hints in this thread - I will check them if I
> can't find a service, that is more specific:
> 
> a)
> 
> The very first of my problems is to know about the platforms I need to
> test. I guess the list of all operating system and compiler combinations
> can be found somewhere in the Qt docs, but considering, that only on
> "Linux" you have to consider gcc/icc/clang - for gcc only you have
> v4/5/6/7/8 ...

As Denis said, you can easily use container images to get most of those 
operating systems tested. Just be careful with containers that Qt 5.10 through 
5.12.2 will not like being run on a kernel that is older than the distribution 
usually ships with. By coincidence, I submitted a fix for that today[1].

But I don't think you need to test all GCC combinations, much less in each OS. 
Compiling with the latest is usually sufficient for most cases, as usually the 
compilers start catching things they didn't use to. Especially if you want to 
be warning-clean, like Qt.

You'll likely need to test at least the oldest compiler you still support, to 
make sure that you're not using some C++11/14/17 language or standard library 
feature that the compiler lacks.

> b)
> 
> Furthermore a project like Qwt supports all Qt versions >= 4.4. Even,
> when limiting the tests to a set of relevant versions - let's say
> 4.8/5.6/5.9/5.12 - complexity grows significantly.

Here's where distribution packaging helps. When using Travis, I use Stephan 
Binner's Qt PPAs[2].

With Travis, you can easily select between Ubuntu 12.04 (Trusty) and 14.04 
(Xenial) by a simple line in the .yml file, so that will give you all the way 
from 4.8.7 to 5.12.1.

I've never installed older versions of Qt using Homebrew (on macOS), so I 
don't even know fi this is possible. I doubt they'll have really old stuff. As 
for AppVeyor, they also have quite a few Qt versions (see [3]), but not 
including 4.8.

[1] https://codereview.qt-project.org/256162
[2] https://launchpad.net/~beineri
[3] https://www.appveyor.com/docs/windows-images-software/
-- 
Thiago Macieira - thiago.macieira (AT) intel.com
  Software Architect - Intel System Software Products



___
Development mailing list
Development@qt-project.org
https://lists.qt-project.org/listinfo/development


Re: [Development] Continuous Integration for 3rd party projects using Qt

2019-03-18 Thread Denis Kormalev
Different compilers and qt versions are easily solvable with multiple docker 
images (that can be generated using single Dockerfile with arguments). 
In this case in CI itself all you need is just to build in each of them in 
common way (ideally you just put your build script as entry point and run 
docker container. After it finishes you’ll have all the artifacts to check).

--
Regards,
Denis Kormalev

> On Mar 17, 2019, at 11:49 PM, Uwe Rathmann  wrote:
> 
> Hi,
> 
> thanks for the all the hints in this thread - I will check them if I 
> can't find a service, that is more specific:
> 
> a)
> 
> The very first of my problems is to know about the platforms I need to 
> test. I guess the list of all operating system and compiler combinations 
> can be found somewhere in the Qt docs, but considering, that only on 
> "Linux" you have to consider gcc/icc/clang - for gcc only you have 
> v4/5/6/7/8 ...
> 
> b)
> 
> Furthermore a project like Qwt supports all Qt versions >= 4.4. Even, 
> when limiting the tests to a set of relevant versions - let's say 
> 4.8/5.6/5.9/5.12 - complexity grows significantly.
> 
> --
> 
> My guess is that setting up all the build environments for a) is what has 
> been solved with Coin. Actually I'm not interested in "continous" - it 
> would be good enough to compile all my stuff once in a while ?
> 
> Uwe
> 
> 
> 
> ___
> Development mailing list
> Development@qt-project.org
> https://lists.qt-project.org/listinfo/development

___
Development mailing list
Development@qt-project.org
https://lists.qt-project.org/listinfo/development


Re: [Development] Continuous Integration for 3rd party projects using Qt

2019-03-18 Thread Volker Hilsheimer
On 18 Mar 2019, at 07:49, Uwe Rathmann 
mailto:uwe.rathm...@tigertal.de>> wrote:

Hi,

thanks for the all the hints in this thread - I will check them if I
can't find a service, that is more specific:

a)

The very first of my problems is to know about the platforms I need to
test. I guess the list of all operating system and compiler combinations
can be found somewhere in the Qt docs, but considering, that only on
"Linux" you have to consider gcc/icc/clang - for gcc only you have
v4/5/6/7/8 ...

b)

Furthermore a project like Qwt supports all Qt versions >= 4.4. Even,
when limiting the tests to a set of relevant versions - let's say
4.8/5.6/5.9/5.12 - complexity grows significantly.

--

My guess is that setting up all the build environments for a) is what has
been solved with Coin. Actually I'm not interested in "continous" - it
would be good enough to compile all my stuff once in a while ?

Uwe


Hi Uwe,

Great that you are considering adopting CI for Qwt.

Since you already know Linux/gcc, start from there and see what additional 
platforms and configurations you should add to increase your confidence that 
changes didn’t break anyone’s day. In the end, that’s the goal. Don’t start 
with shooting for 100% - there is no such thing anyway (your tests will cover 
those cases that you could think about when you wrote them, and there’ll always 
be more to learn).

Sometimes, it’s better to accept the risk that some unusual stuff breaks, as 
long as you (or the people impacted) can fix it quickly, than to try and build 
an overly complex CI monster that tries to cover all the corners but doens’t 
give you fast feedback loops, and is harder to maintain than the code it’s 
supposed to test.

In Coin, the setting up of environments is mostly done with provisioning 
scripts, and you can find those in qt5.git/coin. They are somewhat messy, and 
not easily adopted to other projects though.

To make management of environments easier and test provisioning scripts, I’m 
using vagrant (vagrantup.com), which I drilled up quite a 
bit to consume provisioning mechanisms from a lot of different places. Perhaps 
you can use that to play around locally and to identify how your environments 
need to be configured, and then add the configurations that give you the most 
bang for the buck to a hosted CI pipeline.

Cheers,
Volker

___
Development mailing list
Development@qt-project.org
https://lists.qt-project.org/listinfo/development


Re: [Development] Continuous Integration for 3rd party projects using Qt

2019-03-18 Thread Uwe Rathmann
Hi,

thanks for the all the hints in this thread - I will check them if I 
can't find a service, that is more specific:

a)

The very first of my problems is to know about the platforms I need to 
test. I guess the list of all operating system and compiler combinations 
can be found somewhere in the Qt docs, but considering, that only on 
"Linux" you have to consider gcc/icc/clang - for gcc only you have 
v4/5/6/7/8 ...

b)

Furthermore a project like Qwt supports all Qt versions >= 4.4. Even, 
when limiting the tests to a set of relevant versions - let's say 
4.8/5.6/5.9/5.12 - complexity grows significantly.

--

My guess is that setting up all the build environments for a) is what has 
been solved with Coin. Actually I'm not interested in "continous" - it 
would be good enough to compile all my stuff once in a while ?

Uwe

  

___
Development mailing list
Development@qt-project.org
https://lists.qt-project.org/listinfo/development


Re: [Development] Continuous Integration for 3rd party projects using Qt

2019-03-18 Thread Thiago Macieira
On Sunday, 17 March 2019 11:05:08 PDT Denis Kormalev wrote:
> Travis can cover macosx, linux (and using docker it can cover different
> environments/compilers and packaging for various distribs) and android
> (with linux as host). Appveyor can cover Windows builds.

Those two are what I use for TinyCBOR, which uses Qt for its unit test system 
(in turn, Qt uses TinyCBOR). I usually hate working with Travis, since it's 
always hit and miss and if you stop looking at it for a few months, things 
will bit-rot and break, but because of its macOS support, it's the best out 
there.

AppVeyor is much nicer and has Qt pre-installed.

-- 
Thiago Macieira - thiago.macieira (AT) intel.com
  Software Architect - Intel System Software Products



___
Development mailing list
Development@qt-project.org
https://lists.qt-project.org/listinfo/development


Re: [Development] Continuous Integration for 3rd party projects using Qt

2019-03-17 Thread Lorn Potter



On 17/3/19 11:54 PM, Uwe Rathmann wrote:

Hi,

all arguments for doing Continuous Integration for Qt ( https://
blog.qt.io/blog/2016/08/08/coin-continuous-integration-for-qt/ ) are also
valid for 3rd party code using Qt.

F.e. with Qwt ( https://qwt.sourceforge.io ) I'm supporting trillions of
environments I have never seen myself. Actually I'm using Linux/gcc only
- the rest is crossing my fingers and hoping for bug reports.

So what I'm looking for is a service, where I can upload my project to be
built in all official combinations supported by Qt - like it is done for
the Qt code.


Gitlab has CI

https://about.gitlab.com/product/continuous-integration/

I haven't used the CI there so I cannot comment on it, just that it exists.



Is such a service available or - if not - would it be possible to open
your CI system for community projects using Qt ?

Uwe

___
Development mailing list
Development@qt-project.org
https://lists.qt-project.org/listinfo/development



--
Lorn Potter
Freelance Qt Developer. Maintainer QtSensors, Qt WebAssembly

___
Development mailing list
Development@qt-project.org
https://lists.qt-project.org/listinfo/development


Re: [Development] Continuous Integration for 3rd party projects using Qt

2019-03-17 Thread Denis Kormalev
Travis can cover macosx, linux (and using docker it can cover different 
environments/compilers and packaging for various distribs) and android (with 
linux as host). Appveyor can cover Windows builds.

--
Regards,
Denis Kormalev

> On Mar 17, 2019, at 9:03 AM, Bernhard B  wrote:
> 
> Why not use one of the continous integration services like travis-ci or 
> circle-ci?
> 
> Cheers,
> Bernhard
> 
> Uwe Rathmann mailto:uwe.rathm...@tigertal.de>> 
> schrieb am So., 17. März 2019, 14:55:
> Hi,
> 
> all arguments for doing Continuous Integration for Qt ( https://
> blog.qt.io/blog/2016/08/08/coin-continuous-integration-for-qt/ 
>  ) are 
> also 
> valid for 3rd party code using Qt.
> 
> F.e. with Qwt ( https://qwt.sourceforge.io  ) 
> I'm supporting trillions of 
> environments I have never seen myself. Actually I'm using Linux/gcc only 
> - the rest is crossing my fingers and hoping for bug reports.
> 
> So what I'm looking for is a service, where I can upload my project to be 
> built in all official combinations supported by Qt - like it is done for 
> the Qt code.
> 
> Is such a service available or - if not - would it be possible to open 
> your CI system for community projects using Qt ?
> 
> Uwe 
> 
> ___
> Development mailing list
> Development@qt-project.org 
> https://lists.qt-project.org/listinfo/development 
> 
> ___
> Development mailing list
> Development@qt-project.org
> https://lists.qt-project.org/listinfo/development

___
Development mailing list
Development@qt-project.org
https://lists.qt-project.org/listinfo/development


Re: [Development] Continuous Integration for 3rd party projects using Qt

2019-03-17 Thread Bernhard B
Why not use one of the continous integration services like travis-ci or
circle-ci?

Cheers,
Bernhard

Uwe Rathmann  schrieb am So., 17. März 2019,
14:55:

> Hi,
>
> all arguments for doing Continuous Integration for Qt ( https://
> blog.qt.io/blog/2016/08/08/coin-continuous-integration-for-qt/ ) are also
> valid for 3rd party code using Qt.
>
> F.e. with Qwt ( https://qwt.sourceforge.io ) I'm supporting trillions of
> environments I have never seen myself. Actually I'm using Linux/gcc only
> - the rest is crossing my fingers and hoping for bug reports.
>
> So what I'm looking for is a service, where I can upload my project to be
> built in all official combinations supported by Qt - like it is done for
> the Qt code.
>
> Is such a service available or - if not - would it be possible to open
> your CI system for community projects using Qt ?
>
> Uwe
>
> ___
> Development mailing list
> Development@qt-project.org
> https://lists.qt-project.org/listinfo/development
>
___
Development mailing list
Development@qt-project.org
https://lists.qt-project.org/listinfo/development


[Development] Continuous Integration for 3rd party projects using Qt

2019-03-17 Thread Uwe Rathmann
Hi,

all arguments for doing Continuous Integration for Qt ( https://
blog.qt.io/blog/2016/08/08/coin-continuous-integration-for-qt/ ) are also 
valid for 3rd party code using Qt.

F.e. with Qwt ( https://qwt.sourceforge.io ) I'm supporting trillions of 
environments I have never seen myself. Actually I'm using Linux/gcc only 
- the rest is crossing my fingers and hoping for bug reports.

So what I'm looking for is a service, where I can upload my project to be 
built in all official combinations supported by Qt - like it is done for 
the Qt code.

Is such a service available or - if not - would it be possible to open 
your CI system for community projects using Qt ?

Uwe 

___
Development mailing list
Development@qt-project.org
https://lists.qt-project.org/listinfo/development