From e580f6d4a4a29bd154b111650638d5a4466fc492 Mon Sep 17 00:00:00 2001 From: Alexander Turenko Date: Thu, 20 Aug 2020 23:30:23 +0300 Subject: [PATCH 1/3] travis-ci: add new Linux distribution versions Added Fedora 30, Ubuntu Eoan and Focal. CentOS 8 and Fedora 31 are not added: we should resolve several build problems first. Filed #164 regarding this. --- .travis.yml | 3 +++ 1 file changed, 3 insertions(+) diff --git a/.travis.yml b/.travis.yml index 2217c63d..f3e31c5e 100644 --- a/.travis.yml +++ b/.travis.yml @@ -12,9 +12,12 @@ env: - OS=el DIST=7 - OS=fedora DIST=28 - OS=fedora DIST=29 + - OS=fedora DIST=30 - OS=ubuntu DIST=trusty - OS=ubuntu DIST=xenial - OS=ubuntu DIST=bionic + - OS=ubuntu DIST=eoan + - OS=ubuntu DIST=focal - OS=debian DIST=jessie - OS=debian DIST=stretch - OS=debian DIST=buster From a8a286d691703e625f32b288fa49d99a42c7a96f Mon Sep 17 00:00:00 2001 From: Alexander Turenko Date: Thu, 20 Aug 2020 23:31:56 +0300 Subject: [PATCH 2/3] travis-ci: add new target tarantool repositories --- .travis.yml | 40 ++++++++++++++++++++++++++++++++++++++++ 1 file changed, 40 insertions(+) diff --git a/.travis.yml b/.travis.yml index f3e31c5e..784cb107 100644 --- a/.travis.yml +++ b/.travis.yml @@ -99,6 +99,26 @@ deploy: on: branch: master condition: -n "${OS}" && -n "${DIST}" && -n "${PACKAGECLOUD_TOKEN}" + - provider: packagecloud + username: tarantool + repository: "2_3" + token: ${PACKAGECLOUD_TOKEN} + dist: ${OS}/${DIST} + package_glob: build/*.{rpm,deb} + skip_cleanup: true + on: + branch: master + condition: -n "${OS}" && -n "${DIST}" && -n "${PACKAGECLOUD_TOKEN}" + - provider: packagecloud + username: tarantool + repository: "2_4" + token: ${PACKAGECLOUD_TOKEN} + dist: ${OS}/${DIST} + package_glob: build/*.{rpm,deb} + skip_cleanup: true + on: + branch: master + condition: -n "${OS}" && -n "${DIST}" && -n "${PACKAGECLOUD_TOKEN}" # Deploy packages to PackageCloud from tagged revisions # https://github.com/tarantool/tarantool/issues/3745 # https://github.com/travis-ci/travis-ci/issues/7780#issuecomment-302389370 @@ -162,6 +182,26 @@ deploy: on: tags: true condition: -n "${OS}" && -n "${DIST}" && -n "${PACKAGECLOUD_TOKEN}" + - provider: packagecloud + username: tarantool + repository: "2_3" + token: ${PACKAGECLOUD_TOKEN} + dist: ${OS}/${DIST} + package_glob: build/*.{rpm,deb} + skip_cleanup: true + on: + tags: true + condition: -n "${OS}" && -n "${DIST}" && -n "${PACKAGECLOUD_TOKEN}" + - provider: packagecloud + username: tarantool + repository: "2_4" + token: ${PACKAGECLOUD_TOKEN} + dist: ${OS}/${DIST} + package_glob: build/*.{rpm,deb} + skip_cleanup: true + on: + tags: true + condition: -n "${OS}" && -n "${DIST}" && -n "${PACKAGECLOUD_TOKEN}" notifications: email: From 0c5a8b6c51a349807e5d2ced15fc2d059941d348 Mon Sep 17 00:00:00 2001 From: Alexander Turenko Date: Fri, 21 Aug 2020 00:55:35 +0300 Subject: [PATCH 3/3] appveyor: workaround PyYAML install problem `pip install pyyaml` fails in AppVeyor on 64-bit Python 3.4 with the following message (full log is in [1]): | Collecting pyyaml | Downloading <...>/PyYAML-5.3.1.tar.gz (269kB) | <...> | building '_yaml' extension | Traceback (most recent call last): | <...> | File "C:\Python34-x64\lib\distutils\msvc9compiler.py", line 287, in query_vcvarsall | raise ValueError(str(list(result.keys()))) | ValueError: ['path'] It is cumulative effect of several problems. The first one is that pip does not choose a PyYAML version, which supports given Python version (it is PyYAML 5.2, see [2]), but tries to install a last one (it is PyYAML 5.3.1 ATM). There are PyYAML issues [3], [4] and [5], which are not exacly about this, but looks tightly related. Despite Python 3.4 is not officially supported in PyYAML, it works on 3.4 in fact, so it is not the problem per se. Next, there are no wheels for Python 3.4 for PyYAML 5.3.1 on PyPI (which is logical), so pip downloads the source tarball and tries to build it. And the exception shown above is raised. It looks similar to [6], so I would guess that it is a compiler setup problem within an AppVeyor Windows image. I started the discussion [7] regarding it, but we need to work the problem around. Side note: 32-bit Python 3.4 works fine, the problem appears only for the 64-bit Python 3.4 build. In order to workaround the compiler setup problem we can just choose a PyYAML version for which PyPI provides wheels for the corresponding platform / Python version / Python build. It is 5.2b1, see [8]. Python 3.4 reaches EOL 2019-03-18 with releasing 3.4.10 (see [9]). I would not consider it as the reason to drop support of it on our side, especially when we're tell about a library (our users has its users, etc) and it is hard to estimate the impact. The problem we meet here is just about a testing dependency in a particular environment. So let's keep Python 3.4 support until there will be a better reason to stop. [1]: https://ci.appveyor.com/project/tarantool/tarantool-python/builds/34769695/job/ww3s69pkuh1n9d1y [2]: https://github.com/yaml/pyyaml/pull/345 [3]: https://github.com/yaml/pyyaml/issues/281 [4]: https://github.com/yaml/pyyaml/issues/375 [5]: https://github.com/yaml/pyyaml/issues/398 [6]: https://stackoverflow.com/a/43711372/1598057 [7]: http://help.appveyor.com/discussions/problems/28023 [8]: https://pypi.org/project/PyYAML/5.2b1/#files [9]: https://www.python.org/downloads/release/python-3410/ --- appveyor.yml | 8 +++++++- 1 file changed, 7 insertions(+), 1 deletion(-) diff --git a/appveyor.yml b/appveyor.yml index e0485939..c129cec0 100644 --- a/appveyor.yml +++ b/appveyor.yml @@ -4,6 +4,12 @@ environment: - PYTHON: "C:\\Python27-x64" - PYTHON: "C:\\Python34" - PYTHON: "C:\\Python34-x64" + # Workaround the build problem [1] by choosing a PyYAML + # version for which PyPI provides a wheel for this platform + # and Python version / build. + # + # [1]: http://help.appveyor.com/discussions/problems/28023 + PYYAML: "==5.2b1" - PYTHON: "C:\\Python35" - PYTHON: "C:\\Python35-x64" - PYTHON: "C:\\Python36" @@ -15,7 +21,7 @@ install: # install runtime dependencies - "%PYTHON%\\python.exe -m pip install -r requirements.txt" # install testing dependencies - - "%PYTHON%\\python.exe -m pip install pyyaml" + - "%PYTHON%\\python.exe -m pip install pyyaml%PYYAML%" build: off