From 42039d09b764ec8c0c3496de5e5f356a4d4e6eaf Mon Sep 17 00:00:00 2001
From: Jan Tattermusch <jtattermusch@users.noreply.github.com>
Date: Mon, 2 Dec 2019 18:01:42 +0100
Subject: [PATCH] Revert "Release Python3.8 wheels for Windows"

---
 .../helper_scripts/install_python38.ps1       | 78 -------------------
 .../helper_scripts/prepare_build_windows.bat  |  3 -
 .../windows/grpc_build_artifacts.bat          |  7 ++
 .../windows/grpc_build_packages.bat           |  6 ++
 .../internal_ci/windows/grpc_distribtests.bat |  6 ++
 .../windows/grpc_distribtests_standalone.bat  |  6 ++
 tools/run_tests/artifacts/artifact_targets.py | 14 ++--
 .../artifacts/build_artifact_python.bat       |  6 +-
 8 files changed, 36 insertions(+), 90 deletions(-)
 delete mode 100644 tools/internal_ci/helper_scripts/install_python38.ps1

diff --git a/tools/internal_ci/helper_scripts/install_python38.ps1 b/tools/internal_ci/helper_scripts/install_python38.ps1
deleted file mode 100644
index e47f83b012..0000000000
--- a/tools/internal_ci/helper_scripts/install_python38.ps1
+++ /dev/null
@@ -1,78 +0,0 @@
-#!/usr/bin/env powershell
-# Install Python 3.8 for x64 and x86 in order to build wheels on Windows.
-
-Set-StrictMode -Version 2
-
-# Avoid "Could not create SSL/TLS secure channel"
-[Net.ServicePointManager]::SecurityProtocol = [Net.SecurityProtocolType]::Tls12
-
-function Install-Python {
-    Param(
-        [string]$PythonVersion,
-        [string]$PythonInstaller,
-        [string]$PythonInstallPath,
-        [string]$PythonInstallerHash
-    )
-    $PythonInstallerUrl = "https://www.python.org/ftp/python/$PythonVersion/$PythonInstaller"
-    $PythonInstallerPath = "C:\tools\$PythonInstaller"
-
-    # Downloads installer
-    Write-Host "Downloading the Python installer: $PythonInstallerUrl => $PythonInstallerPath"
-    Invoke-WebRequest -Uri $PythonInstallerUrl -OutFile $PythonInstallerPath
-
-    # Validates checksum
-    $HashFromDownload = Get-FileHash -Path $PythonInstallerPath -Algorithm MD5
-    if ($HashFromDownload.Hash -ne $PythonInstallerHash) {
-        throw "Invalid Python installer: failed checksum!"
-    }
-    Write-Host "Python installer $PythonInstallerPath validated."
-
-    # Installs Python
-    & $PythonInstallerPath /passive InstallAllUsers=1 PrependPath=1 Include_test=0 TargetDir=$PythonInstallPath
-    if (-Not $?) {
-        throw "The Python installation exited with error!"
-    }
-
-    # Validates Python binary
-    # NOTE(lidiz) Even if the install command finishes in the script, that
-    # doesn't mean the Python installation is finished. If using "ps" to check
-    # for running processes, you might see ongoing installers at this point.
-    # So, we needs this "hack" to reliably validate that the Python binary is
-    # functioning properly.
-    $ValidationStartTime = Get-Date
-    $EarlyExitDDL = $ValidationStartTime.addminutes(5)
-    $PythonBinary = "$PythonInstallPath\python.exe"
-    While ($True) {
-        $CurrentTime = Get-Date
-        if ($CurrentTime -ge $EarlyExitDDL) {
-            throw "Invalid Python installation! Timeout!"
-        }
-        & $PythonBinary -c 'print(42)'
-        if ($?) {
-            Write-Host "Python binary works properly."
-            break
-        }
-        Start-Sleep -Seconds 1
-    }
-
-    # Installs pip
-    & $PythonBinary -m ensurepip --user
-
-    Write-Host "Python $PythonVersion installed by $PythonInstaller at $PythonInstallPath."
-}
-
-$Python38x86Config = @{
-    PythonVersion = "3.8.0"
-    PythonInstaller = "python-3.8.0.exe"
-    PythonInstallPath = "C:\Python38_32bit"
-    PythonInstallerHash = "412a649d36626d33b8ca5593cf18318c"
-}
-Install-Python @Python38x86Config
-
-$Python38x64Config = @{
-    PythonVersion = "3.8.0"
-    PythonInstaller = "python-3.8.0-amd64.exe"
-    PythonInstallPath = "C:\Python38"
-    PythonInstallerHash = "29ea87f24c32f5e924b7d63f8a08ee8d"
-}
-Install-Python @Python38x64Config
diff --git a/tools/internal_ci/helper_scripts/prepare_build_windows.bat b/tools/internal_ci/helper_scripts/prepare_build_windows.bat
index bfd812345a..d129332c3b 100644
--- a/tools/internal_ci/helper_scripts/prepare_build_windows.bat
+++ b/tools/internal_ci/helper_scripts/prepare_build_windows.bat
@@ -35,9 +35,6 @@ python -m pip install google-api-python-client
 powershell -File src\csharp\install_dotnet_sdk.ps1
 set PATH=%LOCALAPPDATA%\Microsoft\dotnet;%PATH%
 
-@rem Install Python 3.8.0
-powershell -File tools\internal_ci\helper_scripts\install_python38.ps1
-
 @rem Newest version of Go is required to be able to build boringssl with cmake
 @rem TODO(jtattermusch): try to eliminate the dependency on Go
 choco install golang -y --version 1.13.1 --limit-output
diff --git a/tools/internal_ci/windows/grpc_build_artifacts.bat b/tools/internal_ci/windows/grpc_build_artifacts.bat
index be47fe670b..190e848b26 100644
--- a/tools/internal_ci/windows/grpc_build_artifacts.bat
+++ b/tools/internal_ci/windows/grpc_build_artifacts.bat
@@ -12,6 +12,13 @@
 @rem See the License for the specific language governing permissions and
 @rem limitations under the License.
 
+@rem Move python installation from _32bit to _32bits where they are expected by python artifact builder
+@rem TODO(jtattermusch): get rid of this hack
+rename C:\Python27_32bit Python27_32bits
+rename C:\Python35_32bit Python35_32bits
+rename C:\Python36_32bit Python36_32bits
+rename C:\Python37_32bit Python37_32bits
+
 @rem Boringssl build no longer supports yasm
 choco uninstall yasm -y --limit-output
 choco install nasm -y --limit-output
diff --git a/tools/internal_ci/windows/grpc_build_packages.bat b/tools/internal_ci/windows/grpc_build_packages.bat
index 19a805adfc..3cf90af39e 100644
--- a/tools/internal_ci/windows/grpc_build_packages.bat
+++ b/tools/internal_ci/windows/grpc_build_packages.bat
@@ -12,6 +12,12 @@
 @rem See the License for the specific language governing permissions and
 @rem limitations under the License.
 
+@rem Move python installation from _32bit to _32bits where they are expected by python artifact builder
+@rem TODO(jtattermusch): get rid of this hack
+rename C:\Python27_32bit Python27_32bits
+rename C:\Python35_32bit Python35_32bits
+rename C:\Python36_32bit Python36_32bits
+
 @rem enter repo root
 cd /d %~dp0\..\..\..
 
diff --git a/tools/internal_ci/windows/grpc_distribtests.bat b/tools/internal_ci/windows/grpc_distribtests.bat
index 72d7076ec9..effeee649b 100644
--- a/tools/internal_ci/windows/grpc_distribtests.bat
+++ b/tools/internal_ci/windows/grpc_distribtests.bat
@@ -12,6 +12,12 @@
 @rem See the License for the specific language governing permissions and
 @rem limitations under the License.
 
+@rem Move python installation from _32bit to _32bits where they are expected by python artifact builder
+@rem TODO(jtattermusch): get rid of this hack
+rename C:\Python27_32bit Python27_32bits
+rename C:\Python35_32bit Python35_32bits
+rename C:\Python36_32bit Python36_32bits
+
 @rem enter repo root
 cd /d %~dp0\..\..\..
 
diff --git a/tools/internal_ci/windows/grpc_distribtests_standalone.bat b/tools/internal_ci/windows/grpc_distribtests_standalone.bat
index 8033467414..b33b99c71e 100644
--- a/tools/internal_ci/windows/grpc_distribtests_standalone.bat
+++ b/tools/internal_ci/windows/grpc_distribtests_standalone.bat
@@ -12,6 +12,12 @@
 @rem See the License for the specific language governing permissions and
 @rem limitations under the License.
 
+@rem Move python installation from _32bit to _32bits where they are expected by python artifact builder
+@rem TODO(jtattermusch): get rid of this hack
+rename C:\Python27_32bit Python27_32bits
+rename C:\Python35_32bit Python35_32bits
+rename C:\Python36_32bit Python36_32bits
+
 @rem enter repo root
 cd /d %~dp0\..\..\..
 
diff --git a/tools/run_tests/artifacts/artifact_targets.py b/tools/run_tests/artifacts/artifact_targets.py
index c1288cd091..0709db9469 100644
--- a/tools/run_tests/artifacts/artifact_targets.py
+++ b/tools/run_tests/artifacts/artifact_targets.py
@@ -407,16 +407,18 @@ def targets():
         PythonArtifact('macos', 'x64', 'python3.6'),
         PythonArtifact('macos', 'x64', 'python3.7'),
         PythonArtifact('macos', 'x64', 'python3.8'),
-        PythonArtifact('windows', 'x86', 'Python27_32bit'),
-        PythonArtifact('windows', 'x86', 'Python35_32bit'),
-        PythonArtifact('windows', 'x86', 'Python36_32bit'),
-        PythonArtifact('windows', 'x86', 'Python37_32bit'),
-        PythonArtifact('windows', 'x86', 'Python38_32bit'),
+        PythonArtifact('windows', 'x86', 'Python27_32bits'),
+        PythonArtifact('windows', 'x86', 'Python35_32bits'),
+        PythonArtifact('windows', 'x86', 'Python36_32bits'),
+        PythonArtifact('windows', 'x86', 'Python37_32bits'),
+        # TODO(https://github.com/grpc/grpc/issues/20615) Enable this artifact
+        # PythonArtifact('windows', 'x86', 'Python38_32bits'),
         PythonArtifact('windows', 'x64', 'Python27'),
         PythonArtifact('windows', 'x64', 'Python35'),
         PythonArtifact('windows', 'x64', 'Python36'),
         PythonArtifact('windows', 'x64', 'Python37'),
-        PythonArtifact('windows', 'x64', 'Python38'),
+        # TODO(https://github.com/grpc/grpc/issues/20615) Enable this artifact
+        # PythonArtifact('windows', 'x64', 'Python38'),
         RubyArtifact('linux', 'x64'),
         RubyArtifact('macos', 'x64'),
         PHPArtifact('linux', 'x64')
diff --git a/tools/run_tests/artifacts/build_artifact_python.bat b/tools/run_tests/artifacts/build_artifact_python.bat
index b1e0ee7d0f..88a331e278 100644
--- a/tools/run_tests/artifacts/build_artifact_python.bat
+++ b/tools/run_tests/artifacts/build_artifact_python.bat
@@ -15,10 +15,10 @@
 @rem set path to python & mingw compiler
 set PATH=C:\%1;C:\%1\scripts;C:\msys64\mingw%2\bin;C:\tools\msys64\mingw%2\bin;%PATH%
 
-python -m pip install --upgrade six
+pip install --upgrade six
 @rem some artifacts are broken for setuptools 38.5.0. See https://github.com/grpc/grpc/issues/14317
-python -m pip install --upgrade setuptools==38.2.4
-python -m pip install -rrequirements.txt
+pip install --upgrade setuptools==38.2.4
+pip install -rrequirements.txt
 
 set GRPC_PYTHON_BUILD_WITH_CYTHON=1
 
-- 
GitLab