diff --git a/.travis.yml b/.travis.yml new file mode 100644 index 0000000..b4d7908 --- /dev/null +++ b/.travis.yml @@ -0,0 +1,93 @@ +env: + global: + - REPO_DIR=numpy + # Also see DAILY_COMMIT below + - BUILD_COMMIT=e94cec800304a6a467cf90ce4e7d3e207770b4b4 + - BUILD_DEPENDS=cython==0.29.16 + - TEST_DEPENDS="pytest hypothesis cffi pytz" + # Commit when running from daily branch + - DAILY_COMMIT=master + - EXTRA_ARGV="'--disable-pytest-warnings'" + +language: python +dist: bionic +services: docker +os: linux + +jobs: + include: + - os: linux + arch: x86_64 + env: + - PLAT=aarch64 + - MB_ML_VER=2010 + - MB_PYTHON_VERSION=pypy-3.6 + - os: osx + env: + - PLAT=x86_64 + - MB_PYTHON_VERSION=pypy-3.6 + - MB_PYTHON_OSX_VER=10.9 + - os: linux + arch: arm64 + env: + - PLAT=aarch64 + - MB_ML_VER=2014 + - MB_PYTHON_VERSION=3.6 + - DEBUG_PRINT=1 + - os: linux + arch: arm64 + env: + - PLAT=aarch64 + - MB_ML_VER=2014 + - MB_PYTHON_VERSION=3.8 + - DEBUG_PRINT=1 + - os: linux + arch: arm64 + env: + - PLAT=aarch64 + - MB_ML_VER=2014 + - MB_PYTHON_VERSION=3.7 + - DEBUG_PRINT=1 + +before_install: + - if [ "$TRAVIS_BRANCH" == "master" ]; then + CONTAINER="pre-release"; + BUILD_COMMIT=${DAILY_COMMIT:-$BUILD_COMMIT}; + NPY_RELAXED_STRIDES_DEBUG=1; + else + CONTAINER=wheels; + fi + # Set DEBUG_PRINT environment variable in settings + - if [ -n "${DEBUG_PRINT}" ]; then set -x; fi + - source multibuild/common_utils.sh + - source multibuild/travis_steps.sh + - source extra_functions.sh + - before_install + +install: + # Maybe get and clean and patch source + - clean_code $REPO_DIR $BUILD_COMMIT + - ./patch_code.sh $REPO_DIR + - build_wheel $REPO_DIR $PLAT + +script: + - install_run $PLAT + +after_success: + # trigger an upload to the shared ecosystem + # infrastructure at: https://anaconda.org/scipy-wheels-nightly + # for cron jobs only (restricted to master branch once + # per week) + # The tokens are set from + # https://travis-ci.org/github/MacPython/numpy-wheels/settings + # originally generated at + # anaconda.org/scipy-wheels-nightly/settings/access + - if [ "$TRAVIS_BRANCH" == "master" ]; then + ANACONDA_ORG="scipy-wheels-nightly"; + TOKEN=${NUMPY_NIGHTLY_UPLOAD_TOKEN} + else + ANACONDA_ORG="multibuild-wheels-staging"; + TOKEN=${NUMPY_STAGING_UPLOAD_TOKEN} + fi + - pip install git+https://github.com/Anaconda-Server/anaconda-client + - anaconda -t ${TOKEN} upload u ${ANACONDA_ORG} ${TRAVIS_BUILD_DIR}/wheelhouse/*.whl; diff --git a/.travis.yml.back b/.travis.yml.back deleted file mode 100644 index fcf26e3..0000000 --- a/.travis.yml.back +++ /dev/null @@ -1,113 +0,0 @@ -env: - global: - - REPO_DIR=numpy - # Also see DAILY_COMMIT below - - BUILD_COMMIT=e94cec800304a6a467cf90ce4e7d3e207770b4b4 - - BUILD_DEPENDS=cython - - TEST_DEPENDS="pytest hypothesis" - - WHEELHOUSE_UPLOADER_USERNAME=travis-worker - # Following generated with - # travis encrypt -r MacPython/numpy-wheels WHEELHOUSE_UPLOADER_SECRET= - - secure: - "FEFwGNflXOjuNjv4f2oOq0m8I3b6OvG5AVV/tH9Fsr6jtPNwQOx7PMOVzISBrWfAueeFubz/IapXBeDP8fRio9RVOcEHBhVJQYeJ46VubOx4X/4pRUD7ehGLxjYK30BGVdNh7z/tL6Xr5+iCuxxmOBgirG0pQVeBZXDchPJaUK0=" - # Commit when running from daily branch - - DAILY_COMMIT=master - - EXTRA_ARGV="'--disable-pytest-warnings'" - -language: python -dist: bionic -services: docker -os: linux - -jobs: - include: - - os: linux - env: - - MB_PYTHON_VERSION=3.6 - - MB_ML_VER=2010 - - PLAT=x86_64 - - os: linux - env: - - MB_PYTHON_VERSION=3.6 - - MB_ML_VER=2010 - - PLAT=i686 - - ENV_VARS_PATH=env_vars_32.sh - - DOCKER_TEST_IMAGE=multibuild/xenial_{PLAT} - - os: linux - env: - - MB_PYTHON_VERSION=3.7 - - MB_ML_VER=2010 - - PLAT=x86_64 - - os: linux - env: - - MB_PYTHON_VERSION=3.7 - - MB_ML_VER=2010 - - PLAT=i686 - - ENV_VARS_PATH=env_vars_32.sh - - DOCKER_TEST_IMAGE=multibuild/xenial_{PLAT} - - os: linux - env: - - MB_PYTHON_VERSION=3.8 - - MB_ML_VER=2010 - - PLAT=x86_64 - - os: linux - env: - - MB_PYTHON_VERSION=3.8 - - MB_ML_VER=2010 - - PLAT=i686 - - ENV_VARS_PATH=env_vars_32.sh - - DOCKER_TEST_IMAGE=multibuild/xenial_{PLAT} - - os: osx - language: generic - osx_image: xcode10.1 - env: - - MB_PYTHON_VERSION=3.6 - - MB_PYTHON_OSX_VER=10.9 - - os: osx - language: generic - osx_image: xcode10.1 - env: - - MB_PYTHON_VERSION=3.7 - - MB_PYTHON_OSX_VER=10.9 - - os: osx - language: generic - osx_image: xcode10.1 - env: - - MB_PYTHON_VERSION=3.8 - - MB_PYTHON_OSX_VER=10.9 - -before_install: - - if [ "$TRAVIS_BRANCH" == "master" ]; then - CONTAINER="pre-release"; - BUILD_COMMIT=${DAILY_COMMIT:-$BUILD_COMMIT}; - NPY_RELAXED_STRIDES_DEBUG=1; - else - CONTAINER=wheels; - UPLOAD_ARGS="--no-update-index"; - fi - # Set DEBUG_PRINT environment variable in settings - - if [ -n "${DEBUG_PRINT}" ]; then set -x; fi - - source multibuild/common_utils.sh - - source multibuild/travis_steps.sh - - before_install - -install: - # Maybe get and clean and patch source - - clean_code $REPO_DIR $BUILD_COMMIT - - ./patch_code.sh $REPO_DIR - - if [ "$TRAVIS_OS_NAME" == "linux" ]; then - export CFLAGS=${CFLAGS}" -Wno-sign-compare -Wno-unused-result\ - -Wno-strict-aliasing"; - fi - - build_wheel $REPO_DIR $PLAT - -script: - - install_run $PLAT - -after_success: - # Upload wheels to Rackspace container - - pip install wheelhouse-uploader - - python -m wheelhouse_uploader upload --local-folder - ${TRAVIS_BUILD_DIR}/wheelhouse/ - $UPLOAD_ARGS - $CONTAINER diff --git a/config.sh b/config.sh index bc65dfe..24cbdd1 100644 --- a/config.sh +++ b/config.sh @@ -12,6 +12,8 @@ function build_wheel { # For manylinux2010 builds with manylinux1 openblas builds $use_sudo yum install -y libgfortran-4.4.7 fi + echo gcc --version + echo `gcc --version` build_libs $lib_plat # Fix version error for development wheels by using bdist_wheel build_bdist_wheel $@ diff --git a/env_vars.sh b/env_vars.sh index 31e0dc3..5df487e 100644 --- a/env_vars.sh +++ b/env_vars.sh @@ -1,6 +1,6 @@ #!/usr/bin/env bash # Environment variables for build -OPENBLAS_VERSION="v0.3.7" +OPENBLAS_VERSION="v0.3.5-605-gc815b8fb" # the 0.3.5 is misleading, this is 0.3.8dev MACOSX_DEPLOYMENT_TARGET=10.9 CFLAGS="-std=c99 -fno-strict-aliasing" # Macos's linker doesn't support stripping symbols @@ -13,3 +13,6 @@ if [ "$(uname)" != "Darwin" ]; then # the current version of manybuild pass "-strip-all" to CPPFLAGS and FFLAGS STRIP_FLAGS="" fi +# For verbosity: report where each command came from +export PS4='+(${BASH_SOURCE}:${LINENO}): ${FUNCNAME[0]:+${FUNCNAME[0]}(): }' +set -x diff --git a/gfortran-install b/gfortran-install index e9764d0..d430fe6 160000 --- a/gfortran-install +++ b/gfortran-install @@ -1 +1 @@ -Subproject commit e9764d0a8f4e3adcd385c319e7742177193484c7 +Subproject commit d430fe6e38b6c5149c53f775a4437964e2f7b883 diff --git a/openblas_support.py b/openblas_support.py deleted file mode 100644 index 52d283a..0000000 --- a/openblas_support.py +++ /dev/null @@ -1,42 +0,0 @@ -import os -import textwrap - -def make_init(dirname): - ''' - Create a _distributor_init.py file for OpenBlas - ''' - with open(os.path.join(dirname, '_distributor_init.py'), 'wt') as fid: - fid.write(textwrap.dedent(""" - ''' - Helper to preload windows dlls to prevent dll not found errors. - Once a DLL is preloaded, its namespace is made available to any - subsequent DLL. This file originated in the numpy-wheels repo, - and is created as part of the scripts that build the wheel. - ''' - import os - from ctypes import WinDLL - import glob - if os.name == 'nt': - # convention for storing / loading the DLL from - # numpy/.libs/, if present - try: - basedir = os.path.dirname(__file__) - except: - pass - else: - libs_dir = os.path.abspath(os.path.join(basedir, '.libs')) - DLL_filenames = [] - if os.path.isdir(libs_dir): - for filename in glob.glob(os.path.join(libs_dir, - '*openblas*dll')): - # NOTE: would it change behavior to load ALL - # DLLs at this path vs. the name restriction? - WinDLL(os.path.abspath(filename)) - DLL_filenames.append(filename) - if len(DLL_filenames) > 1: - import warnings - warnings.warn("loaded more than 1 DLL from .libs:\\n%s" % - "\\n".join(DLL_filenames), - stacklevel=1) - """)) -