Commit 17aaea21 authored by Edward Lesmes's avatar Edward Lesmes Committed by LUCI CQ

Reland "depot_tools: Run using Python 3 by default."

This reverts commit e2ac022f.

git-cache issues were solved by https://chromium-review.googlesource.com/c/chromium/tools/depot_tools/+/2120966

Original change's description:
> Reland "depot_tools: Run using Python 3 by default."
>
> This is a reland of 01ed3589
>
> * python_runner.sh, gclient, roll-dep and fetch will call vpython
>   (instead of vpython3) when running on Windows under git-bash.
> * vpython3 now detects when running on Windows under git-bash and
>   executes vpython3.bat instead.
> * vpython3.bat calls python3.exe directly instead of calling python3.bat.
>
> Original change's description:
> > depot_tools: Run using Python 3 by default.
> >
> > Run gclient, roll-dep, fetch and custom git commands (i.e. git-cl, git-rebase-update, git-new-branch, etc.)
> > using vpython3 by default.
> >
> > Change-Id: I4eecddafa6ca4c5f82ec097615c79d2a741613e7
> > Reviewed-on: https://chromium-review.googlesource.com/c/chromium/tools/depot_tools/+/2113550
> > Reviewed-by: Anthony Polito <apolito@google.com>
> > Commit-Queue: Edward Lesmes <ehmaldonado@chromium.org>
>
> Change-Id: I9829141d7ea26a67e655264430151f493e73a930
> Reviewed-on: https://chromium-review.googlesource.com/c/chromium/tools/depot_tools/+/2118418
> Commit-Queue: Edward Lesmes <ehmaldonado@chromium.org>
> Reviewed-by: Anthony Polito <apolito@google.com>

Change-Id: Iff02533f0a11062f335a010c074043c720d5b2ba
Reviewed-on: https://chromium-review.googlesource.com/c/chromium/tools/depot_tools/+/2121304Reviewed-by: 's avatarJosip Sokcevic <sokcevic@google.com>
Commit-Queue: Edward Lesmes <ehmaldonado@chromium.org>
parent de6c4564
...@@ -9,13 +9,19 @@ base_dir=$(dirname "$0") ...@@ -9,13 +9,19 @@ base_dir=$(dirname "$0")
# standalone, but allow other PATH manipulations to take priority. # standalone, but allow other PATH manipulations to take priority.
PATH=$PATH:$base_dir PATH=$PATH:$base_dir
# MINGW will equal 0 if we're running on Windows under MinGW.
MINGW=$(uname -s | grep MINGW > /dev/null; echo $?)
if [[ $GCLIENT_PY3 == 1 ]]; then if [[ $GCLIENT_PY3 == 1 ]]; then
# Explicitly run on Python 3 # Explicitly run on Python 3
PYTHONDONTWRITEBYTECODE=1 exec vpython3 "$base_dir/fetch.py" "$@" PYTHONDONTWRITEBYTECODE=1 exec vpython3 "$base_dir/fetch.py" "$@"
elif [[ $GCLIENT_PY3 == 0 ]]; then elif [[ $GCLIENT_PY3 == 0 ]]; then
# Explicitly run on Python 2 # Explicitly run on Python 2
PYTHONDONTWRITEBYTECODE=1 exec vpython "$base_dir/fetch.py" "$@" PYTHONDONTWRITEBYTECODE=1 exec vpython "$base_dir/fetch.py" "$@"
else elif [[ $MINGW = 0 ]]; then
# Run on Python 2 for now, allows default to be flipped. # Run on Python 2 on Windows for now, allows default to be flipped.
PYTHONDONTWRITEBYTECODE=1 exec vpython "$base_dir/fetch.py" "$@" PYTHONDONTWRITEBYTECODE=1 exec vpython "$base_dir/fetch.py" "$@"
else
# Run on Python 3, allows default to be flipped.
PYTHONDONTWRITEBYTECODE=1 exec vpython3 "$base_dir/fetch.py" "$@"
fi fi
...@@ -26,13 +26,19 @@ fi ...@@ -26,13 +26,19 @@ fi
# standalone, but allow other PATH manipulations to take priority. # standalone, but allow other PATH manipulations to take priority.
PATH=$PATH:$base_dir PATH=$PATH:$base_dir
# MINGW will equal 0 if we're running on Windows under MinGW.
MINGW=$(uname -s | grep MINGW > /dev/null; echo $?)
if [[ $GCLIENT_PY3 == 1 ]]; then if [[ $GCLIENT_PY3 == 1 ]]; then
# Explicitly run on Python 3 # Explicitly run on Python 3
PYTHONDONTWRITEBYTECODE=1 exec vpython3 "$base_dir/gclient.py" "$@" PYTHONDONTWRITEBYTECODE=1 exec vpython3 "$base_dir/gclient.py" "$@"
elif [[ $GCLIENT_PY3 == 0 ]]; then elif [[ $GCLIENT_PY3 == 0 ]]; then
# Explicitly run on Python 2 # Explicitly run on Python 2
PYTHONDONTWRITEBYTECODE=1 exec vpython "$base_dir/gclient.py" "$@" PYTHONDONTWRITEBYTECODE=1 exec vpython "$base_dir/gclient.py" "$@"
else elif [[ $MINGW = 0 ]]; then
# Run on Python 2 for now, allows default to be flipped. # Run on Python 2 on Windows for now, allows default to be flipped.
PYTHONDONTWRITEBYTECODE=1 exec vpython "$base_dir/gclient.py" "$@" PYTHONDONTWRITEBYTECODE=1 exec vpython "$base_dir/gclient.py" "$@"
else
# Run on Python 3, allows default to be flipped.
PYTHONDONTWRITEBYTECODE=1 exec vpython3 "$base_dir/gclient.py" "$@"
fi fi
...@@ -48,17 +48,19 @@ SCRIPT="${SCRIPT-${BASENAME//-/_}.py}" ...@@ -48,17 +48,19 @@ SCRIPT="${SCRIPT-${BASENAME//-/_}.py}"
# standalone, but allow other PATH manipulations to take priority. # standalone, but allow other PATH manipulations to take priority.
PATH=$PATH:$DEPOT_TOOLS PATH=$PATH:$DEPOT_TOOLS
if [[ $PYTHON_DIRECT = 1 ]]; then # MINGW will equal 0 if we're running on Windows under MinGW.
python.exe "$DEPOT_TOOLS\\$SCRIPT" "$@" MINGW=$(uname -s | grep MINGW > /dev/null; echo $?)
elif [[ -e "$DEPOT_TOOLS/python.bat" && $OSTYPE = msys ]]; then
cmd.exe //c "$DEPOT_TOOLS\\vpython.bat" "$DEPOT_TOOLS\\$SCRIPT" "$@" if [[ $GCLIENT_PY3 = 1 ]]; then
elif [[ $GCLIENT_PY3 = 1 ]]; then
# Explicitly run on Python 3 # Explicitly run on Python 3
vpython3 "$DEPOT_TOOLS/$SCRIPT" "$@" vpython3 "$DEPOT_TOOLS/$SCRIPT" "$@"
elif [[ $GCLIENT_PY3 = 0 ]]; then elif [[ $GCLIENT_PY3 = 0 ]]; then
# Explicitly run on Python 2 # Explicitly run on Python 2
vpython "$DEPOT_TOOLS/$SCRIPT" "$@" vpython "$DEPOT_TOOLS/$SCRIPT" "$@"
else elif [[ $MINGW = 0 ]]; then
# Run on Python 2 for now, allows default to be flipped. # Run on Python 2 on Windows for now, allows default to be flipped.
vpython "$DEPOT_TOOLS/$SCRIPT" "$@" vpython "$DEPOT_TOOLS/$SCRIPT" "$@"
else
# Run on Python 3, allows default to be flipped.
vpython3 "$DEPOT_TOOLS/$SCRIPT" "$@"
fi fi
...@@ -9,13 +9,19 @@ base_dir=$(dirname "$0") ...@@ -9,13 +9,19 @@ base_dir=$(dirname "$0")
# standalone, but allow other PATH manipulations to take priority. # standalone, but allow other PATH manipulations to take priority.
PATH=$PATH:$base_dir PATH=$PATH:$base_dir
# MINGW will equal 0 if we're running on Windows under MinGW.
MINGW=$(uname -s | grep MINGW > /dev/null; echo $?)
if [[ $GCLIENT_PY3 = 1 ]]; then if [[ $GCLIENT_PY3 = 1 ]]; then
# Explicitly run on Python 3 # Explicitly run on Python 3
PYTHONDONTWRITEBYTECODE=1 exec vpython3 "$base_dir/roll_dep.py" "$@" PYTHONDONTWRITEBYTECODE=1 exec vpython3 "$base_dir/roll_dep.py" "$@"
elif [[ $GCLIENT_PY3 = 0 ]]; then elif [[ $GCLIENT_PY3 = 0 ]]; then
# Explicitly run on Python 2 # Explicitly run on Python 2
PYTHONDONTWRITEBYTECODE=1 exec vpython "$base_dir/roll_dep.py" "$@" PYTHONDONTWRITEBYTECODE=1 exec vpython "$base_dir/roll_dep.py" "$@"
elif [[ $MINGW = 0 ]]; then
# Run on Python 2 on Windows for now, allows default to be flipped.
PYTHONDONTWRITEBYTECODE=1 exec vpython "$base_dir/roll_dep.py" "$@"
else else
# Run on Python 2 for now, allows default to be flipped. # Run on Python 2 for now, allows default to be flipped.
PYTHONDONTWRITEBYTECODE=1 exec vpython "$base_dir/roll_dep.py" "$@" PYTHONDONTWRITEBYTECODE=1 exec vpython3 "$base_dir/roll_dep.py" "$@"
fi fi
...@@ -25,6 +25,7 @@ class GClientSmokeBase(fake_repos.FakeReposTestBase): ...@@ -25,6 +25,7 @@ class GClientSmokeBase(fake_repos.FakeReposTestBase):
self.env['DEPOT_TOOLS_METRICS'] = '0' self.env['DEPOT_TOOLS_METRICS'] = '0'
# Suppress Python 3 warnings and other test undesirables. # Suppress Python 3 warnings and other test undesirables.
self.env['GCLIENT_TEST'] = '1' self.env['GCLIENT_TEST'] = '1'
self.env['GCLIENT_PY3'] = '0' if sys.version_info.major == 2 else '1'
self.maxDiff = None self.maxDiff = None
def gclient(self, cmd, cwd=None, error_ok=False): def gclient(self, cmd, cwd=None, error_ok=False):
......
...@@ -39,9 +39,14 @@ base_dir=$(dirname "$0") ...@@ -39,9 +39,14 @@ base_dir=$(dirname "$0")
source "$base_dir/cipd_bin_setup.sh" source "$base_dir/cipd_bin_setup.sh"
cipd_bin_setup &> /dev/null cipd_bin_setup &> /dev/null
# MINGW will equal 0 if we're running on Windows under MinGW.
MINGW=$(uname -s | grep MINGW > /dev/null; echo $?)
# If Python bootstrapping is not disabled, make sure Python has been # If Python bootstrapping is not disabled, make sure Python has been
# bootstrapped and add it to the front of PATH. # bootstrapped and add it to the front of PATH.
if [[ $MINGW != 0 && $DEPOT_TOOLS_BOOTSTRAP_PYTHON3 != 0 ]]; then if [[ $MINGW = 0 ]]; then
cmd.exe //c $0.bat "$@"
elif [[ $DEPOT_TOOLS_BOOTSTRAP_PYTHON3 != 0 ]]; then
if [[ ! -e $base_dir/python3_bin_reldir.txt ]]; then if [[ ! -e $base_dir/python3_bin_reldir.txt ]]; then
source "$base_dir/bootstrap_python3" source "$base_dir/bootstrap_python3"
bootstrap_python3 bootstrap_python3
......
...@@ -6,7 +6,7 @@ ...@@ -6,7 +6,7 @@
:: TODO(crbug.com/1003139): Remove. :: TODO(crbug.com/1003139): Remove.
:: Add Python 3 to PATH to work around crbug.com/1003139. :: Add Python 3 to PATH to work around crbug.com/1003139.
for /f %%i in (%~dp0python3_bin_reldir.txt) do set PYTHON3_BIN_RELDIR=%%i for /f %%i in (%~dp0python3_bin_reldir.txt) do set PYTHON3_BIN_RELDIR=%%i
set PATH=%~dp0%PYTHON3_BIN_RELDIR%;%PATH% set PATH=%~dp0%PYTHON3_BIN_RELDIR%;%~dp0%PYTHON3_BIN_RELDIR%\Scripts;%~dp0%PYTHON3_BIN_RELDIR%\DLLs;%PATH%
call "%~dp0\cipd_bin_setup.bat" > nul 2>&1 call "%~dp0\cipd_bin_setup.bat" > nul 2>&1
"%~dp0\.cipd_bin\vpython3.exe" -vpython-interpreter "%~dp0\python3.bat" %* "%~dp0\.cipd_bin\vpython3.exe" -vpython-interpreter "%PYTHON3_BIN_RELDIR%\python3.exe" %*
Markdown is supported
0% or
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment