From df8843c4a727d1ece1c81d6334bfd63e01cb41b3 Mon Sep 17 00:00:00 2001 From: Edward Chen <18449977+edgchen1@users.noreply.github.com> Date: Mon, 17 Jul 2023 08:24:47 -0700 Subject: [PATCH] Upgrade old Python version in packaging pipeline (#16667) - Upgrade from Python 3.6 to 3.8 in packaging pipeline. - Raise build.py minimum required Python version. --- build.amd64.1411.bat | 12 ------------ build.bat | 2 +- build.sh | 1 - tools/ci_build/build.py | 3 +-- .../aarch64/default/cpu/scripts/install_centos.sh | 3 +-- .../aarch64/default/cpu/scripts/install_deps.sh | 14 +++++++++++++- .../x64/default/cpu/scripts/install_centos.sh | 3 +-- .../x64/default/cpu/scripts/install_deps.sh | 14 +++++++++++++- 8 files changed, 30 insertions(+), 22 deletions(-) delete mode 100644 build.amd64.1411.bat diff --git a/build.amd64.1411.bat b/build.amd64.1411.bat deleted file mode 100644 index 5a289c13e0488..0000000000000 --- a/build.amd64.1411.bat +++ /dev/null @@ -1,12 +0,0 @@ -:: Copyright (c) Microsoft Corporation. All rights reserved. -:: Licensed under the MIT License. - -rem This will setup the VC env vars to use the 14.11 (VS2017 ver15.3) toolchain which is supported by CUDA 9.2 prior to running build.py. -rem It currently defaults to amd64 but that could be made configurable if that would be useful to developers running this locally. -@echo off - -rem Use 14.11 toolset -call "%VCINSTALLDIR%\Auxiliary\Build\vcvarsall.bat" amd64 -vcvars_ver=14.11 - -rem Requires a python 3.6 or higher install to be available in your PATH -python %~dp0\tools\ci_build\build.py --build_dir %~dp0\build\Windows %* \ No newline at end of file diff --git a/build.bat b/build.bat index 48d17befb8e64..187591191c8e8 100644 --- a/build.bat +++ b/build.bat @@ -2,5 +2,5 @@ :: Licensed under the MIT License. @echo off -rem Requires a python 3.6 or higher install to be available in your PATH +rem Requires a Python install to be available in your PATH python "%~dp0\tools\ci_build\build.py" --build_dir "%~dp0\build\Windows" %* diff --git a/build.sh b/build.sh index 4c28facf7807a..bf799ac8b7211 100755 --- a/build.sh +++ b/build.sh @@ -18,5 +18,4 @@ elif [[ "$*" == *"--android"* ]]; then DIR_OS="Android" fi -#requires python3.6 or higher python3 $DIR/tools/ci_build/build.py --build_dir $DIR/build/$DIR_OS "$@" diff --git a/tools/ci_build/build.py b/tools/ci_build/build.py index 7ab6aeb6c918d..401c791bae6ac 100644 --- a/tools/ci_build/build.py +++ b/tools/ci_build/build.py @@ -46,8 +46,7 @@ def __init__(self, message): def _check_python_version(): - # TODO Upgrade this, Python 3.6 is no longer supported. However, some packaging pipelines are still using it. - required_minor_version = 6 + required_minor_version = 7 if (sys.version_info.major, sys.version_info.minor) < (3, required_minor_version): raise UsageError( f"Invalid Python version. At least Python 3.{required_minor_version} is required. " diff --git a/tools/ci_build/github/linux/docker/inference/aarch64/default/cpu/scripts/install_centos.sh b/tools/ci_build/github/linux/docker/inference/aarch64/default/cpu/scripts/install_centos.sh index 65d020482b9f4..e5cdedfc5a860 100755 --- a/tools/ci_build/github/linux/docker/inference/aarch64/default/cpu/scripts/install_centos.sh +++ b/tools/ci_build/github/linux/docker/inference/aarch64/default/cpu/scripts/install_centos.sh @@ -5,7 +5,6 @@ os_major_version=$(cat /etc/redhat-release | tr -dc '0-9.'|cut -d \. -f1) echo "installing for CentOS version : $os_major_version" yum install -y centos-release-scl-rh -yum install -y which gdb redhat-lsb-core expat-devel tar unzip zlib-devel make libunwind bzip2 bzip2-devel java-11-openjdk-devel graphviz devtoolset-10-binutils devtoolset-10-gcc devtoolset-10-gcc-c++ devtoolset-10-gcc-gfortran python3 python3-pip +yum install -y which gdb redhat-lsb-core expat-devel tar unzip zlib-devel make libunwind bzip2 bzip2-devel java-11-openjdk-devel graphviz devtoolset-10-binutils devtoolset-10-gcc devtoolset-10-gcc-c++ devtoolset-10-gcc-gfortran -pip3 install --upgrade pip localedef -i en_US -f UTF-8 en_US.UTF-8 diff --git a/tools/ci_build/github/linux/docker/inference/aarch64/default/cpu/scripts/install_deps.sh b/tools/ci_build/github/linux/docker/inference/aarch64/default/cpu/scripts/install_deps.sh index 53c81576d8f8a..ff0547334dd99 100755 --- a/tools/ci_build/github/linux/docker/inference/aarch64/default/cpu/scripts/install_deps.sh +++ b/tools/ci_build/github/linux/docker/inference/aarch64/default/cpu/scripts/install_deps.sh @@ -45,10 +45,11 @@ tar -zxf /tmp/src/cmake-3.26.3-linux-`uname -m`.tar.gz --strip=1 -C /usr echo "Installing Ninja" GetFile https://github.com/ninja-build/ninja/archive/v1.10.0.tar.gz /tmp/src/ninja-linux.tar.gz tar -zxf ninja-linux.tar.gz -cd ninja-1.10.0 +pushd ninja-1.10.0 cmake -Bbuild-cmake -H. cmake --build build-cmake mv ./build-cmake/ninja /usr/bin +popd echo "Installing Node.js" CPU_ARCH=`uname -m` @@ -62,5 +63,16 @@ fi GetFile https://nodejs.org/dist/v16.14.2/node-v16.14.2-linux-${NODEJS_ARCH}.tar.gz /tmp/src/node-v16.14.2-linux-${NODEJS_ARCH}.tar.gz tar --strip 1 -xf /tmp/src/node-v16.14.2-linux-${NODEJS_ARCH}.tar.gz -C /usr +# The Python version in CentOS 7's python3 package is no longer supported (3.6) so we will build Python from source. +echo "Installing Python" +PYTHON_VERSION="3.8.17" +GetFile https://www.python.org/ftp/python/${PYTHON_VERSION}/Python-${PYTHON_VERSION}.tgz /tmp/src/Python-${PYTHON_VERSION}.tgz +tar -zxf Python-${PYTHON_VERSION}.tgz +pushd Python-${PYTHON_VERSION} +./configure +make +make install +popd + cd / rm -rf /tmp/src diff --git a/tools/ci_build/github/linux/docker/inference/x64/default/cpu/scripts/install_centos.sh b/tools/ci_build/github/linux/docker/inference/x64/default/cpu/scripts/install_centos.sh index b14ee8c628013..ffb4712f038f6 100755 --- a/tools/ci_build/github/linux/docker/inference/x64/default/cpu/scripts/install_centos.sh +++ b/tools/ci_build/github/linux/docker/inference/x64/default/cpu/scripts/install_centos.sh @@ -5,7 +5,6 @@ os_major_version=$(cat /etc/redhat-release | tr -dc '0-9.'|cut -d \. -f1) echo "installing for CentOS version : $os_major_version" yum install -y centos-release-scl-rh -yum install -y which gdb redhat-lsb-core expat-devel tar unzip zlib-devel make libunwind bzip2 bzip2-devel java-11-openjdk-devel graphviz devtoolset-11-binutils devtoolset-11-gcc devtoolset-11-gcc-c++ devtoolset-11-gcc-gfortran python3 python3-pip +yum install -y which gdb redhat-lsb-core expat-devel tar unzip zlib-devel make libunwind bzip2 bzip2-devel java-11-openjdk-devel graphviz devtoolset-11-binutils devtoolset-11-gcc devtoolset-11-gcc-c++ devtoolset-11-gcc-gfortran -pip3 install --upgrade pip localedef -i en_US -f UTF-8 en_US.UTF-8 diff --git a/tools/ci_build/github/linux/docker/inference/x64/default/cpu/scripts/install_deps.sh b/tools/ci_build/github/linux/docker/inference/x64/default/cpu/scripts/install_deps.sh index 53c81576d8f8a..ff0547334dd99 100755 --- a/tools/ci_build/github/linux/docker/inference/x64/default/cpu/scripts/install_deps.sh +++ b/tools/ci_build/github/linux/docker/inference/x64/default/cpu/scripts/install_deps.sh @@ -45,10 +45,11 @@ tar -zxf /tmp/src/cmake-3.26.3-linux-`uname -m`.tar.gz --strip=1 -C /usr echo "Installing Ninja" GetFile https://github.com/ninja-build/ninja/archive/v1.10.0.tar.gz /tmp/src/ninja-linux.tar.gz tar -zxf ninja-linux.tar.gz -cd ninja-1.10.0 +pushd ninja-1.10.0 cmake -Bbuild-cmake -H. cmake --build build-cmake mv ./build-cmake/ninja /usr/bin +popd echo "Installing Node.js" CPU_ARCH=`uname -m` @@ -62,5 +63,16 @@ fi GetFile https://nodejs.org/dist/v16.14.2/node-v16.14.2-linux-${NODEJS_ARCH}.tar.gz /tmp/src/node-v16.14.2-linux-${NODEJS_ARCH}.tar.gz tar --strip 1 -xf /tmp/src/node-v16.14.2-linux-${NODEJS_ARCH}.tar.gz -C /usr +# The Python version in CentOS 7's python3 package is no longer supported (3.6) so we will build Python from source. +echo "Installing Python" +PYTHON_VERSION="3.8.17" +GetFile https://www.python.org/ftp/python/${PYTHON_VERSION}/Python-${PYTHON_VERSION}.tgz /tmp/src/Python-${PYTHON_VERSION}.tgz +tar -zxf Python-${PYTHON_VERSION}.tgz +pushd Python-${PYTHON_VERSION} +./configure +make +make install +popd + cd / rm -rf /tmp/src