From c8a25419accd3735b4144ece7dd955f95d323de3 Mon Sep 17 00:00:00 2001 From: Kevin Liu Date: Mon, 23 Feb 2026 12:44:00 -0800 Subject: [PATCH 1/2] run for windows --- .../workflows/verify-release-candidate.yml | 8 ++--- dev/release/verify-release-candidate.sh | 31 +++++++++++++++---- 2 files changed, 29 insertions(+), 10 deletions(-) diff --git a/.github/workflows/verify-release-candidate.yml b/.github/workflows/verify-release-candidate.yml index a7293b369..a10a4faa9 100644 --- a/.github/workflows/verify-release-candidate.yml +++ b/.github/workflows/verify-release-candidate.yml @@ -58,10 +58,10 @@ jobs: arch: x64 runner: macos-15-intel - # Windows (disabled for now) - # - os: windows - # arch: x64 - # runner: windows-latest + # Windows + - os: windows + arch: x64 + runner: windows-latest runs-on: ${{ matrix.runner }} steps: - name: Checkout repository diff --git a/dev/release/verify-release-candidate.sh b/dev/release/verify-release-candidate.sh index 2bfce0e2d..9591e0335 100755 --- a/dev/release/verify-release-candidate.sh +++ b/dev/release/verify-release-candidate.sh @@ -112,8 +112,17 @@ test_source_distribution() { curl https://sh.rustup.rs -sSf | sh -s -- -y --no-modify-path - export PATH=$RUSTUP_HOME/bin:$PATH - source $RUSTUP_HOME/env + # On Unix, rustup creates an env file. On Windows GitHub runners (MSYS bash), + # that file may not exist, so fall back to adding Cargo bin directly. + if [ -f "$CARGO_HOME/env" ]; then + # shellcheck disable=SC1090 + source "$CARGO_HOME/env" + elif [ -f "$RUSTUP_HOME/env" ]; then + # shellcheck disable=SC1090 + source "$RUSTUP_HOME/env" + else + export PATH="$CARGO_HOME/bin:$PATH" + fi # build and test rust @@ -126,10 +135,20 @@ test_source_distribution() { git clone https://github.com/apache/parquet-testing.git parquet-testing python3 -m venv .venv - source .venv/bin/activate - python3 -m pip install -U pip - python3 -m pip install -U maturin - maturin develop + if [ -x ".venv/bin/python" ]; then + VENV_PYTHON=".venv/bin/python" + elif [ -x ".venv/Scripts/python.exe" ]; then + VENV_PYTHON=".venv/Scripts/python.exe" + elif [ -x ".venv/Scripts/python" ]; then + VENV_PYTHON=".venv/Scripts/python" + else + echo "Unable to find python executable in virtual environment" + exit 1 + fi + + "$VENV_PYTHON" -m pip install -U pip + "$VENV_PYTHON" -m pip install -U maturin + "$VENV_PYTHON" -m maturin develop #TODO: we should really run tests here as well #python3 -m pytest From 27a4628052f3277104631802865e269ce9882e44 Mon Sep 17 00:00:00 2001 From: Kevin Liu Date: Mon, 23 Feb 2026 12:56:43 -0800 Subject: [PATCH 2/2] readme --- dev/release/README.md | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/dev/release/README.md b/dev/release/README.md index 5b70b80f4..ed28f4aa6 100644 --- a/dev/release/README.md +++ b/dev/release/README.md @@ -158,7 +158,7 @@ python3 -m twine upload --repository testpypi dist/datafusion-0.7.0.tar.gz Before sending the vote email, run the manually triggered GitHub Actions workflow "Verify Release Candidate" and confirm all matrix jobs pass across the OS/architecture matrix -(for example, Linux and macOS runners): +(for example, Linux, macOS, and Windows runners): 1. Go to https://github.com/apache/datafusion-python/actions/workflows/verify-release-candidate.yml 2. Click "Run workflow"