diff mbox series

[v5,13/14] travis: improve python version test coverage

Message ID 20180116134217.8725-14-berrange@redhat.com
State New
Headers show
Series Support building with py2 or py3 | expand

Commit Message

Daniel P. Berrangé Jan. 16, 2018, 1:42 p.m. UTC
Currently travis declares ancient python 2.4 is desired. Update that to
2.6 which is the oldest version any targetted distros still needs. If we
just list a python 3 version at the top level this will double the
number of travis jobs we run which is unreasonable.

So arbitrarily pick the clang test matrix entries to build with python
3.0 and 3.6, to extend coverage of python versions, without increasing
job count or build time.

Signed-off-by: Daniel P. Berrange <berrange@redhat.com>
---
 .travis.yml | 14 +++++++++-----
 1 file changed, 9 insertions(+), 5 deletions(-)

Comments

Philippe Mathieu-Daudé May 31, 2018, 4:09 p.m. UTC | #1
Hi Daniel,

On 01/16/2018 10:42 AM, Daniel P. Berrange wrote:
> Currently travis declares ancient python 2.4 is desired. Update that to
> 2.6 which is the oldest version any targetted distros still needs. If we
> just list a python 3 version at the top level this will double the
> number of travis jobs we run which is unreasonable.
> 
> So arbitrarily pick the clang test matrix entries to build with python
> 3.0 and 3.6, to extend coverage of python versions, without increasing
> job count or build time.

I'm seeing 3.0 builds taking the double time than 3.6 builds (and
triggering the 50min timeout), any idea what could cause this huge
difference?

> 
> Signed-off-by: Daniel P. Berrange <berrange@redhat.com>
> ---
>  .travis.yml | 14 +++++++++-----
>  1 file changed, 9 insertions(+), 5 deletions(-)
> 
> diff --git a/.travis.yml b/.travis.yml
> index f583839755..708c886017 100644
> --- a/.travis.yml
> +++ b/.travis.yml
> @@ -1,7 +1,7 @@
>  sudo: false
>  language: c
>  python:
> -  - "2.4"
> +  - "2.6"
>  compiler:
>    - gcc
>  cache: ccache
> @@ -115,15 +115,17 @@ matrix:
>          - sudo apt-get build-dep -qq qemu
>          - wget -O - http://people.linaro.org/~alex.bennee/qemu-submodule-git-seed.tar.xz | tar -xvJ
>          - git submodule update --init --recursive
> -    # Trusty System build with latest stable clang
> +    # Trusty System build with latest stable clang & python 3.0
>      - sudo: required
>        addons:
>        dist: trusty
>        language: generic
>        compiler: none
> +      python:
> +        - "3.0"
>        env:
>          - COMPILER_NAME=clang CXX=clang++-3.9 CC=clang-3.9
> -        - CONFIG="--disable-linux-user --cc=clang-3.9 --cxx=clang++-3.9"
> +        - CONFIG="--disable-linux-user --cc=clang-3.9 --cxx=clang++-3.9 --python=/usr/bin/python3"
>        before_install:
>          - wget -nv -O - http://llvm.org/apt/llvm-snapshot.gpg.key | sudo apt-key add -
>          - sudo apt-add-repository -y 'deb http://llvm.org/apt/trusty llvm-toolchain-trusty-3.9 main'
> @@ -134,15 +136,17 @@ matrix:
>          - git submodule update --init --recursive
>        before_script:
>          - ./configure ${CONFIG} || cat config.log
> -    # Trusty Linux User build with latest stable clang
> +    # Trusty Linux User build with latest stable clang & python 3.6
>      - sudo: required
>        addons:
>        dist: trusty
>        language: generic
>        compiler: none
> +      python:
> +        - "3.6"
>        env:
>          - COMPILER_NAME=clang CXX=clang++-3.9 CC=clang-3.9
> -        - CONFIG="--disable-system --cc=clang-3.9 --cxx=clang++-3.9"
> +        - CONFIG="--disable-system --cc=clang-3.9 --cxx=clang++-3.9 --python=/usr/bin/python3"
>        before_install:
>          - wget -nv -O - http://llvm.org/apt/llvm-snapshot.gpg.key | sudo apt-key add -
>          - sudo apt-add-repository -y 'deb http://llvm.org/apt/trusty llvm-toolchain-trusty-3.9 main'
>
Alex Bennée May 31, 2018, 8:17 p.m. UTC | #2
Daniel P. Berrange <berrange@redhat.com> writes:

> Currently travis declares ancient python 2.4 is desired. Update that to
> 2.6 which is the oldest version any targetted distros still needs. If we
> just list a python 3 version at the top level this will double the
> number of travis jobs we run which is unreasonable.
>
> So arbitrarily pick the clang test matrix entries to build with python
> 3.0 and 3.6, to extend coverage of python versions, without increasing
> job count or build time.

I'm sorry I didn't get to this when you posted it. However I'd like to
know what the minimum build configuration we can get which will still
ensure that the python is exercised? Would a
TARGET_LIST="x86-64-softmmu" be good enough?

>
> Signed-off-by: Daniel P. Berrange <berrange@redhat.com>
> ---
>  .travis.yml | 14 +++++++++-----
>  1 file changed, 9 insertions(+), 5 deletions(-)
>
> diff --git a/.travis.yml b/.travis.yml
> index f583839755..708c886017 100644
> --- a/.travis.yml
> +++ b/.travis.yml
> @@ -1,7 +1,7 @@
>  sudo: false
>  language: c
>  python:
> -  - "2.4"
> +  - "2.6"
>  compiler:
>    - gcc
>  cache: ccache
> @@ -115,15 +115,17 @@ matrix:
>          - sudo apt-get build-dep -qq qemu
>          - wget -O - http://people.linaro.org/~alex.bennee/qemu-submodule-git-seed.tar.xz | tar -xvJ
>          - git submodule update --init --recursive
> -    # Trusty System build with latest stable clang
> +    # Trusty System build with latest stable clang & python 3.0
>      - sudo: required
>        addons:
>        dist: trusty
>        language: generic
>        compiler: none
> +      python:
> +        - "3.0"
>        env:
>          - COMPILER_NAME=clang CXX=clang++-3.9 CC=clang-3.9
> -        - CONFIG="--disable-linux-user --cc=clang-3.9 --cxx=clang++-3.9"
> +        - CONFIG="--disable-linux-user --cc=clang-3.9 --cxx=clang++-3.9 --python=/usr/bin/python3"
>        before_install:
>          - wget -nv -O - http://llvm.org/apt/llvm-snapshot.gpg.key | sudo apt-key add -
>          - sudo apt-add-repository -y 'deb http://llvm.org/apt/trusty llvm-toolchain-trusty-3.9 main'
> @@ -134,15 +136,17 @@ matrix:
>          - git submodule update --init --recursive
>        before_script:
>          - ./configure ${CONFIG} || cat config.log
> -    # Trusty Linux User build with latest stable clang
> +    # Trusty Linux User build with latest stable clang & python 3.6
>      - sudo: required
>        addons:
>        dist: trusty
>        language: generic
>        compiler: none
> +      python:
> +        - "3.6"
>        env:
>          - COMPILER_NAME=clang CXX=clang++-3.9 CC=clang-3.9
> -        - CONFIG="--disable-system --cc=clang-3.9 --cxx=clang++-3.9"
> +        - CONFIG="--disable-system --cc=clang-3.9 --cxx=clang++-3.9 --python=/usr/bin/python3"
>        before_install:
>          - wget -nv -O - http://llvm.org/apt/llvm-snapshot.gpg.key | sudo apt-key add -
>          - sudo apt-add-repository -y 'deb http://llvm.org/apt/trusty llvm-toolchain-trusty-3.9 main'


--
Alex Bennée
Daniel P. Berrangé June 1, 2018, 11:47 a.m. UTC | #3
On Thu, May 31, 2018 at 01:09:37PM -0300, Philippe Mathieu-Daudé wrote:
> Hi Daniel,
> 
> On 01/16/2018 10:42 AM, Daniel P. Berrange wrote:
> > Currently travis declares ancient python 2.4 is desired. Update that to
> > 2.6 which is the oldest version any targetted distros still needs. If we
> > just list a python 3 version at the top level this will double the
> > number of travis jobs we run which is unreasonable.
> > 
> > So arbitrarily pick the clang test matrix entries to build with python
> > 3.0 and 3.6, to extend coverage of python versions, without increasing
> > job count or build time.
> 
> I'm seeing 3.0 builds taking the double time than 3.6 builds (and
> triggering the 50min timeout), any idea what could cause this huge
> difference?

Ouch, that's real bad. I don't have any bright ideas, other than fact
that its a .0 release, so perhaps it was just really bad.

Wonder at which 3.x release it got "fast"

> 
> > 
> > Signed-off-by: Daniel P. Berrange <berrange@redhat.com>
> > ---
> >  .travis.yml | 14 +++++++++-----
> >  1 file changed, 9 insertions(+), 5 deletions(-)
> > 
> > diff --git a/.travis.yml b/.travis.yml
> > index f583839755..708c886017 100644
> > --- a/.travis.yml
> > +++ b/.travis.yml
> > @@ -1,7 +1,7 @@
> >  sudo: false
> >  language: c
> >  python:
> > -  - "2.4"
> > +  - "2.6"
> >  compiler:
> >    - gcc
> >  cache: ccache
> > @@ -115,15 +115,17 @@ matrix:
> >          - sudo apt-get build-dep -qq qemu
> >          - wget -O - http://people.linaro.org/~alex.bennee/qemu-submodule-git-seed.tar.xz | tar -xvJ
> >          - git submodule update --init --recursive
> > -    # Trusty System build with latest stable clang
> > +    # Trusty System build with latest stable clang & python 3.0
> >      - sudo: required
> >        addons:
> >        dist: trusty
> >        language: generic
> >        compiler: none
> > +      python:
> > +        - "3.0"
> >        env:
> >          - COMPILER_NAME=clang CXX=clang++-3.9 CC=clang-3.9
> > -        - CONFIG="--disable-linux-user --cc=clang-3.9 --cxx=clang++-3.9"
> > +        - CONFIG="--disable-linux-user --cc=clang-3.9 --cxx=clang++-3.9 --python=/usr/bin/python3"
> >        before_install:
> >          - wget -nv -O - http://llvm.org/apt/llvm-snapshot.gpg.key | sudo apt-key add -
> >          - sudo apt-add-repository -y 'deb http://llvm.org/apt/trusty llvm-toolchain-trusty-3.9 main'
> > @@ -134,15 +136,17 @@ matrix:
> >          - git submodule update --init --recursive
> >        before_script:
> >          - ./configure ${CONFIG} || cat config.log
> > -    # Trusty Linux User build with latest stable clang
> > +    # Trusty Linux User build with latest stable clang & python 3.6
> >      - sudo: required
> >        addons:
> >        dist: trusty
> >        language: generic
> >        compiler: none
> > +      python:
> > +        - "3.6"
> >        env:
> >          - COMPILER_NAME=clang CXX=clang++-3.9 CC=clang-3.9
> > -        - CONFIG="--disable-system --cc=clang-3.9 --cxx=clang++-3.9"
> > +        - CONFIG="--disable-system --cc=clang-3.9 --cxx=clang++-3.9 --python=/usr/bin/python3"
> >        before_install:
> >          - wget -nv -O - http://llvm.org/apt/llvm-snapshot.gpg.key | sudo apt-key add -
> >          - sudo apt-add-repository -y 'deb http://llvm.org/apt/trusty llvm-toolchain-trusty-3.9 main'
> > 

Regards,
Daniel
Daniel P. Berrangé June 1, 2018, 11:48 a.m. UTC | #4
On Thu, May 31, 2018 at 09:17:30PM +0100, Alex Bennée wrote:
> 
> Daniel P. Berrange <berrange@redhat.com> writes:
> 
> > Currently travis declares ancient python 2.4 is desired. Update that to
> > 2.6 which is the oldest version any targetted distros still needs. If we
> > just list a python 3 version at the top level this will double the
> > number of travis jobs we run which is unreasonable.
> >
> > So arbitrarily pick the clang test matrix entries to build with python
> > 3.0 and 3.6, to extend coverage of python versions, without increasing
> > job count or build time.
> 
> I'm sorry I didn't get to this when you posted it. However I'd like to
> know what the minimum build configuration we can get which will still
> ensure that the python is exercised? Would a
> TARGET_LIST="x86-64-softmmu" be good enough?

Most important stuff to exercise is the QAPI code generator and the
trace tool backends, as those the main python pieces users will hit
during build. So yes, it is sufficient to just have 1 target arch


Regards,
Daniel
diff mbox series

Patch

diff --git a/.travis.yml b/.travis.yml
index f583839755..708c886017 100644
--- a/.travis.yml
+++ b/.travis.yml
@@ -1,7 +1,7 @@ 
 sudo: false
 language: c
 python:
-  - "2.4"
+  - "2.6"
 compiler:
   - gcc
 cache: ccache
@@ -115,15 +115,17 @@  matrix:
         - sudo apt-get build-dep -qq qemu
         - wget -O - http://people.linaro.org/~alex.bennee/qemu-submodule-git-seed.tar.xz | tar -xvJ
         - git submodule update --init --recursive
-    # Trusty System build with latest stable clang
+    # Trusty System build with latest stable clang & python 3.0
     - sudo: required
       addons:
       dist: trusty
       language: generic
       compiler: none
+      python:
+        - "3.0"
       env:
         - COMPILER_NAME=clang CXX=clang++-3.9 CC=clang-3.9
-        - CONFIG="--disable-linux-user --cc=clang-3.9 --cxx=clang++-3.9"
+        - CONFIG="--disable-linux-user --cc=clang-3.9 --cxx=clang++-3.9 --python=/usr/bin/python3"
       before_install:
         - wget -nv -O - http://llvm.org/apt/llvm-snapshot.gpg.key | sudo apt-key add -
         - sudo apt-add-repository -y 'deb http://llvm.org/apt/trusty llvm-toolchain-trusty-3.9 main'
@@ -134,15 +136,17 @@  matrix:
         - git submodule update --init --recursive
       before_script:
         - ./configure ${CONFIG} || cat config.log
-    # Trusty Linux User build with latest stable clang
+    # Trusty Linux User build with latest stable clang & python 3.6
     - sudo: required
       addons:
       dist: trusty
       language: generic
       compiler: none
+      python:
+        - "3.6"
       env:
         - COMPILER_NAME=clang CXX=clang++-3.9 CC=clang-3.9
-        - CONFIG="--disable-system --cc=clang-3.9 --cxx=clang++-3.9"
+        - CONFIG="--disable-system --cc=clang-3.9 --cxx=clang++-3.9 --python=/usr/bin/python3"
       before_install:
         - wget -nv -O - http://llvm.org/apt/llvm-snapshot.gpg.key | sudo apt-key add -
         - sudo apt-add-repository -y 'deb http://llvm.org/apt/trusty llvm-toolchain-trusty-3.9 main'