diff --git a/ci-conda.Dockerfile b/ci-conda.Dockerfile index 5b62b27..e9a68fd 100644 --- a/ci-conda.Dockerfile +++ b/ci-conda.Dockerfile @@ -10,7 +10,6 @@ FROM nvidia/cuda:${CUDA_VER}-base-${LINUX_VER} AS miniforge-cuda ARG LINUX_VER ARG PYTHON_VER -ARG PYTHON_VER_UPPER_BOUND ARG DEBIAN_FRONTEND=noninteractive ENV PATH=/opt/conda/bin:$PATH ENV PYTHON_VERSION=${PYTHON_VER} @@ -36,7 +35,17 @@ umask 002 # an older conda with newer packages still works well conda update --all -y -n base # install expected Python version -conda install -y -n base "python>=${PYTHON_VERSION},<${PYTHON_VER_UPPER_BOUND}=*_cpython" +PYTHON_MAJOR_VERSION=${PYTHON_VERSION%%.*} +PYTHON_MINOR_VERSION=${PYTHON_VERSION#*.} +PYTHON_UPPER_BOUND="${PYTHON_MAJOR_VERSION}.$((PYTHON_MINOR_VERSION+1)).0a0" +PYTHON_MINOR_PADDED=$(printf "%02d" "$PYTHON_MINOR_VERSION") +PYTHON_VERSION_PADDED="${PYTHON_MAJOR_VERSION}.${PYTHON_MINOR_PADDED}" +if [[ "$PYTHON_VERSION_PADDED" > "3.12" ]]; then + PYTHON_ABI_TAG="cp${PYTHON_MAJOR_VERSION}${PYTHON_MINOR_VERSION}" +else + PYTHON_ABI_TAG="cpython" +fi +conda install -y -n base "python>=${PYTHON_VERSION},<${PYTHON_UPPER_BOUND}=*_${PYTHON_ABI_TAG}" conda update --all -y -n base if [[ "$LINUX_VER" == "rockylinux"* ]]; then yum install -y findutils @@ -214,6 +223,18 @@ RUN cat /tmp/condarc.tmpl | envsubst | tee /opt/conda/.condarc; \ # Install CI tools using mamba RUN < "3.12" ]]; then + PYTHON_ABI_TAG="cp${PYTHON_MAJOR_VERSION}${PYTHON_MINOR_VERSION}" +else + PYTHON_ABI_TAG="cpython" +fi + +# rust is needed for source builds of codecov-cli -- binaries are not available for Python 3.13 yet. rapids-mamba-retry install -y \ anaconda-client \ ca-certificates \ @@ -224,9 +245,10 @@ rapids-mamba-retry install -y \ git \ jq \ packaging \ - "python>=${PYTHON_VERSION},<${PYTHON_VER_UPPER_BOUND}=*_cpython" \ + "python>=${PYTHON_VERSION},<${PYTHON_UPPER_BOUND}=*_${PYTHON_ABI_TAG}" \ "rapids-dependency-file-generator==1.*" \ rattler-build \ + rust \ ; conda clean -aipty EOF diff --git a/ci/compute-build-args.sh b/ci/compute-build-args.sh index 95797d2..8c5ede2 100755 --- a/ci/compute-build-args.sh +++ b/ci/compute-build-args.sh @@ -17,11 +17,6 @@ if [[ MANYLINUX_VER="manylinux_2_31" fi -# compute upper bound, e.g. "3.11 -> 3.12.0a0" -PYTHON_VER_MAJOR="${PYTHON_VER%%.*}" -PYTHON_VER_MINOR="${PYTHON_VER#*.}" -PYTHON_VER_UPPER_BOUND="${PYTHON_VER_MAJOR}.$(( PYTHON_VER_MINOR + 1)).0a0" - # translate ARCH to conda-equivalent string values CONDA_ARCH=$(echo "$ARCH" | sed 's#amd64#linux64#' | sed 's#arm64#aarch64#') @@ -29,7 +24,6 @@ ARGS=" CUDA_VER: ${CUDA_VER} LINUX_VER: ${LINUX_VER} PYTHON_VER: ${PYTHON_VER} -PYTHON_VER_UPPER_BOUND: ${PYTHON_VER_UPPER_BOUND} CPU_ARCH: ${ARCH} REAL_ARCH: $(arch) MANYLINUX_VER: ${MANYLINUX_VER} diff --git a/matrix.yaml b/matrix.yaml index f5db6d3..47de835 100644 --- a/matrix.yaml +++ b/matrix.yaml @@ -9,6 +9,7 @@ PYTHON_VER: - "3.10" - "3.11" - "3.12" + - "3.13" LINUX_VER: - "ubuntu20.04" - "ubuntu22.04"