From 03f3a537084db325727835a3822ed76d01796fc1 Mon Sep 17 00:00:00 2001 From: Matthew Roeschke <10647082+mroeschke@users.noreply.github.com> Date: Thu, 4 May 2023 15:53:42 -0700 Subject: [PATCH 01/65] CI: Build wheel from sdist --- .github/workflows/wheels.yml | 191 +++++++++++++---------------------- pyproject.toml | 4 +- 2 files changed, 73 insertions(+), 122 deletions(-) diff --git a/.github/workflows/wheels.yml b/.github/workflows/wheels.yml index e4332eeddcb2a..ebd3ce99f8baa 100644 --- a/.github/workflows/wheels.yml +++ b/.github/workflows/wheels.yml @@ -4,7 +4,7 @@ # In an attempt to save CI resources, wheel builds do # not run on each push but only weekly and for releases. # Wheel builds can be triggered from the Actions page -# (if you have the perms) on a commit to master. +# (if you have the permissions) on a commit to main. # # Alternatively, you can add labels to the pull request in order to trigger wheel # builds. @@ -14,13 +14,8 @@ name: Wheel builder on: schedule: - # ┌───────────── minute (0 - 59) - # │ ┌───────────── hour (0 - 23) - # │ │ ┌───────────── day of the month (1 - 31) - # │ │ │ ┌───────────── month (1 - 12 or JAN-DEC) - # │ │ │ │ ┌───────────── day of the week (0 - 6 or SUN-SAT) - # │ │ │ │ │ - - cron: "27 3 */1 * *" + # 3:27 UTC every day + - cron: "27 3 * * *" push: pull_request: types: [labeled, opened, synchronize, reopened] @@ -37,28 +32,15 @@ permissions: contents: read jobs: - build_wheels: - name: Build wheel for ${{ matrix.python[0] }}-${{ matrix.buildplat[1] }} + build_sdist: + name: Build sdist if: >- github.event_name == 'schedule' || github.event_name == 'workflow_dispatch' || (github.event_name == 'pull_request' && contains(github.event.pull_request.labels.*.name, 'Build')) || (github.event_name == 'push' && startsWith(github.ref, 'refs/tags/v') && ( ! endsWith(github.ref, 'dev0'))) - runs-on: ${{ matrix.buildplat[0] }} - strategy: - # Ensure that a wheel builder finishes even if another fails - fail-fast: false - matrix: - # GitHub Actions doesn't support pairing matrix values together, let's improvise - # https://github.com/github/feedback/discussions/7835#discussioncomment-1769026 - buildplat: - - [ubuntu-20.04, manylinux_x86_64] - - [macos-11, macosx_*] - - [windows-2019, win_amd64] - - [windows-2019, win32] - # TODO: support PyPy? - python: [["cp39", "3.9"], ["cp310", "3.10"], ["cp311", "3.11"]]# "pp39"] + runs-on: ubuntu-22.04 env: IS_PUSH: ${{ github.event_name == 'push' && startsWith(github.ref, 'refs/tags/v') }} IS_SCHEDULE_DISPATCH: ${{ github.event_name == 'schedule' || github.event_name == 'workflow_dispatch' }} @@ -73,135 +55,104 @@ jobs: # https://github.com/actions/checkout/issues/338 fetch-depth: 0 - - name: Build wheels - uses: pypa/cibuildwheel@v2.12.3 - env: - CIBW_BUILD: ${{ matrix.python[0] }}-${{ matrix.buildplat[1] }} - - # Used to test(Windows-only) and push the built wheels - # You might need to use setup-python separately - # if the new Python-dev version - # is unavailable on conda-forge. - - uses: conda-incubator/setup-miniconda@v2 + - name: Set up Python + uses: actions/setup-python@v4 with: - auto-update-conda: true - python-version: ${{ matrix.python[1] }} - activate-environment: test - channels: conda-forge, anaconda - channel-priority: true - # mamba fails to solve, also we really don't need this since we're just installing python - # mamba-version: "*" + python-version: '3.11' - - name: Test wheels (Windows 64-bit only) - if: ${{ matrix.buildplat[1] == 'win_amd64' }} - shell: cmd /C CALL {0} + - name: Build sdist run: | - python ci/test_wheels.py wheelhouse + python -m pip install build + python -m build --sdist - uses: actions/upload-artifact@v3 with: - name: ${{ matrix.python[0] }}-${{ startsWith(matrix.buildplat[1], 'macosx') && 'macosx' || matrix.buildplat[1] }} - path: ./wheelhouse/*.whl - + name: sdist + path: ./dist/* - - name: Install anaconda client - if: ${{ success() && (env.IS_SCHEDULE_DISPATCH == 'true' || env.IS_PUSH == 'true') }} + - run: ls ./dist shell: bash -el {0} - run: conda install -q -y anaconda-client - - - name: Upload wheels - if: ${{ success() && (env.IS_SCHEDULE_DISPATCH == 'true' || env.IS_PUSH == 'true') }} - shell: bash -el {0} - env: - PANDAS_STAGING_UPLOAD_TOKEN: ${{ secrets.PANDAS_STAGING_UPLOAD_TOKEN }} - PANDAS_NIGHTLY_UPLOAD_TOKEN: ${{ secrets.PANDAS_NIGHTLY_UPLOAD_TOKEN }} - run: | - source ci/upload_wheels.sh - set_upload_vars - # trigger an upload to - # https://anaconda.org/scipy-wheels-nightly/pandas - # for cron jobs or "Run workflow" (restricted to main branch). - # Tags will upload to - # https://anaconda.org/multibuild-wheels-staging/pandas - # The tokens were originally generated at anaconda.org - upload_wheels - build_sdist: - name: Build sdist + build_wheels: + needs: build_sdist + name: Build wheel for ${{ matrix.python[0] }}-${{ matrix.buildplat[1] }} if: >- github.event_name == 'schedule' || github.event_name == 'workflow_dispatch' || (github.event_name == 'pull_request' && contains(github.event.pull_request.labels.*.name, 'Build')) || (github.event_name == 'push' && startsWith(github.ref, 'refs/tags/v') && ( ! endsWith(github.ref, 'dev0'))) - runs-on: ubuntu-22.04 + runs-on: ${{ matrix.buildplat[0] }} + strategy: + # Ensure that a wheel builder finishes even if another fails + fail-fast: false + matrix: + # GitHub Actions doesn't support pairing matrix values together, let's improvise + # https://github.com/github/feedback/discussions/7835#discussioncomment-1769026 + buildplat: + - [ubuntu-20.04, manylinux_x86_64] + - [ubuntu-20.04, musllinux_x86_64] + - [macos-11, macosx_*] + - [windows-2019, win_amd64] + - [windows-2019, win32] + # TODO: support PyPy? + python: [["cp39", "3.9"], ["cp310", "3.10"], ["cp311", "3.11"]] env: IS_PUSH: ${{ github.event_name == 'push' && startsWith(github.ref, 'refs/tags/v') }} IS_SCHEDULE_DISPATCH: ${{ github.event_name == 'schedule' || github.event_name == 'workflow_dispatch' }} steps: - - name: Checkout pandas - uses: actions/checkout@v3 + - name: Download sdist + uses: actions/download-artifact@v3 with: - submodules: true - # versioneer.py requires the latest tag to be reachable. Here we - # fetch the complete history to get access to the tags. - # A shallow clone can work when the following issue is resolved: - # https://github.com/actions/checkout/issues/338 - fetch-depth: 0 + name: sdist + path: ./dist/* - # Used to push the built sdist - - uses: conda-incubator/setup-miniconda@v2 + - name: Build wheels + uses: pypa/cibuildwheel@v2.12.3 with: - auto-update-conda: true - # Really doesn't matter what version we upload with - # just the version we test with - python-version: '3.10' + package-dir: ./dist + env: + CIBW_BUILD: ${{ matrix.python[0] }}-${{ matrix.buildplat[1] }} + + # Used to test(Windows-only) and push the built wheels + # You might need to use setup-python separately + # if the new Python-dev version + # is unavailable on conda-forge. + - name: Set up Python + uses: mamba-org/provision-with-micromamba@v15 + with: + environment-file: false + environment-name: wheel-env + extra-specs: | + python=${{ matrix.python[1] }} + anaconda-client channels: conda-forge - channel-priority: true - # mamba fails to solve, also we really don't need this since we're just installing python - # mamba-version: "*" + cache-downloads: true + cache-env: true + + - name: Test wheels (Windows 64-bit only) + if: ${{ matrix.buildplat[1] == 'win_amd64' }} + shell: cmd /C CALL {0} + run: python ci/test_wheels.py wheelhouse - - name: Build sdist - run: | - pip install build - python -m build --sdist - - name: Test the sdist - shell: bash -el {0} - run: | - # TODO: Don't run test suite, and instead build wheels from sdist - # by splitting the wheel builders into a two stage job - # (1. Generate sdist 2. Build wheels from sdist) - # This tests the sdists, and saves some build time - python -m pip install dist/*.gz - pip install hypothesis>=6.46.1 pytest>=7.0.0 pytest-xdist>=2.2.0 pytest-asyncio>=0.17 - cd .. # Not a good idea to test within the src tree - python -c "import pandas; print(pandas.__version__); - pandas.test(extra_args=['-m not clipboard and not single_cpu and not slow and not network and not db', '-n 2']); - pandas.test(extra_args=['-m not clipboard and single_cpu and not slow and not network and not db'])" - uses: actions/upload-artifact@v3 with: - name: sdist - path: ./dist/* - - - name: Install anaconda client - if: ${{ success() && (env.IS_SCHEDULE_DISPATCH == 'true' || env.IS_PUSH == 'true') }} - shell: bash -el {0} - run: | - conda install -q -y anaconda-client + name: ${{ matrix.python[0] }}-${{ startsWith(matrix.buildplat[1], 'macosx') && 'macosx' || matrix.buildplat[1] }} + path: ./wheelhouse/*.whl - - name: Upload sdist + - name: Upload wheels & sdist if: ${{ success() && (env.IS_SCHEDULE_DISPATCH == 'true' || env.IS_PUSH == 'true') }} shell: bash -el {0} env: PANDAS_STAGING_UPLOAD_TOKEN: ${{ secrets.PANDAS_STAGING_UPLOAD_TOKEN }} PANDAS_NIGHTLY_UPLOAD_TOKEN: ${{ secrets.PANDAS_NIGHTLY_UPLOAD_TOKEN }} + # trigger an upload to + # https://anaconda.org/scipy-wheels-nightly/pandas + # for cron jobs or "Run workflow" (restricted to main branch). + # Tags will upload to + # https://anaconda.org/multibuild-wheels-staging/pandas + # The tokens were originally generated at anaconda.org run: | source ci/upload_wheels.sh set_upload_vars - # trigger an upload to - # https://anaconda.org/scipy-wheels-nightly/pandas - # for cron jobs or "Run workflow" (restricted to main branch). - # Tags will upload to - # https://anaconda.org/multibuild-wheels-staging/pandas - # The tokens were originally generated at anaconda.org upload_wheels diff --git a/pyproject.toml b/pyproject.toml index 042d13ea7956a..50cefe250d008 100644 --- a/pyproject.toml +++ b/pyproject.toml @@ -138,9 +138,9 @@ tag_prefix = "v" parentdir_prefix = "pandas-" [tool.cibuildwheel] -skip = "cp36-* cp37-* pp37-* *-manylinux_i686 *_ppc64le *_s390x *-musllinux*" +skip = "cp36-* cp37-* cp38-* pp* *_i686 *_ppc64le *_s390x *-musllinux_aarch64" build-verbosity = "3" -environment = {LDFLAGS="-Wl,--strip-all" } +environment = {LDFLAGS="-Wl,--strip-all"} test-requires = "hypothesis>=6.46.1 pytest>=7.0.0 pytest-xdist>=2.2.0 pytest-asyncio>=0.17" test-command = "python {project}/ci/test_wheels.py" From 875258e2c22826790d5f35b05b0e042c2862d6bb Mon Sep 17 00:00:00 2001 From: Matthew Roeschke <10647082+mroeschke@users.noreply.github.com> Date: Thu, 4 May 2023 16:10:05 -0700 Subject: [PATCH 02/65] Save sdist name to pass to ciwheelbuild --- .github/workflows/wheels.yml | 8 ++++++-- 1 file changed, 6 insertions(+), 2 deletions(-) diff --git a/.github/workflows/wheels.yml b/.github/workflows/wheels.yml index ebd3ce99f8baa..0dd9fc10d0f20 100644 --- a/.github/workflows/wheels.yml +++ b/.github/workflows/wheels.yml @@ -44,6 +44,8 @@ jobs: env: IS_PUSH: ${{ github.event_name == 'push' && startsWith(github.ref, 'refs/tags/v') }} IS_SCHEDULE_DISPATCH: ${{ github.event_name == 'schedule' || github.event_name == 'workflow_dispatch' }} + outputs: + sdist_file: ${{ steps.save-path.outputs.sdist-name }} steps: - name: Checkout pandas uses: actions/checkout@v3 @@ -70,8 +72,10 @@ jobs: name: sdist path: ./dist/* - - run: ls ./dist + - run: Output sdist name + id: save-path shell: bash -el {0} + run: echo "sdist_name=$(ls ./dist)" >> "$GITHUB_OUTPUT" build_wheels: needs: build_sdist @@ -110,7 +114,7 @@ jobs: - name: Build wheels uses: pypa/cibuildwheel@v2.12.3 with: - package-dir: ./dist + package-dir: ./dist/${{ needs.build_sdist.outputs.sdist_file }} env: CIBW_BUILD: ${{ matrix.python[0] }}-${{ matrix.buildplat[1] }} From 71d0a5dacf01ef11830092baa2b8356427849ce7 Mon Sep 17 00:00:00 2001 From: Matthew Roeschke <10647082+mroeschke@users.noreply.github.com> Date: Thu, 4 May 2023 16:11:40 -0700 Subject: [PATCH 03/65] Fix typo --- .github/workflows/wheels.yml | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/.github/workflows/wheels.yml b/.github/workflows/wheels.yml index 0dd9fc10d0f20..ac05a482c65f1 100644 --- a/.github/workflows/wheels.yml +++ b/.github/workflows/wheels.yml @@ -72,7 +72,7 @@ jobs: name: sdist path: ./dist/* - - run: Output sdist name + - name: Output sdist name id: save-path shell: bash -el {0} run: echo "sdist_name=$(ls ./dist)" >> "$GITHUB_OUTPUT" From 578d25170d41c5daeaab6502d7677e33a7520e87 Mon Sep 17 00:00:00 2001 From: Matthew Roeschke <10647082+mroeschke@users.noreply.github.com> Date: Thu, 4 May 2023 16:18:13 -0700 Subject: [PATCH 04/65] fix typo --- .github/workflows/wheels.yml | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/.github/workflows/wheels.yml b/.github/workflows/wheels.yml index ac05a482c65f1..0cc47eb78703d 100644 --- a/.github/workflows/wheels.yml +++ b/.github/workflows/wheels.yml @@ -45,7 +45,7 @@ jobs: IS_PUSH: ${{ github.event_name == 'push' && startsWith(github.ref, 'refs/tags/v') }} IS_SCHEDULE_DISPATCH: ${{ github.event_name == 'schedule' || github.event_name == 'workflow_dispatch' }} outputs: - sdist_file: ${{ steps.save-path.outputs.sdist-name }} + sdist_file: ${{ steps.save-path.outputs.sdist_name }} steps: - name: Checkout pandas uses: actions/checkout@v3 From cd467d70aceb8ca7a19258a83f45a1f73ac763e8 Mon Sep 17 00:00:00 2001 From: Matthew Roeschke <10647082+mroeschke@users.noreply.github.com> Date: Thu, 4 May 2023 16:30:26 -0700 Subject: [PATCH 05/65] Check dist --- .github/workflows/wheels.yml | 4 ++++ 1 file changed, 4 insertions(+) diff --git a/.github/workflows/wheels.yml b/.github/workflows/wheels.yml index 0cc47eb78703d..2a2f5c447431b 100644 --- a/.github/workflows/wheels.yml +++ b/.github/workflows/wheels.yml @@ -111,6 +111,10 @@ jobs: name: sdist path: ./dist/* + - name: Check dist + run: ls ./dist + shell: bash -el {0} + - name: Build wheels uses: pypa/cibuildwheel@v2.12.3 with: From 4e75e00a786e42cd1a5866a06c2e53699fd3a2ed Mon Sep 17 00:00:00 2001 From: Matthew Roeschke <10647082+mroeschke@users.noreply.github.com> Date: Thu, 4 May 2023 16:35:18 -0700 Subject: [PATCH 06/65] Another typo --- .github/workflows/wheels.yml | 6 +----- 1 file changed, 1 insertion(+), 5 deletions(-) diff --git a/.github/workflows/wheels.yml b/.github/workflows/wheels.yml index 2a2f5c447431b..2d8abb5afea9a 100644 --- a/.github/workflows/wheels.yml +++ b/.github/workflows/wheels.yml @@ -109,11 +109,7 @@ jobs: uses: actions/download-artifact@v3 with: name: sdist - path: ./dist/* - - - name: Check dist - run: ls ./dist - shell: bash -el {0} + path: ./dist/${{ needs.build_sdist.outputs.sdist_file }} - name: Build wheels uses: pypa/cibuildwheel@v2.12.3 From fff3322c35325ecd9ae4c4483f4c9507fed3860c Mon Sep 17 00:00:00 2001 From: Matthew Roeschke <10647082+mroeschke@users.noreply.github.com> Date: Thu, 4 May 2023 16:51:01 -0700 Subject: [PATCH 07/65] one more typo? --- .github/workflows/wheels.yml | 6 +++++- 1 file changed, 5 insertions(+), 1 deletion(-) diff --git a/.github/workflows/wheels.yml b/.github/workflows/wheels.yml index 2d8abb5afea9a..d519f73c69638 100644 --- a/.github/workflows/wheels.yml +++ b/.github/workflows/wheels.yml @@ -109,7 +109,11 @@ jobs: uses: actions/download-artifact@v3 with: name: sdist - path: ./dist/${{ needs.build_sdist.outputs.sdist_file }} + path: ./dist + + - name: Check dist + run: ls ./dist + shell: bash -el {0} - name: Build wheels uses: pypa/cibuildwheel@v2.12.3 From d52d1f03e7ae51facc314f55322bb49fbf33bfb1 Mon Sep 17 00:00:00 2001 From: Matthew Roeschke <10647082+mroeschke@users.noreply.github.com> Date: Thu, 4 May 2023 17:09:05 -0700 Subject: [PATCH 08/65] Remove missing files in Manifest, checkout project --- .github/workflows/wheels.yml | 10 +++++----- MANIFEST.in | 3 --- 2 files changed, 5 insertions(+), 8 deletions(-) diff --git a/.github/workflows/wheels.yml b/.github/workflows/wheels.yml index d519f73c69638..087b55ae66d13 100644 --- a/.github/workflows/wheels.yml +++ b/.github/workflows/wheels.yml @@ -50,11 +50,6 @@ jobs: - name: Checkout pandas uses: actions/checkout@v3 with: - submodules: true - # versioneer.py requires the latest tag to be reachable. Here we - # fetch the complete history to get access to the tags. - # A shallow clone can work when the following issue is resolved: - # https://github.com/actions/checkout/issues/338 fetch-depth: 0 - name: Set up Python @@ -105,6 +100,11 @@ jobs: IS_PUSH: ${{ github.event_name == 'push' && startsWith(github.ref, 'refs/tags/v') }} IS_SCHEDULE_DISPATCH: ${{ github.event_name == 'schedule' || github.event_name == 'workflow_dispatch' }} steps: + - name: Checkout pandas + uses: actions/checkout@v3 + with: + fetch-depth: 0 + - name: Download sdist uses: actions/download-artifact@v3 with: diff --git a/MANIFEST.in b/MANIFEST.in index 361cd8ff9ec22..da64f6eeb7064 100644 --- a/MANIFEST.in +++ b/MANIFEST.in @@ -1,6 +1,3 @@ -include RELEASE.md -include versioneer.py - graft doc prune doc/build From 9cec291ceb339a10200b22fb308009924295ba6c Mon Sep 17 00:00:00 2001 From: Matthew Roeschke <10647082+mroeschke@users.noreply.github.com> Date: Thu, 4 May 2023 17:40:03 -0700 Subject: [PATCH 09/65] try a different variable --- .github/workflows/wheels.yml | 4 ---- pyproject.toml | 4 ++-- 2 files changed, 2 insertions(+), 6 deletions(-) diff --git a/.github/workflows/wheels.yml b/.github/workflows/wheels.yml index 087b55ae66d13..4e6751b9b2f35 100644 --- a/.github/workflows/wheels.yml +++ b/.github/workflows/wheels.yml @@ -111,10 +111,6 @@ jobs: name: sdist path: ./dist - - name: Check dist - run: ls ./dist - shell: bash -el {0} - - name: Build wheels uses: pypa/cibuildwheel@v2.12.3 with: diff --git a/pyproject.toml b/pyproject.toml index 50cefe250d008..7cc852144f5c8 100644 --- a/pyproject.toml +++ b/pyproject.toml @@ -142,14 +142,14 @@ skip = "cp36-* cp37-* cp38-* pp* *_i686 *_ppc64le *_s390x *-musllinux_aarch64" build-verbosity = "3" environment = {LDFLAGS="-Wl,--strip-all"} test-requires = "hypothesis>=6.46.1 pytest>=7.0.0 pytest-xdist>=2.2.0 pytest-asyncio>=0.17" -test-command = "python {project}/ci/test_wheels.py" +test-command = "python {package}/ci/test_wheels.py" [tool.cibuildwheel.macos] archs = "x86_64 arm64" test-skip = "*_arm64" [tool.cibuildwheel.windows] -repair-wheel-command = "python ci/fix_wheels.py {wheel} {dest_dir}" +repair-wheel-command = "python {package}/ci/fix_wheels.py {wheel} {dest_dir}" [[tool.cibuildwheel.overrides]] select = "*-win*" From b33fdf4405341a43f1afd3bca38be25a77cafd43 Mon Sep 17 00:00:00 2001 From: Matthew Roeschke <10647082+mroeschke@users.noreply.github.com> Date: Fri, 5 May 2023 12:23:36 -0700 Subject: [PATCH 10/65] Try in the prior directory up --- pyproject.toml | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/pyproject.toml b/pyproject.toml index 168dcfdc40e52..a1417a2769be5 100644 --- a/pyproject.toml +++ b/pyproject.toml @@ -142,14 +142,14 @@ skip = "cp36-* cp37-* cp38-* pp* *_i686 *_ppc64le *_s390x *-musllinux_aarch64" build-verbosity = "3" environment = {LDFLAGS="-Wl,--strip-all"} test-requires = "hypothesis>=6.46.1 pytest>=7.0.0 pytest-xdist>=2.2.0 pytest-asyncio>=0.17" -test-command = "python {package}/ci/test_wheels.py" +test-command = "python ../ci/test_wheels.py" [tool.cibuildwheel.macos] archs = "x86_64 arm64" test-skip = "*_arm64" [tool.cibuildwheel.windows] -repair-wheel-command = "python {package}/ci/fix_wheels.py {wheel} {dest_dir}" +repair-wheel-command = "python ../ci/fix_wheels.py {wheel} {dest_dir}" [[tool.cibuildwheel.overrides]] select = "*-win*" From bf07020ce1c61cdbc493a2da36ad07f64e4a4b80 Mon Sep 17 00:00:00 2001 From: Matthew Roeschke <10647082+mroeschke@users.noreply.github.com> Date: Fri, 5 May 2023 13:33:09 -0700 Subject: [PATCH 11/65] check project folder --- pyproject.toml | 1 + 1 file changed, 1 insertion(+) diff --git a/pyproject.toml b/pyproject.toml index a1417a2769be5..531fc65780725 100644 --- a/pyproject.toml +++ b/pyproject.toml @@ -141,6 +141,7 @@ parentdir_prefix = "pandas-" skip = "cp36-* cp37-* cp38-* pp* *_i686 *_ppc64le *_s390x *-musllinux_aarch64" build-verbosity = "3" environment = {LDFLAGS="-Wl,--strip-all"} +before-test = "ls {project}" test-requires = "hypothesis>=6.46.1 pytest>=7.0.0 pytest-xdist>=2.2.0 pytest-asyncio>=0.17" test-command = "python ../ci/test_wheels.py" From 31c7ae23c28632827b34feb4b17551d311253327 Mon Sep 17 00:00:00 2001 From: Matthew Roeschke <10647082+mroeschke@users.noreply.github.com> Date: Fri, 5 May 2023 14:12:42 -0700 Subject: [PATCH 12/65] Pull path --- pyproject.toml | 5 ++--- 1 file changed, 2 insertions(+), 3 deletions(-) diff --git a/pyproject.toml b/pyproject.toml index 531fc65780725..ef6c8e8dd5610 100644 --- a/pyproject.toml +++ b/pyproject.toml @@ -141,16 +141,15 @@ parentdir_prefix = "pandas-" skip = "cp36-* cp37-* cp38-* pp* *_i686 *_ppc64le *_s390x *-musllinux_aarch64" build-verbosity = "3" environment = {LDFLAGS="-Wl,--strip-all"} -before-test = "ls {project}" test-requires = "hypothesis>=6.46.1 pytest>=7.0.0 pytest-xdist>=2.2.0 pytest-asyncio>=0.17" -test-command = "python ../ci/test_wheels.py" +test-command = "python /home/runner/work/pandas/pandas/ci/test_wheels.py" [tool.cibuildwheel.macos] archs = "x86_64 arm64" test-skip = "*_arm64" [tool.cibuildwheel.windows] -repair-wheel-command = "python ../ci/fix_wheels.py {wheel} {dest_dir}" +repair-wheel-command = "python /home/runner/work/pandas/pandas/ci/fix_wheels.py {wheel} {dest_dir}" [[tool.cibuildwheel.overrides]] select = "*-win*" From e80a9a96c20715a86c02a32f363426385baf14b1 Mon Sep 17 00:00:00 2001 From: Matthew Roeschke <10647082+mroeschke@users.noreply.github.com> Date: Fri, 5 May 2023 14:24:42 -0700 Subject: [PATCH 13/65] Exclude some data files --- MANIFEST.in | 6 ++++++ 1 file changed, 6 insertions(+) diff --git a/MANIFEST.in b/MANIFEST.in index da64f6eeb7064..174b612d8d7ba 100644 --- a/MANIFEST.in +++ b/MANIFEST.in @@ -15,9 +15,12 @@ global-exclude *.h5 global-exclude *.html global-exclude *.json global-exclude *.jsonl +global-exclude *.kml global-exclude *.msgpack global-exclude *.pdf +global-exclude *.parquet global-exclude *.pickle +global-exclude *.pkl global-exclude *.png global-exclude *.pptx global-exclude *.ods @@ -26,12 +29,15 @@ global-exclude *.orc global-exclude *.sas7bdat global-exclude *.sav global-exclude *.so +global-exclude *.txt global-exclude *.xls global-exclude *.xlsb global-exclude *.xlsm global-exclude *.xlsx global-exclude *.xpt global-exclude *.cpt +global-exclude *.xml +global-exclude *.xsl global-exclude *.xz global-exclude *.zip global-exclude *.zst From f1473b295d15c979248d53cf7a76669ba68b68a9 Mon Sep 17 00:00:00 2001 From: Matthew Roeschke <10647082+mroeschke@users.noreply.github.com> Date: Fri, 5 May 2023 14:56:18 -0700 Subject: [PATCH 14/65] Replace test command --- pyproject.toml | 7 ++++++- 1 file changed, 6 insertions(+), 1 deletion(-) diff --git a/pyproject.toml b/pyproject.toml index ef6c8e8dd5610..5c8ed261cf91e 100644 --- a/pyproject.toml +++ b/pyproject.toml @@ -142,10 +142,15 @@ skip = "cp36-* cp37-* cp38-* pp* *_i686 *_ppc64le *_s390x *-musllinux_aarch64" build-verbosity = "3" environment = {LDFLAGS="-Wl,--strip-all"} test-requires = "hypothesis>=6.46.1 pytest>=7.0.0 pytest-xdist>=2.2.0 pytest-asyncio>=0.17" -test-command = "python /home/runner/work/pandas/pandas/ci/test_wheels.py" +test-command = """ + python -c 'import pandas as pd; \ + pd.test(extra_args=["-m not clipboard and not single_cpu and not slow and not network and not db", "-n 2"]); \ + pd.test(extra_args=["-m not clipboard and single_cpu and not slow and not network and not db"]);' \ + """ [tool.cibuildwheel.macos] archs = "x86_64 arm64" +before-test = "ls /home" test-skip = "*_arm64" [tool.cibuildwheel.windows] From 8aea3736cf301ca89728b1846e1109a6bde9c4bb Mon Sep 17 00:00:00 2001 From: Matthew Roeschke <10647082+mroeschke@users.noreply.github.com> Date: Fri, 5 May 2023 15:10:28 -0700 Subject: [PATCH 15/65] Remove .data as well --- MANIFEST.in | 1 + 1 file changed, 1 insertion(+) diff --git a/MANIFEST.in b/MANIFEST.in index 174b612d8d7ba..568ccbfb1cfab 100644 --- a/MANIFEST.in +++ b/MANIFEST.in @@ -7,6 +7,7 @@ graft pandas global-exclude *.bz2 global-exclude *.csv +global-exclude *.data global-exclude *.dta global-exclude *.feather global-exclude *.tar From 8da7b6db957086a3fef30f546861b536c9ae9028 Mon Sep 17 00:00:00 2001 From: Matthew Roeschke <10647082+mroeschke@users.noreply.github.com> Date: Fri, 5 May 2023 15:48:07 -0700 Subject: [PATCH 16/65] Install locale on musl --- pyproject.toml | 6 +++++- 1 file changed, 5 insertions(+), 1 deletion(-) diff --git a/pyproject.toml b/pyproject.toml index 5c8ed261cf91e..f3019ad55f8ab 100644 --- a/pyproject.toml +++ b/pyproject.toml @@ -156,6 +156,10 @@ test-skip = "*_arm64" [tool.cibuildwheel.windows] repair-wheel-command = "python /home/runner/work/pandas/pandas/ci/fix_wheels.py {wheel} {dest_dir}" +[[tool.cibuildwheel.overrides]] +select = "*-musllinux*" +before-test = "apk update && apk add musl-locales" + [[tool.cibuildwheel.overrides]] select = "*-win*" # We test separately for Windows, since we use @@ -172,7 +176,7 @@ environment = {CFLAGS="-g0"} [[tool.cibuildwheel.overrides]] select = "*-win32" -environment = { IS_32_BIT="true" } +environment = {IS_32_BIT="true"} [tool.black] target-version = ['py39', 'py310'] From c2c49d95635b6ee0aba8f5310afb1df0c2a681a1 Mon Sep 17 00:00:00 2001 From: Matthew Roeschke <10647082+mroeschke@users.noreply.github.com> Date: Fri, 5 May 2023 16:03:34 -0700 Subject: [PATCH 17/65] Try delvewheel --- pyproject.toml | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/pyproject.toml b/pyproject.toml index f3019ad55f8ab..f9389b2a3288b 100644 --- a/pyproject.toml +++ b/pyproject.toml @@ -150,11 +150,11 @@ test-command = """ [tool.cibuildwheel.macos] archs = "x86_64 arm64" -before-test = "ls /home" test-skip = "*_arm64" [tool.cibuildwheel.windows] -repair-wheel-command = "python /home/runner/work/pandas/pandas/ci/fix_wheels.py {wheel} {dest_dir}" +before-build = "pip install delvewheel" +repair-wheel-command = "delvewheel repair -w {dest_dir} {wheel}" [[tool.cibuildwheel.overrides]] select = "*-musllinux*" From 0d7a3e9780f7c4087bc63792a04749441be18e6c Mon Sep 17 00:00:00 2001 From: Matthew Roeschke <10647082+mroeschke@users.noreply.github.com> Date: Fri, 5 May 2023 16:52:41 -0700 Subject: [PATCH 18/65] Run wheel unpack everywhere --- pyproject.toml | 5 ++++- 1 file changed, 4 insertions(+), 1 deletion(-) diff --git a/pyproject.toml b/pyproject.toml index f9389b2a3288b..d04d16b6ad072 100644 --- a/pyproject.toml +++ b/pyproject.toml @@ -141,6 +141,8 @@ parentdir_prefix = "pandas-" skip = "cp36-* cp37-* cp38-* pp* *_i686 *_ppc64le *_s390x *-musllinux_aarch64" build-verbosity = "3" environment = {LDFLAGS="-Wl,--strip-all"} +# Also checks hashes & file sizes match RECORD +before-test = "wheel unpack {dest_dir} -d /tmp" test-requires = "hypothesis>=6.46.1 pytest>=7.0.0 pytest-xdist>=2.2.0 pytest-asyncio>=0.17" test-command = """ python -c 'import pandas as pd; \ @@ -158,10 +160,11 @@ repair-wheel-command = "delvewheel repair -w {dest_dir} {wheel}" [[tool.cibuildwheel.overrides]] select = "*-musllinux*" -before-test = "apk update && apk add musl-locales" +before-build = "apk update && apk add musl-locales" [[tool.cibuildwheel.overrides]] select = "*-win*" +before-test = "wheel unpack {dest_dir} -d C:\Users\runneradmin\AppData\Local\Temp" # We test separately for Windows, since we use # the base windows docker image to check if any dlls are # missing from the wheel From 0e0ffe9cb7f7b77cfca43074baa7bbd3c485e127 Mon Sep 17 00:00:00 2001 From: Matthew Roeschke <10647082+mroeschke@users.noreply.github.com> Date: Fri, 5 May 2023 16:58:46 -0700 Subject: [PATCH 19/65] Skip in script --- ci/test_wheels.py | 19 +++++++++---------- pyproject.toml | 2 +- 2 files changed, 10 insertions(+), 11 deletions(-) diff --git a/ci/test_wheels.py b/ci/test_wheels.py index 75675d7e4ffc3..e14089bc1d354 100644 --- a/ci/test_wheels.py +++ b/ci/test_wheels.py @@ -2,7 +2,6 @@ import os import shutil import subprocess -from subprocess import CalledProcessError import sys if os.name == "nt": @@ -17,15 +16,15 @@ print(f"IS_32_BIT is {is_32_bit}") print(f"Path to built wheel is {wheel_path}") - print("Verifying file hashes in wheel RECORD file") - try: - tmp_dir = "tmp" - subprocess.run(["wheel", "unpack", wheel_path, "-d", tmp_dir], check=True) - except CalledProcessError: - print("wheel RECORD file hash verification failed.") - sys.exit(1) - finally: - shutil.rmtree(tmp_dir) + # print("Verifying file hashes in wheel RECORD file") + # try: + # tmp_dir = "tmp" + # subprocess.run(["wheel", "unpack", wheel_path, "-d", tmp_dir], check=True) + # except CalledProcessError: + # print("wheel RECORD file hash verification failed.") + # sys.exit(1) + # finally: + # shutil.rmtree(tmp_dir) if is_32_bit: sys.exit(0) # No way to test Windows 32-bit(no docker image) diff --git a/pyproject.toml b/pyproject.toml index d04d16b6ad072..d49f9e3caa160 100644 --- a/pyproject.toml +++ b/pyproject.toml @@ -164,7 +164,7 @@ before-build = "apk update && apk add musl-locales" [[tool.cibuildwheel.overrides]] select = "*-win*" -before-test = "wheel unpack {dest_dir} -d C:\Users\runneradmin\AppData\Local\Temp" +before-test = 'wheel unpack {dest_dir} -d C:\Users\runneradmin\AppData\Local\Temp' # We test separately for Windows, since we use # the base windows docker image to check if any dlls are # missing from the wheel From 037af2d20ad4af8be4f3444561ac3d19053c1169 Mon Sep 17 00:00:00 2001 From: Matthew Roeschke <10647082+mroeschke@users.noreply.github.com> Date: Fri, 5 May 2023 17:29:03 -0700 Subject: [PATCH 20/65] Wheel unpack separately --- .github/workflows/wheels.yml | 5 +++++ pyproject.toml | 6 ++---- 2 files changed, 7 insertions(+), 4 deletions(-) diff --git a/.github/workflows/wheels.yml b/.github/workflows/wheels.yml index 4e6751b9b2f35..1a1af274dbf25 100644 --- a/.github/workflows/wheels.yml +++ b/.github/workflows/wheels.yml @@ -130,10 +130,15 @@ jobs: extra-specs: | python=${{ matrix.python[1] }} anaconda-client + wheel channels: conda-forge cache-downloads: true cache-env: true + - name: Validate wheel RECORD + shell: bash -el {0} + run: wheel unpack wheelhouse/$(ls wheelhouse) -d /tmp + - name: Test wheels (Windows 64-bit only) if: ${{ matrix.buildplat[1] == 'win_amd64' }} shell: cmd /C CALL {0} diff --git a/pyproject.toml b/pyproject.toml index d49f9e3caa160..1635033c17493 100644 --- a/pyproject.toml +++ b/pyproject.toml @@ -142,7 +142,6 @@ skip = "cp36-* cp37-* cp38-* pp* *_i686 *_ppc64le *_s390x *-musllinux_aarch64" build-verbosity = "3" environment = {LDFLAGS="-Wl,--strip-all"} # Also checks hashes & file sizes match RECORD -before-test = "wheel unpack {dest_dir} -d /tmp" test-requires = "hypothesis>=6.46.1 pytest>=7.0.0 pytest-xdist>=2.2.0 pytest-asyncio>=0.17" test-command = """ python -c 'import pandas as pd; \ @@ -160,15 +159,14 @@ repair-wheel-command = "delvewheel repair -w {dest_dir} {wheel}" [[tool.cibuildwheel.overrides]] select = "*-musllinux*" -before-build = "apk update && apk add musl-locales" +before-test = "apk update && apk add musl-locales" [[tool.cibuildwheel.overrides]] select = "*-win*" -before-test = 'wheel unpack {dest_dir} -d C:\Users\runneradmin\AppData\Local\Temp' # We test separately for Windows, since we use # the base windows docker image to check if any dlls are # missing from the wheel -test-command = "" +test-command = "wheel unpack {dest_dir} -d C:\Users\runneradmin\AppData\Local\Temp" [[tool.cibuildwheel.overrides]] # Don't strip wheels on macOS. From c620df7d4bb1f4ee30caf41cd168839296c54045 Mon Sep 17 00:00:00 2001 From: Matthew Roeschke <10647082+mroeschke@users.noreply.github.com> Date: Fri, 5 May 2023 17:32:18 -0700 Subject: [PATCH 21/65] Invalid toml --- pyproject.toml | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/pyproject.toml b/pyproject.toml index 1635033c17493..4446f7872027a 100644 --- a/pyproject.toml +++ b/pyproject.toml @@ -166,7 +166,7 @@ select = "*-win*" # We test separately for Windows, since we use # the base windows docker image to check if any dlls are # missing from the wheel -test-command = "wheel unpack {dest_dir} -d C:\Users\runneradmin\AppData\Local\Temp" +test-command = 'wheel unpack {dest_dir} -d C:\Users\runneradmin\AppData\Local\Temp' [[tool.cibuildwheel.overrides]] # Don't strip wheels on macOS. From e789a0ecc59e50570c473fd1eb2ee76cee90fa48 Mon Sep 17 00:00:00 2001 From: Matthew Roeschke <10647082+mroeschke@users.noreply.github.com> Date: Fri, 5 May 2023 18:11:02 -0700 Subject: [PATCH 22/65] Run wheel unpack outside --- .github/workflows/wheels.yml | 13 +++++++++++++ pyproject.toml | 2 +- 2 files changed, 14 insertions(+), 1 deletion(-) diff --git a/.github/workflows/wheels.yml b/.github/workflows/wheels.yml index 1a1af274dbf25..e7f51614a5da5 100644 --- a/.github/workflows/wheels.yml +++ b/.github/workflows/wheels.yml @@ -144,6 +144,19 @@ jobs: shell: cmd /C CALL {0} run: python ci/test_wheels.py wheelhouse + # - name: Test wheels (Windows 64-bit only) + # if: ${{ matrix.buildplat[1] == 'win_amd64' }} + # shell: bash -el {0} + # run: | + # docker pull python:${{ matrix.python[1] }}-windowsservercore + # docker run -v ./wheelhouse:/home/pandas python:${{ matrix.python[1] }}-windowsservercore \ + # "pip install hypothesis>=6.46.1 pytest>=7.0.0 pytest-xdist>=2.2.0 pytest-asyncio>=0.17 ^ + # pip install --find-links=pandas --no-index pandas ^ + # python -c 'import pandas as pd; ^ + # pd.test(extra_args=['-m not clipboard and not single_cpu and not slow and not network and not db', '-n 2']) ^ + # pd.test(extra_args=['-m not clipboard and single_cpu and not slow and not network and not db'])'' ^ + # " + - uses: actions/upload-artifact@v3 with: name: ${{ matrix.python[0] }}-${{ startsWith(matrix.buildplat[1], 'macosx') && 'macosx' || matrix.buildplat[1] }} diff --git a/pyproject.toml b/pyproject.toml index 4446f7872027a..5a950cd370e78 100644 --- a/pyproject.toml +++ b/pyproject.toml @@ -166,7 +166,7 @@ select = "*-win*" # We test separately for Windows, since we use # the base windows docker image to check if any dlls are # missing from the wheel -test-command = 'wheel unpack {dest_dir} -d C:\Users\runneradmin\AppData\Local\Temp' +test-command = "" [[tool.cibuildwheel.overrides]] # Don't strip wheels on macOS. From fd7edd963a45f3ff1f1ee2380dc2f5583e97a06f Mon Sep 17 00:00:00 2001 From: Matthew Roeschke <10647082+mroeschke@users.noreply.github.com> Date: Fri, 5 May 2023 18:36:13 -0700 Subject: [PATCH 23/65] dont create dir --- ci/test_wheels.py | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/ci/test_wheels.py b/ci/test_wheels.py index e14089bc1d354..fbeba16b172c8 100644 --- a/ci/test_wheels.py +++ b/ci/test_wheels.py @@ -36,7 +36,7 @@ print(f"pandas project dir is {pandas_base_dir}") dist_dir = os.path.join(pandas_base_dir, "dist") print(f"Copying wheel into pandas_base_dir/dist ({dist_dir})") - os.mkdir(dist_dir) + # os.mkdir(dist_dir) shutil.copy(wheel_path, dist_dir) print(os.listdir(dist_dir)) subprocess.run( From 7003dc42c13df1dd87e8d28c3dda35540d24c5c0 Mon Sep 17 00:00:00 2001 From: Matthew Roeschke <10647082+mroeschke@users.noreply.github.com> Date: Sat, 6 May 2023 18:14:06 -0700 Subject: [PATCH 24/65] Debug mac unpack, try alternative test --- .github/workflows/wheels.yml | 41 +++++++++++++++++++++--------------- 1 file changed, 24 insertions(+), 17 deletions(-) diff --git a/.github/workflows/wheels.yml b/.github/workflows/wheels.yml index e7f51614a5da5..e3de818d42277 100644 --- a/.github/workflows/wheels.yml +++ b/.github/workflows/wheels.yml @@ -135,27 +135,34 @@ jobs: cache-downloads: true cache-env: true + - name: Check wheel + if: ${{ matrix.buildplat[1] == 'macosx_*' }} + shell: bash -el {0} + run: | + ls wheelhouse + wheel unpack "wheelhouse/$(ls wheelhouse)" -d /tmp + - name: Validate wheel RECORD shell: bash -el {0} run: wheel unpack wheelhouse/$(ls wheelhouse) -d /tmp - - name: Test wheels (Windows 64-bit only) - if: ${{ matrix.buildplat[1] == 'win_amd64' }} - shell: cmd /C CALL {0} - run: python ci/test_wheels.py wheelhouse - - # - name: Test wheels (Windows 64-bit only) - # if: ${{ matrix.buildplat[1] == 'win_amd64' }} - # shell: bash -el {0} - # run: | - # docker pull python:${{ matrix.python[1] }}-windowsservercore - # docker run -v ./wheelhouse:/home/pandas python:${{ matrix.python[1] }}-windowsservercore \ - # "pip install hypothesis>=6.46.1 pytest>=7.0.0 pytest-xdist>=2.2.0 pytest-asyncio>=0.17 ^ - # pip install --find-links=pandas --no-index pandas ^ - # python -c 'import pandas as pd; ^ - # pd.test(extra_args=['-m not clipboard and not single_cpu and not slow and not network and not db', '-n 2']) ^ - # pd.test(extra_args=['-m not clipboard and single_cpu and not slow and not network and not db'])'' ^ - # " +# - name: Test wheels (Windows 64-bit only) +# if: ${{ matrix.buildplat[1] == 'win_amd64' }} +# shell: cmd /C CALL {0} +# run: python ci/test_wheels.py wheelhouse + + - name: Test wheels (Windows 64-bit only) + if: ${{ matrix.buildplat[1] == 'win_amd64' }} + shell: bash -el {0} + run: | + TST_CMD="import pandas as pd; \ + pd.test(extra_args=['-m not clipboard and not single_cpu and not slow and not network and not db', '-n 2']); \ + pd.test(extra_args=['-m not clipboard and single_cpu and not slow and not network and not db'])" + docker pull python:${{ matrix.python[1] }}-windowsservercore + docker run -v ./wheelhouse:/home/pandas python:${{ matrix.python[1] }}-windowsservercore powershell \ + "pip install hypothesis>=6.46.1 pytest>=7.0.0 pytest-xdist>=2.2.0 pytest-asyncio>=0.17; \ + pip install --find-links=pandas --no-index pandas; \ + python -c '$TST_CMD'" - uses: actions/upload-artifact@v3 with: From 79f54d2715ab96017cbe465281a406c0950ef4b1 Mon Sep 17 00:00:00 2001 From: Matthew Roeschke <10647082+mroeschke@users.noreply.github.com> Date: Sat, 6 May 2023 18:18:36 -0700 Subject: [PATCH 25/65] Align --- .github/workflows/wheels.yml | 24 ++++++++++++------------ 1 file changed, 12 insertions(+), 12 deletions(-) diff --git a/.github/workflows/wheels.yml b/.github/workflows/wheels.yml index e3de818d42277..957f528a3a928 100644 --- a/.github/workflows/wheels.yml +++ b/.github/workflows/wheels.yml @@ -151,18 +151,18 @@ jobs: # shell: cmd /C CALL {0} # run: python ci/test_wheels.py wheelhouse - - name: Test wheels (Windows 64-bit only) - if: ${{ matrix.buildplat[1] == 'win_amd64' }} - shell: bash -el {0} - run: | - TST_CMD="import pandas as pd; \ - pd.test(extra_args=['-m not clipboard and not single_cpu and not slow and not network and not db', '-n 2']); \ - pd.test(extra_args=['-m not clipboard and single_cpu and not slow and not network and not db'])" - docker pull python:${{ matrix.python[1] }}-windowsservercore - docker run -v ./wheelhouse:/home/pandas python:${{ matrix.python[1] }}-windowsservercore powershell \ - "pip install hypothesis>=6.46.1 pytest>=7.0.0 pytest-xdist>=2.2.0 pytest-asyncio>=0.17; \ - pip install --find-links=pandas --no-index pandas; \ - python -c '$TST_CMD'" + - name: Test wheels (Windows 64-bit only) + if: ${{ matrix.buildplat[1] == 'win_amd64' }} + shell: bash -el {0} + run: | + TST_CMD="import pandas as pd; \ + pd.test(extra_args=['-m not clipboard and not single_cpu and not slow and not network and not db', '-n 2']); \ + pd.test(extra_args=['-m not clipboard and single_cpu and not slow and not network and not db'])" + docker pull python:${{ matrix.python[1] }}-windowsservercore + docker run -v ./wheelhouse:/home/pandas python:${{ matrix.python[1] }}-windowsservercore powershell \ + "pip install hypothesis>=6.46.1 pytest>=7.0.0 pytest-xdist>=2.2.0 pytest-asyncio>=0.17; \ + pip install --find-links=pandas --no-index pandas; \ + python -c '$TST_CMD'" - uses: actions/upload-artifact@v3 with: From 7b252f6ce4cbe2760ea4037db0e1ae45769604e9 Mon Sep 17 00:00:00 2001 From: Matthew Roeschke <10647082+mroeschke@users.noreply.github.com> Date: Sat, 6 May 2023 20:04:21 -0700 Subject: [PATCH 26/65] for loop validate, try to fix -v --- .github/workflows/wheels.yml | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/.github/workflows/wheels.yml b/.github/workflows/wheels.yml index 957f528a3a928..99cc003b6aa12 100644 --- a/.github/workflows/wheels.yml +++ b/.github/workflows/wheels.yml @@ -144,7 +144,7 @@ jobs: - name: Validate wheel RECORD shell: bash -el {0} - run: wheel unpack wheelhouse/$(ls wheelhouse) -d /tmp + run: for whl in $(ls wheelhouse); do wheel unpack wheelhouse/$whl -d /tmp; done # - name: Test wheels (Windows 64-bit only) # if: ${{ matrix.buildplat[1] == 'win_amd64' }} @@ -159,7 +159,7 @@ jobs: pd.test(extra_args=['-m not clipboard and not single_cpu and not slow and not network and not db', '-n 2']); \ pd.test(extra_args=['-m not clipboard and single_cpu and not slow and not network and not db'])" docker pull python:${{ matrix.python[1] }}-windowsservercore - docker run -v ./wheelhouse:/home/pandas python:${{ matrix.python[1] }}-windowsservercore powershell \ + docker run -v ./wheelhouse:c:\pandas python:${{ matrix.python[1] }}-windowsservercore powershell \ "pip install hypothesis>=6.46.1 pytest>=7.0.0 pytest-xdist>=2.2.0 pytest-asyncio>=0.17; \ pip install --find-links=pandas --no-index pandas; \ python -c '$TST_CMD'" From 530774aefd6686df6b50406a07a9d6a26cc0a774 Mon Sep 17 00:00:00 2001 From: Matthew Roeschke <10647082+mroeschke@users.noreply.github.com> Date: Sat, 6 May 2023 20:04:44 -0700 Subject: [PATCH 27/65] for loop validate, try to fix -v --- .github/workflows/wheels.yml | 7 ------- 1 file changed, 7 deletions(-) diff --git a/.github/workflows/wheels.yml b/.github/workflows/wheels.yml index 99cc003b6aa12..3340e149c8f95 100644 --- a/.github/workflows/wheels.yml +++ b/.github/workflows/wheels.yml @@ -135,13 +135,6 @@ jobs: cache-downloads: true cache-env: true - - name: Check wheel - if: ${{ matrix.buildplat[1] == 'macosx_*' }} - shell: bash -el {0} - run: | - ls wheelhouse - wheel unpack "wheelhouse/$(ls wheelhouse)" -d /tmp - - name: Validate wheel RECORD shell: bash -el {0} run: for whl in $(ls wheelhouse); do wheel unpack wheelhouse/$whl -d /tmp; done From e473b840a1f1e6b615d169612bd78b6ca422d5e1 Mon Sep 17 00:00:00 2001 From: Matthew Roeschke <10647082+mroeschke@users.noreply.github.com> Date: Sat, 6 May 2023 20:50:09 -0700 Subject: [PATCH 28/65] Fix path --- .github/workflows/wheels.yml | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/.github/workflows/wheels.yml b/.github/workflows/wheels.yml index 3340e149c8f95..f3c693af1b1e4 100644 --- a/.github/workflows/wheels.yml +++ b/.github/workflows/wheels.yml @@ -152,7 +152,7 @@ jobs: pd.test(extra_args=['-m not clipboard and not single_cpu and not slow and not network and not db', '-n 2']); \ pd.test(extra_args=['-m not clipboard and single_cpu and not slow and not network and not db'])" docker pull python:${{ matrix.python[1] }}-windowsservercore - docker run -v ./wheelhouse:c:\pandas python:${{ matrix.python[1] }}-windowsservercore powershell \ + docker run -v ./wheelhouse:/pandas python:${{ matrix.python[1] }}-windowsservercore powershell \ "pip install hypothesis>=6.46.1 pytest>=7.0.0 pytest-xdist>=2.2.0 pytest-asyncio>=0.17; \ pip install --find-links=pandas --no-index pandas; \ python -c '$TST_CMD'" From 9fe2bfa5882598793a914b8f2c401a7b61918de3 Mon Sep 17 00:00:00 2001 From: Matthew Roeschke <10647082+mroeschke@users.noreply.github.com> Date: Sat, 6 May 2023 21:09:17 -0700 Subject: [PATCH 29/65] Try pwd --- .github/workflows/wheels.yml | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/.github/workflows/wheels.yml b/.github/workflows/wheels.yml index f3c693af1b1e4..d8a4ab7358d0a 100644 --- a/.github/workflows/wheels.yml +++ b/.github/workflows/wheels.yml @@ -152,9 +152,9 @@ jobs: pd.test(extra_args=['-m not clipboard and not single_cpu and not slow and not network and not db', '-n 2']); \ pd.test(extra_args=['-m not clipboard and single_cpu and not slow and not network and not db'])" docker pull python:${{ matrix.python[1] }}-windowsservercore - docker run -v ./wheelhouse:/pandas python:${{ matrix.python[1] }}-windowsservercore powershell \ + docker run -v $(pwd):/pandas python:${{ matrix.python[1] }}-windowsservercore powershell \ "pip install hypothesis>=6.46.1 pytest>=7.0.0 pytest-xdist>=2.2.0 pytest-asyncio>=0.17; \ - pip install --find-links=pandas --no-index pandas; \ + pip install --find-links=pandas/wheelhouse --no-index pandas; \ python -c '$TST_CMD'" - uses: actions/upload-artifact@v3 From 4c3e200e9a556db8f8bbd19a2dfee9734b923541 Mon Sep 17 00:00:00 2001 From: Matthew Roeschke <10647082+mroeschke@users.noreply.github.com> Date: Sat, 6 May 2023 21:33:38 -0700 Subject: [PATCH 30/65] To root? --- .github/workflows/wheels.yml | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/.github/workflows/wheels.yml b/.github/workflows/wheels.yml index d8a4ab7358d0a..d9d186ef51f61 100644 --- a/.github/workflows/wheels.yml +++ b/.github/workflows/wheels.yml @@ -152,7 +152,7 @@ jobs: pd.test(extra_args=['-m not clipboard and not single_cpu and not slow and not network and not db', '-n 2']); \ pd.test(extra_args=['-m not clipboard and single_cpu and not slow and not network and not db'])" docker pull python:${{ matrix.python[1] }}-windowsservercore - docker run -v $(pwd):/pandas python:${{ matrix.python[1] }}-windowsservercore powershell \ + docker run -v $(pwd):~/pandas python:${{ matrix.python[1] }}-windowsservercore powershell \ "pip install hypothesis>=6.46.1 pytest>=7.0.0 pytest-xdist>=2.2.0 pytest-asyncio>=0.17; \ pip install --find-links=pandas/wheelhouse --no-index pandas; \ python -c '$TST_CMD'" From 42a90abb2686231ba1958281599e894169904296 Mon Sep 17 00:00:00 2001 From: Matthew Roeschke <10647082+mroeschke@users.noreply.github.com> Date: Sat, 6 May 2023 22:02:53 -0700 Subject: [PATCH 31/65] Use another bash? --- .github/workflows/wheels.yml | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/.github/workflows/wheels.yml b/.github/workflows/wheels.yml index d9d186ef51f61..397d2c5d0b40e 100644 --- a/.github/workflows/wheels.yml +++ b/.github/workflows/wheels.yml @@ -146,13 +146,13 @@ jobs: - name: Test wheels (Windows 64-bit only) if: ${{ matrix.buildplat[1] == 'win_amd64' }} - shell: bash -el {0} + shell: C:\msys64\usr\bin\bash.exe --login '{0}' run: | TST_CMD="import pandas as pd; \ pd.test(extra_args=['-m not clipboard and not single_cpu and not slow and not network and not db', '-n 2']); \ pd.test(extra_args=['-m not clipboard and single_cpu and not slow and not network and not db'])" docker pull python:${{ matrix.python[1] }}-windowsservercore - docker run -v $(pwd):~/pandas python:${{ matrix.python[1] }}-windowsservercore powershell \ + docker run -v $(pwd):/pandas python:${{ matrix.python[1] }}-windowsservercore powershell \ "pip install hypothesis>=6.46.1 pytest>=7.0.0 pytest-xdist>=2.2.0 pytest-asyncio>=0.17; \ pip install --find-links=pandas/wheelhouse --no-index pandas; \ python -c '$TST_CMD'" From 637b7e8eb52798f274b1265f42e8b0214e1cb763 Mon Sep 17 00:00:00 2001 From: Matthew Roeschke <10647082+mroeschke@users.noreply.github.com> Date: Sat, 6 May 2023 22:32:12 -0700 Subject: [PATCH 32/65] try MSYS_NO_PATHCONV --- .github/workflows/wheels.yml | 4 +++- 1 file changed, 3 insertions(+), 1 deletion(-) diff --git a/.github/workflows/wheels.yml b/.github/workflows/wheels.yml index 397d2c5d0b40e..5256473d5cf69 100644 --- a/.github/workflows/wheels.yml +++ b/.github/workflows/wheels.yml @@ -146,7 +146,9 @@ jobs: - name: Test wheels (Windows 64-bit only) if: ${{ matrix.buildplat[1] == 'win_amd64' }} - shell: C:\msys64\usr\bin\bash.exe --login '{0}' + shell: bash + env: + MSYS_NO_PATHCONV: 1 run: | TST_CMD="import pandas as pd; \ pd.test(extra_args=['-m not clipboard and not single_cpu and not slow and not network and not db', '-n 2']); \ From 0403f691569dc7287b6ad0ff8aa8fcb404b394e2 Mon Sep 17 00:00:00 2001 From: Matthew Roeschke <10647082+mroeschke@users.noreply.github.com> Date: Sun, 7 May 2023 11:04:07 -0700 Subject: [PATCH 33/65] Add backslash --- .github/workflows/wheels.yml | 4 +--- 1 file changed, 1 insertion(+), 3 deletions(-) diff --git a/.github/workflows/wheels.yml b/.github/workflows/wheels.yml index 5256473d5cf69..24c39ec0d378b 100644 --- a/.github/workflows/wheels.yml +++ b/.github/workflows/wheels.yml @@ -147,14 +147,12 @@ jobs: - name: Test wheels (Windows 64-bit only) if: ${{ matrix.buildplat[1] == 'win_amd64' }} shell: bash - env: - MSYS_NO_PATHCONV: 1 run: | TST_CMD="import pandas as pd; \ pd.test(extra_args=['-m not clipboard and not single_cpu and not slow and not network and not db', '-n 2']); \ pd.test(extra_args=['-m not clipboard and single_cpu and not slow and not network and not db'])" docker pull python:${{ matrix.python[1] }}-windowsservercore - docker run -v $(pwd):/pandas python:${{ matrix.python[1] }}-windowsservercore powershell \ + docker run -v /$(pwd)/:/pandas python:${{ matrix.python[1] }}-windowsservercore powershell \ "pip install hypothesis>=6.46.1 pytest>=7.0.0 pytest-xdist>=2.2.0 pytest-asyncio>=0.17; \ pip install --find-links=pandas/wheelhouse --no-index pandas; \ python -c '$TST_CMD'" From 3ae62a2c8762f100dd79ac3642394e9dc82a6b1e Mon Sep 17 00:00:00 2001 From: Matthew Roeschke <10647082+mroeschke@users.noreply.github.com> Date: Sun, 7 May 2023 11:29:21 -0700 Subject: [PATCH 34/65] Remove a slash --- .github/workflows/wheels.yml | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/.github/workflows/wheels.yml b/.github/workflows/wheels.yml index 24c39ec0d378b..e1a0d58d68719 100644 --- a/.github/workflows/wheels.yml +++ b/.github/workflows/wheels.yml @@ -152,7 +152,7 @@ jobs: pd.test(extra_args=['-m not clipboard and not single_cpu and not slow and not network and not db', '-n 2']); \ pd.test(extra_args=['-m not clipboard and single_cpu and not slow and not network and not db'])" docker pull python:${{ matrix.python[1] }}-windowsservercore - docker run -v /$(pwd)/:/pandas python:${{ matrix.python[1] }}-windowsservercore powershell \ + docker run -v /$(pwd):/pandas python:${{ matrix.python[1] }}-windowsservercore powershell \ "pip install hypothesis>=6.46.1 pytest>=7.0.0 pytest-xdist>=2.2.0 pytest-asyncio>=0.17; \ pip install --find-links=pandas/wheelhouse --no-index pandas; \ python -c '$TST_CMD'" From ce16918bfacfcb2d812aaffbd602c3301674e208 Mon Sep 17 00:00:00 2001 From: Matthew Roeschke <10647082+mroeschke@users.noreply.github.com> Date: Mon, 8 May 2023 11:24:16 -0700 Subject: [PATCH 35/65] Use powershell --- .github/workflows/wheels.yml | 15 +++++++-------- 1 file changed, 7 insertions(+), 8 deletions(-) diff --git a/.github/workflows/wheels.yml b/.github/workflows/wheels.yml index e4bb38379b99c..cf0b6ed7b89f1 100644 --- a/.github/workflows/wheels.yml +++ b/.github/workflows/wheels.yml @@ -146,16 +146,15 @@ jobs: - name: Test wheels (Windows 64-bit only) if: ${{ matrix.buildplat[1] == 'win_amd64' }} - shell: bash + shell: pwsh run: | - TST_CMD="import pandas as pd; \ - pd.test(extra_args=['-m not clipboard and not single_cpu and not slow and not network and not db', '-n 2']); \ - pd.test(extra_args=['-m not clipboard and single_cpu and not slow and not network and not db'])" docker pull python:${{ matrix.python[1] }}-windowsservercore - docker run -v /$(pwd):/pandas python:${{ matrix.python[1] }}-windowsservercore powershell \ - "pip install hypothesis>=6.46.1 pytest>=7.0.0 pytest-xdist>=2.2.0 pytest-asyncio>=0.17; \ - pip install --find-links=pandas/wheelhouse --no-index pandas; \ - python -c '$TST_CMD'" + docker run python:${{ matrix.python[1] }}-windowsservercore python -m ` + pip install hypothesis>=6.46.1 pytest>=7.0.0 pytest-xdist>=2.2.0 pytest-asyncio>=0.17 + docker commit ${docker ps -lq} test_deps + docker run -v ${PWD}:C:\pandas test_deps python -m pip install --find-links=pandas/wheelhouse --no-index pandas + docker commit ${docker ps -lq} test_pandas + docker run test_pandas python -c 'import pandas as pd; pd.test(extra_args=[''-m not clipboard and not single_cpu and not slow and not network and not db'', ''-n 2'']); pd.test(extra_args=[''-m not clipboard and single_cpu and not slow and not network and not db''])' - uses: actions/upload-artifact@v3 with: From 4f33918a25f4246e4efb699716df89f6734ee294 Mon Sep 17 00:00:00 2001 From: Matthew Roeschke <10647082+mroeschke@users.noreply.github.com> Date: Mon, 8 May 2023 11:50:57 -0700 Subject: [PATCH 36/65] Use variable --- .github/workflows/wheels.yml | 6 ++++-- 1 file changed, 4 insertions(+), 2 deletions(-) diff --git a/.github/workflows/wheels.yml b/.github/workflows/wheels.yml index cf0b6ed7b89f1..05baf6223e45d 100644 --- a/.github/workflows/wheels.yml +++ b/.github/workflows/wheels.yml @@ -151,9 +151,11 @@ jobs: docker pull python:${{ matrix.python[1] }}-windowsservercore docker run python:${{ matrix.python[1] }}-windowsservercore python -m ` pip install hypothesis>=6.46.1 pytest>=7.0.0 pytest-xdist>=2.2.0 pytest-asyncio>=0.17 - docker commit ${docker ps -lq} test_deps + $LAST_DEPS_ID = docker ps -lq + docker commit $LAST_ID test_deps docker run -v ${PWD}:C:\pandas test_deps python -m pip install --find-links=pandas/wheelhouse --no-index pandas - docker commit ${docker ps -lq} test_pandas + $LAST_PANDAS_ID = docker ps -lq + docker commit $LAST_PANDAS_ID test_pandas docker run test_pandas python -c 'import pandas as pd; pd.test(extra_args=[''-m not clipboard and not single_cpu and not slow and not network and not db'', ''-n 2'']); pd.test(extra_args=[''-m not clipboard and single_cpu and not slow and not network and not db''])' - uses: actions/upload-artifact@v3 From 1a24871e565bc4e13715374b70e96ff59fdee927 Mon Sep 17 00:00:00 2001 From: Matthew Roeschke <10647082+mroeschke@users.noreply.github.com> Date: Mon, 8 May 2023 14:00:14 -0700 Subject: [PATCH 37/65] Typo --- .github/workflows/wheels.yml | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/.github/workflows/wheels.yml b/.github/workflows/wheels.yml index 05baf6223e45d..bedb3221a4876 100644 --- a/.github/workflows/wheels.yml +++ b/.github/workflows/wheels.yml @@ -152,8 +152,8 @@ jobs: docker run python:${{ matrix.python[1] }}-windowsservercore python -m ` pip install hypothesis>=6.46.1 pytest>=7.0.0 pytest-xdist>=2.2.0 pytest-asyncio>=0.17 $LAST_DEPS_ID = docker ps -lq - docker commit $LAST_ID test_deps - docker run -v ${PWD}:C:\pandas test_deps python -m pip install --find-links=pandas/wheelhouse --no-index pandas + docker commit $LAST_DEPS_ID test_deps + docker run -v ${PWD}:C:\pandas test_deps python -m pip install --find-links=pandas\wheelhouse --no-index pandas $LAST_PANDAS_ID = docker ps -lq docker commit $LAST_PANDAS_ID test_pandas docker run test_pandas python -c 'import pandas as pd; pd.test(extra_args=[''-m not clipboard and not single_cpu and not slow and not network and not db'', ''-n 2'']); pd.test(extra_args=[''-m not clipboard and single_cpu and not slow and not network and not db''])' From 96a537b605c9126a03b42caaba57331cd3f472f6 Mon Sep 17 00:00:00 2001 From: Matthew Roeschke <10647082+mroeschke@users.noreply.github.com> Date: Mon, 8 May 2023 14:18:15 -0700 Subject: [PATCH 38/65] Add other deps --- .github/workflows/wheels.yml | 3 ++- 1 file changed, 2 insertions(+), 1 deletion(-) diff --git a/.github/workflows/wheels.yml b/.github/workflows/wheels.yml index bedb3221a4876..f587d5769266d 100644 --- a/.github/workflows/wheels.yml +++ b/.github/workflows/wheels.yml @@ -150,7 +150,8 @@ jobs: run: | docker pull python:${{ matrix.python[1] }}-windowsservercore docker run python:${{ matrix.python[1] }}-windowsservercore python -m ` - pip install hypothesis>=6.46.1 pytest>=7.0.0 pytest-xdist>=2.2.0 pytest-asyncio>=0.17 + pip install pytz six numpy python-dateutil tzdata>=2022.1 ` + hypothesis>=6.46.1 pytest>=7.0.0 pytest-xdist>=2.2.0 pytest-asyncio>=0.17 $LAST_DEPS_ID = docker ps -lq docker commit $LAST_DEPS_ID test_deps docker run -v ${PWD}:C:\pandas test_deps python -m pip install --find-links=pandas\wheelhouse --no-index pandas From 01260cd3301552a5ee9947fabf5b6a98f2795e6e Mon Sep 17 00:00:00 2001 From: Matthew Roeschke <10647082+mroeschke@users.noreply.github.com> Date: Mon, 8 May 2023 15:33:29 -0700 Subject: [PATCH 39/65] Final cleanups --- .github/workflows/wheels.yml | 25 ++++++--------- ci/fix_wheels.py | 61 ------------------------------------ ci/test_wheels.py | 61 ------------------------------------ ci/test_wheels_windows.bat | 9 ------ pyproject.toml | 4 +-- 5 files changed, 10 insertions(+), 150 deletions(-) delete mode 100644 ci/fix_wheels.py delete mode 100644 ci/test_wheels.py delete mode 100644 ci/test_wheels_windows.bat diff --git a/.github/workflows/wheels.yml b/.github/workflows/wheels.yml index f587d5769266d..9c3075661bdcb 100644 --- a/.github/workflows/wheels.yml +++ b/.github/workflows/wheels.yml @@ -83,17 +83,16 @@ jobs: (github.event_name == 'push' && startsWith(github.ref, 'refs/tags/v') && ( ! endsWith(github.ref, 'dev0'))) runs-on: ${{ matrix.buildplat[0] }} strategy: - # Ensure that a wheel builder finishes even if another fails fail-fast: false matrix: # GitHub Actions doesn't support pairing matrix values together, let's improvise # https://github.com/github/feedback/discussions/7835#discussioncomment-1769026 buildplat: - - [ubuntu-20.04, manylinux_x86_64] - - [ubuntu-20.04, musllinux_x86_64] - - [macos-11, macosx_*] - - [windows-2019, win_amd64] - - [windows-2019, win32] + - [ubuntu-22.04, manylinux_x86_64] + - [ubuntu-22.04, musllinux_x86_64] + - [macos-12, macosx_*] + - [windows-2022, win_amd64] + - [windows-2022, win32] # TODO: support PyPy? python: [["cp39", "3.9"], ["cp310", "3.10"], ["cp311", "3.11"]] env: @@ -118,10 +117,6 @@ jobs: env: CIBW_BUILD: ${{ matrix.python[0] }}-${{ matrix.buildplat[1] }} - # Used to test(Windows-only) and push the built wheels - # You might need to use setup-python separately - # if the new Python-dev version - # is unavailable on conda-forge. - name: Set up Python uses: mamba-org/provision-with-micromamba@v15 with: @@ -139,11 +134,7 @@ jobs: shell: bash -el {0} run: for whl in $(ls wheelhouse); do wheel unpack wheelhouse/$whl -d /tmp; done -# - name: Test wheels (Windows 64-bit only) -# if: ${{ matrix.buildplat[1] == 'win_amd64' }} -# shell: cmd /C CALL {0} -# run: python ci/test_wheels.py wheelhouse - + # Testing on windowsservercore instead of GHA runner to fail on missing DLLs - name: Test wheels (Windows 64-bit only) if: ${{ matrix.buildplat[1] == 'win_amd64' }} shell: pwsh @@ -157,7 +148,9 @@ jobs: docker run -v ${PWD}:C:\pandas test_deps python -m pip install --find-links=pandas\wheelhouse --no-index pandas $LAST_PANDAS_ID = docker ps -lq docker commit $LAST_PANDAS_ID test_pandas - docker run test_pandas python -c 'import pandas as pd; pd.test(extra_args=[''-m not clipboard and not single_cpu and not slow and not network and not db'', ''-n 2'']); pd.test(extra_args=[''-m not clipboard and single_cpu and not slow and not network and not db''])' + docker run test_pandas python -c 'import pandas as pd; ` + pd.test(extra_args=[''-m not clipboard and not single_cpu and not slow and not network and not db'', ''-n 2'']); ` + pd.test(extra_args=[''-m not clipboard and single_cpu and not slow and not network and not db''])' - uses: actions/upload-artifact@v3 with: diff --git a/ci/fix_wheels.py b/ci/fix_wheels.py deleted file mode 100644 index 76b70fdde9ea0..0000000000000 --- a/ci/fix_wheels.py +++ /dev/null @@ -1,61 +0,0 @@ -""" -This file "repairs" our Windows wheels by copying the necessary DLLs for pandas to run -on a barebones Windows installation() into the wheel. - -NOTE: The paths for the DLLs are hard-coded to the location of the Visual Studio -redistributables -""" -import os -import shutil -import subprocess -from subprocess import CalledProcessError -import sys -import zipfile - -try: - if len(sys.argv) != 3: - raise ValueError( - "User must pass the path to the wheel and the destination directory." - ) - wheel_path = sys.argv[1] - dest_dir = sys.argv[2] - # Figure out whether we are building on 32 or 64 bit python - is_32 = sys.maxsize <= 2**32 - PYTHON_ARCH = "x86" if is_32 else "x64" -except ValueError: - # Too many/little values to unpack - raise ValueError( - "User must pass the path to the wheel and the destination directory." - ) -if not os.path.isdir(dest_dir): - print(f"Created directory {dest_dir}") - os.mkdir(dest_dir) - -wheel_name = os.path.basename(wheel_path) -success = True - -try: - # Use the wheel CLI for zipping up the wheel since the CLI will - # take care of rebuilding the hashes found in the record file - tmp_dir = os.path.join(dest_dir, "tmp") - with zipfile.ZipFile(wheel_path, "r") as f: - # Extracting all the members of the zip - # into a specific location. - f.extractall(path=tmp_dir) - base_redist_dir = ( - f"C:/Program Files (x86)/Microsoft Visual Studio/2019/" - f"Enterprise/VC/Redist/MSVC/14.29.30133/{PYTHON_ARCH}/" - f"Microsoft.VC142.CRT/" - ) - required_dlls = ["msvcp140.dll", "concrt140.dll"] - if not is_32: - required_dlls += ["vcruntime140_1.dll"] - dest_dll_dir = os.path.join(tmp_dir, "pandas/_libs/window") - for dll in required_dlls: - src = os.path.join(base_redist_dir, dll) - shutil.copy(src, dest_dll_dir) - subprocess.run(["wheel", "pack", tmp_dir, "-d", dest_dir], check=True) -except CalledProcessError: - print("Failed to add DLLS to wheel.") - sys.exit(1) -print("Successfully repaired wheel") diff --git a/ci/test_wheels.py b/ci/test_wheels.py deleted file mode 100644 index fbeba16b172c8..0000000000000 --- a/ci/test_wheels.py +++ /dev/null @@ -1,61 +0,0 @@ -import glob -import os -import shutil -import subprocess -import sys - -if os.name == "nt": - py_ver = f"{sys.version_info.major}.{sys.version_info.minor}" - is_32_bit = os.getenv("IS_32_BIT") == "true" - try: - wheel_dir = sys.argv[1] - wheel_path = glob.glob(f"{wheel_dir}/*.whl")[0] - except IndexError: - # Not passed - wheel_path = None - print(f"IS_32_BIT is {is_32_bit}") - print(f"Path to built wheel is {wheel_path}") - - # print("Verifying file hashes in wheel RECORD file") - # try: - # tmp_dir = "tmp" - # subprocess.run(["wheel", "unpack", wheel_path, "-d", tmp_dir], check=True) - # except CalledProcessError: - # print("wheel RECORD file hash verification failed.") - # sys.exit(1) - # finally: - # shutil.rmtree(tmp_dir) - - if is_32_bit: - sys.exit(0) # No way to test Windows 32-bit(no docker image) - if wheel_path is None: - raise ValueError("Wheel path must be passed in if on 64-bit Windows") - print(f"Pulling docker image to test Windows 64-bit Python {py_ver}") - subprocess.run(f"docker pull python:{py_ver}-windowsservercore", check=True) - pandas_base_dir = os.path.abspath(os.path.join(os.path.dirname(__file__), "..")) - print(f"pandas project dir is {pandas_base_dir}") - dist_dir = os.path.join(pandas_base_dir, "dist") - print(f"Copying wheel into pandas_base_dir/dist ({dist_dir})") - # os.mkdir(dist_dir) - shutil.copy(wheel_path, dist_dir) - print(os.listdir(dist_dir)) - subprocess.run( - rf"docker run -v %cd%:c:\pandas " - f"python:{py_ver}-windowsservercore /pandas/ci/test_wheels_windows.bat", - check=True, - shell=True, - cwd=pandas_base_dir, - ) -else: - import pandas as pd - - multi_args = [ - "-m not clipboard and not single_cpu and not slow and not network and not db", - "-n 2", - ] - pd.test(extra_args=multi_args) - pd.test( - extra_args=[ - "-m not clipboard and single_cpu and not slow and not network and not db", - ] - ) diff --git a/ci/test_wheels_windows.bat b/ci/test_wheels_windows.bat deleted file mode 100644 index 9864446d71137..0000000000000 --- a/ci/test_wheels_windows.bat +++ /dev/null @@ -1,9 +0,0 @@ -set test_command=import pandas as pd; print(pd.__version__); ^ -pd.test(extra_args=['-m not clipboard and not single_cpu and not slow and not network and not db', '-n 2']); ^ -pd.test(extra_args=['-m not clipboard and single_cpu and not slow and not network and not db']) - -python --version -pip install pytz six numpy python-dateutil tzdata>=2022.1 -pip install hypothesis>=6.46.1 pytest>=7.0.0 pytest-xdist>=2.2.0 pytest-asyncio>=0.17 -pip install --find-links=pandas/dist --no-index pandas -python -c "%test_command%" diff --git a/pyproject.toml b/pyproject.toml index 96bbcb5bdd29b..591cd29681a52 100644 --- a/pyproject.toml +++ b/pyproject.toml @@ -141,7 +141,6 @@ parentdir_prefix = "pandas-" skip = "cp36-* cp37-* cp38-* pp* *_i686 *_ppc64le *_s390x *-musllinux_aarch64" build-verbosity = "3" environment = {LDFLAGS="-Wl,--strip-all"} -# Also checks hashes & file sizes match RECORD test-requires = "hypothesis>=6.46.1 pytest>=7.0.0 pytest-xdist>=2.2.0 pytest-asyncio>=0.17" test-command = """ python -c 'import pandas as pd; \ @@ -164,7 +163,7 @@ before-test = "apk update && apk add musl-locales" [[tool.cibuildwheel.overrides]] select = "*-win*" # We test separately for Windows, since we use -# the base windows docker image to check if any dlls are +# the windowsservercore docker image to check if any dlls are # missing from the wheel test-command = "" @@ -177,7 +176,6 @@ environment = {CFLAGS="-g0"} [[tool.cibuildwheel.overrides]] select = "*-win32" -environment = {IS_32_BIT="true"} [tool.black] target-version = ['py39', 'py310'] From 72887fb9be36168517c477f6acfb940e352d6d6f Mon Sep 17 00:00:00 2001 From: Matthew Roeschke <10647082+mroeschke@users.noreply.github.com> Date: Mon, 8 May 2023 15:39:41 -0700 Subject: [PATCH 40/65] Remove unecessary select --- pyproject.toml | 3 --- 1 file changed, 3 deletions(-) diff --git a/pyproject.toml b/pyproject.toml index 591cd29681a52..19ae267dd0757 100644 --- a/pyproject.toml +++ b/pyproject.toml @@ -174,9 +174,6 @@ test-command = "" select = "*-macosx*" environment = {CFLAGS="-g0"} -[[tool.cibuildwheel.overrides]] -select = "*-win32" - [tool.black] target-version = ['py39', 'py310'] required-version = '23.3.0' From 2bef56476d5193a6af904f6c58f6f90bae214b70 Mon Sep 17 00:00:00 2001 From: Matthew Roeschke <10647082+mroeschke@users.noreply.github.com> Date: Mon, 8 May 2023 16:30:07 -0700 Subject: [PATCH 41/65] Try no --- .github/workflows/wheels.yml | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/.github/workflows/wheels.yml b/.github/workflows/wheels.yml index 9c3075661bdcb..5afc59300aadd 100644 --- a/.github/workflows/wheels.yml +++ b/.github/workflows/wheels.yml @@ -148,8 +148,8 @@ jobs: docker run -v ${PWD}:C:\pandas test_deps python -m pip install --find-links=pandas\wheelhouse --no-index pandas $LAST_PANDAS_ID = docker ps -lq docker commit $LAST_PANDAS_ID test_pandas - docker run test_pandas python -c 'import pandas as pd; ` - pd.test(extra_args=[''-m not clipboard and not single_cpu and not slow and not network and not db'', ''-n 2'']); ` + docker run test_pandas python -c 'import pandas as pd; + pd.test(extra_args=[''-m not clipboard and not single_cpu and not slow and not network and not db'', ''-n 2'']); pd.test(extra_args=[''-m not clipboard and single_cpu and not slow and not network and not db''])' - uses: actions/upload-artifact@v3 From e96c00fa979a4ba1caec4115e7777247f1e5797d Mon Sep 17 00:00:00 2001 From: Matthew Roeschke <10647082+mroeschke@users.noreply.github.com> Date: Mon, 8 May 2023 17:50:18 -0700 Subject: [PATCH 42/65] Make multiline comment --- .github/workflows/wheels.yml | 9 ++++++--- 1 file changed, 6 insertions(+), 3 deletions(-) diff --git a/.github/workflows/wheels.yml b/.github/workflows/wheels.yml index 5afc59300aadd..3a20dd0f5a49c 100644 --- a/.github/workflows/wheels.yml +++ b/.github/workflows/wheels.yml @@ -148,9 +148,12 @@ jobs: docker run -v ${PWD}:C:\pandas test_deps python -m pip install --find-links=pandas\wheelhouse --no-index pandas $LAST_PANDAS_ID = docker ps -lq docker commit $LAST_PANDAS_ID test_pandas - docker run test_pandas python -c 'import pandas as pd; - pd.test(extra_args=[''-m not clipboard and not single_cpu and not slow and not network and not db'', ''-n 2'']); - pd.test(extra_args=[''-m not clipboard and single_cpu and not slow and not network and not db''])' + $TEST_CMD = @' + import pandas as pd; + pd.test(extra_args=[''-m not clipboard and not single_cpu and not slow and not network and not db'', ''-n 2'']); + pd.test(extra_args=[''-m not clipboard and single_cpu and not slow and not network and not db''])' + '@ + docker run test_pandas python -c $TEST_CMD - uses: actions/upload-artifact@v3 with: From 38f438cca6c9a200bd9389d0cfbf02f3117440a2 Mon Sep 17 00:00:00 2001 From: Matthew Roeschke <10647082+mroeschke@users.noreply.github.com> Date: Mon, 8 May 2023 17:51:37 -0700 Subject: [PATCH 43/65] Put pack repo owner --- .github/workflows/wheels.yml | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/.github/workflows/wheels.yml b/.github/workflows/wheels.yml index 3a20dd0f5a49c..f5239d680a405 100644 --- a/.github/workflows/wheels.yml +++ b/.github/workflows/wheels.yml @@ -35,7 +35,7 @@ jobs: build_sdist: name: Build sdist if: >- - github.event_name == 'schedule' || + (github.event_name == 'schedule' && github.repository_owner == 'pandas-dev') || github.event_name == 'workflow_dispatch' || (github.event_name == 'pull_request' && contains(github.event.pull_request.labels.*.name, 'Build')) || From 163a92919a7941a7a1644adc8dfb24edac21f132 Mon Sep 17 00:00:00 2001 From: Matthew Roeschke <10647082+mroeschke@users.noreply.github.com> Date: Tue, 9 May 2023 11:16:08 -0700 Subject: [PATCH 44/65] Try single --- .github/workflows/wheels.yml | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/.github/workflows/wheels.yml b/.github/workflows/wheels.yml index 637e47784ef42..2a1d480807e7c 100644 --- a/.github/workflows/wheels.yml +++ b/.github/workflows/wheels.yml @@ -149,8 +149,8 @@ jobs: docker commit $LAST_PANDAS_ID test_pandas $TEST_CMD = @' import pandas as pd; - pd.test(extra_args=[''-m not clipboard and not single_cpu and not slow and not network and not db'', ''-n 2'']); - pd.test(extra_args=[''-m not clipboard and single_cpu and not slow and not network and not db''])' + pd.test(extra_args=['-m not clipboard and not single_cpu and not slow and not network and not db', '-n 2']); + pd.test(extra_args=['-m not clipboard and single_cpu and not slow and not network and not db']) '@ docker run test_pandas python -c $TEST_CMD From 3db474e6f446c3f28c6be9b33719947d537a2227 Mon Sep 17 00:00:00 2001 From: Matthew Roeschke <10647082+mroeschke@users.noreply.github.com> Date: Tue, 9 May 2023 12:09:01 -0700 Subject: [PATCH 45/65] clean step title --- .github/workflows/wheels.yml | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/.github/workflows/wheels.yml b/.github/workflows/wheels.yml index 2a1d480807e7c..1ca3b8535fa65 100644 --- a/.github/workflows/wheels.yml +++ b/.github/workflows/wheels.yml @@ -134,7 +134,7 @@ jobs: run: for whl in $(ls wheelhouse); do wheel unpack wheelhouse/$whl -d /tmp; done # Testing on windowsservercore instead of GHA runner to fail on missing DLLs - - name: Test wheels (Windows 64-bit only) + - name: Test Windows Wheels if: ${{ matrix.buildplat[1] == 'win_amd64' }} shell: pwsh run: | From 3971c67d4b9b632082b70687e903b8008951c423 Mon Sep 17 00:00:00 2001 From: Matthew Roeschke <10647082+mroeschke@users.noreply.github.com> Date: Fri, 12 May 2023 10:34:18 -0700 Subject: [PATCH 46/65] Update to setup micromaba --- .github/workflows/wheels.yml | 8 +++----- 1 file changed, 3 insertions(+), 5 deletions(-) diff --git a/.github/workflows/wheels.yml b/.github/workflows/wheels.yml index 1ca3b8535fa65..7f53170e39948 100644 --- a/.github/workflows/wheels.yml +++ b/.github/workflows/wheels.yml @@ -117,17 +117,15 @@ jobs: CIBW_BUILD: ${{ matrix.python[0] }}-${{ matrix.buildplat[1] }} - name: Set up Python - uses: mamba-org/provision-with-micromamba@v15 + uses: mamba-org/setup-micromamba@v1 with: - environment-file: false environment-name: wheel-env - extra-specs: | + extra-specs: >- python=${{ matrix.python[1] }} anaconda-client wheel - channels: conda-forge cache-downloads: true - cache-env: true + cache-environment: true - name: Validate wheel RECORD shell: bash -el {0} From 184a211796ec993399c699fe9da96d7677131dda Mon Sep 17 00:00:00 2001 From: Matthew Roeschke <10647082+mroeschke@users.noreply.github.com> Date: Fri, 12 May 2023 10:40:18 -0700 Subject: [PATCH 47/65] Use create-args --- .github/workflows/wheels.yml | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/.github/workflows/wheels.yml b/.github/workflows/wheels.yml index 7f53170e39948..d98b7bbb37202 100644 --- a/.github/workflows/wheels.yml +++ b/.github/workflows/wheels.yml @@ -120,7 +120,7 @@ jobs: uses: mamba-org/setup-micromamba@v1 with: environment-name: wheel-env - extra-specs: >- + create-args: >- python=${{ matrix.python[1] }} anaconda-client wheel From 4faf22229aa2fd0f3e6a28a2dfe4591997ab655c Mon Sep 17 00:00:00 2001 From: Matthew Roeschke <10647082+mroeschke@users.noreply.github.com> Date: Fri, 12 May 2023 10:44:11 -0700 Subject: [PATCH 48/65] Use create args --- .github/workflows/package-checks.yml | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/.github/workflows/package-checks.yml b/.github/workflows/package-checks.yml index 0f3d4fce66282..6ff3d3b0a3b98 100644 --- a/.github/workflows/package-checks.yml +++ b/.github/workflows/package-checks.yml @@ -70,7 +70,7 @@ jobs: uses: mamba-org/setup-micromamba@v1 with: environment-name: recipe-test - extra-specs: >- + create-args: >- python=${{ matrix.python-version }} boa conda-verify From 11149b6f0bcc6fb57035f781aee1fc66d3e8dc93 Mon Sep 17 00:00:00 2001 From: Matthew Roeschke <10647082+mroeschke@users.noreply.github.com> Date: Fri, 12 May 2023 11:04:35 -0700 Subject: [PATCH 49/65] Set PANDAS_CI --- .github/workflows/wheels.yml | 2 +- pyproject.toml | 2 +- 2 files changed, 2 insertions(+), 2 deletions(-) diff --git a/.github/workflows/wheels.yml b/.github/workflows/wheels.yml index d98b7bbb37202..585e38db855c1 100644 --- a/.github/workflows/wheels.yml +++ b/.github/workflows/wheels.yml @@ -150,7 +150,7 @@ jobs: pd.test(extra_args=['-m not clipboard and not single_cpu and not slow and not network and not db', '-n 2']); pd.test(extra_args=['-m not clipboard and single_cpu and not slow and not network and not db']) '@ - docker run test_pandas python -c $TEST_CMD + docker run --env PANDAS_CI='1' test_pandas python -c $TEST_CMD - uses: actions/upload-artifact@v3 with: diff --git a/pyproject.toml b/pyproject.toml index 36d9f136658f2..e14bcaa265684 100644 --- a/pyproject.toml +++ b/pyproject.toml @@ -148,7 +148,7 @@ build-verbosity = "3" environment = {LDFLAGS="-Wl,--strip-all"} test-requires = "hypothesis>=6.46.1 pytest>=7.0.0 pytest-xdist>=2.2.0 pytest-asyncio>=0.17" test-command = """ - python -c 'import pandas as pd; \ + PANDAS_CI='1' python -c 'import pandas as pd; \ pd.test(extra_args=["-m not clipboard and not single_cpu and not slow and not network and not db", "-n 2"]); \ pd.test(extra_args=["-m not clipboard and single_cpu and not slow and not network and not db"]);' \ """ From a24ff2654194bb7c729492d0a2a43ea4a7ac9140 Mon Sep 17 00:00:00 2001 From: Matthew Roeschke <10647082+mroeschke@users.noreply.github.com> Date: Mon, 22 May 2023 18:45:21 -0700 Subject: [PATCH 50/65] Try running all on powershell --- .github/workflows/wheels.yml | 22 ++++++++-------------- 1 file changed, 8 insertions(+), 14 deletions(-) diff --git a/.github/workflows/wheels.yml b/.github/workflows/wheels.yml index 585e38db855c1..e78195b41312c 100644 --- a/.github/workflows/wheels.yml +++ b/.github/workflows/wheels.yml @@ -136,21 +136,15 @@ jobs: if: ${{ matrix.buildplat[1] == 'win_amd64' }} shell: pwsh run: | - docker pull python:${{ matrix.python[1] }}-windowsservercore - docker run python:${{ matrix.python[1] }}-windowsservercore python -m ` - pip install pytz six numpy python-dateutil tzdata>=2022.1 ` - hypothesis>=6.46.1 pytest>=7.0.0 pytest-xdist>=2.2.0 pytest-asyncio>=0.17 - $LAST_DEPS_ID = docker ps -lq - docker commit $LAST_DEPS_ID test_deps - docker run -v ${PWD}:C:\pandas test_deps python -m pip install --find-links=pandas\wheelhouse --no-index pandas - $LAST_PANDAS_ID = docker ps -lq - docker commit $LAST_PANDAS_ID test_pandas - $TEST_CMD = @' - import pandas as pd; - pd.test(extra_args=['-m not clipboard and not single_cpu and not slow and not network and not db', '-n 2']); - pd.test(extra_args=['-m not clipboard and single_cpu and not slow and not network and not db']) + $TST_CMD = @' + python -m pip install pytz six numpy python-dateutil tzdata>=2022.1 hypothesis>=6.46.1 pytest>=7.0.0 pytest-xdist>=2.2.0 pytest-asyncio>=0.17 && + python -m pip install --find-links=pandas\wheelhouse --no-index pandas && + python -c 'import pandas as pd; + pd.test(extra_args=['-m not clipboard and not single_cpu and not slow and not network and not db', '-n 2']); + pd.test(extra_args=['-m not clipboard and single_cpu and not slow and not network and not db'])' '@ - docker run --env PANDAS_CI='1' test_pandas python -c $TEST_CMD + docker pull python:${{ matrix.python[1] }}-windowsservercore + docker run --env PANDAS_CI='1' -v ${PWD}:C:\pandas python:${{ matrix.python[1] }}-windowsservercore powershell -Command $TST_CMD - uses: actions/upload-artifact@v3 with: From ce6cbd5d35faad5265dba00bf4805b60317be2c8 Mon Sep 17 00:00:00 2001 From: Matthew Roeschke <10647082+mroeschke@users.noreply.github.com> Date: Tue, 23 May 2023 11:18:40 -0700 Subject: [PATCH 51/65] Use ; --- .github/workflows/wheels.yml | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/.github/workflows/wheels.yml b/.github/workflows/wheels.yml index e78195b41312c..a64e21687e48c 100644 --- a/.github/workflows/wheels.yml +++ b/.github/workflows/wheels.yml @@ -137,8 +137,8 @@ jobs: shell: pwsh run: | $TST_CMD = @' - python -m pip install pytz six numpy python-dateutil tzdata>=2022.1 hypothesis>=6.46.1 pytest>=7.0.0 pytest-xdist>=2.2.0 pytest-asyncio>=0.17 && - python -m pip install --find-links=pandas\wheelhouse --no-index pandas && + python -m pip install pytz six numpy python-dateutil tzdata>=2022.1 hypothesis>=6.46.1 pytest>=7.0.0 pytest-xdist>=2.2.0 pytest-asyncio>=0.17; + python -m pip install --find-links=pandas\wheelhouse --no-index pandas; python -c 'import pandas as pd; pd.test(extra_args=['-m not clipboard and not single_cpu and not slow and not network and not db', '-n 2']); pd.test(extra_args=['-m not clipboard and single_cpu and not slow and not network and not db'])' From bcc1bcf2bde00fa09fe28a412e8337a1df3e3727 Mon Sep 17 00:00:00 2001 From: Matthew Roeschke <10647082+mroeschke@users.noreply.github.com> Date: Tue, 23 May 2023 14:26:14 -0700 Subject: [PATCH 52/65] Try this command --- .github/workflows/wheels.yml | 5 ++--- 1 file changed, 2 insertions(+), 3 deletions(-) diff --git a/.github/workflows/wheels.yml b/.github/workflows/wheels.yml index a64e21687e48c..ce231c9e8f426 100644 --- a/.github/workflows/wheels.yml +++ b/.github/workflows/wheels.yml @@ -139,9 +139,8 @@ jobs: $TST_CMD = @' python -m pip install pytz six numpy python-dateutil tzdata>=2022.1 hypothesis>=6.46.1 pytest>=7.0.0 pytest-xdist>=2.2.0 pytest-asyncio>=0.17; python -m pip install --find-links=pandas\wheelhouse --no-index pandas; - python -c 'import pandas as pd; - pd.test(extra_args=['-m not clipboard and not single_cpu and not slow and not network and not db', '-n 2']); - pd.test(extra_args=['-m not clipboard and single_cpu and not slow and not network and not db'])' + python -c 'import pandas as pd; pd.test(extra_args=['-m not clipboard and not single_cpu and not slow and not network and not db', '-n 2'])'; + python -c 'import pandas as pd; pd.test(extra_args=['-m not clipboard and single_cpu and not slow and not network and not db'])' '@ docker pull python:${{ matrix.python[1] }}-windowsservercore docker run --env PANDAS_CI='1' -v ${PWD}:C:\pandas python:${{ matrix.python[1] }}-windowsservercore powershell -Command $TST_CMD From dfb17bb3ee4e47e808e85fcdb9ab11cdb734f7cd Mon Sep 17 00:00:00 2001 From: Matthew Roeschke <10647082+mroeschke@users.noreply.github.com> Date: Tue, 23 May 2023 16:59:24 -0700 Subject: [PATCH 53/65] Add double? --- .github/workflows/wheels.yml | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/.github/workflows/wheels.yml b/.github/workflows/wheels.yml index ce231c9e8f426..b041c05a25640 100644 --- a/.github/workflows/wheels.yml +++ b/.github/workflows/wheels.yml @@ -139,8 +139,8 @@ jobs: $TST_CMD = @' python -m pip install pytz six numpy python-dateutil tzdata>=2022.1 hypothesis>=6.46.1 pytest>=7.0.0 pytest-xdist>=2.2.0 pytest-asyncio>=0.17; python -m pip install --find-links=pandas\wheelhouse --no-index pandas; - python -c 'import pandas as pd; pd.test(extra_args=['-m not clipboard and not single_cpu and not slow and not network and not db', '-n 2'])'; - python -c 'import pandas as pd; pd.test(extra_args=['-m not clipboard and single_cpu and not slow and not network and not db'])' + python -c "import pandas as pd; pd.test(extra_args=['-m not clipboard and not single_cpu and not slow and not network and not db', '-n 2'])"; + python -c "import pandas as pd; pd.test(extra_args=['-m not clipboard and single_cpu and not slow and not network and not db'])" '@ docker pull python:${{ matrix.python[1] }}-windowsservercore docker run --env PANDAS_CI='1' -v ${PWD}:C:\pandas python:${{ matrix.python[1] }}-windowsservercore powershell -Command $TST_CMD From 35b155ea14fd370a0f2f05778b09f9fac2ae48e4 Mon Sep 17 00:00:00 2001 From: Matthew Roeschke <10647082+mroeschke@users.noreply.github.com> Date: Thu, 25 May 2023 11:56:03 -0700 Subject: [PATCH 54/65] try escpaing quotes --- .github/workflows/wheels.yml | 8 ++++---- 1 file changed, 4 insertions(+), 4 deletions(-) diff --git a/.github/workflows/wheels.yml b/.github/workflows/wheels.yml index b041c05a25640..6084fa4357d88 100644 --- a/.github/workflows/wheels.yml +++ b/.github/workflows/wheels.yml @@ -136,12 +136,12 @@ jobs: if: ${{ matrix.buildplat[1] == 'win_amd64' }} shell: pwsh run: | - $TST_CMD = @' + $TST_CMD = @" python -m pip install pytz six numpy python-dateutil tzdata>=2022.1 hypothesis>=6.46.1 pytest>=7.0.0 pytest-xdist>=2.2.0 pytest-asyncio>=0.17; python -m pip install --find-links=pandas\wheelhouse --no-index pandas; - python -c "import pandas as pd; pd.test(extra_args=['-m not clipboard and not single_cpu and not slow and not network and not db', '-n 2'])"; - python -c "import pandas as pd; pd.test(extra_args=['-m not clipboard and single_cpu and not slow and not network and not db'])" - '@ + python -c `"import pandas as pd; pd.test(extra_args=[`'-m not clipboard and not single_cpu and not slow and not network and not db`', `'-n 2`'])`"; + python -c `"import pandas as pd; pd.test(extra_args=[`'-m not clipboard and single_cpu and not slow and not network and not db`'])`" + "@ docker pull python:${{ matrix.python[1] }}-windowsservercore docker run --env PANDAS_CI='1' -v ${PWD}:C:\pandas python:${{ matrix.python[1] }}-windowsservercore powershell -Command $TST_CMD From 0138a54266c6c48160b93fe1348eb860670f37d8 Mon Sep 17 00:00:00 2001 From: Matthew Roeschke <10647082+mroeschke@users.noreply.github.com> Date: Thu, 25 May 2023 14:20:04 -0700 Subject: [PATCH 55/65] Escape brackets? --- .github/workflows/wheels.yml | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/.github/workflows/wheels.yml b/.github/workflows/wheels.yml index 6084fa4357d88..3108b6bd0a95e 100644 --- a/.github/workflows/wheels.yml +++ b/.github/workflows/wheels.yml @@ -139,8 +139,8 @@ jobs: $TST_CMD = @" python -m pip install pytz six numpy python-dateutil tzdata>=2022.1 hypothesis>=6.46.1 pytest>=7.0.0 pytest-xdist>=2.2.0 pytest-asyncio>=0.17; python -m pip install --find-links=pandas\wheelhouse --no-index pandas; - python -c `"import pandas as pd; pd.test(extra_args=[`'-m not clipboard and not single_cpu and not slow and not network and not db`', `'-n 2`'])`"; - python -c `"import pandas as pd; pd.test(extra_args=[`'-m not clipboard and single_cpu and not slow and not network and not db`'])`" + python -c `"import pandas as pd; pd.test(extra_args=`[`'-m not clipboard and not single_cpu and not slow and not network and not db`', `'-n 2`'`])`"; + python -c `"import pandas as pd; pd.test(extra_args=`[`'-m not clipboard and single_cpu and not slow and not network and not db`'`])`" "@ docker pull python:${{ matrix.python[1] }}-windowsservercore docker run --env PANDAS_CI='1' -v ${PWD}:C:\pandas python:${{ matrix.python[1] }}-windowsservercore powershell -Command $TST_CMD From 20a9a64163d542948459a14ff5c895398eed2221 Mon Sep 17 00:00:00 2001 From: Matthew Roeschke <10647082+mroeschke@users.noreply.github.com> Date: Thu, 25 May 2023 16:08:01 -0700 Subject: [PATCH 56/65] remove comma --- .github/workflows/wheels.yml | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/.github/workflows/wheels.yml b/.github/workflows/wheels.yml index 3108b6bd0a95e..97b9c00a5893e 100644 --- a/.github/workflows/wheels.yml +++ b/.github/workflows/wheels.yml @@ -139,8 +139,8 @@ jobs: $TST_CMD = @" python -m pip install pytz six numpy python-dateutil tzdata>=2022.1 hypothesis>=6.46.1 pytest>=7.0.0 pytest-xdist>=2.2.0 pytest-asyncio>=0.17; python -m pip install --find-links=pandas\wheelhouse --no-index pandas; - python -c `"import pandas as pd; pd.test(extra_args=`[`'-m not clipboard and not single_cpu and not slow and not network and not db`', `'-n 2`'`])`"; - python -c `"import pandas as pd; pd.test(extra_args=`[`'-m not clipboard and single_cpu and not slow and not network and not db`'`])`" + python -c `"import pandas as pd; pd.test(extra_args=[`'-m not clipboard and not single_cpu and not slow and not network and not db -n 2`'])`"; + python -c `"import pandas as pd; pd.test(extra_args=[`'-m not clipboard and single_cpu and not slow and not network and not db`'])`" "@ docker pull python:${{ matrix.python[1] }}-windowsservercore docker run --env PANDAS_CI='1' -v ${PWD}:C:\pandas python:${{ matrix.python[1] }}-windowsservercore powershell -Command $TST_CMD From 29d6710fcb1ac71b1b18debc89ab6c55073191aa Mon Sep 17 00:00:00 2001 From: Matthew Roeschke <10647082+mroeschke@users.noreply.github.com> Date: Fri, 26 May 2023 10:32:34 -0700 Subject: [PATCH 57/65] Single quotes --- .github/workflows/wheels.yml | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/.github/workflows/wheels.yml b/.github/workflows/wheels.yml index 97b9c00a5893e..0aef051064fae 100644 --- a/.github/workflows/wheels.yml +++ b/.github/workflows/wheels.yml @@ -139,8 +139,8 @@ jobs: $TST_CMD = @" python -m pip install pytz six numpy python-dateutil tzdata>=2022.1 hypothesis>=6.46.1 pytest>=7.0.0 pytest-xdist>=2.2.0 pytest-asyncio>=0.17; python -m pip install --find-links=pandas\wheelhouse --no-index pandas; - python -c `"import pandas as pd; pd.test(extra_args=[`'-m not clipboard and not single_cpu and not slow and not network and not db -n 2`'])`"; - python -c `"import pandas as pd; pd.test(extra_args=[`'-m not clipboard and single_cpu and not slow and not network and not db`'])`" + python -c `'import pandas as pd; pd.test(extra_args=[`'-m not clipboard and not single_cpu and not slow and not network and not db -n 2`'])`'; + python -c `'import pandas as pd; pd.test(extra_args=[`'-m not clipboard and single_cpu and not slow and not network and not db`'])`' "@ docker pull python:${{ matrix.python[1] }}-windowsservercore docker run --env PANDAS_CI='1' -v ${PWD}:C:\pandas python:${{ matrix.python[1] }}-windowsservercore powershell -Command $TST_CMD From e957a956612218032dc172e797b6c27493d7c465 Mon Sep 17 00:00:00 2001 From: Matthew Roeschke <10647082+mroeschke@users.noreply.github.com> Date: Fri, 26 May 2023 10:57:50 -0700 Subject: [PATCH 58/65] Other quotes --- .github/workflows/wheels.yml | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/.github/workflows/wheels.yml b/.github/workflows/wheels.yml index 0aef051064fae..aba722bcb585f 100644 --- a/.github/workflows/wheels.yml +++ b/.github/workflows/wheels.yml @@ -139,8 +139,8 @@ jobs: $TST_CMD = @" python -m pip install pytz six numpy python-dateutil tzdata>=2022.1 hypothesis>=6.46.1 pytest>=7.0.0 pytest-xdist>=2.2.0 pytest-asyncio>=0.17; python -m pip install --find-links=pandas\wheelhouse --no-index pandas; - python -c `'import pandas as pd; pd.test(extra_args=[`'-m not clipboard and not single_cpu and not slow and not network and not db -n 2`'])`'; - python -c `'import pandas as pd; pd.test(extra_args=[`'-m not clipboard and single_cpu and not slow and not network and not db`'])`' + python -c `'import pandas as pd; pd.test(extra_args=[`"-m not clipboard and not single_cpu and not slow and not network and not db -n 2`"])`'; + python -c `'import pandas as pd; pd.test(extra_args=[`"-m not clipboard and single_cpu and not slow and not network and not db`"])`' "@ docker pull python:${{ matrix.python[1] }}-windowsservercore docker run --env PANDAS_CI='1' -v ${PWD}:C:\pandas python:${{ matrix.python[1] }}-windowsservercore powershell -Command $TST_CMD From ccd97a85383bc03759c315349909ffea6685eae3 Mon Sep 17 00:00:00 2001 From: Matthew Roeschke <10647082+mroeschke@users.noreply.github.com> Date: Fri, 26 May 2023 17:17:10 -0700 Subject: [PATCH 59/65] single? --- .github/workflows/wheels.yml | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/.github/workflows/wheels.yml b/.github/workflows/wheels.yml index aba722bcb585f..0aef051064fae 100644 --- a/.github/workflows/wheels.yml +++ b/.github/workflows/wheels.yml @@ -139,8 +139,8 @@ jobs: $TST_CMD = @" python -m pip install pytz six numpy python-dateutil tzdata>=2022.1 hypothesis>=6.46.1 pytest>=7.0.0 pytest-xdist>=2.2.0 pytest-asyncio>=0.17; python -m pip install --find-links=pandas\wheelhouse --no-index pandas; - python -c `'import pandas as pd; pd.test(extra_args=[`"-m not clipboard and not single_cpu and not slow and not network and not db -n 2`"])`'; - python -c `'import pandas as pd; pd.test(extra_args=[`"-m not clipboard and single_cpu and not slow and not network and not db`"])`' + python -c `'import pandas as pd; pd.test(extra_args=[`'-m not clipboard and not single_cpu and not slow and not network and not db -n 2`'])`'; + python -c `'import pandas as pd; pd.test(extra_args=[`'-m not clipboard and single_cpu and not slow and not network and not db`'])`' "@ docker pull python:${{ matrix.python[1] }}-windowsservercore docker run --env PANDAS_CI='1' -v ${PWD}:C:\pandas python:${{ matrix.python[1] }}-windowsservercore powershell -Command $TST_CMD From 7c4a95a7ef84cf5e04c055784d35d4ff6dc78728 Mon Sep 17 00:00:00 2001 From: Matthew Roeschke <10647082+mroeschke@users.noreply.github.com> Date: Tue, 30 May 2023 15:14:23 -0700 Subject: [PATCH 60/65] Backslash? --- .github/workflows/wheels.yml | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/.github/workflows/wheels.yml b/.github/workflows/wheels.yml index 7b0e9d179d76f..7c164c6ab2bed 100644 --- a/.github/workflows/wheels.yml +++ b/.github/workflows/wheels.yml @@ -139,8 +139,8 @@ jobs: $TST_CMD = @" python -m pip install pytz six numpy python-dateutil tzdata>=2022.1 hypothesis>=6.46.1 pytest>=7.0.0 pytest-xdist>=2.2.0 pytest-asyncio>=0.17; python -m pip install --find-links=pandas\wheelhouse --no-index pandas; - python -c `'import pandas as pd; pd.test(extra_args=[`'-m not clipboard and not single_cpu and not slow and not network and not db -n 2`'])`'; - python -c `'import pandas as pd; pd.test(extra_args=[`'-m not clipboard and single_cpu and not slow and not network and not db`'])`' + python -c `'import pandas as pd; pd.test(extra_args=[\"-m not clipboard and not single_cpu and not slow and not network and not db -n 2\"])`'; + python -c `'import pandas as pd; pd.test(extra_args=[\"-m not clipboard and single_cpu and not slow and not network and not db\"])`' "@ docker pull python:${{ matrix.python[1] }}-windowsservercore docker run --env PANDAS_CI='1' -v ${PWD}:C:\pandas python:${{ matrix.python[1] }}-windowsservercore powershell -Command $TST_CMD From 2a40c01e3c00e0280799699bd43fc5c239fc74dc Mon Sep 17 00:00:00 2001 From: Matthew Roeschke <10647082+mroeschke@users.noreply.github.com> Date: Wed, 31 May 2023 11:07:31 -0700 Subject: [PATCH 61/65] All the escapes --- .github/workflows/wheels.yml | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/.github/workflows/wheels.yml b/.github/workflows/wheels.yml index 7c164c6ab2bed..b4956ccac0e34 100644 --- a/.github/workflows/wheels.yml +++ b/.github/workflows/wheels.yml @@ -140,7 +140,7 @@ jobs: python -m pip install pytz six numpy python-dateutil tzdata>=2022.1 hypothesis>=6.46.1 pytest>=7.0.0 pytest-xdist>=2.2.0 pytest-asyncio>=0.17; python -m pip install --find-links=pandas\wheelhouse --no-index pandas; python -c `'import pandas as pd; pd.test(extra_args=[\"-m not clipboard and not single_cpu and not slow and not network and not db -n 2\"])`'; - python -c `'import pandas as pd; pd.test(extra_args=[\"-m not clipboard and single_cpu and not slow and not network and not db\"])`' + python -c `'import pandas as pd; pd.test(extra_args=[\`"-m not clipboard and single_cpu and not slow and not network and not db\`"])`' "@ docker pull python:${{ matrix.python[1] }}-windowsservercore docker run --env PANDAS_CI='1' -v ${PWD}:C:\pandas python:${{ matrix.python[1] }}-windowsservercore powershell -Command $TST_CMD From 9f92307b2855ea9013b3ad72446e0a1f372f0ebd Mon Sep 17 00:00:00 2001 From: Matthew Roeschke <10647082+mroeschke@users.noreply.github.com> Date: Wed, 31 May 2023 13:06:01 -0700 Subject: [PATCH 62/65] No marks --- .github/workflows/wheels.yml | 3 +-- 1 file changed, 1 insertion(+), 2 deletions(-) diff --git a/.github/workflows/wheels.yml b/.github/workflows/wheels.yml index b4956ccac0e34..0a508a8b1701f 100644 --- a/.github/workflows/wheels.yml +++ b/.github/workflows/wheels.yml @@ -139,8 +139,7 @@ jobs: $TST_CMD = @" python -m pip install pytz six numpy python-dateutil tzdata>=2022.1 hypothesis>=6.46.1 pytest>=7.0.0 pytest-xdist>=2.2.0 pytest-asyncio>=0.17; python -m pip install --find-links=pandas\wheelhouse --no-index pandas; - python -c `'import pandas as pd; pd.test(extra_args=[\"-m not clipboard and not single_cpu and not slow and not network and not db -n 2\"])`'; - python -c `'import pandas as pd; pd.test(extra_args=[\`"-m not clipboard and single_cpu and not slow and not network and not db\`"])`' + python -c `'import pandas as pd; pd.test()`'; "@ docker pull python:${{ matrix.python[1] }}-windowsservercore docker run --env PANDAS_CI='1' -v ${PWD}:C:\pandas python:${{ matrix.python[1] }}-windowsservercore powershell -Command $TST_CMD From 77bc85860940acdc24ccb258f682839259202be1 Mon Sep 17 00:00:00 2001 From: Matthew Roeschke <10647082+mroeschke@users.noreply.github.com> Date: Wed, 31 May 2023 13:29:56 -0700 Subject: [PATCH 63/65] Fix quotes --- pandas/util/_tester.py | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/pandas/util/_tester.py b/pandas/util/_tester.py index e9f516bac6ad2..6a2a8189ad896 100644 --- a/pandas/util/_tester.py +++ b/pandas/util/_tester.py @@ -28,7 +28,7 @@ def test(extra_args: list[str] | None = None, run_doctests: bool = False) -> Non """ pytest = import_optional_dependency("pytest") import_optional_dependency("hypothesis") - cmd = ['-m "not slow and not network and not db"'] + cmd = ["-m not slow and not network and not db"] if extra_args: if not isinstance(extra_args, list): extra_args = [extra_args] From 53c03b7eb9bc402d09cde10ec15b24b32903a17c Mon Sep 17 00:00:00 2001 From: Matthew Roeschke <10647082+mroeschke@users.noreply.github.com> Date: Thu, 1 Jun 2023 09:47:26 -0700 Subject: [PATCH 64/65] test don't repair windows wheel --- pyproject.toml | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/pyproject.toml b/pyproject.toml index e14bcaa265684..2e6fcb8077cb6 100644 --- a/pyproject.toml +++ b/pyproject.toml @@ -159,7 +159,7 @@ test-skip = "*_arm64" [tool.cibuildwheel.windows] before-build = "pip install delvewheel" -repair-wheel-command = "delvewheel repair -w {dest_dir} {wheel}" +#repair-wheel-command = "delvewheel repair -w {dest_dir} {wheel}" [[tool.cibuildwheel.overrides]] select = "*-musllinux*" From 954cd28cc420a8e760207d5d066f6f55738aa47d Mon Sep 17 00:00:00 2001 From: Matthew Roeschke <10647082+mroeschke@users.noreply.github.com> Date: Thu, 1 Jun 2023 10:35:51 -0700 Subject: [PATCH 65/65] Uncomment delvewheel --- pyproject.toml | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/pyproject.toml b/pyproject.toml index 2e6fcb8077cb6..e14bcaa265684 100644 --- a/pyproject.toml +++ b/pyproject.toml @@ -159,7 +159,7 @@ test-skip = "*_arm64" [tool.cibuildwheel.windows] before-build = "pip install delvewheel" -#repair-wheel-command = "delvewheel repair -w {dest_dir} {wheel}" +repair-wheel-command = "delvewheel repair -w {dest_dir} {wheel}" [[tool.cibuildwheel.overrides]] select = "*-musllinux*"