kou commented on code in PR #44804: URL: https://github.com/apache/arrow/pull/44804#discussion_r1904760336
########## ci/docker/python-wheel-windows-test-vs2019-base.dockerfile: ########## @@ -0,0 +1,51 @@ +# Licensed to the Apache Software Foundation (ASF) under one +# or more contributor license agreements. See the NOTICE file +# distributed with this work for additional information +# regarding copyright ownership. The ASF licenses this file +# to you under the Apache License, Version 2.0 (the +# "License"); you may not use this file except in compliance +# with the License. You may obtain a copy of the License at +# +# http://www.apache.org/licenses/LICENSE-2.0 +# +# Unless required by applicable law or agreed to in writing, +# software distributed under the License is distributed on an +# "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY +# KIND, either express or implied. See the License for the +# specific language governing permissions and limitations +# under the License. + +# NOTE: You must update PYTHON_WHEEL_WINDOWS_TEST_IMAGE_REVISION in .env +# when you update this file. + +# based on mcr.microsoft.com/windows/servercore:ltsc2019 +# contains choco and vs2019 preinstalled +FROM abrarov/msvc-2019:2.11.0 + +# hadolint shell=cmd.exe + +# Add unix tools to path +RUN setx path "%path%;C:\Program Files\Git\usr\bin" + +# 1. Remove previous installations of python from the base image +# NOTE: a more recent base image (tried with 2.12.1) comes with python 3.9.7 Review Comment: ```suggestion # NOTE: a more recent base image (tried with 2.12.1) comes with Python 3.9.7 ``` ########## ci/docker/python-free-threaded-wheel-windows-test-vs2019.dockerfile: ########## @@ -0,0 +1,48 @@ +# Licensed to the Apache Software Foundation (ASF) under one +# or more contributor license agreements. See the NOTICE file +# distributed with this work for additional information +# regarding copyright ownership. The ASF licenses this file +# to you under the Apache License, Version 2.0 (the +# "License"); you may not use this file except in compliance +# with the License. You may obtain a copy of the License at +# +# http://www.apache.org/licenses/LICENSE-2.0 +# +# Unless required by applicable law or agreed to in writing, +# software distributed under the License is distributed on an +# "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY +# KIND, either express or implied. See the License for the +# specific language governing permissions and limitations +# under the License. + +# NOTE: You must update PYTHON_WHEEL_WINDOWS_TEST_IMAGE_REVISION in .env +# when you update this file. + +# based on mcr.microsoft.com/windows/servercore:ltsc2019 +# contains choco and vs2019 preinstalled Review Comment: It seems that this comment is for `FROM abrarov/msvc-2019:2.11.0`. Should we remove this comment here? ########## ci/docker/python-wheel-windows-vs2019-base.dockerfile: ########## @@ -0,0 +1,79 @@ +# Licensed to the Apache Software Foundation (ASF) under one +# or more contributor license agreements. See the NOTICE file +# distributed with this work for additional information +# regarding copyright ownership. The ASF licenses this file +# to you under the Apache License, Version 2.0 (the +# "License"); you may not use this file except in compliance +# with the License. You may obtain a copy of the License at +# +# http://www.apache.org/licenses/LICENSE-2.0 +# +# Unless required by applicable law or agreed to in writing, +# software distributed under the License is distributed on an +# "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY +# KIND, either express or implied. See the License for the +# specific language governing permissions and limitations +# under the License. + +# NOTE: You must update PYTHON_WHEEL_WINDOWS_IMAGE_REVISION in .env +# when you update this file. + +# based on mcr.microsoft.com/windows/servercore:ltsc2019 +# contains choco and vs2019 preinstalled +FROM abrarov/msvc-2019:2.11.0 + +# Install CMake and Ninja +ARG cmake=3.31.2 +RUN choco install --no-progress -r -y cmake --version=%cmake% --installargs 'ADD_CMAKE_TO_PATH=System' && \ + choco install --no-progress -r -y gzip wget ninja + +# Add unix tools to path +RUN setx path "%path%;C:\Program Files\Git\usr\bin" + +# Install vcpkg +# +# Compiling vcpkg itself from a git tag doesn't work anymore since vcpkg has +# started to ship precompiled binaries for the vcpkg-tool. +ARG vcpkg +COPY ci/vcpkg/*.patch \ + ci/vcpkg/*windows*.cmake \ + arrow/ci/vcpkg/ +COPY ci/scripts/install_vcpkg.sh arrow/ci/scripts/ +ENV VCPKG_ROOT=C:\\vcpkg +RUN bash arrow/ci/scripts/install_vcpkg.sh /c/vcpkg %vcpkg% && \ + setx PATH "%PATH%;%VCPKG_ROOT%" + +# Configure vcpkg and install dependencies +# NOTE: use windows batch environment notation for build arguments in RUN +# statements but bash notation in ENV statements +# VCPKG_FORCE_SYSTEM_BINARIES=1 spare around ~750MB of image size if the system +# cmake's and ninja's versions are recent enough +ARG build_type=release +ENV CMAKE_BUILD_TYPE=${build_type} \ + VCPKG_OVERLAY_TRIPLETS=C:\\arrow\\ci\\vcpkg \ + VCPKG_DEFAULT_TRIPLET=amd64-windows-static-md-${build_type} \ + VCPKG_FEATURE_FLAGS="manifests" +COPY ci/vcpkg/vcpkg.json arrow/ci/vcpkg/ +# cannot use the S3 feature here because while aws-sdk-cpp=1.9.160 contains +# ssl related fixes as well as we can patch the vcpkg portfile to support +# arm machines it hits ARROW-15141 where we would need to fall back to 1.8.186 +# but we cannot patch those portfiles since vcpkg-tool handles the checkout of +# previous versions => use bundled S3 build +RUN vcpkg install \ + --clean-after-build \ + --x-install-root=%VCPKG_ROOT%\installed \ + --x-manifest-root=arrow/ci/vcpkg \ + --x-feature=flight \ + --x-feature=gcs \ + --x-feature=json \ + --x-feature=orc \ + --x-feature=parquet \ + --x-feature=s3 + +# Remove previous installations of python from the base image +# NOTE: a more recent base image (tried with 2.12.1) comes with python 3.9.7 +# and the msi installers are failing to remove pip and tcl/tk "products" making Review Comment: ```suggestion # and the MSI installers are failing to remove pip and tcl/tk "products" making ``` ########## ci/docker/python-wheel-windows-test-vs2019.dockerfile: ########## @@ -15,49 +15,31 @@ # specific language governing permissions and limitations # under the License. -# NOTE: You must update PYTHON_WHEEL_WINDOWS_IMAGE_REVISION in .env +# NOTE: You must update PYTHON_WHEEL_WINDOWS_TEST_IMAGE_REVISION in .env # when you update this file. # based on mcr.microsoft.com/windows/servercore:ltsc2019 # contains choco and vs2019 preinstalled Review Comment: ditto. ########## docker-compose.yml: ########## @@ -1264,38 +1268,81 @@ services: CHECK_UNITTESTS: "ON" command: /arrow/ci/scripts/python_wheel_unix_test.sh /arrow - python-wheel-windows-vs2019: - image: ${REPO}:python-${PYTHON}-wheel-windows-vs2019-vcpkg-${VCPKG}-${PYTHON_WHEEL_WINDOWS_IMAGE_REVISION} + python-wheel-windows-vs2019-base: + image: ${REPO}:python-wheel-windows-vs2019-base-vcpkg-${VCPKG}-${PYTHON_WHEEL_WINDOWS_IMAGE_REVISION} build: args: - python: ${PYTHON} vcpkg: ${VCPKG} context: . - dockerfile: ci/docker/python-wheel-windows-vs2019.dockerfile + dockerfile: ci/docker/python-wheel-windows-vs2019-base.dockerfile # This should make the pushed images reusable, but the image gets rebuilt. # Uncomment if no local cache is available. # cache_from: # - abrarov/msvc-2019:2.11.0 - # - ${REPO}:python-${PYTHON}-wheel-windows-vs2019-vcpkg-${VCPKG}-${PYTHON_WHEEL_WINDOWS_IMAGE_REVISION} - volumes: + # - ${REPO}:python-wheel-windows-vs2019-base-vcpkg-${VCPKG}-${PYTHON_WHEEL_WINDOWS_IMAGE_REVISION} + volumes: &python-wheel-windows-vs2019-volumes - "${DOCKER_VOLUME_PREFIX}python-wheel-windows-clcache:C:/clcache" - type: bind source: . target: "C:/arrow" + + python-wheel-windows-vs2019: + image: ${REPO}:python-${PYTHON}-wheel-windows-vs2019-vcpkg-${VCPKG}-${PYTHON_WHEEL_WINDOWS_IMAGE_REVISION} + build: + args: + base: ${REPO}:python-wheel-windows-vs2019-base-vcpkg-${VCPKG}-${PYTHON_WHEEL_WINDOWS_IMAGE_REVISION} + python: ${PYTHON} + context: . + dockerfile: ci/docker/python-wheel-windows-vs2019.dockerfile + # This should make the pushed images reusable, but the image gets rebuilt. + # Uncomment if no local cache is available. + # cache_from: + # - abrarov/msvc-2019:2.11.0 + # - ${REPO}:python-${PYTHON}-wheel-windows-vs2019-vcpkg-${VCPKG}-${PYTHON_WHEEL_WINDOWS_IMAGE_REVISION} + volumes: *python-wheel-windows-vs2019-volumes command: arrow\\ci\\scripts\\python_wheel_windows_build.bat + python-free-threaded-wheel-windows-vs2019: + image: ${REPO}:python-3.13-free-threaded-wheel-windows-vs2019-vcpkg-${VCPKG}-${PYTHON_WHEEL_WINDOWS_IMAGE_REVISION} + build: + args: + base: ${REPO}:python-wheel-windows-vs2019-base-vcpkg-${VCPKG}-${PYTHON_WHEEL_WINDOWS_IMAGE_REVISION} + context: . + dockerfile: ci/docker/python-free-threaded-wheel-windows-vs2019.dockerfile + # This should make the pushed images reusable, but the image gets rebuilt. + # Uncomment if no local cache is available. + # cache_from: + # - abrarov/msvc-2019:2.11.0 + # - ${REPO}:python-3.13-free-threaded-wheel-windows-vs2019-vcpkg-${VCPKG}-${PYTHON_WHEEL_WINDOWS_IMAGE_REVISION} + volumes: *python-wheel-windows-vs2019-volumes + command: arrow\\ci\\scripts\\python_wheel_windows_build.bat + + python-wheel-windows-test-base: + image: ${REPO}:python-wheel-windows-test-vs2019-base-${PYTHON_WHEEL_WINDOWS_TEST_IMAGE_REVISION} + build: + context: . + dockerfile: ci/docker/python-wheel-windows-test-vs2019-base.dockerfile + volumes: *python-wheel-windows-vs2019-volumes + python-wheel-windows-test: - image: ${REPO}:python-${PYTHON}-wheel-windows-test-vs2019-${PYTHON_WHEEL_WINDOWS_IMAGE_REVISION} + image: ${REPO}:python-${PYTHON}-wheel-windows-test-vs2019-${PYTHON_WHEEL_WINDOWS_TEST_IMAGE_REVISION} build: args: + base: ${REPO}:python-wheel-windows-test-vs2019-base-${PYTHON_WHEEL_WINDOWS_TEST_IMAGE_REVISION} python: ${PYTHON} context: . dockerfile: ci/docker/python-wheel-windows-test-vs2019.dockerfile - volumes: - - "${DOCKER_VOLUME_PREFIX}python-wheel-windows-clcache:C:/clcache" - - type: bind - source: . - target: "C:/arrow" + volumes: *python-wheel-windows-vs2019-volumes + command: arrow\\ci\\scripts\\python_wheel_windows_test.bat + + python-free-threaded-wheel-windows-test: + image: ${REPO}:python-3.13-free-threaded-wheel-windows-test-vs2019-${PYTHON_WHEEL_WINDOWS_TEST_IMAGE_REVISION} Review Comment: ```suggestion image: ${REPO}:python-${PYTHON}-free-threaded-wheel-windows-test-vs2019-${PYTHON_WHEEL_WINDOWS_TEST_IMAGE_REVISION} ``` ########## docker-compose.yml: ########## @@ -1264,38 +1268,81 @@ services: CHECK_UNITTESTS: "ON" command: /arrow/ci/scripts/python_wheel_unix_test.sh /arrow - python-wheel-windows-vs2019: - image: ${REPO}:python-${PYTHON}-wheel-windows-vs2019-vcpkg-${VCPKG}-${PYTHON_WHEEL_WINDOWS_IMAGE_REVISION} + python-wheel-windows-vs2019-base: + image: ${REPO}:python-wheel-windows-vs2019-base-vcpkg-${VCPKG}-${PYTHON_WHEEL_WINDOWS_IMAGE_REVISION} build: args: - python: ${PYTHON} vcpkg: ${VCPKG} context: . - dockerfile: ci/docker/python-wheel-windows-vs2019.dockerfile + dockerfile: ci/docker/python-wheel-windows-vs2019-base.dockerfile # This should make the pushed images reusable, but the image gets rebuilt. # Uncomment if no local cache is available. # cache_from: # - abrarov/msvc-2019:2.11.0 - # - ${REPO}:python-${PYTHON}-wheel-windows-vs2019-vcpkg-${VCPKG}-${PYTHON_WHEEL_WINDOWS_IMAGE_REVISION} - volumes: + # - ${REPO}:python-wheel-windows-vs2019-base-vcpkg-${VCPKG}-${PYTHON_WHEEL_WINDOWS_IMAGE_REVISION} + volumes: &python-wheel-windows-vs2019-volumes - "${DOCKER_VOLUME_PREFIX}python-wheel-windows-clcache:C:/clcache" - type: bind source: . target: "C:/arrow" + + python-wheel-windows-vs2019: + image: ${REPO}:python-${PYTHON}-wheel-windows-vs2019-vcpkg-${VCPKG}-${PYTHON_WHEEL_WINDOWS_IMAGE_REVISION} + build: + args: + base: ${REPO}:python-wheel-windows-vs2019-base-vcpkg-${VCPKG}-${PYTHON_WHEEL_WINDOWS_IMAGE_REVISION} + python: ${PYTHON} + context: . + dockerfile: ci/docker/python-wheel-windows-vs2019.dockerfile + # This should make the pushed images reusable, but the image gets rebuilt. + # Uncomment if no local cache is available. + # cache_from: + # - abrarov/msvc-2019:2.11.0 + # - ${REPO}:python-${PYTHON}-wheel-windows-vs2019-vcpkg-${VCPKG}-${PYTHON_WHEEL_WINDOWS_IMAGE_REVISION} + volumes: *python-wheel-windows-vs2019-volumes command: arrow\\ci\\scripts\\python_wheel_windows_build.bat + python-free-threaded-wheel-windows-vs2019: + image: ${REPO}:python-3.13-free-threaded-wheel-windows-vs2019-vcpkg-${VCPKG}-${PYTHON_WHEEL_WINDOWS_IMAGE_REVISION} + build: + args: + base: ${REPO}:python-wheel-windows-vs2019-base-vcpkg-${VCPKG}-${PYTHON_WHEEL_WINDOWS_IMAGE_REVISION} Review Comment: ```suggestion base: ${REPO}:python-wheel-windows-vs2019-base-vcpkg-${VCPKG}-${PYTHON_WHEEL_WINDOWS_IMAGE_REVISION} python: ${PYTHON} ``` ########## .pre-commit-config.yaml: ########## @@ -40,6 +40,7 @@ repos: ( ?^ci/docker/conda-python-emscripten\.dockerfile$| ?^ci/docker/python-wheel-windows-test-vs2019\.dockerfile$| + ?^ci/docker/python-wheel-windows-test-vs2019-base\.dockerfile$| Review Comment: Can we add `python-free-threaded-*.dockerfile` too? ########## ci/docker/python-wheel-windows-test-vs2019-base.dockerfile: ########## @@ -0,0 +1,51 @@ +# Licensed to the Apache Software Foundation (ASF) under one +# or more contributor license agreements. See the NOTICE file +# distributed with this work for additional information +# regarding copyright ownership. The ASF licenses this file +# to you under the Apache License, Version 2.0 (the +# "License"); you may not use this file except in compliance +# with the License. You may obtain a copy of the License at +# +# http://www.apache.org/licenses/LICENSE-2.0 +# +# Unless required by applicable law or agreed to in writing, +# software distributed under the License is distributed on an +# "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY +# KIND, either express or implied. See the License for the +# specific language governing permissions and limitations +# under the License. + +# NOTE: You must update PYTHON_WHEEL_WINDOWS_TEST_IMAGE_REVISION in .env +# when you update this file. + +# based on mcr.microsoft.com/windows/servercore:ltsc2019 +# contains choco and vs2019 preinstalled +FROM abrarov/msvc-2019:2.11.0 + +# hadolint shell=cmd.exe + +# Add unix tools to path +RUN setx path "%path%;C:\Program Files\Git\usr\bin" + +# 1. Remove previous installations of python from the base image +# NOTE: a more recent base image (tried with 2.12.1) comes with python 3.9.7 +# and the msi installers are failing to remove pip and tcl/tk "products" making Review Comment: ```suggestion # and the MSI installers are failing to remove pip and tcl/tk "products" making ``` ########## ci/docker/python-wheel-windows-test-vs2019-base.dockerfile: ########## @@ -0,0 +1,51 @@ +# Licensed to the Apache Software Foundation (ASF) under one +# or more contributor license agreements. See the NOTICE file +# distributed with this work for additional information +# regarding copyright ownership. The ASF licenses this file +# to you under the Apache License, Version 2.0 (the +# "License"); you may not use this file except in compliance +# with the License. You may obtain a copy of the License at +# +# http://www.apache.org/licenses/LICENSE-2.0 +# +# Unless required by applicable law or agreed to in writing, +# software distributed under the License is distributed on an +# "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY +# KIND, either express or implied. See the License for the +# specific language governing permissions and limitations +# under the License. + +# NOTE: You must update PYTHON_WHEEL_WINDOWS_TEST_IMAGE_REVISION in .env +# when you update this file. + +# based on mcr.microsoft.com/windows/servercore:ltsc2019 +# contains choco and vs2019 preinstalled +FROM abrarov/msvc-2019:2.11.0 + +# hadolint shell=cmd.exe + +# Add unix tools to path +RUN setx path "%path%;C:\Program Files\Git\usr\bin" + +# 1. Remove previous installations of python from the base image Review Comment: ```suggestion # 1. Remove previous installations of Python from the base image ``` ########## ci/docker/python-free-threaded-wheel-windows-vs2019.dockerfile: ########## @@ -0,0 +1,46 @@ +# Licensed to the Apache Software Foundation (ASF) under one +# or more contributor license agreements. See the NOTICE file +# distributed with this work for additional information +# regarding copyright ownership. The ASF licenses this file +# to you under the Apache License, Version 2.0 (the +# "License"); you may not use this file except in compliance +# with the License. You may obtain a copy of the License at +# +# http://www.apache.org/licenses/LICENSE-2.0 +# +# Unless required by applicable law or agreed to in writing, +# software distributed under the License is distributed on an +# "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY +# KIND, either express or implied. See the License for the +# specific language governing permissions and limitations +# under the License. + +# NOTE: You must update PYTHON_WHEEL_WINDOWS_IMAGE_REVISION in .env +# when you update this file. + +# based on mcr.microsoft.com/windows/servercore:ltsc2019 +# contains choco and vs2019 preinstalled Review Comment: ditto. ########## ci/docker/python-wheel-windows-test-vs2019-base.dockerfile: ########## @@ -0,0 +1,51 @@ +# Licensed to the Apache Software Foundation (ASF) under one +# or more contributor license agreements. See the NOTICE file +# distributed with this work for additional information +# regarding copyright ownership. The ASF licenses this file +# to you under the Apache License, Version 2.0 (the +# "License"); you may not use this file except in compliance +# with the License. You may obtain a copy of the License at +# +# http://www.apache.org/licenses/LICENSE-2.0 +# +# Unless required by applicable law or agreed to in writing, +# software distributed under the License is distributed on an +# "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY +# KIND, either express or implied. See the License for the +# specific language governing permissions and limitations +# under the License. + +# NOTE: You must update PYTHON_WHEEL_WINDOWS_TEST_IMAGE_REVISION in .env +# when you update this file. + +# based on mcr.microsoft.com/windows/servercore:ltsc2019 +# contains choco and vs2019 preinstalled +FROM abrarov/msvc-2019:2.11.0 + +# hadolint shell=cmd.exe + +# Add unix tools to path +RUN setx path "%path%;C:\Program Files\Git\usr\bin" + +# 1. Remove previous installations of python from the base image +# NOTE: a more recent base image (tried with 2.12.1) comes with python 3.9.7 +# and the msi installers are failing to remove pip and tcl/tk "products" making +# the subsequent choco python installation step failing for installing python Review Comment: ```suggestion # the subsequent choco python installation step failing for installing Python ``` ########## ci/docker/python-wheel-windows-vs2019-base.dockerfile: ########## @@ -0,0 +1,79 @@ +# Licensed to the Apache Software Foundation (ASF) under one +# or more contributor license agreements. See the NOTICE file +# distributed with this work for additional information +# regarding copyright ownership. The ASF licenses this file +# to you under the Apache License, Version 2.0 (the +# "License"); you may not use this file except in compliance +# with the License. You may obtain a copy of the License at +# +# http://www.apache.org/licenses/LICENSE-2.0 +# +# Unless required by applicable law or agreed to in writing, +# software distributed under the License is distributed on an +# "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY +# KIND, either express or implied. See the License for the +# specific language governing permissions and limitations +# under the License. + +# NOTE: You must update PYTHON_WHEEL_WINDOWS_IMAGE_REVISION in .env +# when you update this file. + +# based on mcr.microsoft.com/windows/servercore:ltsc2019 +# contains choco and vs2019 preinstalled +FROM abrarov/msvc-2019:2.11.0 + +# Install CMake and Ninja +ARG cmake=3.31.2 +RUN choco install --no-progress -r -y cmake --version=%cmake% --installargs 'ADD_CMAKE_TO_PATH=System' && \ + choco install --no-progress -r -y gzip wget ninja + +# Add unix tools to path +RUN setx path "%path%;C:\Program Files\Git\usr\bin" + +# Install vcpkg +# +# Compiling vcpkg itself from a git tag doesn't work anymore since vcpkg has +# started to ship precompiled binaries for the vcpkg-tool. +ARG vcpkg +COPY ci/vcpkg/*.patch \ + ci/vcpkg/*windows*.cmake \ + arrow/ci/vcpkg/ +COPY ci/scripts/install_vcpkg.sh arrow/ci/scripts/ +ENV VCPKG_ROOT=C:\\vcpkg +RUN bash arrow/ci/scripts/install_vcpkg.sh /c/vcpkg %vcpkg% && \ + setx PATH "%PATH%;%VCPKG_ROOT%" + +# Configure vcpkg and install dependencies +# NOTE: use windows batch environment notation for build arguments in RUN +# statements but bash notation in ENV statements +# VCPKG_FORCE_SYSTEM_BINARIES=1 spare around ~750MB of image size if the system +# cmake's and ninja's versions are recent enough +ARG build_type=release +ENV CMAKE_BUILD_TYPE=${build_type} \ + VCPKG_OVERLAY_TRIPLETS=C:\\arrow\\ci\\vcpkg \ + VCPKG_DEFAULT_TRIPLET=amd64-windows-static-md-${build_type} \ + VCPKG_FEATURE_FLAGS="manifests" +COPY ci/vcpkg/vcpkg.json arrow/ci/vcpkg/ +# cannot use the S3 feature here because while aws-sdk-cpp=1.9.160 contains +# ssl related fixes as well as we can patch the vcpkg portfile to support +# arm machines it hits ARROW-15141 where we would need to fall back to 1.8.186 +# but we cannot patch those portfiles since vcpkg-tool handles the checkout of +# previous versions => use bundled S3 build +RUN vcpkg install \ + --clean-after-build \ + --x-install-root=%VCPKG_ROOT%\installed \ + --x-manifest-root=arrow/ci/vcpkg \ + --x-feature=flight \ + --x-feature=gcs \ + --x-feature=json \ + --x-feature=orc \ + --x-feature=parquet \ + --x-feature=s3 + +# Remove previous installations of python from the base image Review Comment: ```suggestion # Remove previous installations of Python from the base image ``` ########## dev/tasks/python-wheels/github.windows.yml: ########## @@ -43,6 +44,16 @@ jobs: {{ macros.github_login_ghcr()|indent }} {{ macros.github_install_archery()|indent }} + - name: Prepare + shell: bash + run: | + if [ "${PYTHON_ABI_TAG}" = "cp313t" ]; then + test_image_prefix=python-free-threaded + else + test_image_prefix=python + fi Review Comment: Can we detect the last `t` for `free-threaded`? Python 3.14 will use `cp314t`, right? ```suggestion case "${PYTHON_ABI_TAG}" in *t) test_image_prefix=python-free-threaded ;; *) test_image_prefix=python ;; esac ``` ########## ci/docker/python-wheel-windows-vs2019-base.dockerfile: ########## @@ -0,0 +1,79 @@ +# Licensed to the Apache Software Foundation (ASF) under one +# or more contributor license agreements. See the NOTICE file +# distributed with this work for additional information +# regarding copyright ownership. The ASF licenses this file +# to you under the Apache License, Version 2.0 (the +# "License"); you may not use this file except in compliance +# with the License. You may obtain a copy of the License at +# +# http://www.apache.org/licenses/LICENSE-2.0 +# +# Unless required by applicable law or agreed to in writing, +# software distributed under the License is distributed on an +# "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY +# KIND, either express or implied. See the License for the +# specific language governing permissions and limitations +# under the License. + +# NOTE: You must update PYTHON_WHEEL_WINDOWS_IMAGE_REVISION in .env +# when you update this file. + +# based on mcr.microsoft.com/windows/servercore:ltsc2019 +# contains choco and vs2019 preinstalled +FROM abrarov/msvc-2019:2.11.0 + +# Install CMake and Ninja +ARG cmake=3.31.2 +RUN choco install --no-progress -r -y cmake --version=%cmake% --installargs 'ADD_CMAKE_TO_PATH=System' && \ + choco install --no-progress -r -y gzip wget ninja + +# Add unix tools to path +RUN setx path "%path%;C:\Program Files\Git\usr\bin" + +# Install vcpkg +# +# Compiling vcpkg itself from a git tag doesn't work anymore since vcpkg has +# started to ship precompiled binaries for the vcpkg-tool. +ARG vcpkg +COPY ci/vcpkg/*.patch \ + ci/vcpkg/*windows*.cmake \ + arrow/ci/vcpkg/ +COPY ci/scripts/install_vcpkg.sh arrow/ci/scripts/ +ENV VCPKG_ROOT=C:\\vcpkg +RUN bash arrow/ci/scripts/install_vcpkg.sh /c/vcpkg %vcpkg% && \ + setx PATH "%PATH%;%VCPKG_ROOT%" + +# Configure vcpkg and install dependencies +# NOTE: use windows batch environment notation for build arguments in RUN +# statements but bash notation in ENV statements +# VCPKG_FORCE_SYSTEM_BINARIES=1 spare around ~750MB of image size if the system +# cmake's and ninja's versions are recent enough +ARG build_type=release +ENV CMAKE_BUILD_TYPE=${build_type} \ + VCPKG_OVERLAY_TRIPLETS=C:\\arrow\\ci\\vcpkg \ + VCPKG_DEFAULT_TRIPLET=amd64-windows-static-md-${build_type} \ + VCPKG_FEATURE_FLAGS="manifests" +COPY ci/vcpkg/vcpkg.json arrow/ci/vcpkg/ +# cannot use the S3 feature here because while aws-sdk-cpp=1.9.160 contains +# ssl related fixes as well as we can patch the vcpkg portfile to support +# arm machines it hits ARROW-15141 where we would need to fall back to 1.8.186 +# but we cannot patch those portfiles since vcpkg-tool handles the checkout of +# previous versions => use bundled S3 build +RUN vcpkg install \ + --clean-after-build \ + --x-install-root=%VCPKG_ROOT%\installed \ + --x-manifest-root=arrow/ci/vcpkg \ + --x-feature=flight \ + --x-feature=gcs \ + --x-feature=json \ + --x-feature=orc \ + --x-feature=parquet \ + --x-feature=s3 + +# Remove previous installations of python from the base image +# NOTE: a more recent base image (tried with 2.12.1) comes with python 3.9.7 +# and the msi installers are failing to remove pip and tcl/tk "products" making +# the subsequent choco python installation step failing for installing python +# version 3.9.* due to existing python version Review Comment: ```suggestion # version 3.9.* due to existing Python version ``` ########## docker-compose.yml: ########## @@ -1264,38 +1268,81 @@ services: CHECK_UNITTESTS: "ON" command: /arrow/ci/scripts/python_wheel_unix_test.sh /arrow - python-wheel-windows-vs2019: - image: ${REPO}:python-${PYTHON}-wheel-windows-vs2019-vcpkg-${VCPKG}-${PYTHON_WHEEL_WINDOWS_IMAGE_REVISION} + python-wheel-windows-vs2019-base: + image: ${REPO}:python-wheel-windows-vs2019-base-vcpkg-${VCPKG}-${PYTHON_WHEEL_WINDOWS_IMAGE_REVISION} build: args: - python: ${PYTHON} vcpkg: ${VCPKG} context: . - dockerfile: ci/docker/python-wheel-windows-vs2019.dockerfile + dockerfile: ci/docker/python-wheel-windows-vs2019-base.dockerfile # This should make the pushed images reusable, but the image gets rebuilt. # Uncomment if no local cache is available. # cache_from: # - abrarov/msvc-2019:2.11.0 - # - ${REPO}:python-${PYTHON}-wheel-windows-vs2019-vcpkg-${VCPKG}-${PYTHON_WHEEL_WINDOWS_IMAGE_REVISION} - volumes: + # - ${REPO}:python-wheel-windows-vs2019-base-vcpkg-${VCPKG}-${PYTHON_WHEEL_WINDOWS_IMAGE_REVISION} + volumes: &python-wheel-windows-vs2019-volumes - "${DOCKER_VOLUME_PREFIX}python-wheel-windows-clcache:C:/clcache" - type: bind source: . target: "C:/arrow" + + python-wheel-windows-vs2019: + image: ${REPO}:python-${PYTHON}-wheel-windows-vs2019-vcpkg-${VCPKG}-${PYTHON_WHEEL_WINDOWS_IMAGE_REVISION} + build: + args: + base: ${REPO}:python-wheel-windows-vs2019-base-vcpkg-${VCPKG}-${PYTHON_WHEEL_WINDOWS_IMAGE_REVISION} + python: ${PYTHON} + context: . + dockerfile: ci/docker/python-wheel-windows-vs2019.dockerfile + # This should make the pushed images reusable, but the image gets rebuilt. + # Uncomment if no local cache is available. + # cache_from: + # - abrarov/msvc-2019:2.11.0 + # - ${REPO}:python-${PYTHON}-wheel-windows-vs2019-vcpkg-${VCPKG}-${PYTHON_WHEEL_WINDOWS_IMAGE_REVISION} + volumes: *python-wheel-windows-vs2019-volumes command: arrow\\ci\\scripts\\python_wheel_windows_build.bat + python-free-threaded-wheel-windows-vs2019: + image: ${REPO}:python-3.13-free-threaded-wheel-windows-vs2019-vcpkg-${VCPKG}-${PYTHON_WHEEL_WINDOWS_IMAGE_REVISION} Review Comment: ```suggestion image: ${REPO}:python-${PYTHON}-free-threaded-wheel-windows-vs2019-vcpkg-${VCPKG}-${PYTHON_WHEEL_WINDOWS_IMAGE_REVISION} ``` ########## ci/scripts/python_wheel_windows_build.bat: ########## @@ -27,15 +32,15 @@ choco install -r -y --no-progress vcredist140 choco upgrade -r -y --no-progress vcredist140 dir C:\Windows\System32\msvcp140.dll -echo "=== (%PYTHON_VERSION%) Clear output directories and leftovers ===" +echo "=== (%PYTHON%) Clear output directories and leftovers ===" Review Comment: Can we remove `setx PYTHON_VERSION` from `.dockerfile`s? ########## ci/docker/python-wheel-windows-vs2019-base.dockerfile: ########## @@ -0,0 +1,79 @@ +# Licensed to the Apache Software Foundation (ASF) under one +# or more contributor license agreements. See the NOTICE file +# distributed with this work for additional information +# regarding copyright ownership. The ASF licenses this file +# to you under the Apache License, Version 2.0 (the +# "License"); you may not use this file except in compliance +# with the License. You may obtain a copy of the License at +# +# http://www.apache.org/licenses/LICENSE-2.0 +# +# Unless required by applicable law or agreed to in writing, +# software distributed under the License is distributed on an +# "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY +# KIND, either express or implied. See the License for the +# specific language governing permissions and limitations +# under the License. + +# NOTE: You must update PYTHON_WHEEL_WINDOWS_IMAGE_REVISION in .env +# when you update this file. + +# based on mcr.microsoft.com/windows/servercore:ltsc2019 +# contains choco and vs2019 preinstalled +FROM abrarov/msvc-2019:2.11.0 + +# Install CMake and Ninja +ARG cmake=3.31.2 +RUN choco install --no-progress -r -y cmake --version=%cmake% --installargs 'ADD_CMAKE_TO_PATH=System' && \ + choco install --no-progress -r -y gzip wget ninja + +# Add unix tools to path +RUN setx path "%path%;C:\Program Files\Git\usr\bin" + +# Install vcpkg +# +# Compiling vcpkg itself from a git tag doesn't work anymore since vcpkg has +# started to ship precompiled binaries for the vcpkg-tool. +ARG vcpkg +COPY ci/vcpkg/*.patch \ + ci/vcpkg/*windows*.cmake \ + arrow/ci/vcpkg/ +COPY ci/scripts/install_vcpkg.sh arrow/ci/scripts/ +ENV VCPKG_ROOT=C:\\vcpkg +RUN bash arrow/ci/scripts/install_vcpkg.sh /c/vcpkg %vcpkg% && \ + setx PATH "%PATH%;%VCPKG_ROOT%" + +# Configure vcpkg and install dependencies +# NOTE: use windows batch environment notation for build arguments in RUN +# statements but bash notation in ENV statements +# VCPKG_FORCE_SYSTEM_BINARIES=1 spare around ~750MB of image size if the system +# cmake's and ninja's versions are recent enough +ARG build_type=release +ENV CMAKE_BUILD_TYPE=${build_type} \ + VCPKG_OVERLAY_TRIPLETS=C:\\arrow\\ci\\vcpkg \ + VCPKG_DEFAULT_TRIPLET=amd64-windows-static-md-${build_type} \ + VCPKG_FEATURE_FLAGS="manifests" +COPY ci/vcpkg/vcpkg.json arrow/ci/vcpkg/ +# cannot use the S3 feature here because while aws-sdk-cpp=1.9.160 contains +# ssl related fixes as well as we can patch the vcpkg portfile to support +# arm machines it hits ARROW-15141 where we would need to fall back to 1.8.186 +# but we cannot patch those portfiles since vcpkg-tool handles the checkout of +# previous versions => use bundled S3 build +RUN vcpkg install \ + --clean-after-build \ + --x-install-root=%VCPKG_ROOT%\installed \ + --x-manifest-root=arrow/ci/vcpkg \ + --x-feature=flight \ + --x-feature=gcs \ + --x-feature=json \ + --x-feature=orc \ + --x-feature=parquet \ + --x-feature=s3 + +# Remove previous installations of python from the base image +# NOTE: a more recent base image (tried with 2.12.1) comes with python 3.9.7 +# and the msi installers are failing to remove pip and tcl/tk "products" making +# the subsequent choco python installation step failing for installing python Review Comment: ```suggestion # the subsequent choco python installation step failing for installing Python ``` ########## ci/docker/python-wheel-windows-vs2019-base.dockerfile: ########## @@ -0,0 +1,79 @@ +# Licensed to the Apache Software Foundation (ASF) under one +# or more contributor license agreements. See the NOTICE file +# distributed with this work for additional information +# regarding copyright ownership. The ASF licenses this file +# to you under the Apache License, Version 2.0 (the +# "License"); you may not use this file except in compliance +# with the License. You may obtain a copy of the License at +# +# http://www.apache.org/licenses/LICENSE-2.0 +# +# Unless required by applicable law or agreed to in writing, +# software distributed under the License is distributed on an +# "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY +# KIND, either express or implied. See the License for the +# specific language governing permissions and limitations +# under the License. + +# NOTE: You must update PYTHON_WHEEL_WINDOWS_IMAGE_REVISION in .env +# when you update this file. + +# based on mcr.microsoft.com/windows/servercore:ltsc2019 +# contains choco and vs2019 preinstalled +FROM abrarov/msvc-2019:2.11.0 + +# Install CMake and Ninja +ARG cmake=3.31.2 +RUN choco install --no-progress -r -y cmake --version=%cmake% --installargs 'ADD_CMAKE_TO_PATH=System' && \ + choco install --no-progress -r -y gzip wget ninja + +# Add unix tools to path +RUN setx path "%path%;C:\Program Files\Git\usr\bin" + +# Install vcpkg +# +# Compiling vcpkg itself from a git tag doesn't work anymore since vcpkg has +# started to ship precompiled binaries for the vcpkg-tool. +ARG vcpkg +COPY ci/vcpkg/*.patch \ + ci/vcpkg/*windows*.cmake \ + arrow/ci/vcpkg/ +COPY ci/scripts/install_vcpkg.sh arrow/ci/scripts/ +ENV VCPKG_ROOT=C:\\vcpkg +RUN bash arrow/ci/scripts/install_vcpkg.sh /c/vcpkg %vcpkg% && \ + setx PATH "%PATH%;%VCPKG_ROOT%" + +# Configure vcpkg and install dependencies +# NOTE: use windows batch environment notation for build arguments in RUN +# statements but bash notation in ENV statements +# VCPKG_FORCE_SYSTEM_BINARIES=1 spare around ~750MB of image size if the system +# cmake's and ninja's versions are recent enough +ARG build_type=release +ENV CMAKE_BUILD_TYPE=${build_type} \ + VCPKG_OVERLAY_TRIPLETS=C:\\arrow\\ci\\vcpkg \ + VCPKG_DEFAULT_TRIPLET=amd64-windows-static-md-${build_type} \ + VCPKG_FEATURE_FLAGS="manifests" +COPY ci/vcpkg/vcpkg.json arrow/ci/vcpkg/ +# cannot use the S3 feature here because while aws-sdk-cpp=1.9.160 contains +# ssl related fixes as well as we can patch the vcpkg portfile to support +# arm machines it hits ARROW-15141 where we would need to fall back to 1.8.186 +# but we cannot patch those portfiles since vcpkg-tool handles the checkout of +# previous versions => use bundled S3 build +RUN vcpkg install \ + --clean-after-build \ + --x-install-root=%VCPKG_ROOT%\installed \ + --x-manifest-root=arrow/ci/vcpkg \ + --x-feature=flight \ + --x-feature=gcs \ + --x-feature=json \ + --x-feature=orc \ + --x-feature=parquet \ + --x-feature=s3 + +# Remove previous installations of python from the base image +# NOTE: a more recent base image (tried with 2.12.1) comes with python 3.9.7 Review Comment: ```suggestion # NOTE: a more recent base image (tried with 2.12.1) comes with Python 3.9.7 ``` ########## docker-compose.yml: ########## @@ -1264,38 +1268,81 @@ services: CHECK_UNITTESTS: "ON" command: /arrow/ci/scripts/python_wheel_unix_test.sh /arrow - python-wheel-windows-vs2019: - image: ${REPO}:python-${PYTHON}-wheel-windows-vs2019-vcpkg-${VCPKG}-${PYTHON_WHEEL_WINDOWS_IMAGE_REVISION} + python-wheel-windows-vs2019-base: + image: ${REPO}:python-wheel-windows-vs2019-base-vcpkg-${VCPKG}-${PYTHON_WHEEL_WINDOWS_IMAGE_REVISION} build: args: - python: ${PYTHON} vcpkg: ${VCPKG} context: . - dockerfile: ci/docker/python-wheel-windows-vs2019.dockerfile + dockerfile: ci/docker/python-wheel-windows-vs2019-base.dockerfile # This should make the pushed images reusable, but the image gets rebuilt. # Uncomment if no local cache is available. # cache_from: # - abrarov/msvc-2019:2.11.0 - # - ${REPO}:python-${PYTHON}-wheel-windows-vs2019-vcpkg-${VCPKG}-${PYTHON_WHEEL_WINDOWS_IMAGE_REVISION} - volumes: + # - ${REPO}:python-wheel-windows-vs2019-base-vcpkg-${VCPKG}-${PYTHON_WHEEL_WINDOWS_IMAGE_REVISION} + volumes: &python-wheel-windows-vs2019-volumes - "${DOCKER_VOLUME_PREFIX}python-wheel-windows-clcache:C:/clcache" - type: bind source: . target: "C:/arrow" + + python-wheel-windows-vs2019: + image: ${REPO}:python-${PYTHON}-wheel-windows-vs2019-vcpkg-${VCPKG}-${PYTHON_WHEEL_WINDOWS_IMAGE_REVISION} + build: + args: + base: ${REPO}:python-wheel-windows-vs2019-base-vcpkg-${VCPKG}-${PYTHON_WHEEL_WINDOWS_IMAGE_REVISION} + python: ${PYTHON} + context: . + dockerfile: ci/docker/python-wheel-windows-vs2019.dockerfile + # This should make the pushed images reusable, but the image gets rebuilt. + # Uncomment if no local cache is available. + # cache_from: + # - abrarov/msvc-2019:2.11.0 + # - ${REPO}:python-${PYTHON}-wheel-windows-vs2019-vcpkg-${VCPKG}-${PYTHON_WHEEL_WINDOWS_IMAGE_REVISION} + volumes: *python-wheel-windows-vs2019-volumes command: arrow\\ci\\scripts\\python_wheel_windows_build.bat + python-free-threaded-wheel-windows-vs2019: + image: ${REPO}:python-3.13-free-threaded-wheel-windows-vs2019-vcpkg-${VCPKG}-${PYTHON_WHEEL_WINDOWS_IMAGE_REVISION} + build: + args: + base: ${REPO}:python-wheel-windows-vs2019-base-vcpkg-${VCPKG}-${PYTHON_WHEEL_WINDOWS_IMAGE_REVISION} + context: . + dockerfile: ci/docker/python-free-threaded-wheel-windows-vs2019.dockerfile + # This should make the pushed images reusable, but the image gets rebuilt. + # Uncomment if no local cache is available. + # cache_from: + # - abrarov/msvc-2019:2.11.0 + # - ${REPO}:python-3.13-free-threaded-wheel-windows-vs2019-vcpkg-${VCPKG}-${PYTHON_WHEEL_WINDOWS_IMAGE_REVISION} + volumes: *python-wheel-windows-vs2019-volumes + command: arrow\\ci\\scripts\\python_wheel_windows_build.bat + + python-wheel-windows-test-base: + image: ${REPO}:python-wheel-windows-test-vs2019-base-${PYTHON_WHEEL_WINDOWS_TEST_IMAGE_REVISION} + build: + context: . + dockerfile: ci/docker/python-wheel-windows-test-vs2019-base.dockerfile + volumes: *python-wheel-windows-vs2019-volumes + python-wheel-windows-test: - image: ${REPO}:python-${PYTHON}-wheel-windows-test-vs2019-${PYTHON_WHEEL_WINDOWS_IMAGE_REVISION} + image: ${REPO}:python-${PYTHON}-wheel-windows-test-vs2019-${PYTHON_WHEEL_WINDOWS_TEST_IMAGE_REVISION} build: args: + base: ${REPO}:python-wheel-windows-test-vs2019-base-${PYTHON_WHEEL_WINDOWS_TEST_IMAGE_REVISION} python: ${PYTHON} context: . dockerfile: ci/docker/python-wheel-windows-test-vs2019.dockerfile - volumes: - - "${DOCKER_VOLUME_PREFIX}python-wheel-windows-clcache:C:/clcache" - - type: bind - source: . - target: "C:/arrow" + volumes: *python-wheel-windows-vs2019-volumes + command: arrow\\ci\\scripts\\python_wheel_windows_test.bat + + python-free-threaded-wheel-windows-test: + image: ${REPO}:python-3.13-free-threaded-wheel-windows-test-vs2019-${PYTHON_WHEEL_WINDOWS_TEST_IMAGE_REVISION} + build: + args: + base: ${REPO}:python-wheel-windows-test-vs2019-base-${PYTHON_WHEEL_WINDOWS_TEST_IMAGE_REVISION} Review Comment: ```suggestion base: ${REPO}:python-wheel-windows-test-vs2019-base-${PYTHON_WHEEL_WINDOWS_TEST_IMAGE_REVISION} python: ${PYTHON} ``` ########## docker-compose.yml: ########## @@ -1264,38 +1268,81 @@ services: CHECK_UNITTESTS: "ON" command: /arrow/ci/scripts/python_wheel_unix_test.sh /arrow - python-wheel-windows-vs2019: - image: ${REPO}:python-${PYTHON}-wheel-windows-vs2019-vcpkg-${VCPKG}-${PYTHON_WHEEL_WINDOWS_IMAGE_REVISION} + python-wheel-windows-vs2019-base: + image: ${REPO}:python-wheel-windows-vs2019-base-vcpkg-${VCPKG}-${PYTHON_WHEEL_WINDOWS_IMAGE_REVISION} build: args: - python: ${PYTHON} vcpkg: ${VCPKG} context: . - dockerfile: ci/docker/python-wheel-windows-vs2019.dockerfile + dockerfile: ci/docker/python-wheel-windows-vs2019-base.dockerfile # This should make the pushed images reusable, but the image gets rebuilt. # Uncomment if no local cache is available. # cache_from: # - abrarov/msvc-2019:2.11.0 - # - ${REPO}:python-${PYTHON}-wheel-windows-vs2019-vcpkg-${VCPKG}-${PYTHON_WHEEL_WINDOWS_IMAGE_REVISION} - volumes: + # - ${REPO}:python-wheel-windows-vs2019-base-vcpkg-${VCPKG}-${PYTHON_WHEEL_WINDOWS_IMAGE_REVISION} + volumes: &python-wheel-windows-vs2019-volumes - "${DOCKER_VOLUME_PREFIX}python-wheel-windows-clcache:C:/clcache" - type: bind source: . target: "C:/arrow" + + python-wheel-windows-vs2019: + image: ${REPO}:python-${PYTHON}-wheel-windows-vs2019-vcpkg-${VCPKG}-${PYTHON_WHEEL_WINDOWS_IMAGE_REVISION} + build: + args: + base: ${REPO}:python-wheel-windows-vs2019-base-vcpkg-${VCPKG}-${PYTHON_WHEEL_WINDOWS_IMAGE_REVISION} + python: ${PYTHON} + context: . + dockerfile: ci/docker/python-wheel-windows-vs2019.dockerfile + # This should make the pushed images reusable, but the image gets rebuilt. + # Uncomment if no local cache is available. + # cache_from: + # - abrarov/msvc-2019:2.11.0 + # - ${REPO}:python-${PYTHON}-wheel-windows-vs2019-vcpkg-${VCPKG}-${PYTHON_WHEEL_WINDOWS_IMAGE_REVISION} + volumes: *python-wheel-windows-vs2019-volumes command: arrow\\ci\\scripts\\python_wheel_windows_build.bat + python-free-threaded-wheel-windows-vs2019: + image: ${REPO}:python-3.13-free-threaded-wheel-windows-vs2019-vcpkg-${VCPKG}-${PYTHON_WHEEL_WINDOWS_IMAGE_REVISION} + build: + args: + base: ${REPO}:python-wheel-windows-vs2019-base-vcpkg-${VCPKG}-${PYTHON_WHEEL_WINDOWS_IMAGE_REVISION} + context: . + dockerfile: ci/docker/python-free-threaded-wheel-windows-vs2019.dockerfile + # This should make the pushed images reusable, but the image gets rebuilt. + # Uncomment if no local cache is available. + # cache_from: + # - abrarov/msvc-2019:2.11.0 + # - ${REPO}:python-3.13-free-threaded-wheel-windows-vs2019-vcpkg-${VCPKG}-${PYTHON_WHEEL_WINDOWS_IMAGE_REVISION} Review Comment: ```suggestion # - ${REPO}:python-${PYTHON}-free-threaded-wheel-windows-vs2019-vcpkg-${VCPKG}-${PYTHON_WHEEL_WINDOWS_IMAGE_REVISION} ``` ########## ci/docker/python-wheel-windows-vs2019-base.dockerfile: ########## @@ -0,0 +1,79 @@ +# Licensed to the Apache Software Foundation (ASF) under one +# or more contributor license agreements. See the NOTICE file +# distributed with this work for additional information +# regarding copyright ownership. The ASF licenses this file +# to you under the Apache License, Version 2.0 (the +# "License"); you may not use this file except in compliance +# with the License. You may obtain a copy of the License at +# +# http://www.apache.org/licenses/LICENSE-2.0 +# +# Unless required by applicable law or agreed to in writing, +# software distributed under the License is distributed on an +# "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY +# KIND, either express or implied. See the License for the +# specific language governing permissions and limitations +# under the License. + +# NOTE: You must update PYTHON_WHEEL_WINDOWS_IMAGE_REVISION in .env +# when you update this file. + +# based on mcr.microsoft.com/windows/servercore:ltsc2019 +# contains choco and vs2019 preinstalled +FROM abrarov/msvc-2019:2.11.0 Review Comment: Can we use `python-wheel-windows-test-vs2019-base.dockerfile` as the base image? -- This is an automated message from the Apache Git Service. To respond to the message, please log on to GitHub and use the URL above to go to the specific comment. To unsubscribe, e-mail: [email protected] For queries about this service, please contact Infrastructure at: [email protected]
