From cbc2a49415d298e4470ab8325ec4973df200972a Mon Sep 17 00:00:00 2001 From: Max Jones <14077947+maxrjones@users.noreply.github.com> Date: Wed, 22 Oct 2025 15:24:14 -0400 Subject: [PATCH 1/4] Build wheels for windows --- .github/workflows/python-wheels.yml | 62 ++++++++++++++--------------- 1 file changed, 30 insertions(+), 32 deletions(-) diff --git a/.github/workflows/python-wheels.yml b/.github/workflows/python-wheels.yml index 222d6e3..bcf8e1e 100644 --- a/.github/workflows/python-wheels.yml +++ b/.github/workflows/python-wheels.yml @@ -109,38 +109,36 @@ jobs: name: wheels-musllinux-${{ matrix.platform.target }} path: dist - # We skip windows for now because the symlinks (for `pyi` typing) give "access denied" on windows. - - # windows: - # runs-on: ${{ matrix.platform.runner }} - # strategy: - # matrix: - # platform: - # - runner: windows-latest - # target: x64 - # steps: - # - uses: actions/checkout@v4 - # with: - # submodules: "recursive" - # # There seem to be linking errors on Windows with the uv-provided Python - # # executables, so we use the Python versions provided by github actions - # # for now. - # # Seems to be this question: https://stackoverflow.com/questions/78557803/python-with-rust-cannot-open-input-file-python3-lib - # - uses: actions/setup-python@v5 - # with: - # python-version: 3.13 - # architecture: ${{ matrix.platform.target }} - # - name: Build wheels - # uses: PyO3/maturin-action@v1 - # with: - # target: ${{ matrix.platform.target }} - # args: --release --out dist -i 3.9 -i 3.10 -i 3.11 -i 3.12 -i 3.13 --manifest-path python/Cargo.toml - # sccache: "true" - # - name: Upload wheels - # uses: actions/upload-artifact@v4 - # with: - # name: wheels-windows-${{ matrix.platform.target }} - # path: dist + windows: + runs-on: ${{ matrix.platform.runner }} + strategy: + matrix: + platform: + - runner: windows-latest + target: x64 + steps: + - uses: actions/checkout@v4 + with: + submodules: "recursive" + # There seem to be linking errors on Windows with the uv-provided Python + # executables, so we use the Python versions provided by github actions + # for now. + # Seems to be this question: https://stackoverflow.com/questions/78557803/python-with-rust-cannot-open-input-file-python3-lib + - uses: actions/setup-python@v5 + with: + python-version: 3.13 + architecture: ${{ matrix.platform.target }} + - name: Build wheels + uses: PyO3/maturin-action@v1 + with: + target: ${{ matrix.platform.target }} + args: --release --out dist -i 3.9 -i 3.10 -i 3.11 -i 3.12 -i 3.13 --manifest-path python/Cargo.toml + sccache: "true" + - name: Upload wheels + uses: actions/upload-artifact@v4 + with: + name: wheels-windows-${{ matrix.platform.target }} + path: dist macos: runs-on: ${{ matrix.platform.runner }} From 2149cf4474fbea42440004238e39927f35d5f3dc Mon Sep 17 00:00:00 2001 From: Max Jones <14077947+maxrjones@users.noreply.github.com> Date: Wed, 22 Oct 2025 15:46:34 -0400 Subject: [PATCH 2/4] Exclude broken symlink --- python/pyproject.toml | 1 + 1 file changed, 1 insertion(+) diff --git a/python/pyproject.toml b/python/pyproject.toml index 9a5a30a..ca6f32e 100644 --- a/python/pyproject.toml +++ b/python/pyproject.toml @@ -17,6 +17,7 @@ classifiers = [ features = ["pyo3/extension-module"] module-name = "async_tiff._async_tiff" python-source = "python" +exclude = ["python/async_tiff/store"] [tool.uv] dev-dependencies = [ From 7d23f4437fb3f12d85f2af2db6343312e21afb07 Mon Sep 17 00:00:00 2001 From: Max Jones <14077947+maxrjones@users.noreply.github.com> Date: Wed, 22 Oct 2025 16:01:14 -0400 Subject: [PATCH 3/4] Remove symlink --- python/pyproject.toml | 1 - python/python/async_tiff/store | 1 - 2 files changed, 2 deletions(-) delete mode 120000 python/python/async_tiff/store diff --git a/python/pyproject.toml b/python/pyproject.toml index ca6f32e..9a5a30a 100644 --- a/python/pyproject.toml +++ b/python/pyproject.toml @@ -17,7 +17,6 @@ classifiers = [ features = ["pyo3/extension-module"] module-name = "async_tiff._async_tiff" python-source = "python" -exclude = ["python/async_tiff/store"] [tool.uv] dev-dependencies = [ diff --git a/python/python/async_tiff/store b/python/python/async_tiff/store deleted file mode 120000 index 9721d2d..0000000 --- a/python/python/async_tiff/store +++ /dev/null @@ -1 +0,0 @@ -../../_obstore/obstore/python/obstore/_store \ No newline at end of file From 1ca867d22fda99a33acf805856034459ed4eef1f Mon Sep 17 00:00:00 2001 From: Max Jones <14077947+maxrjones@users.noreply.github.com> Date: Wed, 22 Oct 2025 17:21:40 -0400 Subject: [PATCH 4/4] Try removing symlink only on Windows --- .github/workflows/python-wheels.yml | 3 +++ python/python/async_tiff/store | 1 + 2 files changed, 4 insertions(+) create mode 120000 python/python/async_tiff/store diff --git a/.github/workflows/python-wheels.yml b/.github/workflows/python-wheels.yml index bcf8e1e..7211f7c 100644 --- a/.github/workflows/python-wheels.yml +++ b/.github/workflows/python-wheels.yml @@ -128,6 +128,9 @@ jobs: with: python-version: 3.13 architecture: ${{ matrix.platform.target }} + - name: Remove symlink (not supported in Windows wheels) + run: Remove-Item -Path python/python/async_tiff/store -Force + shell: pwsh - name: Build wheels uses: PyO3/maturin-action@v1 with: diff --git a/python/python/async_tiff/store b/python/python/async_tiff/store new file mode 120000 index 0000000..9721d2d --- /dev/null +++ b/python/python/async_tiff/store @@ -0,0 +1 @@ +../../_obstore/obstore/python/obstore/_store \ No newline at end of file