From f04bd4622e01c4dc20d901fd43c0b929d59f4f86 Mon Sep 17 00:00:00 2001 From: Tom Augspurger Date: Tue, 18 Feb 2020 14:44:03 -0600 Subject: [PATCH 01/20] Use azure --- .travis.yml => .travis.yml.back | 0 appveyor.yml.back | 92 +++++++++++++++++++++ azure-pipelines.yml | 88 +++++++++++++++++++++ azure/posix.yml | 136 ++++++++++++++++++++++++++++++++ azure/windows.yml | 135 +++++++++++++++++++++++++++++++ extra_functions.sh | 29 +++++++ 6 files changed, 480 insertions(+) rename .travis.yml => .travis.yml.back (100%) create mode 100644 appveyor.yml.back create mode 100644 azure-pipelines.yml create mode 100644 azure/posix.yml create mode 100644 azure/windows.yml create mode 100644 extra_functions.sh diff --git a/.travis.yml b/.travis.yml.back similarity index 100% rename from .travis.yml rename to .travis.yml.back diff --git a/appveyor.yml.back b/appveyor.yml.back new file mode 100644 index 0000000..d40159d --- /dev/null +++ b/appveyor.yml.back @@ -0,0 +1,92 @@ +environment: + global: + REPO_DIR: pandas + PACKAGE_NAME: pandas + BUILD_COMMIT: v1.0.0 + BUILDWHEEL: "True" + BUILD_DEPENDS: "hdf5 numpy>=1.9.3 numexpr>=2.6.2 six cython bzip2" + TEST_DEPENDS: "numpy>=1.9.3 numexpr>=2.6.2 six>=1.9.0 mock" + DISABLE_AVX2: "True" # do not include AVX2 in this build + WHEELHOUSE_UPLOADER_USERNAME: travis-worker + WHEELHOUSE_UPLOADER_SECRET: + secure: + 9s0gdDGnNnTt7hvyNpn0/ZzOMGPdwPp2SewFTfGzYk7uI+rdAN9rFq2D1gAP4NQh + + matrix: + - PYTHON: "C:\\Miniconda35" + PYTHON_VERSION: "3.5" + PYTHON_ARCH: "32" + - PYTHON: "C:\\Miniconda35-x64" + PYTHON_VERSION: "3.5" + PYTHON_ARCH: "64" + - PYTHON: "C:\\Miniconda36" + PYTHON_VERSION: "3.6" + PYTHON_ARCH: "32" + - PYTHON: "C:\\Miniconda36-x64" + PYTHON_VERSION: "3.6" + PYTHON_ARCH: "64" + - PYTHON: "C:\\Miniconda37" + PYTHON_VERSION: "3.7" + PYTHON_ARCH: "32" + - PYTHON: "C:\\Miniconda37-x64" + PYTHON_VERSION: "3.7" + PYTHON_ARCH: "64" + + +# We always use a 64-bit machine, but can build x86 distributions +# with the PYTHON_ARCH variable. +platform: + - x64 + +matrix: + fast_finish: true + +install: + # Fetch submodules + - git submodule update --init --recursive + + - SET PATH=%PYTHON%;%PYTHON%\Scripts;%PYTHON%\Library\bin;%PATH% + - conda info + + # Check that we have the expected version and architecture for Python + - python --version + - python -c "import struct; print(struct.calcsize('P') * 8)" + +build_script: + # Install build requirements + - conda create --yes -n build_env python=%PYTHON_VERSION% %BUILD_DEPENDS% + - activate build_env + + # FIXME update Cython for python 3.5 + - pip install -U cython + + # Additional pre install steps: + - set BZIP2_DIR=%CONDA_PREFIX%\Library\ + + # build wheel: + - cd %REPO_DIR% + - git checkout %BUILD_COMMIT% + - python setup.py bdist_wheel + +test_script: + # create test env + - conda create --yes -n test_env python=%PYTHON_VERSION% %TEST_DEPENDS% + - activate test_env + + # install from wheel + - pip install --no-index --find-links dist/ %PACKAGE_NAME% + + - cd .. + - python -m tables.tests.test_all + +artifacts: + - path: "%REPO_DIR%\\dist\\*" + +on_success: + # Upload the generated wheel package to Rackspace + # On Windows, Apache Libcloud cannot find a standard CA cert bundle so we + # disable the ssl checks. + - cd %REPO_DIR% + - pip install wheelhouse-uploader + - python -m wheelhouse_uploader upload + --no-ssl-check --local-folder=dist --no-update-index wheels diff --git a/azure-pipelines.yml b/azure-pipelines.yml new file mode 100644 index 0000000..5ee83d6 --- /dev/null +++ b/azure-pipelines.yml @@ -0,0 +1,88 @@ +schedules: +- cron: "27 3 */1 * *" + # 3:27am UTC everyday + displayName: Nighthly build + branches: + include: + - master + always: true + +jobs: + - template: azure/windows.yml + parameters: + name: windows + vmImage: vs2017-win2016 + matrix: + py_3.6_32: + PYTHON_VERSION: "3.6.x" + PYTHON_ARCH: "x86" + NP_BUILD_DEP: "1.13.3" + py_3.6_64: + PYTHON_VERSION: "3.6.x" + NP_BUILD_DEP: "1.13.3" + py_3.7_32: + PYTHON_VERSION: "3.7.x" + PYTHON_ARCH: "x86" + NP_BUILD_DEP: "1.14.5" + NIGHTLY_BUILD: "true" + py_3.7_64: + PYTHON_VERSION: "3.7.x" + NP_BUILD_DEP: "1.14.5" + NIGHTLY_BUILD: "true" + py_3.8_32: + PYTHON_VERSION: "3.8.x" + PYTHON_ARCH: "x86" + NP_BUILD_DEP: "1.17.3" + SCIPY_BUILD_DEP: "1.4.1" + NIGHTLY_BUILD: "true" + py_3.8_64: + PYTHON_VERSION: "3.8.x" + NP_BUILD_DEP: "1.17.3" + SCIPY_BUILD_DEP: "1.4.1" + NIGHTLY_BUILD: "true" + + - template: azure/posix.yml + parameters: + name: linux + vmImage: ubuntu-16.04 + matrix: + py_3.6_32: + MB_PYTHON_VERSION: "3.6" + PLAT: "i686" + py_3.6_64: + MB_PYTHON_VERSION: "3.6" + py_3.7_32: + MB_PYTHON_VERSION: "3.7" + PLAT: "i686" + NP_BUILD_DEP: "numpy==1.14.5" + NIGHTLY_BUILD: "true" + py_3.7_64: + MB_PYTHON_VERSION: "3.7" + NP_BUILD_DEP: "numpy==1.14.5" + NIGHTLY_BUILD: "true" + py_3.8_32: + MB_PYTHON_VERSION: "3.8" + PLAT: "i686" + NP_BUILD_DEP: "numpy==1.17.3" + NIGHTLY_BUILD: "true" + py_3.8_64: + MB_PYTHON_VERSION: "3.8" + NP_BUILD_DEP: "numpy==1.17.3" + NIGHTLY_BUILD: "true" + + - template: azure/posix.yml + parameters: + name: macOS + vmImage: xcode9-macos10.13 + matrix: + py_3.6_64: + MB_PYTHON_VERSION: "3.6" + NP_BUILD_DEP: "numpy==1.13.3" + py_3.7_64: + MB_PYTHON_VERSION: "3.7" + NP_BUILD_DEP: "numpy==1.14.5" + NIGHTLY_BUILD: "true" + py_3.8_64: + MB_PYTHON_VERSION: "3.8" + NP_BUILD_DEP: "numpy==1.17.3" + NIGHTLY_BUILD: "true" diff --git a/azure/posix.yml b/azure/posix.yml new file mode 100644 index 0000000..687140d --- /dev/null +++ b/azure/posix.yml @@ -0,0 +1,136 @@ +parameters: + name: "" + vmImage: "" + matrix: [] + +jobs: + - job: ${{ parameters.name }} + pool: + vmImage: ${{ parameters.vmImage }} + variables: + REPO_DIR: "pandas" + BUILD_COMMIT: "1.0.1" + PLAT: "x86_64" + NP_BUILD_DEP: "numpy==1.13.3" + CYTHON_BUILD_DEP: "cython==0.29.13" + NIGHTLY_BUILD_COMMIT: "master" + NIGHTLY_BUILD: "false" + TEST_DEPENDS: "pytest pytest-xdist hypothesis" + JUNITXML: "test-data.xml" + TEST_DIR: "tmp_for_test" + strategy: + matrix: + ${{ insert }}: ${{ parameters.matrix }} + + steps: + - checkout: self + submodules: true + + - task: UsePythonVersion@0 + inputs: + versionSpec: $(MB_PYTHON_VERSION) + displayName: Set python version + + - bash: | + set -e + + SKIP_BUILD="false" + if [ "$BUILD_REASON" == "Schedule" ]; then + BUILD_COMMIT=$NIGHTLY_BUILD_COMMIT + if [ "$NIGHTLY_BUILD" != "true" ]; then + SKIP_BUILD="true" + fi + fi + echo "Building pandas@$BUILD_COMMIT" + echo "##vso[task.setvariable variable=BUILD_COMMIT]$BUILD_COMMIT" + echo "##vso[task.setvariable variable=SKIP_BUILD]$SKIP_BUILD" + + # Platform variables used in multibuild scripts + if [ `uname` == 'Darwin' ]; then + echo "##vso[task.setvariable variable=TRAVIS_OS_NAME]osx" + echo "##vso[task.setvariable variable=MACOSX_DEPLOYMENT_TARGET]10.9" + else + echo "##vso[task.setvariable variable=TRAVIS_OS_NAME]linux" + fi + + # Store original Python path to be able to create test_venv pointing + # to same Python version. + PYTHON_EXE=`which python` + echo "##vso[task.setvariable variable=PYTHON_EXE]$PYTHON_EXE" + displayName: Define build env variables + + - bash: | + set -e + pip install virtualenv + BUILD_DEPENDS="$NP_BUILD_DEP $CYTHON_BUILD_DEP" + + source multibuild/common_utils.sh + source multibuild/travis_steps.sh + source extra_functions.sh + + # Setup build dependencies + before_install + + clean_code $REPO_DIR $BUILD_COMMIT + build_wheel $REPO_DIR $PLAT + displayName: Build wheel + condition: eq(variables['SKIP_BUILD'], 'false') + + - bash: | + set -xe + source multibuild/common_utils.sh + source multibuild/travis_steps.sh + source extra_functions.sh + setup_test_venv + install_run $PLAT + teardown_test_venv + displayName: Install wheel and test + condition: eq(variables['SKIP_BUILD'], 'false') + + - task: PublishTestResults@2 + inputs: + testResultsFiles: '$(TEST_DIR)/$(JUNITXML)' + testRunTitle: ${{ format('{0}-$(Agent.JobName)', parameters.name) }} + displayName: 'Publish Test Results' + condition: eq(variables['SKIP_BUILD'], 'false') + + - bash: | + echo "##vso[task.prependpath]$CONDA/bin" + sudo chown -R $USER $CONDA + displayName: Add conda to PATH + condition: and(succeeded(), eq(variables['SKIP_BUILD'], 'false'), ne(variables['Build.Reason'], 'PullRequest')) + + - bash: conda install -q -y anaconda-client + displayName: Install anaconda-client + condition: and(succeeded(), eq(variables['SKIP_BUILD'], 'false'), ne(variables['Build.Reason'], 'PullRequest')) + + - bash: | + set -e + if [ "$BUILD_REASON" == "Schedule" ]; then + ANACONDA_ORG="scipy-wheels-nightly" + TOKEN="$PANDAS_NIGHTLY_UPLOAD_TOKEN" + else + ANACONDA_ORG="pandas-wheels-staging" + TOKEN="$PANDAS_STAGING_UPLOAD_TOKEN" + fi + if [ "$TOKEN" == "" ]; then + echo "##[warning] Could not find anaconda.org upload token in secret variables" + fi + echo "##vso[task.setvariable variable=TOKEN]$TOKEN" + echo "##vso[task.setvariable variable=ANACONDA_ORG]$ANACONDA_ORG" + displayName: Retrieve secret upload token + condition: and(succeeded(), eq(variables['SKIP_BUILD'], 'false'), ne(variables['Build.Reason'], 'PullRequest')) + env: + # Secret variables need to mapped to env variables explicitly: + PANDAS_NIGHTLY_UPLOAD_TOKEN: $(PANDAS_NIGHTLY_UPLOAD_TOKEN) + PANDAS_STAGING_UPLOAD_TOKEN: $(PANDAS_STAGING_UPLOAD_TOKEN) + + - bash: | + set -e + # The --force option forces a replacement if the remote file already + # exists. + ls wheelhouse/*.whl + anaconda -t $TOKEN upload --force -u $ANACONDA_ORG wheelhouse/*.whl + echo "PyPI-style index: https://pypi.anaconda.org/$ANACONDA_ORG/simple" + displayName: Upload to anaconda.org (only if secret token is retrieved) + condition: ne(variables['TOKEN'], '') diff --git a/azure/windows.yml b/azure/windows.yml new file mode 100644 index 0000000..b8c73b4 --- /dev/null +++ b/azure/windows.yml @@ -0,0 +1,135 @@ + name: "" + vmImage: "" + matrix: [] + +jobs: + - job: ${{ parameters.name }} + pool: + vmImage: ${{ parameters.vmImage }} + variables: + BUILD_COMMIT: "1.0.1" + SKLEARN_SKIP_NETWORK_TESTS: "1" + NP_BUILD_DEP: "1.13.3" + CYTHON_BUILD_DEP: "0.29.13" + NIGHTLY_BUILD_COMMIT: "master" + NIGHTLY_BUILD: "false" + PYTHON_ARCH: "x64" + TEST_DEPENDS: "pytest pytest-xdist hypothesis" + JUNITXML: "test-data.xml" + TEST_DIR: '$(Agent.WorkFolder)/tmp_for_test' + strategy: + matrix: + ${{ insert }}: ${{ parameters.matrix }} + steps: + - checkout: self + submodules: true + + - task: UsePythonVersion@0 + inputs: + versionSpec: $(PYTHON_VERSION) + architecture: $(PYTHON_ARCH) + displayName: Set python version + + - bash: | + set -e + echo PYTHON $PYTHON_VERSION $PYTHON_ARCH + echo Build Reason: $BUILD_REASON + python --version + python -c "import struct; print(struct.calcsize('P') * 8)" + pip --version + displayName: Check that we have the expected version and architecture for Python + - bash: | + set -e + SKIP_BUILD="false" + if [ "$BUILD_REASON" == "Schedule" ]; then + BUILD_COMMIT=$NIGHTLY_BUILD_COMMIT + if [ "$NIGHTLY_BUILD" != "true" ]; then + SKIP_BUILD="true" + fi + fi + echo "Building pandas@$BUILD_COMMIT" + echo "##vso[task.setvariable variable=BUILD_COMMIT]$BUILD_COMMIT" + echo "##vso[task.setvariable variable=SKIP_BUILD]$SKIP_BUILD" + # Store original Python path to be able to create test_venv pointing + # to same Python version. + PYTHON_EXE=`which python` + echo "##vso[task.setvariable variable=PYTHON_EXE]$PYTHON_EXE" + displayName: Define build env variables + - bash: | + set -e + cd pandas + git checkout $BUILD_COMMIT + git clean -fxd + git reset --hard + displayName: Checkout pandas commit + condition: eq(variables['SKIP_BUILD'], 'false') + - bash: | + set -e + pip install --timeout=60 numpy==$NP_BUILD_DEP + pip install --timeout=60 pytest wheel joblib scipy==$SCIPY_BUILD_DEP Cython==$CYTHON_BUILD_DEP + pip install twine + pushd pandas + python setup.py build + python ../appveyor/vendor_vcomp140.py + python setup.py bdist_wheel + ls dist + twine check dist/* + popd + displayName: Build wheel + condition: eq(variables['SKIP_BUILD'], 'false') + - bash: | + set -e + source extra_functions.sh + setup_test_venv + pip install pandas/dist/scikit_learn-*.whl + mkdir $TEST_DIR + pushd $TEST_DIR + pytest -rs -l --junitxml=$JUNITXML --pyargs sklearn + popd + teardown_test_venv + displayName: Install wheel and test + condition: eq(variables['SKIP_BUILD'], 'false') + - task: PublishTestResults@2 + inputs: + testResultsFiles: '$(TEST_DIR)/$(JUNITXML)' + testRunTitle: ${{ format('{0}-$(Agent.JobName)', parameters.name) }} + displayName: 'Publish Test Results' + condition: eq(variables['SKIP_BUILD'], 'false') + + - bash: echo "##vso[task.prependpath]$CONDA/Scripts" + displayName: Add conda to PATH + condition: and(succeeded(), eq(variables['SKIP_BUILD'], 'false'), ne(variables['Build.Reason'], 'PullRequest')) + + - bash: conda install -q -y anaconda-client + displayName: Install anaconda-client + condition: and(succeeded(), eq(variables['SKIP_BUILD'], 'false'), ne(variables['Build.Reason'], 'PullRequest')) + + - bash: | + set -e + if [ "$BUILD_REASON" == "Schedule" ]; then + ANACONDA_ORG="scipy-wheels-nightly" + TOKEN="$PANDAS_NIGHTLY_UPLOAD_TOKEN" + else + ANACONDA_ORG="pandas-wheels-staging" + TOKEN="$PANDAS_STAGING_UPLOAD_TOKEN" + fi + if [ "$TOKEN" == "" ]; then + echo "##[warning] Could not find anaconda.org upload token in secret variables" + fi + echo "##vso[task.setvariable variable=TOKEN]$TOKEN" + echo "##vso[task.setvariable variable=ANACONDA_ORG]$ANACONDA_ORG" + displayName: Retrieve secret upload token + condition: and(succeeded(), eq(variables['SKIP_BUILD'], 'false'), ne(variables['Build.Reason'], 'PullRequest')) + env: + # Secret variables need to mapped to env variables explicitly: + PANDAS_NIGHTLY_UPLOAD_TOKEN: $(PANDAS_NIGHTLY_UPLOAD_TOKEN) + PANDAS_STAGING_UPLOAD_TOKEN: $(PANDAS_STAGING_UPLOAD_TOKEN) + - bash: | + set -e + # The --force option forces a replacement if the remote file already + # exists. + ls pandas/dist/scikit_learn-*.whl + anaconda -t $TOKEN upload --force -u $ANACONDA_ORG pandas/dist/scikit_learn-*.whl + echo "PyPI-style index: https://pypi.anaconda.org/$ANACONDA_ORG/simple" + displayName: Upload to anaconda.org (only if secret token is retrieved) + condition: ne(variables['TOKEN'], '') diff --git a/extra_functions.sh b/extra_functions.sh new file mode 100644 index 0000000..6e5f1b6 --- /dev/null +++ b/extra_functions.sh @@ -0,0 +1,29 @@ +function setup_test_venv { + # Create a new empty venv dedicated to testing for non-Linux platforms. On + # Linux the tests are run in a Docker container. + if [ $(uname) != "Linux" ]; then + deactivate || echo "" + $PYTHON_EXE -m venv test_venv + if [ $(uname) == "Darwin" ]; then + source test_venv/bin/activate + else + source test_venv/Scripts/activate + fi + # Note: the idiom "python -m pip install ..." is necessary to upgrade + # pip itself on Windows. Otherwise one would get a permission error on + # pip.exe. + python -m pip install --upgrade pip wheel + if [ "$TEST_DEPENDS" != "" ]; then + pip install $TEST_DEPENDS + fi + fi +} + +function teardown_test_venv { + if [ $(uname) != "Linux" ]; then + deactivate || echo "" + if [ $(uname) == "Darwin" ]; then + source venv/bin/activate + fi + fi +} From ed309e7ce1dea885bf1c7a78ce8bca68a03d7116 Mon Sep 17 00:00:00 2001 From: Tom Augspurger Date: Tue, 18 Feb 2020 14:44:19 -0600 Subject: [PATCH 02/20] bump multibuild --- multibuild | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/multibuild b/multibuild index 6b0ddb5..b943f33 160000 --- a/multibuild +++ b/multibuild @@ -1 +1 @@ -Subproject commit 6b0ddb5281f59d976c8026c082c9d73faf274790 +Subproject commit b943f33a92772fd52c2fa38c03d08aac974c53bd From 8981d05c17953476ec1f5a9cad2bf6ea73c766a9 Mon Sep 17 00:00:00 2001 From: Tom Augspurger Date: Tue, 18 Feb 2020 14:47:33 -0600 Subject: [PATCH 03/20] pasta --- azure/windows.yml | 1 + 1 file changed, 1 insertion(+) diff --git a/azure/windows.yml b/azure/windows.yml index b8c73b4..d7f0075 100644 --- a/azure/windows.yml +++ b/azure/windows.yml @@ -1,3 +1,4 @@ +parameters: name: "" vmImage: "" matrix: [] From 87b9b3029d05a58ed20e8664ef486b3d4c295db8 Mon Sep 17 00:00:00 2001 From: Tom Augspurger Date: Tue, 18 Feb 2020 15:00:41 -0600 Subject: [PATCH 04/20] ci-3 --- azure/posix.yml | 2 +- azure/windows.yml | 8 ++++---- 2 files changed, 5 insertions(+), 5 deletions(-) diff --git a/azure/posix.yml b/azure/posix.yml index 687140d..97c67f4 100644 --- a/azure/posix.yml +++ b/azure/posix.yml @@ -9,7 +9,7 @@ jobs: vmImage: ${{ parameters.vmImage }} variables: REPO_DIR: "pandas" - BUILD_COMMIT: "1.0.1" + BUILD_COMMIT: "v1.0.1" PLAT: "x86_64" NP_BUILD_DEP: "numpy==1.13.3" CYTHON_BUILD_DEP: "cython==0.29.13" diff --git a/azure/windows.yml b/azure/windows.yml index d7f0075..55ecf01 100644 --- a/azure/windows.yml +++ b/azure/windows.yml @@ -8,7 +8,7 @@ jobs: pool: vmImage: ${{ parameters.vmImage }} variables: - BUILD_COMMIT: "1.0.1" + BUILD_COMMIT: "v1.0.1" SKLEARN_SKIP_NETWORK_TESTS: "1" NP_BUILD_DEP: "1.13.3" CYTHON_BUILD_DEP: "0.29.13" @@ -82,7 +82,7 @@ jobs: set -e source extra_functions.sh setup_test_venv - pip install pandas/dist/scikit_learn-*.whl + pip install pandas/dist/pandas-*.whl mkdir $TEST_DIR pushd $TEST_DIR pytest -rs -l --junitxml=$JUNITXML --pyargs sklearn @@ -129,8 +129,8 @@ jobs: set -e # The --force option forces a replacement if the remote file already # exists. - ls pandas/dist/scikit_learn-*.whl - anaconda -t $TOKEN upload --force -u $ANACONDA_ORG pandas/dist/scikit_learn-*.whl + ls pandas/dist/pandas-*.whl + anaconda -t $TOKEN upload --force -u $ANACONDA_ORG pandas/dist/pandas-*.whl echo "PyPI-style index: https://pypi.anaconda.org/$ANACONDA_ORG/simple" displayName: Upload to anaconda.org (only if secret token is retrieved) condition: ne(variables['TOKEN'], '') From dc8803b7ce67a4b3d8953176706215231dae4fe1 Mon Sep 17 00:00:00 2001 From: Tom Augspurger Date: Tue, 18 Feb 2020 15:09:35 -0600 Subject: [PATCH 05/20] ci-4 --- azure-pipelines.yml | 2 -- azure/windows.yml | 2 +- 2 files changed, 1 insertion(+), 3 deletions(-) diff --git a/azure-pipelines.yml b/azure-pipelines.yml index 5ee83d6..2cee189 100644 --- a/azure-pipelines.yml +++ b/azure-pipelines.yml @@ -33,12 +33,10 @@ jobs: PYTHON_VERSION: "3.8.x" PYTHON_ARCH: "x86" NP_BUILD_DEP: "1.17.3" - SCIPY_BUILD_DEP: "1.4.1" NIGHTLY_BUILD: "true" py_3.8_64: PYTHON_VERSION: "3.8.x" NP_BUILD_DEP: "1.17.3" - SCIPY_BUILD_DEP: "1.4.1" NIGHTLY_BUILD: "true" - template: azure/posix.yml diff --git a/azure/windows.yml b/azure/windows.yml index 55ecf01..af42f96 100644 --- a/azure/windows.yml +++ b/azure/windows.yml @@ -67,7 +67,7 @@ jobs: - bash: | set -e pip install --timeout=60 numpy==$NP_BUILD_DEP - pip install --timeout=60 pytest wheel joblib scipy==$SCIPY_BUILD_DEP Cython==$CYTHON_BUILD_DEP + pip install --timeout=60 $TEST_DEPENDS Cython==$CYTHON_BUILD_DEP pip install twine pushd pandas python setup.py build From 9a08e31e3869ed6abea22ad4c480a4b17a88f83a Mon Sep 17 00:00:00 2001 From: Tom Augspurger Date: Tue, 18 Feb 2020 15:30:23 -0600 Subject: [PATCH 06/20] remove vendor_vc_comp.py --- azure/windows.yml | 1 - 1 file changed, 1 deletion(-) diff --git a/azure/windows.yml b/azure/windows.yml index af42f96..2fefe91 100644 --- a/azure/windows.yml +++ b/azure/windows.yml @@ -71,7 +71,6 @@ jobs: pip install twine pushd pandas python setup.py build - python ../appveyor/vendor_vcomp140.py python setup.py bdist_wheel ls dist twine check dist/* From 2a3cd1d27a60df3486338655400a45de9bd266fb Mon Sep 17 00:00:00 2001 From: Tom Augspurger Date: Wed, 19 Feb 2020 09:16:33 -0600 Subject: [PATCH 07/20] ename --- azure/posix.yml | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/azure/posix.yml b/azure/posix.yml index 97c67f4..4d4ade8 100644 --- a/azure/posix.yml +++ b/azure/posix.yml @@ -110,7 +110,7 @@ jobs: ANACONDA_ORG="scipy-wheels-nightly" TOKEN="$PANDAS_NIGHTLY_UPLOAD_TOKEN" else - ANACONDA_ORG="pandas-wheels-staging" + ANACONDA_ORG="multibuild-wheels-staging" TOKEN="$PANDAS_STAGING_UPLOAD_TOKEN" fi if [ "$TOKEN" == "" ]; then From 5d9016cb3098d6de1a94fd217e34fe4eb5be1c21 Mon Sep 17 00:00:00 2001 From: Tom Augspurger Date: Wed, 19 Feb 2020 09:18:16 -0600 Subject: [PATCH 08/20] install wheel --- azure/posix.yml | 2 +- azure/windows.yml | 2 +- 2 files changed, 2 insertions(+), 2 deletions(-) diff --git a/azure/posix.yml b/azure/posix.yml index 4d4ade8..73520da 100644 --- a/azure/posix.yml +++ b/azure/posix.yml @@ -61,7 +61,7 @@ jobs: - bash: | set -e - pip install virtualenv + pip install virtualenv wheel BUILD_DEPENDS="$NP_BUILD_DEP $CYTHON_BUILD_DEP" source multibuild/common_utils.sh diff --git a/azure/windows.yml b/azure/windows.yml index 2fefe91..eecec14 100644 --- a/azure/windows.yml +++ b/azure/windows.yml @@ -68,7 +68,7 @@ jobs: set -e pip install --timeout=60 numpy==$NP_BUILD_DEP pip install --timeout=60 $TEST_DEPENDS Cython==$CYTHON_BUILD_DEP - pip install twine + pip install twine wheel pushd pandas python setup.py build python setup.py bdist_wheel From 3d9c4cf783fd07e82ff37166af94a184422bc068 Mon Sep 17 00:00:00 2001 From: Tom Augspurger Date: Wed, 19 Feb 2020 09:34:49 -0600 Subject: [PATCH 09/20] trigger ci From cebac4225834f285975f3798067cb3e7fcd2f459 Mon Sep 17 00:00:00 2001 From: Tom Augspurger Date: Wed, 19 Feb 2020 10:11:45 -0600 Subject: [PATCH 10/20] pytest command --- azure/windows.yml | 3 +-- 1 file changed, 1 insertion(+), 2 deletions(-) diff --git a/azure/windows.yml b/azure/windows.yml index eecec14..9467fde 100644 --- a/azure/windows.yml +++ b/azure/windows.yml @@ -9,7 +9,6 @@ jobs: vmImage: ${{ parameters.vmImage }} variables: BUILD_COMMIT: "v1.0.1" - SKLEARN_SKIP_NETWORK_TESTS: "1" NP_BUILD_DEP: "1.13.3" CYTHON_BUILD_DEP: "0.29.13" NIGHTLY_BUILD_COMMIT: "master" @@ -84,7 +83,7 @@ jobs: pip install pandas/dist/pandas-*.whl mkdir $TEST_DIR pushd $TEST_DIR - pytest -rs -l --junitxml=$JUNITXML --pyargs sklearn + pytest -rs -l --junitxml=$JUNITXML pandas popd teardown_test_venv displayName: Install wheel and test From ad8158f035fd97a14ac35c6703a6550bf012f6d2 Mon Sep 17 00:00:00 2001 From: Tom Augspurger Date: Wed, 19 Feb 2020 15:20:34 -0600 Subject: [PATCH 11/20] windows test --- azure/windows.yml | 4 +--- 1 file changed, 1 insertion(+), 3 deletions(-) diff --git a/azure/windows.yml b/azure/windows.yml index 9467fde..20da75e 100644 --- a/azure/windows.yml +++ b/azure/windows.yml @@ -81,9 +81,7 @@ jobs: source extra_functions.sh setup_test_venv pip install pandas/dist/pandas-*.whl - mkdir $TEST_DIR - pushd $TEST_DIR - pytest -rs -l --junitxml=$JUNITXML pandas + python -c 'import pandas; pandas.test(extra_args=["-m not clipboard", "--skip-slow", "--skip-network", "--skip-db", "-n=2"])' popd teardown_test_venv displayName: Install wheel and test From 8f6945872847051d41ce5b695ddf902d1bdcec40 Mon Sep 17 00:00:00 2001 From: Tom Augspurger Date: Mon, 2 Mar 2020 13:25:32 -0600 Subject: [PATCH 12/20] skip maybe_promote --- config.sh | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/config.sh b/config.sh index 625234f..fdd0e48 100644 --- a/config.sh +++ b/config.sh @@ -26,5 +26,5 @@ function run_tests { # Runs tests on installed distribution from an empty directory export PYTHONHASHSEED=$(python -c 'import random; print(random.randint(1, 4294967295))') python -c 'import pandas; pandas.show_versions()' - python -c 'import pandas; pandas.test(extra_args=["-m not clipboard", "--skip-slow", "--skip-network", "--skip-db", "-n=2"])' + python -c 'import pandas; pandas.test(extra_args=["-m not clipboard", "--skip-slow", "--skip-network", "--skip-db", "-n=2", "-k -test_maybe_promote_int_with_int"])' } From 71fded9d222a6d943bc4219991a0a8f0500df9c8 Mon Sep 17 00:00:00 2001 From: Tom Augspurger Date: Mon, 2 Mar 2020 13:50:18 -0600 Subject: [PATCH 13/20] skip maybe_promote --- config.sh | 3 ++- 1 file changed, 2 insertions(+), 1 deletion(-) diff --git a/config.sh b/config.sh index fdd0e48..49cbbc9 100644 --- a/config.sh +++ b/config.sh @@ -26,5 +26,6 @@ function run_tests { # Runs tests on installed distribution from an empty directory export PYTHONHASHSEED=$(python -c 'import random; print(random.randint(1, 4294967295))') python -c 'import pandas; pandas.show_versions()' - python -c 'import pandas; pandas.test(extra_args=["-m not clipboard", "--skip-slow", "--skip-network", "--skip-db", "-n=2", "-k -test_maybe_promote_int_with_int"])' + # Skip test_maybe_promote_int_with_int: https://github.com/pandas-dev/pandas/issues/31856 + python -c 'import pandas; pandas.test(extra_args=["-m not clipboard", "--skip-slow", "--skip-network", "--skip-db", "-n=2", "-k not test_maybe_promote_int_with_int"])' } From 63777a56e677996624f5c2b9299ae1291b929fa3 Mon Sep 17 00:00:00 2001 From: Tom Augspurger Date: Mon, 2 Mar 2020 14:29:34 -0600 Subject: [PATCH 14/20] re-use --- azure/windows.yml | 3 ++- 1 file changed, 2 insertions(+), 1 deletion(-) diff --git a/azure/windows.yml b/azure/windows.yml index 20da75e..169d1a8 100644 --- a/azure/windows.yml +++ b/azure/windows.yml @@ -79,9 +79,10 @@ jobs: - bash: | set -e source extra_functions.sh + source config.sh setup_test_venv pip install pandas/dist/pandas-*.whl - python -c 'import pandas; pandas.test(extra_args=["-m not clipboard", "--skip-slow", "--skip-network", "--skip-db", "-n=2"])' + run_tests popd teardown_test_venv displayName: Install wheel and test From 103afc4738c56da455655e86071533ce457b6d46 Mon Sep 17 00:00:00 2001 From: Tom Augspurger Date: Mon, 2 Mar 2020 15:06:11 -0600 Subject: [PATCH 15/20] re-use --- azure/windows.yml | 1 - 1 file changed, 1 deletion(-) diff --git a/azure/windows.yml b/azure/windows.yml index 169d1a8..8b66c80 100644 --- a/azure/windows.yml +++ b/azure/windows.yml @@ -83,7 +83,6 @@ jobs: setup_test_venv pip install pandas/dist/pandas-*.whl run_tests - popd teardown_test_venv displayName: Install wheel and test condition: eq(variables['SKIP_BUILD'], 'false') From 906ae9062a2ba77f5881d1acbcedf1caa7a8c1ca Mon Sep 17 00:00:00 2001 From: Tom Augspurger Date: Mon, 2 Mar 2020 15:51:24 -0600 Subject: [PATCH 16/20] org --- azure/windows.yml | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/azure/windows.yml b/azure/windows.yml index 8b66c80..a6cedec 100644 --- a/azure/windows.yml +++ b/azure/windows.yml @@ -107,7 +107,7 @@ jobs: ANACONDA_ORG="scipy-wheels-nightly" TOKEN="$PANDAS_NIGHTLY_UPLOAD_TOKEN" else - ANACONDA_ORG="pandas-wheels-staging" + ANACONDA_ORG="multibuild-wheels-staging" TOKEN="$PANDAS_STAGING_UPLOAD_TOKEN" fi if [ "$TOKEN" == "" ]; then From 2237f79c002775d0fdaa547d55a816a8ec38b1e5 Mon Sep 17 00:00:00 2001 From: Tom Augspurger Date: Mon, 16 Mar 2020 11:05:40 -0500 Subject: [PATCH 17/20] fixups --- azure-pipelines.yml | 2 +- azure/posix.yml | 7 ------- 2 files changed, 1 insertion(+), 8 deletions(-) diff --git a/azure-pipelines.yml b/azure-pipelines.yml index 2cee189..597b7b7 100644 --- a/azure-pipelines.yml +++ b/azure-pipelines.yml @@ -71,7 +71,7 @@ jobs: - template: azure/posix.yml parameters: name: macOS - vmImage: xcode9-macos10.13 + vmImage: macOS-10.14 matrix: py_3.6_64: MB_PYTHON_VERSION: "3.6" diff --git a/azure/posix.yml b/azure/posix.yml index 73520da..5a6530c 100644 --- a/azure/posix.yml +++ b/azure/posix.yml @@ -87,13 +87,6 @@ jobs: displayName: Install wheel and test condition: eq(variables['SKIP_BUILD'], 'false') - - task: PublishTestResults@2 - inputs: - testResultsFiles: '$(TEST_DIR)/$(JUNITXML)' - testRunTitle: ${{ format('{0}-$(Agent.JobName)', parameters.name) }} - displayName: 'Publish Test Results' - condition: eq(variables['SKIP_BUILD'], 'false') - - bash: | echo "##vso[task.prependpath]$CONDA/bin" sudo chown -R $USER $CONDA From 711d60cd9856dc347b73e0166432f42ed089dcf6 Mon Sep 17 00:00:00 2001 From: Tom Augspurger Date: Mon, 16 Mar 2020 11:06:36 -0500 Subject: [PATCH 18/20] fixups --- azure/posix.yml | 2 +- azure/windows.yml | 2 +- 2 files changed, 2 insertions(+), 2 deletions(-) diff --git a/azure/posix.yml b/azure/posix.yml index 5a6530c..807f3f3 100644 --- a/azure/posix.yml +++ b/azure/posix.yml @@ -9,7 +9,7 @@ jobs: vmImage: ${{ parameters.vmImage }} variables: REPO_DIR: "pandas" - BUILD_COMMIT: "v1.0.1" + BUILD_COMMIT: "v1.0.2" PLAT: "x86_64" NP_BUILD_DEP: "numpy==1.13.3" CYTHON_BUILD_DEP: "cython==0.29.13" diff --git a/azure/windows.yml b/azure/windows.yml index a6cedec..3e04d4f 100644 --- a/azure/windows.yml +++ b/azure/windows.yml @@ -8,7 +8,7 @@ jobs: pool: vmImage: ${{ parameters.vmImage }} variables: - BUILD_COMMIT: "v1.0.1" + BUILD_COMMIT: "v1.0.2" NP_BUILD_DEP: "1.13.3" CYTHON_BUILD_DEP: "0.29.13" NIGHTLY_BUILD_COMMIT: "master" From 9ebfdbc12019283b4d49134e1918da22acc8dfbf Mon Sep 17 00:00:00 2001 From: Tom Augspurger Date: Mon, 16 Mar 2020 13:19:02 -0500 Subject: [PATCH 19/20] debug --- config.sh | 3 +++ 1 file changed, 3 insertions(+) diff --git a/config.sh b/config.sh index 49cbbc9..675b7fd 100644 --- a/config.sh +++ b/config.sh @@ -25,6 +25,9 @@ function build_wheel { function run_tests { # Runs tests on installed distribution from an empty directory export PYTHONHASHSEED=$(python -c 'import random; print(random.randint(1, 4294967295))') + echo $PATH + which -a python + pip list python -c 'import pandas; pandas.show_versions()' # Skip test_maybe_promote_int_with_int: https://github.com/pandas-dev/pandas/issues/31856 python -c 'import pandas; pandas.test(extra_args=["-m not clipboard", "--skip-slow", "--skip-network", "--skip-db", "-n=2", "-k not test_maybe_promote_int_with_int"])' From 23a993b9288b37a64e19ddb5859685e2652c3e1b Mon Sep 17 00:00:00 2001 From: Tom Augspurger Date: Mon, 16 Mar 2020 15:04:35 -0500 Subject: [PATCH 20/20] pin multibuild --- multibuild | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/multibuild b/multibuild index 217614c..47f4b24 160000 --- a/multibuild +++ b/multibuild @@ -1 +1 @@ -Subproject commit 217614c7bdc27ac8f5bb29dab0568594b8f4f352 +Subproject commit 47f4b247be212315313ff72e3daafdff0cbc6c33