From 35ccfcf160a8e1643bdf9d24def225c1ff829ab4 Mon Sep 17 00:00:00 2001 From: Thomas Li <47963215+lithomas1@users.noreply.github.com> Date: Tue, 5 Sep 2023 11:07:17 -0400 Subject: [PATCH 01/17] BLD: Build wheels for Python 3.12 --- .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 5f541f1bae1fd..7dab67b57f383 100644 --- a/.github/workflows/wheels.yml +++ b/.github/workflows/wheels.yml @@ -97,8 +97,7 @@ jobs: - [macos-12, macosx_*] - [windows-2022, win_amd64] # TODO: support PyPy? - # TODO: Enable Python 3.12 wheels when numpy releases a version that supports Python 3.12 - python: [["cp39", "3.9"], ["cp310", "3.10"], ["cp311", "3.11"]]#, ["cp312", "3.12"]] + python: [["cp39", "3.9"], ["cp310", "3.10"], ["cp311", "3.11"], ["cp312", "3.12"]] 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' }} From 6324dae42e9df1f5dc8bdb029d063cde31b9048d Mon Sep 17 00:00:00 2001 From: Thomas Li <47963215+lithomas1@users.noreply.github.com> Date: Tue, 5 Sep 2023 11:08:39 -0400 Subject: [PATCH 02/17] Update pyproject.toml --- pyproject.toml | 3 ++- 1 file changed, 2 insertions(+), 1 deletion(-) diff --git a/pyproject.toml b/pyproject.toml index 845c2a63e84f0..8e7dbd23a45b8 100644 --- a/pyproject.toml +++ b/pyproject.toml @@ -10,7 +10,8 @@ requires = [ # we don't want to force users to compile with 1.25 though # (Ideally, in the future, though, oldest-supported-numpy can be dropped when our min numpy is 1.25.x) "oldest-supported-numpy>=2022.8.16; python_version<'3.12'", - "numpy>=1.22.4; python_version>='3.12'", + # TODO: This needs to be updated when the official numpy 1.26 comes out + "numpy>=1.26.0b1; python_version>='3.12'", "versioneer[toml]" ] From 24b0dfd1c8692e95d67f1ff33fb3c05a3f4c156b Mon Sep 17 00:00:00 2001 From: Thomas Li <47963215+lithomas1@users.noreply.github.com> Date: Tue, 5 Sep 2023 11:21:15 -0400 Subject: [PATCH 03/17] Update pyproject.toml --- pyproject.toml | 4 +++- 1 file changed, 3 insertions(+), 1 deletion(-) diff --git a/pyproject.toml b/pyproject.toml index 8e7dbd23a45b8..74d6aaee286a9 100644 --- a/pyproject.toml +++ b/pyproject.toml @@ -31,7 +31,9 @@ license = {file = 'LICENSE'} requires-python = '>=3.9' dependencies = [ "numpy>=1.22.4; python_version<'3.11'", - "numpy>=1.23.2; python_version>='3.11'", + "numpy>=1.23.2; python_version=='3.11'", + # TODO: This needs to be updated when the official numpy 1.26 comes out + "numpy>=1.26.0b1; python_version>='3.12'", "python-dateutil>=2.8.2", "pytz>=2020.1", "tzdata>=2022.1" From c766d83c227561bd5ee417277e700548dfc2b787 Mon Sep 17 00:00:00 2001 From: Thomas Li <47963215+lithomas1@users.noreply.github.com> Date: Tue, 5 Sep 2023 14:31:21 -0400 Subject: [PATCH 04/17] also circle --- .circleci/config.yml | 5 ++--- 1 file changed, 2 insertions(+), 3 deletions(-) diff --git a/.circleci/config.yml b/.circleci/config.yml index 50f6a116a6630..ba124533e953a 100644 --- a/.circleci/config.yml +++ b/.circleci/config.yml @@ -48,7 +48,7 @@ jobs: name: Build aarch64 wheels no_output_timeout: 30m # Sometimes the tests won't generate any output, make sure the job doesn't get killed by that command: | - pip3 install cibuildwheel==2.14.1 + pip3 install cibuildwheel==2.15.0 cibuildwheel --prerelease-pythons --output-dir wheelhouse environment: CIBW_BUILD: << parameters.cibw-build >> @@ -92,5 +92,4 @@ workflows: only: /^v.*/ matrix: parameters: - # TODO: Enable Python 3.12 wheels when numpy releases a version that supports Python 3.12 - cibw-build: ["cp39-manylinux_aarch64", "cp310-manylinux_aarch64", "cp311-manylinux_aarch64"]#, "cp312-manylinux_aarch64"] + cibw-build: ["cp39-manylinux_aarch64", "cp310-manylinux_aarch64", "cp311-manylinux_aarch64", "cp312-manylinux_aarch64"] From 28d472707f597e1f915e1f773b5c01f62a0f4faf Mon Sep 17 00:00:00 2001 From: Thomas Li <47963215+lithomas1@users.noreply.github.com> Date: Tue, 5 Sep 2023 16:21:01 -0400 Subject: [PATCH 05/17] fix windows? --- .github/workflows/wheels.yml | 7 +++++-- 1 file changed, 5 insertions(+), 2 deletions(-) diff --git a/.github/workflows/wheels.yml b/.github/workflows/wheels.yml index 7dab67b57f383..5ca60531c5ba6 100644 --- a/.github/workflows/wheels.yml +++ b/.github/workflows/wheels.yml @@ -150,7 +150,9 @@ jobs: with: environment-name: wheel-env create-args: >- - python=${{ matrix.python[1] }} + # Use a fixed Python, since we might have an unreleased Python not + # yet present on conda-forge + python=3.10 anaconda-client wheel cache-downloads: true @@ -170,7 +172,8 @@ jobs: python -m pip install --find-links=pandas\wheelhouse --no-index pandas; python -c `'import pandas as pd; pd.test(extra_args=[\"`\"--no-strict-data-files`\"\", \"`\"-m not clipboard and not single_cpu and not slow and not network and not db`\"\"])`'; "@ - docker pull python:${{ matrix.python[1] }}-windowsservercore + # add rc to the end of the image name if the Python version is unreleased + docker pull python:${{ matrix.python[1] }}-${{ matrix.python[1]=="3.12" && "rc-" || "" }}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 From 56be601d29cc867186feaca30f70d354dc7f338e Mon Sep 17 00:00:00 2001 From: Thomas Li <47963215+lithomas1@users.noreply.github.com> Date: Tue, 5 Sep 2023 16:22:54 -0400 Subject: [PATCH 06/17] 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 5ca60531c5ba6..b4179d6e66299 100644 --- a/.github/workflows/wheels.yml +++ b/.github/workflows/wheels.yml @@ -173,7 +173,7 @@ jobs: python -c `'import pandas as pd; pd.test(extra_args=[\"`\"--no-strict-data-files`\"\", \"`\"-m not clipboard and not single_cpu and not slow and not network and not db`\"\"])`'; "@ # add rc to the end of the image name if the Python version is unreleased - docker pull python:${{ matrix.python[1] }}-${{ matrix.python[1]=="3.12" && "rc-" || "" }}windowsservercore + docker pull python:${{ matrix.python[1] }}-${{ matrix.python[1] == "3.12" && "rc-" || "" }}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 From f36f04793ea39bdad26641f5181918b29ed76816 Mon Sep 17 00:00:00 2001 From: Thomas Li <47963215+lithomas1@users.noreply.github.com> Date: Tue, 5 Sep 2023 16:24:12 -0400 Subject: [PATCH 07/17] try single quotes --- .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 b4179d6e66299..5953557b8d064 100644 --- a/.github/workflows/wheels.yml +++ b/.github/workflows/wheels.yml @@ -173,7 +173,7 @@ jobs: python -c `'import pandas as pd; pd.test(extra_args=[\"`\"--no-strict-data-files`\"\", \"`\"-m not clipboard and not single_cpu and not slow and not network and not db`\"\"])`'; "@ # add rc to the end of the image name if the Python version is unreleased - docker pull python:${{ matrix.python[1] }}-${{ matrix.python[1] == "3.12" && "rc-" || "" }}windowsservercore + docker pull python:${{ matrix.python[1] }}-${{ matrix.python[1] == '3.12' && 'rc-' || '' }}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 From 69248c0a515750528ff41c63978ef6da69134939 Mon Sep 17 00:00:00 2001 From: Thomas Li <47963215+lithomas1@users.noreply.github.com> Date: Tue, 5 Sep 2023 16:38:36 -0400 Subject: [PATCH 08/17] tyr to fix again --- .github/workflows/wheels.yml | 6 +++--- 1 file changed, 3 insertions(+), 3 deletions(-) diff --git a/.github/workflows/wheels.yml b/.github/workflows/wheels.yml index 5953557b8d064..c6a35ec366534 100644 --- a/.github/workflows/wheels.yml +++ b/.github/workflows/wheels.yml @@ -149,10 +149,10 @@ jobs: uses: mamba-org/setup-micromamba@v1 with: environment-name: wheel-env + # Use a fixed Python, since we might have an unreleased Python not + # yet present on conda-forge create-args: >- - # Use a fixed Python, since we might have an unreleased Python not - # yet present on conda-forge - python=3.10 + python=3.11 anaconda-client wheel cache-downloads: true From c7294c6b2d2189277be67ac75d6bb4056d840578 Mon Sep 17 00:00:00 2001 From: Thomas Li <47963215+lithomas1@users.noreply.github.com> Date: Tue, 5 Sep 2023 16:50:53 -0400 Subject: [PATCH 09/17] just use the base shared tag, no need to append windowsservercore --- .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 c6a35ec366534..df0b2aff899aa 100644 --- a/.github/workflows/wheels.yml +++ b/.github/workflows/wheels.yml @@ -173,7 +173,7 @@ jobs: python -c `'import pandas as pd; pd.test(extra_args=[\"`\"--no-strict-data-files`\"\", \"`\"-m not clipboard and not single_cpu and not slow and not network and not db`\"\"])`'; "@ # add rc to the end of the image name if the Python version is unreleased - docker pull python:${{ matrix.python[1] }}-${{ matrix.python[1] == '3.12' && 'rc-' || '' }}windowsservercore + docker pull python:${{ matrix.python[1] }}-${{ matrix.python[1] == '3.12' && 'rc-' || '' }} docker run --env PANDAS_CI='1' -v ${PWD}:C:\pandas python:${{ matrix.python[1] }}-windowsservercore powershell -Command $TST_CMD - uses: actions/upload-artifact@v3 From 013a897a28310344fc23aafaeed4f81741fcbec2 Mon Sep 17 00:00:00 2001 From: Thomas Li <47963215+lithomas1@users.noreply.github.com> Date: Tue, 5 Sep 2023 17:13:18 -0400 Subject: [PATCH 10/17] 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 df0b2aff899aa..049493e3c3ec9 100644 --- a/.github/workflows/wheels.yml +++ b/.github/workflows/wheels.yml @@ -173,7 +173,7 @@ jobs: python -c `'import pandas as pd; pd.test(extra_args=[\"`\"--no-strict-data-files`\"\", \"`\"-m not clipboard and not single_cpu and not slow and not network and not db`\"\"])`'; "@ # add rc to the end of the image name if the Python version is unreleased - docker pull python:${{ matrix.python[1] }}-${{ matrix.python[1] == '3.12' && 'rc-' || '' }} + docker pull python:${{ matrix.python[1] }}-${{ matrix.python[1] == '3.12' && 'rc' || '' }} docker run --env PANDAS_CI='1' -v ${PWD}:C:\pandas python:${{ matrix.python[1] }}-windowsservercore powershell -Command $TST_CMD - uses: actions/upload-artifact@v3 From 6d326e8bd85574266c9ee7457fbd1bafdad597d5 Mon Sep 17 00:00:00 2001 From: Thomas Li <47963215+lithomas1@users.noreply.github.com> Date: Tue, 5 Sep 2023 17:39:29 -0400 Subject: [PATCH 11/17] update the other too --- .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 049493e3c3ec9..c8a572bb8ce62 100644 --- a/.github/workflows/wheels.yml +++ b/.github/workflows/wheels.yml @@ -174,7 +174,7 @@ jobs: "@ # add rc to the end of the image name if the Python version is unreleased docker pull python:${{ matrix.python[1] }}-${{ matrix.python[1] == '3.12' && 'rc' || '' }} - docker run --env PANDAS_CI='1' -v ${PWD}:C:\pandas python:${{ matrix.python[1] }}-windowsservercore powershell -Command $TST_CMD + docker run --env PANDAS_CI='1' -v ${PWD}:C:\pandas python:${{ matrix.python[1] }}-${{ matrix.python[1] == '3.12' && 'rc' || '' }} powershell -Command $TST_CMD - uses: actions/upload-artifact@v3 with: From 218e30b42ed029e2f5203d04b3b256f620d409cd Mon Sep 17 00:00:00 2001 From: Thomas Li <47963215+lithomas1@users.noreply.github.com> Date: Tue, 5 Sep 2023 18:31:54 -0400 Subject: [PATCH 12/17] Update wheels.yml --- .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 c8a572bb8ce62..eccbf2a29cd60 100644 --- a/.github/workflows/wheels.yml +++ b/.github/workflows/wheels.yml @@ -173,8 +173,8 @@ jobs: python -c `'import pandas as pd; pd.test(extra_args=[\"`\"--no-strict-data-files`\"\", \"`\"-m not clipboard and not single_cpu and not slow and not network and not db`\"\"])`'; "@ # add rc to the end of the image name if the Python version is unreleased - docker pull python:${{ matrix.python[1] }}-${{ matrix.python[1] == '3.12' && 'rc' || '' }} - docker run --env PANDAS_CI='1' -v ${PWD}:C:\pandas python:${{ matrix.python[1] }}-${{ matrix.python[1] == '3.12' && 'rc' || '' }} powershell -Command $TST_CMD + docker pull python:${{ matrix.python[1] == '3.12' && '3.12-rc' || matrix.python[1] }} + docker run --env PANDAS_CI='1' -v ${PWD}:C:\pandas python:${{ matrix.python[1] == '3.12' && '3.12-rc' || matrix.python[1] }} powershell -Command $TST_CMD - uses: actions/upload-artifact@v3 with: From ca9dab7ceff1907c12738e0517c48cf185cfb8f4 Mon Sep 17 00:00:00 2001 From: Thomas Li <47963215+lithomas1@users.noreply.github.com> Date: Tue, 5 Sep 2023 18:40:55 -0400 Subject: [PATCH 13/17] try something --- .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 eccbf2a29cd60..e76329b5c8eff 100644 --- a/.github/workflows/wheels.yml +++ b/.github/workflows/wheels.yml @@ -168,8 +168,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.3.2 pytest-xdist>=2.2.0 pytest-asyncio>=0.17; - python -m pip install --find-links=pandas\wheelhouse --no-index pandas; + python -m pip install hypothesis>=6.46.1 pytest>=7.3.2 pytest-xdist>=2.2.0 pytest-asyncio>=0.17; + python -m pip install --find-links=pandas\wheelhouse pandas; python -c `'import pandas as pd; pd.test(extra_args=[\"`\"--no-strict-data-files`\"\", \"`\"-m not clipboard and not single_cpu and not slow and not network and not db`\"\"])`'; "@ # add rc to the end of the image name if the Python version is unreleased From 7f2575a15985b4d3a5803f9107ae0d5dfbffbf7e Mon Sep 17 00:00:00 2001 From: Thomas Li <47963215+lithomas1@users.noreply.github.com> Date: Tue, 5 Sep 2023 19:05:29 -0400 Subject: [PATCH 14/17] try something --- .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 e76329b5c8eff..d1bbfd447fdf9 100644 --- a/.github/workflows/wheels.yml +++ b/.github/workflows/wheels.yml @@ -169,7 +169,7 @@ jobs: run: | $TST_CMD = @" python -m pip install hypothesis>=6.46.1 pytest>=7.3.2 pytest-xdist>=2.2.0 pytest-asyncio>=0.17; - python -m pip install --find-links=pandas\wheelhouse pandas; + python -m pip install $(Get-Item pandas\wheelhouse\*.whl)#--find-links=pandas\wheelhouse pandas; python -c `'import pandas as pd; pd.test(extra_args=[\"`\"--no-strict-data-files`\"\", \"`\"-m not clipboard and not single_cpu and not slow and not network and not db`\"\"])`'; "@ # add rc to the end of the image name if the Python version is unreleased From c8e5ff13e117a5fed7952a33986177f9d55a040c Mon Sep 17 00:00:00 2001 From: Thomas Li <47963215+lithomas1@users.noreply.github.com> Date: Tue, 5 Sep 2023 20:05:33 -0400 Subject: [PATCH 15/17] debug --- .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 d1bbfd447fdf9..d391163db4931 100644 --- a/.github/workflows/wheels.yml +++ b/.github/workflows/wheels.yml @@ -169,7 +169,8 @@ jobs: run: | $TST_CMD = @" python -m pip install hypothesis>=6.46.1 pytest>=7.3.2 pytest-xdist>=2.2.0 pytest-asyncio>=0.17; - python -m pip install $(Get-Item pandas\wheelhouse\*.whl)#--find-links=pandas\wheelhouse pandas; + pwd; + python -m pip install $(Get-Item pandas\wheelhouse\*.whl); python -c `'import pandas as pd; pd.test(extra_args=[\"`\"--no-strict-data-files`\"\", \"`\"-m not clipboard and not single_cpu and not slow and not network and not db`\"\"])`'; "@ # add rc to the end of the image name if the Python version is unreleased From ae783a6dd32fe24f58200a0d872a97c5fa7c0688 Mon Sep 17 00:00:00 2001 From: Thomas Li <47963215+lithomas1@users.noreply.github.com> Date: Tue, 5 Sep 2023 20:27:37 -0400 Subject: [PATCH 16/17] escape string? --- .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 d391163db4931..2c4e804af3243 100644 --- a/.github/workflows/wheels.yml +++ b/.github/workflows/wheels.yml @@ -169,8 +169,7 @@ jobs: run: | $TST_CMD = @" python -m pip install hypothesis>=6.46.1 pytest>=7.3.2 pytest-xdist>=2.2.0 pytest-asyncio>=0.17; - pwd; - python -m pip install $(Get-Item pandas\wheelhouse\*.whl); + python -m pip install `$(Get-Item pandas\wheelhouse\*.whl); python -c `'import pandas as pd; pd.test(extra_args=[\"`\"--no-strict-data-files`\"\", \"`\"-m not clipboard and not single_cpu and not slow and not network and not db`\"\"])`'; "@ # add rc to the end of the image name if the Python version is unreleased From c43d784e890dcb274884360e61a19885ba5bdc4b Mon Sep 17 00:00:00 2001 From: Thomas Li <47963215+lithomas1@users.noreply.github.com> Date: Tue, 5 Sep 2023 20:56:17 -0400 Subject: [PATCH 17/17] go for green --- .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 2c4e804af3243..97d78a1a9afe3 100644 --- a/.github/workflows/wheels.yml +++ b/.github/workflows/wheels.yml @@ -173,8 +173,8 @@ jobs: python -c `'import pandas as pd; pd.test(extra_args=[\"`\"--no-strict-data-files`\"\", \"`\"-m not clipboard and not single_cpu and not slow and not network and not db`\"\"])`'; "@ # add rc to the end of the image name if the Python version is unreleased - docker pull python:${{ matrix.python[1] == '3.12' && '3.12-rc' || matrix.python[1] }} - docker run --env PANDAS_CI='1' -v ${PWD}:C:\pandas python:${{ matrix.python[1] == '3.12' && '3.12-rc' || matrix.python[1] }} powershell -Command $TST_CMD + docker pull python:${{ matrix.python[1] == '3.12' && '3.12-rc' || format('{0}-windowsservercore', matrix.python[1]) }} + docker run --env PANDAS_CI='1' -v ${PWD}:C:\pandas python:${{ matrix.python[1] == '3.12' && '3.12-rc' || format('{0}-windowsservercore', matrix.python[1]) }} powershell -Command $TST_CMD - uses: actions/upload-artifact@v3 with: