You are viewing a plain text version of this content. The canonical link for it is here.
Posted to commits@thrift.apache.org by jk...@apache.org on 2017/09/26 13:49:31 UTC

thrift git commit: build both ubuntu xenial as well as trusty to get more language level coverage, force C++98 in one of the C++ builds to guarantee compat, and update docker readme

Repository: thrift
Updated Branches:
  refs/heads/master d7720f436 -> 65efdff10


build both ubuntu xenial as well as trusty to get more language level
coverage, force C++98 in one of the C++ builds to guarantee compat,
and update docker readme

This closes #1377


Project: http://git-wip-us.apache.org/repos/asf/thrift/repo
Commit: http://git-wip-us.apache.org/repos/asf/thrift/commit/65efdff1
Tree: http://git-wip-us.apache.org/repos/asf/thrift/tree/65efdff1
Diff: http://git-wip-us.apache.org/repos/asf/thrift/diff/65efdff1

Branch: refs/heads/master
Commit: 65efdff10b28fffec8557942d8a0251587d0d3ab
Parents: d7720f4
Author: James E. King, III <jk...@apache.org>
Authored: Mon Sep 25 00:13:38 2017 -0400
Committer: James E. King, III <jk...@apache.org>
Committed: Tue Sep 26 06:48:54 2017 -0700

----------------------------------------------------------------------
 .travis.yml                           |  26 ++++----
 build/docker/README.md                | 104 +++++++++++++++--------------
 build/docker/ubuntu-trusty/Dockerfile |   6 +-
 lib/go/Makefile.am                    |   3 +
 4 files changed, 75 insertions(+), 64 deletions(-)
----------------------------------------------------------------------


http://git-wip-us.apache.org/repos/asf/thrift/blob/65efdff1/.travis.yml
----------------------------------------------------------------------
diff --git a/.travis.yml b/.travis.yml
index c024208..fcd334a 100644
--- a/.travis.yml
+++ b/.travis.yml
@@ -59,35 +59,36 @@ env:
 
     # Autotools builds
     # TODO: Remove them once migrated to CMake
-    # centos-7.3 build jobs appear to be unstable/hang...
-    # TEST_NAME="Autotools (CentOS 7.3)"
-    # DISTRO=centos-7.3
-    # SCRIPT="autotools.sh"
-    # BUILD_ENV="-e CC=gcc -e CXX=g++"
-    # BUILD_ARG="--without-cpp --without-csharp --without-c_glib --without-d -without-dart --without-erlang --without-go --without-haskell --without-haxe"
+
+    - TEST_NAME="Autotools (Ubuntu Trusty)"
+      DISTRO=ubuntu-trusty
+      SCRIPT="autotools.sh"
+      BUILD_ENV="-e CC=gcc -e CXX=g++"
 
     - TEST_NAME="Autotools (Ubuntu Xenial)"
       SCRIPT="autotools.sh"
       BUILD_ENV="-e CC=gcc -e CXX=g++"
-      BUILD_ARG="--enable-plugin" # --without-java --without-lua --without-nodejs --without-perl --without-php --without-php_extension --without-python --without-py3 --without-ruby --without-rust"
+      BUILD_ARG="--enable-plugin"
 
     # CMake builds
-    # centos-7.3 build jobs appear to be unstable/hang...
-    # TEST_NAME="CMake (CentOS 7.3)"
-    # DISTRO=centos-7.3
+
+    - TEST_NAME="CMake (Ubuntu Trusty)"
+      DISTRO=ubuntu-trusty
 
     - TEST_NAME="CMake (Ubuntu Xenial)"
 
     # C++ specific options: compiler plug-in, threading model
-    - TEST_NAME="C++ (Boost Thread)"
+
+    - TEST_NAME="C++98 (Boost Thread)"
       BUILD_LIBS="CPP TESTING TUTORIALS"
-      BUILD_ARG="-DWITH_BOOSTTHREADS=ON -DWITH_PYTHON=OFF -DWITH_C_GLIB=OFF -DWITH_JAVA=OFF -DWITH_HASKELL=OFF"
+      BUILD_ARG="-DCMAKE_CXX_STANDARD=98 -DCMAKE_CXX_STANDARD_REQUIRED=ON -DCMAKE_CXX_EXTENSIONS=OFF --DWITH_BOOSTTHREADS=ON -DWITH_PYTHON=OFF -DWITH_C_GLIB=OFF -DWITH_JAVA=OFF -DWITH_HASKELL=OFF"
 
     - TEST_NAME="C++ (Std Thread) and Plugin"
       BUILD_LIBS="CPP TESTING TUTORIALS"
       BUILD_ARG="-DWITH_PLUGIN=ON -DWITH_STDTHREADS=ON -DWITH_PYTHON=OFF -DWITH_C_GLIB=OFF -DWITH_JAVA=OFF -DWITH_HASKELL=OFF"
 
     # Distribution
+
     - TEST_NAME="make dist"
       SCRIPT="make-dist.sh"
 
@@ -96,6 +97,7 @@ env:
 
     # C and C++ undefined behavior. This wraps autotools.sh, but each binary crashes if
     # undefined behavior occurs. Skips the known flaky tests.
+
     - TEST_NAME="UBSan"
       SCRIPT="ubsan.sh"
       BUILD_ARG="--without-haskell --without-nodejs --without-perl --without-python"

http://git-wip-us.apache.org/repos/asf/thrift/blob/65efdff1/build/docker/README.md
----------------------------------------------------------------------
diff --git a/build/docker/README.md b/build/docker/README.md
index f6db3c2..2de7d68 100644
--- a/build/docker/README.md
+++ b/build/docker/README.md
@@ -1,19 +1,25 @@
 # Apache Thrift Docker containers
+
 Docker containers used to build and test Apache Thrift for a variety of platforms.
 
 ## Available Containers
 
-### CentOS
-* 7.3 (current)
-
-### Debian
-* jessie
-* stretch (current)
+The Travis CI (continuous integration) builds use the Ubuntu Trusty and Xenial images to maximize
+language level coverage.  The other images may or may not work for all languages.
 
 ### Ubuntu
 * trusty
 * xenial (current)
 
+### CentOS
+* 7.3
+  * make check in lib/py may hang in test_sslsocket - root cause unknown
+
+### Debian
+* jessie
+* stretch
+  * make check in lib/cpp fails due to https://svn.boost.org/trac10/ticket/12507
+
 ## Dependencies
 * A working Docker environment. A Vagrantfile is provided which will setup an Ubuntu host and working Docker environment as well as build the Apache Thrift Docker container for testing and development.
 
@@ -33,49 +39,49 @@ From the Apache Thrift code base root:
 	docker run -v $(pwd):/thrift/src -it thrift /bin/bash
 
 ## Core Tool Versions per Dockerfile
-    | Tool      | centos-7.3 | debian-stretch | ubuntu-xenial |
-    |-----------|------------|----------------|---------------|
-    | ant       | 1.9.2      | 1.9.9          | 1.9.6         |
-    | autoconf  | 2.69       | 2.69           | 2.69          |
-    | automake  | 1.13.4     | 1.15           | 1.15          |
-    | bison     | 2.7        | 3.0.4          | 3.0.4         |
-    | boost     | 1.53.0     | 1.62.0         | 1.58.0        |
-    | cmake     | 3.6.3      | 3.7.2          | 3.5.1         |
-    | flex      | 2.5.37     | 2.6.1          | 2.6.0         |
-    | glibc     | 2.17       | 2.24           | 2.23          |
-    | libevent  | 2.0.21     | 2.0.21         | 2.0.21        |
-    | libstdc++ | 4.8.5      | 6.3.0          | 5.4.0         |
-    | make      | 3.82       | 4.1            | 4.1           |
-    | openssl   | 1.0.1e     | 1.1.0f         | 1.0.2g        |
+| Tool      | centos-7.3 | debian-stretch | ubuntu-trusty | ubuntu-xenial | Notes |
+| :-------- | :--------- | :------------- | :------------ | :------------ | :---- |
+| ant       | 1.9.2      | 1.9.9          | 1.9.3         | 1.9.6         |       |
+| autoconf  | 2.69       | 2.69           | 2.69          | 2.69          |       |
+| automake  | 1.13.4     | 1.15           | 1.14.1        | 1.15          |       |
+| bison     | 2.7        | 3.0.4          | 3.0.2         | 3.0.4         |       |
+| boost     | 1.53.0     | 1.62.0         | 1.54.0        | 1.58.0        |       |
+| cmake     | 3.6.3      | 3.7.2          | 3.2.2         | 3.5.1         |       |
+| flex      | 2.5.37     | 2.6.1          | 2.5.35        | 2.6.0         |       |
+| glibc     | 2.17       | 2.24           | 2.19          | 2.23          |       |
+| libevent  | 2.0.21     | 2.0.21         | 2.0.21        | 2.0.21        |       |
+| libstdc++ | 4.8.5      | 6.3.0          | 4.8.4         | 5.4.0         |       |
+| make      | 3.82       | 4.1            | 3.81          | 4.1           |       |
+| openssl   | 1.0.1e     | 1.1.0f         | 1.0.1f        | 1.0.2g        |       |
 
 ## Language Versions per Dockerfile
-    | Language  | centos-7.3 | debian-stretch | ubuntu-xenial |
-    |-----------|------------|----------------|---------------|
-    | as3       |            |                |               |
-    | C++-gcc   | 4.8.5      | 6.3.0          | 5.4.0         |
-    | C++-clang | 3.4.2      | 3.8.1          | 3.8           |
-    | C# (mono) | 4.6.2      | 4.6.2.7        | 5.2.0.215     |
-    | c_glib    | 2.46.2     | 2.50.3         | 2.48.2        |
-    | cocoa     |            |                |               |
-    | d         | 2.076.0    | 2.075.1        | 2.075.1       |
-    | dart      | 1.24.2     | 1.24.2         | 1.24.2        |
-    | delphi    |            |                |               |
-    | dotnet    |            |                |               |
-    | erlang    | 20         | 19.2           | 18.3          |
-    | go        | 1.9        | 1.7.4          | 1.6.2         |
-    | haskell   | 7.6.3      | 8.0.1          | 7.10.3        |
-    | haxe      |            | 3.2.1          | 3.2.1         |
-    | java      | 1.8.0_141  | 1.8.0_141      | 1.8.0_131     |
-    | js        |            |                |               |
-    | lua       | 5.3.4      | 5.2.4          | 5.2.4         |
-    | nodejs    | 6.11.1     | 8.4.0          | 7.10.1        |
-    | ocaml     | 4.01.0     | 4.02.3         | 4.02.3        |
-    | perl      | 5.16.3     | 5.24.1         | 5.22.1        |
-    | php       | 5.4.16     | 7.0.19         | 7.0.22        |
-    | python2   | 2.7.5      | 2.7.13         | 2.7.12        |
-    | python3   | 3.4.5      | 3.5.3          | 3.5.2         |
-    | ruby      | 2.0.0p648  | 2.3.3p222      | 2.3.1p112     |
-    | rust      | 1.17.0     | 1.14.0         | 1.15.1        |
-    | smalltalk |            |                |               |
-    | swift     |            |                |               |
+| Language  | centos-7.3 | debian-stretch | ubuntu-trusty | ubuntu-xenial | Notes |
+| :-------- | :--------- | :------------- | :------------ | :------------ | :---- |
+| as3       |            |                |               |               | Not in CI |
+| C++-gcc   | 4.8.5      | 6.3.0          | 4.8.4         | 5.4.0         |       |
+| C++-clang | 3.4.2      | 3.8.1          | 3.4           | 3.8           |       |
+| C# (mono) | 4.6.2      | 4.6.2.7        | 5.2.0.224     | 5.2.0.215     |       |
+| c_glib    | 2.46.2     | 2.50.3         | 2.40.2        | 2.48.2        |       |
+| cocoa     |            |                |               |               | Not in CI |
+| d         | 2.076.0    | 2.076.0        | 2.070.0       | 2.075.1       |       |
+| dart      | 1.24.2     | 1.24.2         | 1.24.2        | 1.24.2        |       |
+| delphi    |            |                |               |               | Not in CI |
+| dotnet    |            |                |               |               | Not in CI |
+| erlang    | 20         | 19.2           | 20            | 18.3          |       |
+| go        | 1.9        | 1.7.4          | 1.4.3         | 1.6.2         |       |
+| haskell   | 7.6.3      | 8.0.1          | 7.6.3         | 7.10.3        |       |
+| haxe      |            | 3.2.1          | 3.2.1         | 3.2.1         |       |
+| java      | 1.8.0_141  | 1.8.0_141      | 1.7.0_151     | 1.8.0_131     |       |
+| js        |            |                |               |               | Unsure how to look for version info |
+| lua       | 5.3.4      | 5.2.4          | 5.2.3         | 5.2.4         |       |
+| nodejs    | 6.11.1     | 8.4.0          | 4.8.4         | 7.10.1        | Node 8.5 broke copyFile and jsdoc |
+| ocaml     | 4.01.0     | 4.02.3         | 4.02.3        | 4.02.3        |       |
+| perl      | 5.16.3     | 5.24.1         | 5.18.2        | 5.22.1        |       |
+| php       | 5.4.16     | 7.0.19         | 5.5.9         | 7.0.22        |       |
+| python    | 2.7.5      | 2.7.13         | 2.7.6         | 2.7.12        |       |
+| python3   | 3.4.5      | 3.5.3          | 3.4.3         | 3.5.2         |       |
+| ruby      | 2.0.0p648  | 2.3.3p222      | 1.9.3p484     | 2.3.1p112     |       |
+| rust      | 1.17.0     | 1.14.0         | 1.17.0        | 1.15.1        | Rust is too old on stretch |
+| smalltalk |            |                |               |               | Not in CI |
+| swift     |            |                |               |               | Not in CI |
 

http://git-wip-us.apache.org/repos/asf/thrift/blob/65efdff1/build/docker/ubuntu-trusty/Dockerfile
----------------------------------------------------------------------
diff --git a/build/docker/ubuntu-trusty/Dockerfile b/build/docker/ubuntu-trusty/Dockerfile
index a1ff5a1..857384b 100644
--- a/build/docker/ubuntu-trusty/Dockerfile
+++ b/build/docker/ubuntu-trusty/Dockerfile
@@ -138,7 +138,7 @@ RUN apt-get install -y --no-install-recommends \
       libneko0
 
 # Newer release of nodejs
-RUN curl -sL https://deb.nodesource.com/setup_6.x | bash
+RUN curl -sL https://deb.nodesource.com/setup_4.x | bash
 RUN apt-get install -y --no-install-recommends \
 `# Node.js dependencies` \
       nodejs
@@ -188,8 +188,8 @@ RUN mkdir -p /usr/lib/haxe && \
     ln -s /usr/lib/haxe/haxelib /usr/bin/haxelib && \
     mkdir -p /usr/lib/haxe/lib  && \
     chmod -R 777 /usr/lib/haxe/lib && \
-    haxelib setup /usr/lib/haxe/lib && \
-    haxelib install hxcpp
+    haxelib setup --always /usr/lib/haxe/lib && \
+    haxelib install --always hxcpp 3.4.64
 
 # Node.js
 # temporarily removed since this breaks the build (and is not needed to test C# code)

http://git-wip-us.apache.org/repos/asf/thrift/blob/65efdff1/lib/go/Makefile.am
----------------------------------------------------------------------
diff --git a/lib/go/Makefile.am b/lib/go/Makefile.am
index f1bd0e6..0d59710 100644
--- a/lib/go/Makefile.am
+++ b/lib/go/Makefile.am
@@ -34,6 +34,9 @@ check-local:
 	GOPATH=`pwd` $(GO) get golang.org/x/net/context
 	GOPATH=`pwd` $(GO) test -race ./thrift
 
+clean-local:
+	$(RM) -rf pkg
+
 all-local:
 	GOPATH=`pwd` $(GO) get golang.org/x/net/context
 	GOPATH=`pwd` $(GO) build ./thrift