From 1f58ede7d26912f387fde2d7f4899b71aaf31da0 Mon Sep 17 00:00:00 2001 From: Syrus Dark Date: Mon, 6 Jul 2020 20:31:49 +0530 Subject: [PATCH 1/8] Add Travis For Windows Wheels --- .travis.yml | 108 +++++++++++++++++++++++++-------------- .travis/downloadCairo.sh | 4 ++ .travis/runPycairox64.sh | 15 ++++++ .travis/runPycairox86.sh | 12 +++++ setup.py | 103 +++++++++++++++++++++++++------------ 5 files changed, 169 insertions(+), 73 deletions(-) create mode 100644 .travis/downloadCairo.sh create mode 100644 .travis/runPycairox64.sh create mode 100644 .travis/runPycairox86.sh diff --git a/.travis.yml b/.travis.yml index 00b7d769..5298efd9 100644 --- a/.travis.yml +++ b/.travis.yml @@ -1,63 +1,93 @@ matrix: include: + - os: windows + language: sh + python: 3.6 + name: Build on Python 3.6.8 in Windows + env: PYVER="3.6.8" PYDIR="Python36" INCLUDE="$PWD/cairocomplied/include/" LIB="$PWD/cairocomplied/lib/x64/" CAIRO_VERSION=1.15.12 WHEELSNAMEx32="pycairo-1.19.2-cp36-cp36m-win32.whl" WHEELSNAMEx64="pycairo-1.19.2-cp36-cp36m-win_amd64.whl" + - os: windows + language: sh + python: 3.7 + name: Build on Python 3.7.7 in Windows + env: PYVER="3.7.7" PYDIR="Python37" INCLUDE="$PWD/cairocomplied/include/" LIB="$PWD/cairocomplied/lib/x64/" CAIRO_VERSION=1.15.12 WHEELSNAMEx32="pycairo-1.19.2-cp37-cp37m-win32.whl" WHEELSNAMEx64="pycairo-1.19.2-cp37-cp37m-win_amd64.whl" + - os: windows + language: sh + python: 3.8 + name: Build on Python 3.8.3 in Windows + env: PYVER="3.8.3" PYDIR="Python38" INCLUDE="$PWD/cairocomplied/include/" LIB="$PWD/cairocomplied/lib/x64/" PYNAME="3.8" CAIRO_VERSION=1.15.12 WHEELSNAMEx32="pycairo-1.19.2-cp38-cp38-win32.whl" WHEELSNAMEx64="pycairo-1.19.2-cp38-cp38-win_amd64.whl" - os: linux dist: trusty language: python - python: "3.5" + python: 3.5 + name: Build on Python 3.5 in Trusty Linux env: CFLAGS="-Werror -coverage" - os: linux dist: trusty language: python - python: "3.6" + python: 3.6 + name: Build on Python 3.6 in Trusty Linux env: CFLAGS="-Werror -coverage" - os: linux dist: xenial language: python - python: "3.7" + python: 3.7 + name: Build on Python 3.7 in Xenial Linux env: CFLAGS="-Werror -coverage" - os: linux dist: xenial language: python - python: "3.8" - env: CFLAGS="-Werror -coverage" - - os: linux - dist: xenial - language: python - python: "pypy3" + python: 3.8 + name: Build on Python 3.8 in Xenial Linux env: CFLAGS="-Werror -coverage" - os: osx osx_image: xcode11.3 language: generic + name: Build on Python 3.8 in Mac OSX xcode11.3 env: CFLAGS="-Werror -coverage" - - install: - - if [[ "$TRAVIS_OS_NAME" == "linux" ]]; then travis_retry sudo apt-get update -q; fi - - if [[ "$TRAVIS_OS_NAME" == "linux" ]]; then travis_retry sudo apt-get install -y libcairo2-dev; fi - - if [[ "$TRAVIS_OS_NAME" == "osx" ]]; then brew update; fi - - if [[ "$TRAVIS_OS_NAME" == "osx" ]]; then brew install pkg-config || true; fi - - if [[ "$TRAVIS_OS_NAME" == "osx" ]]; then brew install cairo || true; fi - - if [[ "$TRAVIS_OS_NAME" == "osx" ]]; then export PKG_CONFIG_PATH="/usr/local/opt/libffi/lib/pkgconfig"; fi - - if [[ "$TRAVIS_OS_NAME" == "osx" ]]; then brew unlink python@2 || true; fi - - if [[ "$TRAVIS_OS_NAME" == "osx" ]]; then brew install python || true; fi - - if [[ "$TRAVIS_OS_NAME" == "osx" ]]; then python3 -m pip install virtualenv; fi - - if [[ "$TRAVIS_OS_NAME" == "osx" ]]; then virtualenv ../venv -p python3; fi - - if [[ "$TRAVIS_OS_NAME" == "osx" ]]; then source ../venv/bin/activate; fi - - python -m pip install --upgrade setuptools - - python -m pip install --upgrade pytest flake8 "sphinx<3" sphinx_rtd_theme coverage codecov hypothesis attrs - - python -m pip install --upgrade mypy || true - - if [[ "$TRAVIS_OS_NAME" != "osx" ]] && [[ "$TRAVIS_PYTHON_VERSION" != "3.8" ]] && [[ "${TRAVIS_PYTHON_VERSION:0:4}" != "pypy" ]]; then python -m pip install --upgrade pygame; fi - + - if [ "$TRAVIS_OS_NAME" == "windows" ]; then source .travis/downloadCairo.sh; fi + - if [ "$TRAVIS_OS_NAME" == "linux" ]; then travis_retry sudo apt-get update -q; fi + - if [ "$TRAVIS_OS_NAME" == "linux" ]; then travis_retry sudo apt-get install -y libcairo2-dev; fi + - if [ "$TRAVIS_OS_NAME" == "osx" ]; then brew update; fi + - if [ "$TRAVIS_OS_NAME" == "osx" ]; then brew install pkg-config || true; fi + - if [ "$TRAVIS_OS_NAME" == "osx" ]; then brew install cairo || true; fi + - if [ "$TRAVIS_OS_NAME" == "osx" ]; then export PKG_CONFIG_PATH="/usr/local/opt/libffi/lib/pkgconfig"; fi + - if [ "$TRAVIS_OS_NAME" == "osx" ]; then brew unlink python@2 || true; fi + - if [ "$TRAVIS_OS_NAME" == "osx" ]; then brew install python || true; fi + - if [ "$TRAVIS_OS_NAME" == "osx" ]; then python3 -m pip install virtualenv; fi + - if [ "$TRAVIS_OS_NAME" == "osx" ]; then virtualenv ../venv -p python3; fi + - if [ "$TRAVIS_OS_NAME" == "osx" ]; then source ../venv/bin/activate; fi + - if [ "$TRAVIS_OS_NAME" != "windows" ]; then python -m pip install --upgrade setuptools; fi + - if [ "$TRAVIS_OS_NAME" != "windows" ]; then python -m pip install --upgrade pytest flake8 "sphinx<3" sphinx_rtd_theme coverage codecov hypothesis attrs; fi + - if [ "$TRAVIS_OS_NAME" != "windows" ]; then python -m pip install --upgrade mypy || true; fi script: - - python -m coverage run --branch setup.py test - - python -m codecov --required || true - - python -m flake8 . - - python setup.py sdist - - python setup.py bdist - - python setup.py install --root=_root - - python setup.py install --root="$(pwd)"/_root_abs - - python setup.py bdist_egg - - python setup.py bdist_wheel - - python setup.py install --root=_root_setup - - if [[ "${TRAVIS_PYTHON_VERSION:0:4}" != "pypy" ]] ; then python -m pip install .; fi - - python -m sphinx -W -a -E -b html -n docs docs/_build + #windows build + - if [ "$TRAVIS_OS_NAME" == "windows" ]; then source .travis/runPycairox64.sh; fi + - if [ "$TRAVIS_OS_NAME" == "windows" ]; then source .travis/runPycairox86.sh; fi + - if [ "$TRAVIS_OS_NAME" != "windows" ]; then python setup.py sdist; fi + - if [ "$TRAVIS_OS_NAME" != "windows" ]; then python setup.py bdist; fi + - if [ "$TRAVIS_OS_NAME" != "windows" ]; then python setup.py install --root=_root; fi + - if [ "$TRAVIS_OS_NAME" != "windows" ]; then python setup.py install --root="$(pwd)"/_root_abs; fi + - if [ "$TRAVIS_OS_NAME" != "windows" ]; then python setup.py bdist_wheel; fi + - if [ "$TRAVIS_OS_NAME" != "windows" ]; then python setup.py install --root=_root_setup; fi + - if [ "$TRAVIS_OS_NAME" != "windows" ]; then if [[ "${TRAVIS_PYTHON_VERSION:0:4}" != "pypy" ]] ; then python -m pip install .; fi; fi + - if [ "$TRAVIS_OS_NAME" != "windows" ]; then python -m sphinx -W -a -E -b html -n docs docs/_build; fi + +cache: + directories: + - $HOME/.cache/pip + - $HOME/Library/Caches/Homebrew + +before_cache: + - brew cleanup + - rm -f $HOME/.cache/pip/log/debug.log +branches: + only: + - master +deploy: + provider: releases + file_glob: true + api_key: $GITHUBOAUTHTOKEN + file: dist/* + skip_cleanup: true + draft: true diff --git a/.travis/downloadCairo.sh b/.travis/downloadCairo.sh new file mode 100644 index 00000000..9d7bbb01 --- /dev/null +++ b/.travis/downloadCairo.sh @@ -0,0 +1,4 @@ + +curl -L https://github.com/preshing/cairo-windows/releases/download/$CAIRO_VERSION/cairo-windows-$CAIRO_VERSION.zip -o cairocomplied.zip +7z x cairocomplied.zip +mv cairo-windows-$CAIRO_VERSION cairocomplied \ No newline at end of file diff --git a/.travis/runPycairox64.sh b/.travis/runPycairox64.sh new file mode 100644 index 00000000..343b5fd2 --- /dev/null +++ b/.travis/runPycairox64.sh @@ -0,0 +1,15 @@ + +cp cairocomplied/lib/x64/cairo.dll cairo/cairo.dll +choco install python --version=$PYVER +export PATH="/c/$PYDIR:/c/$PYDIR/Scripts:$PATH" +cmd.exe //c "RefreshEnv.cmd" +python -m pip install --upgrade pip +python -m pip install --upgrade wheel +python -m pip install --upgrade setuptools +python -m pip install pytest +python -m pip install --upgrade mypy || true +cmd.exe //c "RefreshEnv.cmd" +python setup.py bdist_wheel +pip install dist/$WHEELSNAMEx64 +python testcairo.py +rm -f cairo/cairo.dll \ No newline at end of file diff --git a/.travis/runPycairox86.sh b/.travis/runPycairox86.sh new file mode 100644 index 00000000..59b50df8 --- /dev/null +++ b/.travis/runPycairox86.sh @@ -0,0 +1,12 @@ +cp cairocomplied/lib/x86/cairo.dll cairo/cairo.dll +curl -L https://aka.ms/nugetclidl -o nuget.exe +./nuget install pythonx86 -Version $PYVER -OutputDirectory pythonx86 +./pythonx86/pythonx86.$PYVER/tools/python.exe -m pip install --upgrade pip +./pythonx86/pythonx86.$PYVER/tools/python.exe -m pip install --upgrade wheel +./pythonx86/pythonx86.$PYVER/tools/python.exe -m pip install --upgrade setuptools +./pythonx86/pythonx86.$PYVER/tools/python.exe -m pip install pytest +./pythonx86/pythonx86.$PYVER/tools/python.exe -m pip install --upgrade mypy || true +export INCLUDE="$PWD/cairocomplied/include/" +export LIB="$PWD/cairocomplied/lib/x86/" +cmd.exe //c "RefreshEnv.cmd" +./pythonx86/pythonx86.$PYVER/tools/python.exe setup.py bdist_wheel diff --git a/setup.py b/setup.py index 7d5f812d..b99c77f3 100755 --- a/setup.py +++ b/setup.py @@ -5,6 +5,7 @@ import sys import os import errno +import platform try: from setuptools import setup @@ -579,41 +580,75 @@ def main(): "build_tests": build_tests, "sdist": sdist, } - - setup( - name="pycairo", - version=PYCAIRO_VERSION, - url="https://pycairo.readthedocs.io", - description="Python interface for cairo", - long_description=long_description, - maintainer="Christoph Reiter", - maintainer_email="reiter.christoph@gmail.com", - license="LGPL-2.1-only OR MPL-1.1", - ext_modules=[cairo_ext], - packages=["cairo"], - package_data={ - "cairo": [ - "__init__.pyi", - "py.typed", + if True: + setup( + name="pycairo", + version=PYCAIRO_VERSION, + url="https://pycairo.readthedocs.io", + description="Python interface for cairo", + long_description=long_description, + maintainer="Christoph Reiter", + maintainer_email="reiter.christoph@gmail.com", + license="LGPL-2.1-only OR MPL-1.1", + ext_modules=[cairo_ext], + packages=["cairo"], + package_data={ + "cairo": [ + "__init__.pyi", + "py.typed", + "cairo.dll", + ], + }, + classifiers=[ + 'Operating System :: OS Independent', + 'Programming Language :: Python :: 3', + 'Programming Language :: Python :: 3.5', + 'Programming Language :: Python :: 3.6', + 'Programming Language :: Python :: 3.7', + 'Programming Language :: Python :: 3.8', + 'Programming Language :: Python :: Implementation :: CPython', + 'Programming Language :: Python :: Implementation :: PyPy', + ('License :: OSI Approved :: ' + 'GNU Lesser General Public License v2 (LGPLv2)'), + 'License :: OSI Approved :: Mozilla Public License 1.1 (MPL 1.1)', ], - }, - classifiers=[ - 'Operating System :: OS Independent', - 'Programming Language :: Python :: 3', - 'Programming Language :: Python :: 3.5', - 'Programming Language :: Python :: 3.6', - 'Programming Language :: Python :: 3.7', - 'Programming Language :: Python :: 3.8', - 'Programming Language :: Python :: Implementation :: CPython', - 'Programming Language :: Python :: Implementation :: PyPy', - ('License :: OSI Approved :: ' - 'GNU Lesser General Public License v2 (LGPLv2)'), - 'License :: OSI Approved :: Mozilla Public License 1.1 (MPL 1.1)', - ], - cmdclass=cmdclass, - python_requires='>=3.5, <4', - ) - + cmdclass=cmdclass, + python_requires='>=3.5, <4', + ) + else: + setup( + name="pycairo", + version=PYCAIRO_VERSION, + url="https://pycairo.readthedocs.io", + description="Python interface for cairo", + long_description=long_description, + maintainer="Christoph Reiter", + maintainer_email="reiter.christoph@gmail.com", + license="LGPL-2.1-only OR MPL-1.1", + ext_modules=[cairo_ext], + packages=["cairo"], + package_data={ + "cairo": [ + "__init__.pyi", + "py.typed", + ], + }, + classifiers=[ + 'Operating System :: OS Independent', + 'Programming Language :: Python :: 3', + 'Programming Language :: Python :: 3.5', + 'Programming Language :: Python :: 3.6', + 'Programming Language :: Python :: 3.7', + 'Programming Language :: Python :: 3.8', + 'Programming Language :: Python :: Implementation :: CPython', + 'Programming Language :: Python :: Implementation :: PyPy', + ('License :: OSI Approved :: ' + 'GNU Lesser General Public License v2 (LGPLv2)'), + 'License :: OSI Approved :: Mozilla Public License 1.1 (MPL 1.1)', + ], + cmdclass=cmdclass, + python_requires='>=3.5, <4', + ) if __name__ == "__main__": main() From 944880bdafd8762b61db49bcb79d2c1c35339f24 Mon Sep 17 00:00:00 2001 From: Syrus Dark Date: Mon, 6 Jul 2020 20:51:00 +0530 Subject: [PATCH 2/8] Add regex for specific branch --- .travis.yml | 2 +- setup.py | 2 +- 2 files changed, 2 insertions(+), 2 deletions(-) diff --git a/.travis.yml b/.travis.yml index 5298efd9..11a3f8ec 100644 --- a/.travis.yml +++ b/.travis.yml @@ -83,7 +83,7 @@ before_cache: - rm -f $HOME/.cache/pip/log/debug.log branches: only: - - master + - /pycairo-\d.\d{2}/ deploy: provider: releases file_glob: true diff --git a/setup.py b/setup.py index b99c77f3..d5ea5ed8 100755 --- a/setup.py +++ b/setup.py @@ -580,7 +580,7 @@ def main(): "build_tests": build_tests, "sdist": sdist, } - if True: + if platform.system() == "Windows": setup( name="pycairo", version=PYCAIRO_VERSION, From fa01da4fa4361feea63f66a05887e6ce12774c72 Mon Sep 17 00:00:00 2001 From: Syrus Dark Date: Sun, 26 Jul 2020 23:01:40 +0530 Subject: [PATCH 3/8] Don't duplicate setup.py --- setup.py | 103 ++++++++++++++++++------------------------------------- 1 file changed, 34 insertions(+), 69 deletions(-) diff --git a/setup.py b/setup.py index d5ea5ed8..3918272c 100755 --- a/setup.py +++ b/setup.py @@ -5,7 +5,6 @@ import sys import os import errno -import platform try: from setuptools import setup @@ -580,75 +579,41 @@ def main(): "build_tests": build_tests, "sdist": sdist, } - if platform.system() == "Windows": - setup( - name="pycairo", - version=PYCAIRO_VERSION, - url="https://pycairo.readthedocs.io", - description="Python interface for cairo", - long_description=long_description, - maintainer="Christoph Reiter", - maintainer_email="reiter.christoph@gmail.com", - license="LGPL-2.1-only OR MPL-1.1", - ext_modules=[cairo_ext], - packages=["cairo"], - package_data={ - "cairo": [ - "__init__.pyi", - "py.typed", - "cairo.dll", - ], - }, - classifiers=[ - 'Operating System :: OS Independent', - 'Programming Language :: Python :: 3', - 'Programming Language :: Python :: 3.5', - 'Programming Language :: Python :: 3.6', - 'Programming Language :: Python :: 3.7', - 'Programming Language :: Python :: 3.8', - 'Programming Language :: Python :: Implementation :: CPython', - 'Programming Language :: Python :: Implementation :: PyPy', - ('License :: OSI Approved :: ' - 'GNU Lesser General Public License v2 (LGPLv2)'), - 'License :: OSI Approved :: Mozilla Public License 1.1 (MPL 1.1)', + setup( + name="pycairo", + version=PYCAIRO_VERSION, + url="https://pycairo.readthedocs.io", + description="Python interface for cairo", + long_description=long_description, + maintainer="Christoph Reiter", + maintainer_email="reiter.christoph@gmail.com", + license="LGPL-2.1-only OR MPL-1.1", + ext_modules=[cairo_ext], + packages=["cairo"], + package_data={ + "cairo": [ + "__init__.pyi", + "py.typed", + "cairo.dll", ], - cmdclass=cmdclass, - python_requires='>=3.5, <4', - ) - else: - setup( - name="pycairo", - version=PYCAIRO_VERSION, - url="https://pycairo.readthedocs.io", - description="Python interface for cairo", - long_description=long_description, - maintainer="Christoph Reiter", - maintainer_email="reiter.christoph@gmail.com", - license="LGPL-2.1-only OR MPL-1.1", - ext_modules=[cairo_ext], - packages=["cairo"], - package_data={ - "cairo": [ - "__init__.pyi", - "py.typed", - ], - }, - classifiers=[ - 'Operating System :: OS Independent', - 'Programming Language :: Python :: 3', - 'Programming Language :: Python :: 3.5', - 'Programming Language :: Python :: 3.6', - 'Programming Language :: Python :: 3.7', - 'Programming Language :: Python :: 3.8', - 'Programming Language :: Python :: Implementation :: CPython', - 'Programming Language :: Python :: Implementation :: PyPy', - ('License :: OSI Approved :: ' - 'GNU Lesser General Public License v2 (LGPLv2)'), - 'License :: OSI Approved :: Mozilla Public License 1.1 (MPL 1.1)', - ], - cmdclass=cmdclass, - python_requires='>=3.5, <4', - ) + }, + classifiers=[ + 'Operating System :: OS Independent', + 'Programming Language :: Python :: 3', + 'Programming Language :: Python :: 3.5', + 'Programming Language :: Python :: 3.6', + 'Programming Language :: Python :: 3.7', + 'Programming Language :: Python :: 3.8', + 'Programming Language :: Python :: Implementation :: CPython', + 'Programming Language :: Python :: Implementation :: PyPy', + ('License :: OSI Approved :: ' + 'GNU Lesser General Public License v2 (LGPLv2)'), + 'License :: OSI Approved :: Mozilla Public License 1.1 (MPL 1.1)', + ], + cmdclass=cmdclass, + python_requires='>=3.5, <4', + ) + if __name__ == "__main__": main() From 47bbd4be453b9d51c72d0e9fadff6074d0e7346e Mon Sep 17 00:00:00 2001 From: Syrus Dark Date: Mon, 27 Jul 2020 12:19:25 +0530 Subject: [PATCH 4/8] Remove stale variables --- .travis.yml | 6 +++--- .travis/runPycairox64.sh | 6 ++---- 2 files changed, 5 insertions(+), 7 deletions(-) diff --git a/.travis.yml b/.travis.yml index 11a3f8ec..c0c4eaa4 100644 --- a/.travis.yml +++ b/.travis.yml @@ -4,17 +4,17 @@ matrix: language: sh python: 3.6 name: Build on Python 3.6.8 in Windows - env: PYVER="3.6.8" PYDIR="Python36" INCLUDE="$PWD/cairocomplied/include/" LIB="$PWD/cairocomplied/lib/x64/" CAIRO_VERSION=1.15.12 WHEELSNAMEx32="pycairo-1.19.2-cp36-cp36m-win32.whl" WHEELSNAMEx64="pycairo-1.19.2-cp36-cp36m-win_amd64.whl" + env: PYVER="3.6.8" PYDIR="Python36" CAIRO_VERSION=1.15.12 - os: windows language: sh python: 3.7 name: Build on Python 3.7.7 in Windows - env: PYVER="3.7.7" PYDIR="Python37" INCLUDE="$PWD/cairocomplied/include/" LIB="$PWD/cairocomplied/lib/x64/" CAIRO_VERSION=1.15.12 WHEELSNAMEx32="pycairo-1.19.2-cp37-cp37m-win32.whl" WHEELSNAMEx64="pycairo-1.19.2-cp37-cp37m-win_amd64.whl" + env: PYVER="3.7.7" PYDIR="Python37" CAIRO_VERSION=1.15.12 - os: windows language: sh python: 3.8 name: Build on Python 3.8.3 in Windows - env: PYVER="3.8.3" PYDIR="Python38" INCLUDE="$PWD/cairocomplied/include/" LIB="$PWD/cairocomplied/lib/x64/" PYNAME="3.8" CAIRO_VERSION=1.15.12 WHEELSNAMEx32="pycairo-1.19.2-cp38-cp38-win32.whl" WHEELSNAMEx64="pycairo-1.19.2-cp38-cp38-win_amd64.whl" + env: PYVER="3.8.3" PYDIR="Python38" CAIRO_VERSION=1.15.12 - os: linux dist: trusty language: python diff --git a/.travis/runPycairox64.sh b/.travis/runPycairox64.sh index 343b5fd2..1c6a03fc 100644 --- a/.travis/runPycairox64.sh +++ b/.travis/runPycairox64.sh @@ -1,4 +1,5 @@ - +export INCLUDE="$PWD/cairocomplied/include/" +export LIB="$PWD/cairocomplied/lib/x64/" cp cairocomplied/lib/x64/cairo.dll cairo/cairo.dll choco install python --version=$PYVER export PATH="/c/$PYDIR:/c/$PYDIR/Scripts:$PATH" @@ -10,6 +11,3 @@ python -m pip install pytest python -m pip install --upgrade mypy || true cmd.exe //c "RefreshEnv.cmd" python setup.py bdist_wheel -pip install dist/$WHEELSNAMEx64 -python testcairo.py -rm -f cairo/cairo.dll \ No newline at end of file From d5865ffbeabc3ecc90b29930860612a0e57a3e4b Mon Sep 17 00:00:00 2001 From: Syrus Dark Date: Mon, 27 Jul 2020 22:02:46 +0530 Subject: [PATCH 5/8] Remove Branch specific changes --- .travis.yml | 4 +--- 1 file changed, 1 insertion(+), 3 deletions(-) diff --git a/.travis.yml b/.travis.yml index c0c4eaa4..7a82a029 100644 --- a/.travis.yml +++ b/.travis.yml @@ -81,9 +81,7 @@ cache: before_cache: - brew cleanup - rm -f $HOME/.cache/pip/log/debug.log -branches: - only: - - /pycairo-\d.\d{2}/ + deploy: provider: releases file_glob: true From 76be61dc26a805cf40ad3917b1dacd7277d87708 Mon Sep 17 00:00:00 2001 From: Syrus Dark Date: Tue, 28 Jul 2020 19:20:59 +0530 Subject: [PATCH 6/8] Bump version of Cairo --- .travis.yml | 6 +++--- 1 file changed, 3 insertions(+), 3 deletions(-) diff --git a/.travis.yml b/.travis.yml index 7a82a029..d8a9d2d8 100644 --- a/.travis.yml +++ b/.travis.yml @@ -4,17 +4,17 @@ matrix: language: sh python: 3.6 name: Build on Python 3.6.8 in Windows - env: PYVER="3.6.8" PYDIR="Python36" CAIRO_VERSION=1.15.12 + env: PYVER="3.6.8" PYDIR="Python36" CAIRO_VERSION=1.17.2 - os: windows language: sh python: 3.7 name: Build on Python 3.7.7 in Windows - env: PYVER="3.7.7" PYDIR="Python37" CAIRO_VERSION=1.15.12 + env: PYVER="3.7.7" PYDIR="Python37" CAIRO_VERSION=1.17.2 - os: windows language: sh python: 3.8 name: Build on Python 3.8.3 in Windows - env: PYVER="3.8.3" PYDIR="Python38" CAIRO_VERSION=1.15.12 + env: PYVER="3.8.3" PYDIR="Python38" CAIRO_VERSION=1.17.2 - os: linux dist: trusty language: python From 48eaf4162c03c8fadc3841d238271511a2989852 Mon Sep 17 00:00:00 2001 From: Syrus Dark Date: Fri, 14 Aug 2020 12:19:23 +0530 Subject: [PATCH 7/8] Move to NuGet - Make script shorter --- .travis.yml | 11 +++++------ .travis/downloadCairo.sh | 4 ---- .travis/runPycairo.sh | 28 ++++++++++++++++++++++++++++ .travis/runPycairox64.sh | 13 ------------- .travis/runPycairox86.sh | 12 ------------ 5 files changed, 33 insertions(+), 35 deletions(-) delete mode 100644 .travis/downloadCairo.sh create mode 100644 .travis/runPycairo.sh delete mode 100644 .travis/runPycairox64.sh delete mode 100644 .travis/runPycairox86.sh diff --git a/.travis.yml b/.travis.yml index d8a9d2d8..487ef21b 100644 --- a/.travis.yml +++ b/.travis.yml @@ -4,17 +4,17 @@ matrix: language: sh python: 3.6 name: Build on Python 3.6.8 in Windows - env: PYVER="3.6.8" PYDIR="Python36" CAIRO_VERSION=1.17.2 + env: PYVER="3.6.8" CAIRO_VERSION=1.17.2 - os: windows language: sh python: 3.7 name: Build on Python 3.7.7 in Windows - env: PYVER="3.7.7" PYDIR="Python37" CAIRO_VERSION=1.17.2 + env: PYVER="3.7.7" CAIRO_VERSION=1.17.2 - os: windows language: sh python: 3.8 name: Build on Python 3.8.3 in Windows - env: PYVER="3.8.3" PYDIR="Python38" CAIRO_VERSION=1.17.2 + env: PYVER="3.8.3" CAIRO_VERSION=1.17.2 - os: linux dist: trusty language: python @@ -45,7 +45,6 @@ matrix: name: Build on Python 3.8 in Mac OSX xcode11.3 env: CFLAGS="-Werror -coverage" install: - - if [ "$TRAVIS_OS_NAME" == "windows" ]; then source .travis/downloadCairo.sh; fi - if [ "$TRAVIS_OS_NAME" == "linux" ]; then travis_retry sudo apt-get update -q; fi - if [ "$TRAVIS_OS_NAME" == "linux" ]; then travis_retry sudo apt-get install -y libcairo2-dev; fi - if [ "$TRAVIS_OS_NAME" == "osx" ]; then brew update; fi @@ -62,8 +61,7 @@ install: - if [ "$TRAVIS_OS_NAME" != "windows" ]; then python -m pip install --upgrade mypy || true; fi script: #windows build - - if [ "$TRAVIS_OS_NAME" == "windows" ]; then source .travis/runPycairox64.sh; fi - - if [ "$TRAVIS_OS_NAME" == "windows" ]; then source .travis/runPycairox86.sh; fi + - if [ "$TRAVIS_OS_NAME" == "windows" ]; then source .travis/runPycairo.sh; fi - if [ "$TRAVIS_OS_NAME" != "windows" ]; then python setup.py sdist; fi - if [ "$TRAVIS_OS_NAME" != "windows" ]; then python setup.py bdist; fi - if [ "$TRAVIS_OS_NAME" != "windows" ]; then python setup.py install --root=_root; fi @@ -83,6 +81,7 @@ before_cache: - rm -f $HOME/.cache/pip/log/debug.log deploy: + if: TRAVIS_OS_NAME = windows provider: releases file_glob: true api_key: $GITHUBOAUTHTOKEN diff --git a/.travis/downloadCairo.sh b/.travis/downloadCairo.sh deleted file mode 100644 index 9d7bbb01..00000000 --- a/.travis/downloadCairo.sh +++ /dev/null @@ -1,4 +0,0 @@ - -curl -L https://github.com/preshing/cairo-windows/releases/download/$CAIRO_VERSION/cairo-windows-$CAIRO_VERSION.zip -o cairocomplied.zip -7z x cairocomplied.zip -mv cairo-windows-$CAIRO_VERSION cairocomplied \ No newline at end of file diff --git a/.travis/runPycairo.sh b/.travis/runPycairo.sh new file mode 100644 index 00000000..3eed2474 --- /dev/null +++ b/.travis/runPycairo.sh @@ -0,0 +1,28 @@ +#download cairo +curl -L https://github.com/preshing/cairo-windows/releases/download/$CAIRO_VERSION/cairo-windows-$CAIRO_VERSION.zip -o cairocomplied.zip +7z x cairocomplied.zip +mv cairo-windows-$CAIRO_VERSION cairocomplied +curl -L https://aka.ms/nugetclidl -o nuget.exe +#x64 python begins here +export INCLUDE="$PWD/cairocomplied/include/" +export LIB="$PWD/cairocomplied/lib/x64/" +cp cairocomplied/lib/x64/cairo.dll cairo/cairo.dll +./nuget install python -Version $PYVER -OutputDirectory python +./python/python.$PYVER/tools/python.exe -m pip install --upgrade pip +./python/python.$PYVER/tools/python.exe -m pip install --upgrade wheel +./python/python.$PYVER/tools/python.exe -m pip install --upgrade setuptools +./python/python.$PYVER/tools/python.exe -m pip install pytest +./python/python.$PYVER/tools/python.exe -m pip install --upgrade mypy || true +./python/python.$PYVER/tools/python.exe setup.py bdist_wheel +rm cairo/cairo.dll +#x86 python begins here +./nuget install pythonx86 -Version $PYVER -OutputDirectory pythonx86 +cp cairocomplied/lib/x86/cairo.dll cairo/cairo.dll +./pythonx86/pythonx86.$PYVER/tools/python.exe -m pip install --upgrade pip +./pythonx86/pythonx86.$PYVER/tools/python.exe -m pip install --upgrade wheel +./pythonx86/pythonx86.$PYVER/tools/python.exe -m pip install --upgrade setuptools +./pythonx86/pythonx86.$PYVER/tools/python.exe -m pip install pytest +./pythonx86/pythonx86.$PYVER/tools/python.exe -m pip install --upgrade mypy || true +export INCLUDE="$PWD/cairocomplied/include/" +export LIB="$PWD/cairocomplied/lib/x86/" +./pythonx86/pythonx86.$PYVER/tools/python.exe setup.py bdist_wheel diff --git a/.travis/runPycairox64.sh b/.travis/runPycairox64.sh deleted file mode 100644 index 1c6a03fc..00000000 --- a/.travis/runPycairox64.sh +++ /dev/null @@ -1,13 +0,0 @@ -export INCLUDE="$PWD/cairocomplied/include/" -export LIB="$PWD/cairocomplied/lib/x64/" -cp cairocomplied/lib/x64/cairo.dll cairo/cairo.dll -choco install python --version=$PYVER -export PATH="/c/$PYDIR:/c/$PYDIR/Scripts:$PATH" -cmd.exe //c "RefreshEnv.cmd" -python -m pip install --upgrade pip -python -m pip install --upgrade wheel -python -m pip install --upgrade setuptools -python -m pip install pytest -python -m pip install --upgrade mypy || true -cmd.exe //c "RefreshEnv.cmd" -python setup.py bdist_wheel diff --git a/.travis/runPycairox86.sh b/.travis/runPycairox86.sh deleted file mode 100644 index 59b50df8..00000000 --- a/.travis/runPycairox86.sh +++ /dev/null @@ -1,12 +0,0 @@ -cp cairocomplied/lib/x86/cairo.dll cairo/cairo.dll -curl -L https://aka.ms/nugetclidl -o nuget.exe -./nuget install pythonx86 -Version $PYVER -OutputDirectory pythonx86 -./pythonx86/pythonx86.$PYVER/tools/python.exe -m pip install --upgrade pip -./pythonx86/pythonx86.$PYVER/tools/python.exe -m pip install --upgrade wheel -./pythonx86/pythonx86.$PYVER/tools/python.exe -m pip install --upgrade setuptools -./pythonx86/pythonx86.$PYVER/tools/python.exe -m pip install pytest -./pythonx86/pythonx86.$PYVER/tools/python.exe -m pip install --upgrade mypy || true -export INCLUDE="$PWD/cairocomplied/include/" -export LIB="$PWD/cairocomplied/lib/x86/" -cmd.exe //c "RefreshEnv.cmd" -./pythonx86/pythonx86.$PYVER/tools/python.exe setup.py bdist_wheel From 024b29654575fc8e6deeced03a5294d81947d27c Mon Sep 17 00:00:00 2001 From: Naveen M K Date: Sun, 16 Aug 2020 19:18:45 +0530 Subject: [PATCH 8/8] Remove Cache and before_cache as not required --- .travis.yml | 9 --------- 1 file changed, 9 deletions(-) diff --git a/.travis.yml b/.travis.yml index 487ef21b..2648ce08 100644 --- a/.travis.yml +++ b/.travis.yml @@ -71,15 +71,6 @@ script: - if [ "$TRAVIS_OS_NAME" != "windows" ]; then if [[ "${TRAVIS_PYTHON_VERSION:0:4}" != "pypy" ]] ; then python -m pip install .; fi; fi - if [ "$TRAVIS_OS_NAME" != "windows" ]; then python -m sphinx -W -a -E -b html -n docs docs/_build; fi -cache: - directories: - - $HOME/.cache/pip - - $HOME/Library/Caches/Homebrew - -before_cache: - - brew cleanup - - rm -f $HOME/.cache/pip/log/debug.log - deploy: if: TRAVIS_OS_NAME = windows provider: releases